diff --git a/csaxs_bec/scans/flomni_fermat_scan.py b/csaxs_bec/scans/flomni_fermat_scan.py index 0adc88a..099464b 100644 --- a/csaxs_bec/scans/flomni_fermat_scan.py +++ b/csaxs_bec/scans/flomni_fermat_scan.py @@ -24,9 +24,11 @@ import time import numpy as np from bec_lib import bec_logger, messages +from bec_lib.alarm_handler import Alarms from bec_lib.endpoints import MessageEndpoints from bec_server.scan_server.errors import ScanAbortion from bec_server.scan_server.scans import SyncFlyScanBase + from csaxs_bec.devices.epics.delay_generator_csaxs.delay_generator_csaxs import TRIGGERSOURCE logger = bec_logger.logger @@ -52,7 +54,7 @@ class FlomniFermatScan(SyncFlyScanBase): angle: float = None, corridor_size: float = 3, parameter: dict = None, - frames_per_trigger:int=1, + frames_per_trigger: int = 1, **kwargs, ): """ @@ -76,7 +78,9 @@ class FlomniFermatScan(SyncFlyScanBase): >>> scans.flomni_fermat_scan(fovx=20, fovy=25, cenx=0.02, ceny=0, zshift=0, angle=0, step=0.5, exp_time=0.01, frames_per_trigger=1) """ - super().__init__(parameter=parameter, exp_time=exp_time, frames_per_trigger=frames_per_trigger, **kwargs) + super().__init__( + parameter=parameter, exp_time=exp_time, frames_per_trigger=frames_per_trigger, **kwargs + ) self.show_live_table = False self.axis = [] self.fovx = fovx @@ -153,9 +157,11 @@ class FlomniFermatScan(SyncFlyScanBase): yield from self.stubs.send_rpc_and_wait("rty", "set", self.positions[0][1]) def _prepare_setup_part2(self): - # Prepare DDG1 to use - yield from self.stubs.send_rpc_and_wait("ddg1", "set_trigger", TRIGGERSOURCE.EXT_RISING_EDGE.value) - + # Prepare DDG1 to use + yield from self.stubs.send_rpc_and_wait( + "ddg1", "set_trigger", TRIGGERSOURCE.EXT_RISING_EDGE.value + ) + if self.flomni_rotation_status: self.flomni_rotation_status.wait() @@ -174,15 +180,15 @@ class FlomniFermatScan(SyncFlyScanBase): tracker_signal_status = yield from self.stubs.send_rpc_and_wait( "rtx", "controller.laser_tracker_check_signalstrength" ) - #self.device_manager.connector.send_client_info(tracker_signal_status) + # self.device_manager.connector.send_client_info(tracker_signal_status) if tracker_signal_status == "low": - self.device_manager.connector.raise_alarm( - severity=0, - alarm_type="LaserTrackerSignalStrength", - source={"device": "rtx", "reason": "low signal strength", "method": "_prepare_setup_part2"}, - metadata={}, - msg="Signal strength of the laser tracker is low, sufficient to continue. Realignment recommended!", + error_info = messages.ErrorInfo( + error_message="Signal strength of the laser tracker is low, but sufficient to continue. Realignment recommended!", + compact_error_message="Low signal strength of the laser tracker. Realignment recommended!", + exception_type="LaserTrackerSignalStrengthLow", + device="rtx", ) + self.device_manager.connector.raise_alarm(severity=Alarms.WARNING, info=error_info) elif tracker_signal_status == "toolow": raise ScanAbortion( "Signal strength of the laser tracker is too low for scanning. Realignment required!" @@ -313,7 +319,9 @@ class FlomniFermatScan(SyncFlyScanBase): logger.warning("No positions found to return to start") def cleanup(self): - yield from self.stubs.send_rpc_and_wait("ddg1", "set_trigger", TRIGGERSOURCE.SINGLE_SHOT.value) + yield from self.stubs.send_rpc_and_wait( + "ddg1", "set_trigger", TRIGGERSOURCE.SINGLE_SHOT.value + ) yield from super().cleanup() def run(self):