From 1a1c128a4372d72fa40fc69983ab76168199729c Mon Sep 17 00:00:00 2001
From: Marco Emilio Poleggi <marco-emilio.poleggi@hesge.ch>
Date: Tue, 27 Aug 2019 15:33:16 +0200
Subject: [PATCH] Fix for issue #1 --
 https://githepia.hesge.ch/adrienma.lescourt/actuasim_iot/issues/1

---
 actuasim.py           | 7 ++++++-
 actuasim/blind.py     | 6 +++---
 actuasim/knxserver.py | 2 +-
 actuasim/valve.py     | 8 ++++++--
 4 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/actuasim.py b/actuasim.py
index d3bd3b5..0df73ec 100755
--- a/actuasim.py
+++ b/actuasim.py
@@ -150,7 +150,12 @@ class Actuasim(QMainWindow):
 
     def frame_received(self, frame):
         self.logger.info('Frame received:' + str([hex(h) for h in frame[0]]))
-        decoded_frame = knxnet.decode_frame(frame[0])
+        try:
+            decoded_frame = knxnet.decode_frame(frame[0])
+        except Exception as e:
+            self.logger.info('Bad frame: {}'.format(e))
+            return
+
         if decoded_frame.header.service_type_descriptor == knxnet.ServiceTypeDescriptor.CONNECTION_REQUEST:
             self.logger.info('= Connection request:\n' + str(decoded_frame))
             conn_resp = knxnet.create_frame(knxnet.ServiceTypeDescriptor.CONNECTION_RESPONSE,
diff --git a/actuasim/blind.py b/actuasim/blind.py
index ac9f7d9..587b951 100644
--- a/actuasim/blind.py
+++ b/actuasim/blind.py
@@ -23,14 +23,14 @@ class BlindWidget(QWidget):
     def __init__(self, individual_address, group_address, blind_position=0, animation_speed_ms=1500):
         super(BlindWidget, self).__init__()
 
-        self.ui = Ui_Blind()
-        self.ui.setupUi(self)
-
         self.logger = logging.getLogger()
 
         self.individual_address = individual_address
         self.group_address = group_address
 
+        self.ui = Ui_Blind()
+        self.ui.setupUi(self)
+
         # Progressbar init
         self.is_moving = False
         self.animation_speed = animation_speed_ms
diff --git a/actuasim/knxserver.py b/actuasim/knxserver.py
index 4d634b9..430ac4a 100644
--- a/actuasim/knxserver.py
+++ b/actuasim/knxserver.py
@@ -45,4 +45,4 @@ class Knxserver(QObject, threading.Thread):
 
 if __name__ == '__main__':
     serv = Knxserver()
-    serv.start()
\ No newline at end of file
+    serv.start()
diff --git a/actuasim/valve.py b/actuasim/valve.py
index 7634b2a..755bd6c 100644
--- a/actuasim/valve.py
+++ b/actuasim/valve.py
@@ -25,14 +25,18 @@ class ValveWidget(QWidget):
 
     def __init__(self, individual_address, group_address, valve_position=45, animation_speed_ms=1500):
         super(ValveWidget, self).__init__()
-        self.ui = Ui_Valve()
-        self.ui.setupUi(self)
 
         self.logger = logging.getLogger()
 
         self.individual_address = individual_address
         self.group_address = group_address
+
         self._position = 0
+
+        self.ui = Ui_Valve()
+        self.ui.setupUi(self)
+
+
         self.position = valve_position
         self.setFixedWidth(220)
 
-- 
GitLab