From d17ca2afb75b21396eeff0128a80da08f5d49eab Mon Sep 17 00:00:00 2001 From: zreszela Date: Wed, 4 Aug 2021 18:02:44 +0200 Subject: [PATCH] fix: prevent showscan online startup when door does not exist ScanWindow.setModel() set models of its subwidgets which then try to connect to Sardana-Taurus model extensions e.g. recordDataUpdated which raises not self-explanatory AttributeError. Early recognize this situation and raise a self-explanatory RuntimeError. --- src/sardana/taurus/qt/qtgui/extra_sardana/showscanonline.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/sardana/taurus/qt/qtgui/extra_sardana/showscanonline.py b/src/sardana/taurus/qt/qtgui/extra_sardana/showscanonline.py index 44d7fbeaa7..e5a1f8630b 100644 --- a/src/sardana/taurus/qt/qtgui/extra_sardana/showscanonline.py +++ b/src/sardana/taurus/qt/qtgui/extra_sardana/showscanonline.py @@ -36,6 +36,8 @@ import click import pkg_resources +import taurus +from taurus.core.taurusbasetypes import TaurusDevState from taurus.external.qt import Qt, uic from taurus.qt.qtgui.base import TaurusBaseWidget from taurus.qt.qtgui.taurusgui import TaurusGui @@ -234,6 +236,9 @@ def __init__(self, parent=None): self.plot_widget.manager.newShortMessage.connect(sbar.showMessage) def setModel(self, model): + door = taurus.Device(model) + if door.state == TaurusDevState.NotReady: + raise RuntimeError("{} is not defined".format(model)) self.plot_widget.setModel(model) self.info_form.setModel(model) self.point_form.setModel(model)