diff --git a/bec_widgets/cli.py b/bec_widgets/cli.py index d395854e..6db1c7fe 100644 --- a/bec_widgets/cli.py +++ b/bec_widgets/cli.py @@ -11,9 +11,9 @@ from .scan_plot import BECScanPlot class BEC_UI(QMainWindow): - new_scan_data = pyqtSignal(dict) + new_scan_data = pyqtSignal("PyQt_PyObject") new_dap_data = pyqtSignal(dict) # signal per proc instance? - new_scan = pyqtSignal() + new_scan = pyqtSignal("PyQt_PyObject") def __init__(self, uipath): super().__init__() @@ -47,13 +47,13 @@ class BEC_UI(QMainWindow): scan_lock = RLock() def _scan_cb(msg): - msg = BECMessage.ScanMessage.loads(msg.value) + msg = BECMessage.ScanMessage.loads(msg.value)[0] with scan_lock: - scan_id = msg[0].content["scanID"] + scan_id = msg.content["scanID"] if self._scan_id != scan_id: self._scan_id = scan_id - self.new_scan.emit() - self.new_scan_data.emit(msg[0].content["data"]) + self.new_scan.emit(msg) + self.new_scan_data.emit(msg) bec_connector = RedisConnector("localhost:6379") diff --git a/bec_widgets/scan_plot.py b/bec_widgets/scan_plot.py index 2b48592b..2f4b8570 100644 --- a/bec_widgets/scan_plot.py +++ b/bec_widgets/scan_plot.py @@ -41,16 +41,18 @@ class BECScanPlot(pg.PlotWidget): if len(self.scan_curves) == 1: plot_item.setLabel("left", next(iter(self.scan_curves))) - @pyqtSlot() - def clearData(self): + @pyqtSlot("PyQt_PyObject") + def clearData(self, _msg): for plot_curve in {**self.scan_curves, **self.dap_curves}.values(): plot_curve.setData(x=[], y=[]) - @pyqtSlot(dict) - def redraw_scan(self, data): + @pyqtSlot("PyQt_PyObject") + def redraw_scan(self, msg): if not self.x_channel: return + data = msg.content["data"] + if self.x_channel not in data: logger.warning(f"Unknown channel `{self.x_channel}` for X data in {self.objectName()}") return