From db321106ee2281df6bcc2a6f8623253142b223f3 Mon Sep 17 00:00:00 2001 From: appel_c Date: Fri, 19 Jun 2026 15:55:03 +0200 Subject: [PATCH] add wait for acquiring compare status in on_complete of mcs card --- csaxs_bec/devices/epics/mcs_card/mcs_card_csaxs.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/csaxs_bec/devices/epics/mcs_card/mcs_card_csaxs.py b/csaxs_bec/devices/epics/mcs_card/mcs_card_csaxs.py index fd83bda..85c0dcd 100644 --- a/csaxs_bec/devices/epics/mcs_card/mcs_card_csaxs.py +++ b/csaxs_bec/devices/epics/mcs_card/mcs_card_csaxs.py @@ -297,7 +297,7 @@ class MCSCardCSAXS(PSIDeviceBase, MCSCard): # Once we have received all channels, push data to BEC and reset for next accumulation if len(self._current_data) == self.NUM_MCA_CHANNELS: - logger.debug( + logger.info( f"Current data index {self._current_data_index} complete, pushing to BEC." ) self.mca.put(self._current_data, acquisition_group=self._acquisition_group) @@ -459,6 +459,9 @@ class MCSCardCSAXS(PSIDeviceBase, MCSCard): and self.scan_parameters.num_points is not None ): if self.scan_parameters.scan_type == "software_triggered": + logger.info( + f"Software triggered scan: {self._current_data_index}/{self.scan_parameters.num_points} points received." + ) if self._current_data_index == self.scan_parameters.num_points: for callback in self._scan_done_callbacks: callback(exception=None) @@ -552,11 +555,13 @@ class MCSCardCSAXS(PSIDeviceBase, MCSCard): # Add CompareStatus for Acquiring DONE status = CompareStatus(self.acquiring, ACQUIRING.DONE) + status.wait(timeout=3) # Combine both statuses ret_status = status & status_async_data # NOTE: Handle external stop/cancel, and stop monitoring ret_status.add_callback(self._status_failed_callback) + ret_status.wait(timeout=3) self.cancel_on_stop(ret_status) return ret_status