diff --git a/superxas_bec/devices/trigger.py b/superxas_bec/devices/trigger.py index 21e7c06..29aede6 100644 --- a/superxas_bec/devices/trigger.py +++ b/superxas_bec/devices/trigger.py @@ -1,16 +1,16 @@ """SuperXAS Trigger Device""" -from bec_lib.logger import bec_logger -from ophyd import Component as Cpt -from ophyd import Device, DeviceStatus, EpicsSignal, EpicsSignalRO, Kind, StatusBase - -logger = bec_logger.logger - import enum from bec_lib.devicemanager import ScanInfo +from bec_lib.logger import bec_logger +from ophyd import Component as Cpt +from ophyd import Device, DeviceStatus, EpicsSignal, EpicsSignalRO, Kind, StatusBase +from ophyd_devices import TransitionStatus from ophyd_devices.interfaces.base_classes.psi_device_base import PSIDeviceBase +logger = bec_logger.logger + class ContinuousSamplingMode(int, enum.Enum): """Options for start_csmpl signal""" @@ -107,20 +107,10 @@ class Trigger(PSIDeviceBase, TriggerControl): status = falcon._stop_erase_and_wait_for_acquiring() status.wait() - started = False - - def _sampling_done(): - nonlocal started - if not started and self.smpl_done.get() == SamplingDone.RUNNING: - started = True - return False - if started and self.smpl_done.get() == SamplingDone.DONE: - return True - - return self.smpl_done.get() == SamplingDone.DONE - + status = TransitionStatus( + self.smpl_done, transitions=[SamplingDone.DONE, SamplingDone.RUNNING, SamplingDone.DONE] + ) self.smpl.put(1) - status = self.task_handler.submit_task(_sampling_done, run=True) return status def on_complete(self) -> DeviceStatus | StatusBase | None: