From 8117b26363830d7ac81c0c5aa7a4cb33800376cf Mon Sep 17 00:00:00 2001 From: Enrico Faulhaber Date: Thu, 8 Feb 2018 14:48:08 +0100 Subject: [PATCH] GUI: Saveguard against missing mandatory parameter status Change-Id: I04fa866474a8f2205c1e77f19d3eef4cd100ccf0 Reviewed-on: https://forge.frm2.tum.de/review/17279 Reviewed-by: Enrico Faulhaber Tested-by: Enrico Faulhaber --- secop/gui/nodectrl.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/secop/gui/nodectrl.py b/secop/gui/nodectrl.py index 63b383e..b11211d 100644 --- a/secop/gui/nodectrl.py +++ b/secop/gui/nodectrl.py @@ -141,15 +141,18 @@ class NodeCtrl(QWidget): description = modprops['description'] # fallback: allow (now) invalid 'Driveable' - if 'Drivable' in interfaces or 'Driveable' in interfaces: - widget = DrivableWidget(self._node, modname, self) - unit = self._node.getProperties(modname, 'value').get('unit', '') - elif 'Readable' in interfaces: - widget = ReadableWidget(self._node, modname, self) - unit = self._node.getProperties(modname, 'value').get('unit', '') - else: - widget = QLabel('Unsupported Interfaceclass %r' % interfaces) - unit = '' + try: + if 'Drivable' in interfaces or 'Driveable' in interfaces: + widget = DrivableWidget(self._node, modname, self) + unit = self._node.getProperties(modname, 'value').get('unit', '') + elif 'Readable' in interfaces: + widget = ReadableWidget(self._node, modname, self) + unit = self._node.getProperties(modname, 'value').get('unit', '') + else: + widget = QLabel('Unsupported Interfaceclass %r' % interfaces) + unit = '' + except Exception as e: + widget = QLabel('Bad configured Module %s! (%s)' % (modname, e)) if unit: