From 39142ffc92440916b6c68beb260222f4dd8a0548 Mon Sep 17 00:00:00 2001 From: e21206 Date: Wed, 23 Aug 2023 09:42:22 +0200 Subject: [PATCH] fix: add status update std_daq --- ophyd_devices/epics/devices/eiger9m_csaxs.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/ophyd_devices/epics/devices/eiger9m_csaxs.py b/ophyd_devices/epics/devices/eiger9m_csaxs.py index 3d5f3ed..b633fca 100644 --- a/ophyd_devices/epics/devices/eiger9m_csaxs.py +++ b/ophyd_devices/epics/devices/eiger9m_csaxs.py @@ -111,6 +111,15 @@ class Eiger9mCsaxs(DetectorBase): def _init_standard_daq(self) -> None: self.std_rest_server_url = "http://xbl-daq-29:5000" self.std_client = StdDaqClient(url_base=self.std_rest_server_url) + timeout = 0 + # TODO + while not std_status["state"] == "READY": + time.sleep(0.1) + timeout = timeout + 0.1 + if timeout > 2: + logger.info("Timeout of STD") + + # TODO check status after sleep def _get_current_scan_msg(self) -> BECMessage.ScanStatusMessage: msg = self.device_manager.producer.get(MessageEndpoints.scan_status()) @@ -184,7 +193,16 @@ class Eiger9mCsaxs(DetectorBase): """unstage the detector and file writer""" self.timing_mode = 0 self._close_file_writer() - # TODO file succesfully written? + std_status = self.std_client.get_status() + if ( + not std_status["acquisition"]["message"] == "Completed" + or std_status["acquisition"]["state"] == "FINISHED" + ): + logger.info(std_status) + # TODO add BEC error message + # raise + # TODO check detector stateX12SA-ES-EIGER9M:cam1:DetectorState_RBV + state = True msg = BECMessage.FileMessage(file_path=self.filepath, done=True, successful=state) self.producer.set_and_publish(