From 3b28d0b59a275de40a548ba55b4bc00cd8463693 Mon Sep 17 00:00:00 2001 From: appel_c Date: Thu, 16 Jul 2026 10:03:37 +0200 Subject: [PATCH] fix(nidaq): fix nidaq kickoff call not using set --- superxas_bec/devices/nidaq/nidaq.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/superxas_bec/devices/nidaq/nidaq.py b/superxas_bec/devices/nidaq/nidaq.py index 9216f7f..e8a3c85 100644 --- a/superxas_bec/devices/nidaq/nidaq.py +++ b/superxas_bec/devices/nidaq/nidaq.py @@ -6,9 +6,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.status import SubscriptionStatus, WaitTimeoutError -from ophyd_devices import CompareStatus, ProgressSignal, TransitionStatus +from ophyd import Device, EpicsSignal, EpicsSignalRO, Kind +from ophyd.status import WaitTimeoutError +from ophyd_devices import CompareStatus, DeviceStatus, ProgressSignal, StatusBase, TransitionStatus from ophyd_devices.interfaces.base_classes.psi_device_base import PSIDeviceBase from ophyd_devices.sim.sim_signals import SetableSignal @@ -669,13 +669,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, + timeout=self.timeout_wait_for_signal, + description="Waiting for NIDAQ to enter KICKOFF state", + ) + self.kickoff_call.put(1) self.cancel_on_stop(status) return status