From 68320e1944f433cb24f0d53f6100c759b606989e Mon Sep 17 00:00:00 2001 From: x12sa Date: Mon, 16 Mar 2026 17:55:37 +0100 Subject: [PATCH] check tracker signal before rt move, which is otherwise stuck forever. --- csaxs_bec/devices/omny/rt/rt_flomni_ophyd.py | 21 ++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/csaxs_bec/devices/omny/rt/rt_flomni_ophyd.py b/csaxs_bec/devices/omny/rt/rt_flomni_ophyd.py index ad2c638..36f8574 100644 --- a/csaxs_bec/devices/omny/rt/rt_flomni_ophyd.py +++ b/csaxs_bec/devices/omny/rt/rt_flomni_ophyd.py @@ -394,7 +394,7 @@ class RtFlomniController(Controller): val = float(self.socket_put_and_receive(f"j{axis_number}").strip()) return val - def laser_tracker_check_signalstrength(self): + def laser_tracker_check_signalstrength(self, verbose=True): if not self.laser_tracker_check_enabled(): returnval = "disabled" else: @@ -405,9 +405,10 @@ class RtFlomniController(Controller): rtx = self.device_manager.devices.rtx min_signal = rtx.user_parameter.get("min_signal") low_signal = rtx.user_parameter.get("low_signal") - print(f"low signal: {low_signal}") - print(f"min signal: {min_signal}") - print(f"signal: {signal}") + if verbose: + print(f"low signal: {low_signal}") + print(f"min signal: {min_signal}") + print(f"signal: {signal}") if signal < min_signal: time.sleep(1) if signal < min_signal: @@ -621,6 +622,18 @@ class RtFlomniSetpointSignal(RtSetpointSignal): "The interferometer feedback is not running. Either it is turned off or and" " interferometer error occured." ) + + tracker_status = self.parent.controller.laser_tracker_check_signalstrength() + + if tracker_status == "toolow": + print( + "The interferometer signal is too low for movements. Realignment required." + ) + raise RtError( + "The interferometer signal is too low for movements. Realignment required." + ) + + self.set_with_feedback_disabled(val) def set_with_feedback_disabled(self, val):