From f3b9e914cdcb562a2a773c9ac0244629cd636afe Mon Sep 17 00:00:00 2001 From: appel_c Date: Thu, 16 Jul 2026 10:01:17 +0200 Subject: [PATCH] fix(nidaq): fix on_kickoff call not using set --- debye_bec/devices/nidaq/nidaq.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/debye_bec/devices/nidaq/nidaq.py b/debye_bec/devices/nidaq/nidaq.py index b7882a1..3b256a7 100644 --- a/debye_bec/devices/nidaq/nidaq.py +++ b/debye_bec/devices/nidaq/nidaq.py @@ -5,9 +5,9 @@ from typing import TYPE_CHECKING, Literal from bec_lib.logger import bec_logger from bec_server.scan_server.scans.scan_base import ScanInfo as ScanServerScanInfo from ophyd import Component as Cpt -from ophyd import Device, DeviceStatus, EpicsSignal, EpicsSignalRO, Kind, StatusBase +from ophyd import Device, DeviceStatus, EpicsSignal, EpicsSignalRO, Kind from ophyd.status import WaitTimeoutError -from ophyd_devices import CompareStatus, ProgressSignal, TransitionStatus +from ophyd_devices import CompareStatus, ProgressSignal, StatusBase, TransitionStatus from ophyd_devices.interfaces.base_classes.psi_device_base import PSIDeviceBase from ophyd_devices.sim.sim_signals import SetableSignal @@ -432,13 +432,18 @@ class Nidaq(PSIDeviceBase, NidaqControl): status.wait(timeout=self.timeout_wait_for_signal) if self.scan_parameters.scan_name != "nidaq_continuous_scan": status = self.on_kickoff() - self.cancel_on_stop(status) - status.wait(timeout=self._timeout_wait_for_pv) + status.wait() logger.info(f"Device {self.name} was staged: {NidaqState(self.state.get())}") def on_kickoff(self) -> DeviceStatus | StatusBase: """Kickoff the Nidaq""" - status = self.kickoff_call.set(1) + status = CompareStatus( + self.state, + NidaqState.KICKOFF.value, + timeout=self._timeout_wait_for_pv, + description="Waiting for NIDAQ to enter KICKOFF state", + ) + self.kickoff_call.put(1) self.cancel_on_stop(status) return status -- 2.54.0