From db6a9a502f7f4ac425108c5a94c9b091c870e8d4 Mon Sep 17 00:00:00 2001 From: gac-x01da Date: Wed, 25 Jun 2025 15:56:39 +0200 Subject: [PATCH] bugfix for when nidaq is stopped early --- debye_bec/devices/nidaq/nidaq.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/debye_bec/devices/nidaq/nidaq.py b/debye_bec/devices/nidaq/nidaq.py index e97a739..2942559 100644 --- a/debye_bec/devices/nidaq/nidaq.py +++ b/debye_bec/devices/nidaq/nidaq.py @@ -528,9 +528,12 @@ class Nidaq(PSIDeviceBase, NidaqControl): if not self._check_if_scan_name_is_valid(): return None - status = CompareStatus(self.state, NidaqState.STANDBY) - self.cancel_on_stop(status) - status.wait(timeout=self.timeout_wait_for_signal) + if self.state.get() != NidaqState.STANDBY: + status = CompareStatus(self.state, NidaqState.STANDBY) + self.cancel_on_stop(status) + self.on_stop() + status.wait(timeout=self.timeout_wait_for_signal) + # If scan is not part of the valid_scan_names, if self.scan_info.msg.scan_name != "nidaq_continuous_scan": self.scan_type.set(ScanType.TRIGGERED).wait(timeout=self._timeout_wait_for_pv) @@ -559,6 +562,7 @@ class Nidaq(PSIDeviceBase, NidaqControl): def on_kickoff(self) -> DeviceStatus | StatusBase: """Kickoff the Nidaq""" status = self.kickoff_call.set(1) + self.cancel_on_stop(status) return status def on_unstage(self) -> DeviceStatus | StatusBase | None: