From 6ae2cc4fb886837f1207140e6274ad67010258be Mon Sep 17 00:00:00 2001 From: Giovanni Harting Date: Fri, 13 Nov 2015 23:41:38 +0100 Subject: [PATCH] added some more error handling fixed pwm_freq not getting set on init --- ledd/controller.py | 15 ++++++--------- ledd/daemon.py | 5 ++++- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/ledd/controller.py b/ledd/controller.py index d13321c..a4abd9a 100644 --- a/ledd/controller.py +++ b/ledd/controller.py @@ -51,25 +51,22 @@ class Controller(Base): i2c_device = Column(Integer) address = Column(String) stripes = relationship("Stripe", backref="controller") - pwm_freq = Column("pwm_freq", Integer) + _pwm_freq = Column("pwm_freq", Integer) """ A controller controls a number of stripes. """ + @reconstructor def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._mode = None self.bus = smbus.SMBus(self.i2c_device) self._address = int(self.address, 16) - self._pwm_freq = self.pwm_freq - - @reconstructor - def init_on_load(self): - self._mode = None - self.bus = smbus.SMBus(self.i2c_device) - self._address = int(self.address, 16) - self._pwm_freq = self.pwm_freq + if self._pwm_freq: + self.pwm_freq = self._pwm_freq + else: + self.pwm_freq = 1526 def __repr__(self): return "".format(len(self.stripes), self.id) diff --git a/ledd/daemon.py b/ledd/daemon.py index fdaf4dc..14c431e 100644 --- a/ledd/daemon.py +++ b/ledd/daemon.py @@ -388,7 +388,10 @@ class LedDProtocol(asyncio.Protocol): except UnicodeDecodeError: log.warning("Recieved undecodable data, ignoring") else: - self.select_task(d_decoded) + try: + self.select_task(d_decoded) + except JSONRPCError: + log.warning("Recieved non-json data, ignoring") def select_task(self, data): if data: