From 5d4be26a1e4fd3471521c5aa8a0b18aebe3e42e9 Mon Sep 17 00:00:00 2001 From: appel_c Date: Mon, 26 Jan 2026 12:31:27 +0100 Subject: [PATCH] w --- csaxs_bec/devices/jungfraujoch/eiger.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/csaxs_bec/devices/jungfraujoch/eiger.py b/csaxs_bec/devices/jungfraujoch/eiger.py index 09bb20c..528759b 100644 --- a/csaxs_bec/devices/jungfraujoch/eiger.py +++ b/csaxs_bec/devices/jungfraujoch/eiger.py @@ -173,7 +173,7 @@ class Eiger(PSIDeviceBase): # Get available detectors available_detectors = self.jfj_client.api.config_select_detector_get(_request_timeout=5) - logger.info(f"Available detectors {available_detectors}") + logger.debug(f"Available detectors {available_detectors}") # Get current detector current_detector_name = "" if available_detectors.current_id is not None: @@ -191,6 +191,7 @@ class Eiger(PSIDeviceBase): raise RuntimeError( f"Detector {self.detector_name} is not in IDLE state, current state: {self.jfj_client.detector_state}. Please initialize the detector in the WEB UI: {self._host}." ) + # TODO - check again once Eiger should be initialized automatically, currently human initialization is expected # # Once the automation should be enabled, we may use here # detector_selection = [ @@ -265,12 +266,13 @@ class Eiger(PSIDeviceBase): detector_distance_mm=self.detector_distance, incident_energy_ke_v=incident_energy, ) - logger.info(f"Setting data_settings: {yaml.dump(data_settings.to_dict(), indent=4)}") + logger.debug(f"Setting data_settings: {yaml.dump(data_settings.to_dict(), indent=4)}") prep_time = start_time - time.time() - logger.debug(f"Prepared information for eiger to start acquisition in {prep_time:.2f}s") self.jfj_client.wait_for_idle(timeout=10, request_timeout=10) # Ensure we are in IDLE state self.jfj_client.start(settings=data_settings) # Takes around ~0.6s - logger.debug(f"Wait for IDLE and start call took {time.time()-start_time-prep_time:.2f}s") + logger.info( + f"On stage done for device {self.name} after {time.time()-start_time:.2f}s, with {time.time()-prep_time:.2f}s spent with communication to JungfrauJoch." + ) def on_unstage(self) -> DeviceStatus: """Called while unstaging the device.""" @@ -283,7 +285,9 @@ class Eiger(PSIDeviceBase): def _file_event_callback(self, status: DeviceStatus) -> None: """Callback to update the file_event signal when the acquisition is done.""" - logger.info(f"Acquisition done callback called for {self.name} for status {status.success}") + logger.debug( + f"Acquisition done callback called for {self.name} for status {status.success}" + ) self.file_event.put( file_path=self._full_path, done=status.done, @@ -297,15 +301,17 @@ class Eiger(PSIDeviceBase): def wait_for_complete(): start_time = time.time() timeout = 20 - for ii in range(timeout): - logger.info(f"Running loop with timeout {time.time() - start_time}.") + for _ in range(timeout): if self.jfj_client.wait_for_idle(timeout=1, request_timeout=10): return + logger.info( + f"Device {self.name} running loop to wait for complete, time elapsed: {time.time() - start_time}." + ) statistics: MeasurementStatistics = self.jfj_client.api.statistics_data_collection_get( _request_timeout=5 ) raise TimeoutError( - f"Timeout after waiting for detector {self.name} to complete for {time.time()-start_time:.2f}s, measurement statistics: {yaml.dump(statistics.to_dict(), indent=4)}" + f"Timeout after waiting for device {self.name} to complete for {time.time()-start_time:.2f}s, measurement statistics: {yaml.dump(statistics.to_dict(), indent=4)}" ) status = self.task_handler.submit_task(wait_for_complete, run=True)