From bfef71382e6a1180d750d2c800650942c5da7a21 Mon Sep 17 00:00:00 2001 From: wyzula-jan <133381102+wyzula-jan@users.noreply.github.com> Date: Thu, 7 Sep 2023 15:27:33 +0200 Subject: [PATCH 1/9] feat: simulation and simple 2D plot for mca card stream --- bec_widgets/examples/mca_readout/mca_plot.py | 113 +++++++++++++++++++ bec_widgets/examples/mca_readout/mca_sim.py | 28 +++++ 2 files changed, 141 insertions(+) create mode 100644 bec_widgets/examples/mca_readout/mca_plot.py create mode 100644 bec_widgets/examples/mca_readout/mca_sim.py diff --git a/bec_widgets/examples/mca_readout/mca_plot.py b/bec_widgets/examples/mca_readout/mca_plot.py new file mode 100644 index 00000000..89ed1581 --- /dev/null +++ b/bec_widgets/examples/mca_readout/mca_plot.py @@ -0,0 +1,113 @@ +# import simulation_progress as SP +import numpy as np +import pyqtgraph as pg + +from PyQt5.QtCore import pyqtSlot, pyqtSignal +from PyQt5.QtWidgets import ( + QApplication, + QVBoxLayout, + QLabel, + QWidget, + QProgressBar, + QPushButton, +) + +from bec_lib.core import MessageEndpoints, RedisConnector, BECMessage + + +class StreamApp(QWidget): + update_plot = pyqtSignal() + + def __init__(self): + super().__init__() + + # Create layout and add widgets + self.layout = QVBoxLayout() + self.setLayout(self.layout) + + # Create plot + self.plot_widget = pg.PlotWidget(title="2D plot for mcs data") + self.image_item = pg.ImageItem() + self.label_id = pg.LabelItem(justify="left") + self.plot_widget.addItem(self.label_id) + self.plot_widget.addItem(self.image_item) + + # Add widgets to the layout + self.layout.addWidget(self.plot_widget) + + self.stream_consumer = connector.stream_consumer( + topics=MessageEndpoints.device_async_readback(scanID="ScanID1", device="mca"), + cb=self._stremer_cb, + parent=self, + ) + + self.stream_consumer.start() + + self.data = np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) + + self.scanID = None + + self.update_plot.connect(self.plot_new) + + def plot_new(self): + self.image_item.setImage(self.data) + + @pyqtSlot(dict, dict) + def get_stream(self, msg, metadata): + print(msg) + print(metadata) + + # def connect_stream_slot(self, slot, topic): + + @staticmethod + def _stremer_cb(msg, *, parent, **_kwargs) -> None: + msgMCS = BECMessage.DeviceMessage.loads(msg.value) + + row = msgMCS.content["signals"]["mca1"] + metadata = msgMCS.metadata + + current_scanID = metadata.get("scanID", None) + if current_scanID is None: + return + + if current_scanID != parent.scanID: + parent.scanID = current_scanID + parent.data = row + parent.image_item.clear() + + # print(f"metadata: {metadata}") + + # add row vertically to data + parent.data = np.vstack((parent.data, row)) + + parent.update_plot.emit() + + # print(f"msg: {msgMCS}") + # print(f"row: {row}") + + +if __name__ == "__main__": + from bec_widgets.bec_dispatcher import bec_dispatcher + + # BECclient global variables + # client = bec_dispatcher.client + # client.start() + # + # dev = client.device_manager.devices + # scans = client.scans + # queue = client.queue + + connector = RedisConnector("localhost:6379") + + app = QApplication([]) + progressApp = StreamApp() + + # bec_dispatcher.connect_slot( + # slot=progressApp.get_stream, + # topic=MessageEndpoints.device_async_readback(scanID="ScanID1", device="mca"), + # ) + + # window = ProgressApp() + # window.show() + progressApp.show() + app.exec_() diff --git a/bec_widgets/examples/mca_readout/mca_sim.py b/bec_widgets/examples/mca_readout/mca_sim.py new file mode 100644 index 00000000..e059e7e6 --- /dev/null +++ b/bec_widgets/examples/mca_readout/mca_sim.py @@ -0,0 +1,28 @@ +from bec_lib.core import BECMessage, MessageEndpoints, RedisConnector +import time + +connector = RedisConnector("localhost:6379") +producer = connector.producer() +metadata = {} + +scanID = "ScanID1" + +metadata.update( + { + "scanID": scanID, + "async_update": "append", + } +) +for ii in range(20): + data = {"mca1": [10, 2, 3, 4, 5, 6, 7, 8, 9, 10], "mca2": [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]} + msg = BECMessage.DeviceMessage( + signals=data, + metadata=metadata, + ).dumps() + producer.xadd( + topic=MessageEndpoints.device_async_readback(scanID=scanID, device="mca"), + msg={"data": msg}, + expire=1800, + ) + print(f"Sent {ii}") + time.sleep(0.5) From 7d996ec8e7307b5909b83c43c306196624011056 Mon Sep 17 00:00:00 2001 From: wyzula-jan <133381102+wyzula-jan@users.noreply.github.com> Date: Thu, 7 Sep 2023 15:29:49 +0200 Subject: [PATCH 2/9] refactor: project cleaned up --- bec_widgets/examples/mca_readout/mca_plot.py | 38 +++----------------- 1 file changed, 4 insertions(+), 34 deletions(-) diff --git a/bec_widgets/examples/mca_readout/mca_plot.py b/bec_widgets/examples/mca_readout/mca_plot.py index 89ed1581..73983746 100644 --- a/bec_widgets/examples/mca_readout/mca_plot.py +++ b/bec_widgets/examples/mca_readout/mca_plot.py @@ -37,7 +37,7 @@ class StreamApp(QWidget): self.stream_consumer = connector.stream_consumer( topics=MessageEndpoints.device_async_readback(scanID="ScanID1", device="mca"), - cb=self._stremer_cb, + cb=self._streamer_cb, parent=self, ) @@ -52,15 +52,8 @@ class StreamApp(QWidget): def plot_new(self): self.image_item.setImage(self.data) - @pyqtSlot(dict, dict) - def get_stream(self, msg, metadata): - print(msg) - print(metadata) - - # def connect_stream_slot(self, slot, topic): - @staticmethod - def _stremer_cb(msg, *, parent, **_kwargs) -> None: + def _streamer_cb(msg, *, parent, **_kwargs) -> None: msgMCS = BECMessage.DeviceMessage.loads(msg.value) row = msgMCS.content["signals"]["mca1"] @@ -75,39 +68,16 @@ class StreamApp(QWidget): parent.data = row parent.image_item.clear() - # print(f"metadata: {metadata}") - - # add row vertically to data parent.data = np.vstack((parent.data, row)) parent.update_plot.emit() - # print(f"msg: {msgMCS}") - # print(f"row: {row}") - if __name__ == "__main__": - from bec_widgets.bec_dispatcher import bec_dispatcher - - # BECclient global variables - # client = bec_dispatcher.client - # client.start() - # - # dev = client.device_manager.devices - # scans = client.scans - # queue = client.queue - connector = RedisConnector("localhost:6379") app = QApplication([]) - progressApp = StreamApp() + streamApp = StreamApp() - # bec_dispatcher.connect_slot( - # slot=progressApp.get_stream, - # topic=MessageEndpoints.device_async_readback(scanID="ScanID1", device="mca"), - # ) - - # window = ProgressApp() - # window.show() - progressApp.show() + streamApp.show() app.exec_() From b7136e769ff2749d133aa3b95f5e0dad60ad300d Mon Sep 17 00:00:00 2001 From: wyzula-jan <133381102+wyzula-jan@users.noreply.github.com> Date: Thu, 7 Sep 2023 15:43:44 +0200 Subject: [PATCH 3/9] refactor: functionalities separated to different methods --- bec_widgets/examples/mca_readout/mca_plot.py | 51 +++++++++++++------- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/bec_widgets/examples/mca_readout/mca_plot.py b/bec_widgets/examples/mca_readout/mca_plot.py index 73983746..fb5d812c 100644 --- a/bec_widgets/examples/mca_readout/mca_plot.py +++ b/bec_widgets/examples/mca_readout/mca_plot.py @@ -16,11 +16,21 @@ from bec_lib.core import MessageEndpoints, RedisConnector, BECMessage class StreamApp(QWidget): - update_plot = pyqtSignal() + update_signal = pyqtSignal() def __init__(self): super().__init__() + self.init_ui() + + self.data = None + # self.scanID = None + self.stream_consumer = None + + self.update_signal.connect(self.plot_new) + self.connect_stream_consumer("ScanID1", "mca") + + def init_ui(self): # Create layout and add widgets self.layout = QVBoxLayout() self.setLayout(self.layout) @@ -35,20 +45,18 @@ class StreamApp(QWidget): # Add widgets to the layout self.layout.addWidget(self.plot_widget) + def connect_stream_consumer(self, scanID, device): + if self.stream_consumer is not None: + self.stream_consumer.shutdown() + self.stream_consumer = connector.stream_consumer( - topics=MessageEndpoints.device_async_readback(scanID="ScanID1", device="mca"), + topics=MessageEndpoints.device_async_readback(scanID=scanID, device=device), cb=self._streamer_cb, parent=self, ) self.stream_consumer.start() - self.data = np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) - - self.scanID = None - - self.update_plot.connect(self.plot_new) - def plot_new(self): self.image_item.setImage(self.data) @@ -59,21 +67,30 @@ class StreamApp(QWidget): row = msgMCS.content["signals"]["mca1"] metadata = msgMCS.metadata - current_scanID = metadata.get("scanID", None) - if current_scanID is None: - return - - if current_scanID != parent.scanID: - parent.scanID = current_scanID + if parent.data is None: parent.data = row - parent.image_item.clear() + else: + parent.data = np.vstack((parent.data, row)) - parent.data = np.vstack((parent.data, row)) + # current_scanID = metadata.get("scanID", None) + # if current_scanID is None: + # return - parent.update_plot.emit() + # if current_scanID != parent.scanID: + # parent.scanID = current_scanID + # parent.data = row + # parent.image_item.clear() + + print(f"msg: {msg}") + print(f"metadata: {metadata}") + print(f"parent.data: {parent.data}") + + parent.update_signal.emit() if __name__ == "__main__": + from bec_lib.core import RedisConnector + connector = RedisConnector("localhost:6379") app = QApplication([]) From 9271b91113a3bbd46f0bffdaef7b50b629e4f44f Mon Sep 17 00:00:00 2001 From: wyzula-jan <133381102+wyzula-jan@users.noreply.github.com> Date: Thu, 7 Sep 2023 16:33:41 +0200 Subject: [PATCH 4/9] feat: device_consumer is getting scanID and initialise stream_consumer --- bec_widgets/examples/mca_readout/mca_plot.py | 75 +++++++++++++------- bec_widgets/examples/mca_readout/mca_sim.py | 14 ++-- 2 files changed, 59 insertions(+), 30 deletions(-) diff --git a/bec_widgets/examples/mca_readout/mca_plot.py b/bec_widgets/examples/mca_readout/mca_plot.py index fb5d812c..9efcd32e 100644 --- a/bec_widgets/examples/mca_readout/mca_plot.py +++ b/bec_widgets/examples/mca_readout/mca_plot.py @@ -1,22 +1,19 @@ # import simulation_progress as SP import numpy as np import pyqtgraph as pg - -from PyQt5.QtCore import pyqtSlot, pyqtSignal +from PyQt5.QtCore import pyqtSignal, pyqtSlot from PyQt5.QtWidgets import ( QApplication, QVBoxLayout, - QLabel, QWidget, - QProgressBar, - QPushButton, ) -from bec_lib.core import MessageEndpoints, RedisConnector, BECMessage +from bec_lib.core import MessageEndpoints, BECMessage class StreamApp(QWidget): update_signal = pyqtSignal() + new_scanID = pyqtSignal(str) def __init__(self): super().__init__() @@ -24,11 +21,13 @@ class StreamApp(QWidget): self.init_ui() self.data = None - # self.scanID = None + self.scanID = None self.stream_consumer = None + self.device_consumer("mca") + + self.new_scanID.connect(self.create_new_stream_consumer) self.update_signal.connect(self.plot_new) - self.connect_stream_consumer("ScanID1", "mca") def init_ui(self): # Create layout and add widgets @@ -36,15 +35,20 @@ class StreamApp(QWidget): self.setLayout(self.layout) # Create plot - self.plot_widget = pg.PlotWidget(title="2D plot for mcs data") + # self.glw = pg.GraphicsLayoutWidget() + self.plot_widget = pg.PlotWidget(title="MCA readout") self.image_item = pg.ImageItem() - self.label_id = pg.LabelItem(justify="left") - self.plot_widget.addItem(self.label_id) self.plot_widget.addItem(self.image_item) # Add widgets to the layout self.layout.addWidget(self.plot_widget) + @pyqtSlot(str) + def create_new_stream_consumer(self, scanID: str): + print(f"Creating new stream consumer for scanID: {scanID}") + + self.connect_stream_consumer(scanID, "mca") + def connect_stream_consumer(self, scanID, device): if self.stream_consumer is not None: self.stream_consumer.shutdown() @@ -57,8 +61,15 @@ class StreamApp(QWidget): self.stream_consumer.start() + def device_consumer(self, device): + self.device_consumer = connector.consumer( + topics=MessageEndpoints.device_status(device), cb=self._device_cv, parent=self + ) + + self.device_consumer.start() + def plot_new(self): - self.image_item.setImage(self.data) + self.image_item.setImage(self.data.T) @staticmethod def _streamer_cb(msg, *, parent, **_kwargs) -> None: @@ -68,25 +79,37 @@ class StreamApp(QWidget): metadata = msgMCS.metadata if parent.data is None: - parent.data = row + parent.data = np.array([row]) + + # Check if the current number of rows is odd + # if parent.data is not None and parent.data.shape[0] % 2 == 0: + # row = np.flip(row) # Flip the rowR else: parent.data = np.vstack((parent.data, row)) - # current_scanID = metadata.get("scanID", None) - # if current_scanID is None: - # return - - # if current_scanID != parent.scanID: - # parent.scanID = current_scanID - # parent.data = row - # parent.image_item.clear() - - print(f"msg: {msg}") - print(f"metadata: {metadata}") - print(f"parent.data: {parent.data}") - parent.update_signal.emit() + @staticmethod + def _device_cv(msg, *, parent, **_kwargs) -> None: + msgDEV = BECMessage.DeviceMessage.loads(msg.value) + + current_scanID = msgDEV.metadata["scanID"] + + if parent.scanID is None: + parent.scanID = current_scanID + parent.new_scanID.emit(current_scanID) + print(f"New scanID: {current_scanID}") + + if current_scanID != parent.scanID: + parent.scanID = current_scanID + parent.data = None + parent.image_item.clear() + parent.new_scanID.emit(current_scanID) + + print(f"New scanID: {current_scanID}") + + # print(msgDEV) + if __name__ == "__main__": from bec_lib.core import RedisConnector diff --git a/bec_widgets/examples/mca_readout/mca_sim.py b/bec_widgets/examples/mca_readout/mca_sim.py index e059e7e6..cabd8595 100644 --- a/bec_widgets/examples/mca_readout/mca_sim.py +++ b/bec_widgets/examples/mca_readout/mca_sim.py @@ -5,24 +5,30 @@ connector = RedisConnector("localhost:6379") producer = connector.producer() metadata = {} -scanID = "ScanID1" +scanID = "ScanID3" metadata.update( { - "scanID": scanID, + "scanID": scanID, # this will be different for each scan "async_update": "append", } ) for ii in range(20): - data = {"mca1": [10, 2, 3, 4, 5, 6, 7, 8, 9, 10], "mca2": [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]} + data = {"mca1": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "mca2": [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]} msg = BECMessage.DeviceMessage( signals=data, metadata=metadata, ).dumps() + + producer.send(topic=MessageEndpoints.device_status(device="mca"), msg=msg) + producer.xadd( - topic=MessageEndpoints.device_async_readback(scanID=scanID, device="mca"), + topic=MessageEndpoints.device_async_readback( + scanID=scanID, device="mca" + ), # scanID will be different for each scan msg={"data": msg}, expire=1800, ) + print(f"Sent {ii}") time.sleep(0.5) From c36887191914d23e85a1b480dac324be0eefb963 Mon Sep 17 00:00:00 2001 From: wyzula-jan <133381102+wyzula-jan@users.noreply.github.com> Date: Thu, 7 Sep 2023 16:35:13 +0200 Subject: [PATCH 5/9] feat: plot flips every second row --- bec_widgets/examples/mca_readout/mca_plot.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bec_widgets/examples/mca_readout/mca_plot.py b/bec_widgets/examples/mca_readout/mca_plot.py index 9efcd32e..2de1d15d 100644 --- a/bec_widgets/examples/mca_readout/mca_plot.py +++ b/bec_widgets/examples/mca_readout/mca_plot.py @@ -78,12 +78,12 @@ class StreamApp(QWidget): row = msgMCS.content["signals"]["mca1"] metadata = msgMCS.metadata + # Check if the current number of rows is odd + if parent.data is not None and parent.data.shape[0] % 2 == 1: + row = np.flip(row) # Flip the row + if parent.data is None: parent.data = np.array([row]) - - # Check if the current number of rows is odd - # if parent.data is not None and parent.data.shape[0] % 2 == 0: - # row = np.flip(row) # Flip the rowR else: parent.data = np.vstack((parent.data, row)) From fb52b2a8e59fca556764e0dc32bd4edc167e31d3 Mon Sep 17 00:00:00 2001 From: wyzula-jan <133381102+wyzula-jan@users.noreply.github.com> Date: Thu, 7 Sep 2023 16:43:04 +0200 Subject: [PATCH 6/9] feat: console arguments added for Redis port, device, and sub_device tag --- bec_widgets/examples/mca_readout/mca_plot.py | 27 ++++++++++++++------ bec_widgets/examples/mca_readout/mca_sim.py | 2 +- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/bec_widgets/examples/mca_readout/mca_plot.py b/bec_widgets/examples/mca_readout/mca_plot.py index 2de1d15d..aff263ab 100644 --- a/bec_widgets/examples/mca_readout/mca_plot.py +++ b/bec_widgets/examples/mca_readout/mca_plot.py @@ -15,7 +15,7 @@ class StreamApp(QWidget): update_signal = pyqtSignal() new_scanID = pyqtSignal(str) - def __init__(self): + def __init__(self, device, sub_device): super().__init__() self.init_ui() @@ -24,7 +24,10 @@ class StreamApp(QWidget): self.scanID = None self.stream_consumer = None - self.device_consumer("mca") + self.device = device + self.sub_device = sub_device + + self.device_consumer(self.device) self.new_scanID.connect(self.create_new_stream_consumer) self.update_signal.connect(self.plot_new) @@ -47,7 +50,7 @@ class StreamApp(QWidget): def create_new_stream_consumer(self, scanID: str): print(f"Creating new stream consumer for scanID: {scanID}") - self.connect_stream_consumer(scanID, "mca") + self.connect_stream_consumer(scanID, self.device) def connect_stream_consumer(self, scanID, device): if self.stream_consumer is not None: @@ -75,7 +78,7 @@ class StreamApp(QWidget): def _streamer_cb(msg, *, parent, **_kwargs) -> None: msgMCS = BECMessage.DeviceMessage.loads(msg.value) - row = msgMCS.content["signals"]["mca1"] + row = msgMCS.content["signals"][parent.sub_device] metadata = msgMCS.metadata # Check if the current number of rows is odd @@ -108,16 +111,24 @@ class StreamApp(QWidget): print(f"New scanID: {current_scanID}") - # print(msgDEV) - if __name__ == "__main__": + import argparse from bec_lib.core import RedisConnector - connector = RedisConnector("localhost:6379") + parser = argparse.ArgumentParser(description="Stream App.") + parser.add_argument( + "--port", type=str, default="localhost:6379", help="Port for RedisConnector" + ) + parser.add_argument("--device", type=str, default="mca", help="Device name") + parser.add_argument("--sub_device", type=str, default="mca1", help="Sub-device name") + + args = parser.parse_args() + + connector = RedisConnector(args.port) app = QApplication([]) - streamApp = StreamApp() + streamApp = StreamApp(device=args.device, sub_device=args.sub_device) streamApp.show() app.exec_() diff --git a/bec_widgets/examples/mca_readout/mca_sim.py b/bec_widgets/examples/mca_readout/mca_sim.py index cabd8595..727f70f7 100644 --- a/bec_widgets/examples/mca_readout/mca_sim.py +++ b/bec_widgets/examples/mca_readout/mca_sim.py @@ -5,7 +5,7 @@ connector = RedisConnector("localhost:6379") producer = connector.producer() metadata = {} -scanID = "ScanID3" +scanID = "ScanID1" metadata.update( { From 9e63f9228d19b304cd54465859d17d4015395d2a Mon Sep 17 00:00:00 2001 From: semantic-release Date: Thu, 7 Sep 2023 14:44:48 +0000 Subject: [PATCH 7/9] 0.17.0 Automatically generated by python-semantic-release --- CHANGELOG.md | 9 +++++++++ setup.py | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 26e56285..9b9f621e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ +## v0.17.0 (2023-09-07) + +### Feature + +* Console arguments added for Redis port, device, and sub_device tag ([`fb52b2a`](https://gitlab.psi.ch/bec/bec-widgets/-/commit/fb52b2a8e59fca556764e0dc32bd4edc167e31d3)) +* Plot flips every second row ([`c368871`](https://gitlab.psi.ch/bec/bec-widgets/-/commit/c36887191914d23e85a1b480dac324be0eefb963)) +* Device_consumer is getting scanID and initialise stream_consumer ([`9271b91`](https://gitlab.psi.ch/bec/bec-widgets/-/commit/9271b91113a3bbd46f0bffdaef7b50b629e4f44f)) +* Simulation and simple 2D plot for mca card stream ([`bfef713`](https://gitlab.psi.ch/bec/bec-widgets/-/commit/bfef71382e6a1180d750d2c800650942c5da7a21)) + ## v0.16.4 (2023-09-06) ### Fix diff --git a/setup.py b/setup.py index ea5310f6..ffcb8718 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ from setuptools import setup -__version__ = "0.16.4" +__version__ = "0.17.0" if __name__ == "__main__": setup( From 46a3981e7dfd5ded7b7f325301d2a25c47abd16f Mon Sep 17 00:00:00 2001 From: wyzula-jan <133381102+wyzula-jan@users.noreply.github.com> Date: Fri, 8 Sep 2023 08:45:33 +0200 Subject: [PATCH 8/9] fix: start_device_consumer changed from EP device_status to scan_status --- bec_widgets/examples/mca_readout/mca_plot.py | 21 +++++++++++++++----- bec_widgets/examples/mca_readout/mca_sim.py | 2 +- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/bec_widgets/examples/mca_readout/mca_plot.py b/bec_widgets/examples/mca_readout/mca_plot.py index aff263ab..1e76b8ef 100644 --- a/bec_widgets/examples/mca_readout/mca_plot.py +++ b/bec_widgets/examples/mca_readout/mca_plot.py @@ -27,7 +27,9 @@ class StreamApp(QWidget): self.device = device self.sub_device = sub_device - self.device_consumer(self.device) + self.start_device_consumer() + + # self.start_device_consumer(self.device) # for simulation self.new_scanID.connect(self.create_new_stream_consumer) self.update_signal.connect(self.plot_new) @@ -64,13 +66,20 @@ class StreamApp(QWidget): self.stream_consumer.start() - def device_consumer(self, device): + def start_device_consumer(self): self.device_consumer = connector.consumer( - topics=MessageEndpoints.device_status(device), cb=self._device_cv, parent=self + topics=MessageEndpoints.scan_status(), cb=self._device_cv, parent=self ) self.device_consumer.start() + # def start_device_consumer(self, device): #for simulation + # self.device_consumer = connector.consumer( + # topics=MessageEndpoints.device_status(device), cb=self._device_cv, parent=self + # ) + # + # self.device_consumer.start() + def plot_new(self): self.image_item.setImage(self.data.T) @@ -94,9 +103,11 @@ class StreamApp(QWidget): @staticmethod def _device_cv(msg, *, parent, **_kwargs) -> None: - msgDEV = BECMessage.DeviceMessage.loads(msg.value) + print("Getting ScanID") - current_scanID = msgDEV.metadata["scanID"] + msgDEV = BECMessage.ScanStatusMessage.loads(msg.value) + + current_scanID = msgDEV.content["scanID"] if parent.scanID is None: parent.scanID = current_scanID diff --git a/bec_widgets/examples/mca_readout/mca_sim.py b/bec_widgets/examples/mca_readout/mca_sim.py index 727f70f7..b3609293 100644 --- a/bec_widgets/examples/mca_readout/mca_sim.py +++ b/bec_widgets/examples/mca_readout/mca_sim.py @@ -20,7 +20,7 @@ for ii in range(20): metadata=metadata, ).dumps() - producer.send(topic=MessageEndpoints.device_status(device="mca"), msg=msg) + # producer.send(topic=MessageEndpoints.device_status(device="mca"), msg=msg) producer.xadd( topic=MessageEndpoints.device_async_readback( From 177421b4eab7b7139ec70f34bcf1c97a18b7546b Mon Sep 17 00:00:00 2001 From: semantic-release Date: Fri, 8 Sep 2023 06:46:44 +0000 Subject: [PATCH 9/9] 0.17.1 Automatically generated by python-semantic-release --- CHANGELOG.md | 6 ++++++ setup.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b9f621e..f8b5ca89 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ +## v0.17.1 (2023-09-08) + +### Fix + +* Start_device_consumer changed from EP device_status to scan_status ([`46a3981`](https://gitlab.psi.ch/bec/bec-widgets/-/commit/46a3981e7dfd5ded7b7f325301d2a25c47abd16f)) + ## v0.17.0 (2023-09-07) ### Feature diff --git a/setup.py b/setup.py index ffcb8718..0cc73534 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ from setuptools import setup -__version__ = "0.17.0" +__version__ = "0.17.1" if __name__ == "__main__": setup(