From d3f2c3bd6ba7464ab4f096110ab13d13cab8243c Mon Sep 17 00:00:00 2001 From: wyzula-jan Date: Wed, 28 May 2025 15:42:16 +0200 Subject: [PATCH] fix(waveform): waveform only update async data when scan is currently running --- bec_widgets/widgets/plots/waveform/waveform.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/bec_widgets/widgets/plots/waveform/waveform.py b/bec_widgets/widgets/plots/waveform/waveform.py index c78116d8..087af9a8 100644 --- a/bec_widgets/widgets/plots/waveform/waveform.py +++ b/bec_widgets/widgets/plots/waveform/waveform.py @@ -144,6 +144,7 @@ class Waveform(PlotBase): self._mode: Literal["none", "sync", "async", "mixed"] = "none" # Scan data + self._scan_done = True # means scan is not running self.old_scan_id = None self.scan_id = None self.scan_item = None @@ -1056,8 +1057,8 @@ class Waveform(PlotBase): meta(dict): The message metadata. """ self.sync_signal_update.emit() - status = msg.get("done") - if status: + self._scan_done = msg.get("done") + if self._scan_done: QTimer.singleShot(100, self.update_sync_curves) QTimer.singleShot(300, self.update_sync_curves) @@ -1209,6 +1210,9 @@ class Waveform(PlotBase): msg(dict): Message with the async data. metadata(dict): Metadata of the message. """ + if self._scan_done: + logger.info("Scan is done, ignoring async readback.") + return sender = self.sender() if not hasattr(sender, "cb_info"): logger.info(f"Sender {sender} has no cb_info.")