From 18f5ce902af5191c19271f0e12aa50e0597b4560 Mon Sep 17 00:00:00 2001 From: x01dc Date: Tue, 3 Nov 2026 15:46:00 +0100 Subject: [PATCH] fix(omny): expose switchbox put_and_receive, report switchbox reply in errors Co-Authored-By: Claude Opus 5.5 --- csaxs_bec/devices/omny/rt/rt_omny_ophyd.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/csaxs_bec/devices/omny/rt/rt_omny_ophyd.py b/csaxs_bec/devices/omny/rt/rt_omny_ophyd.py index 46aa3c17..1249a01d 100644 --- a/csaxs_bec/devices/omny/rt/rt_omny_ophyd.py +++ b/csaxs_bec/devices/omny/rt/rt_omny_ophyd.py @@ -65,6 +65,7 @@ class RtOMNYController(Controller): "laser_tracker_check_enabled", "_omny_interferometer_switch_open_socket", "_omny_interferometer_switch_channel", + "_omny_interferometer_switch_put_and_receive", "_omny_interferometer_switch_LED_on", "_omny_interferometer_switch_alloff", "_omny_interferometer_get_signalsample", @@ -809,7 +810,9 @@ class RtOMNYController(Controller): # if "|C000\r" != self._omny_interferometer_switch_put_and_receive("!002C000\r"): # raise RtOMNY_mirror_switchbox_Error("Channel switching failed.") if "0000" not in rback: - raise RtOMNY_mirror_switchbox_Error("Channel switching failed.") + raise RtOMNY_mirror_switchbox_Error( + f"Channel switching failed. Switchbox replied {rback!r}" + ) def _omny_interferometer_switch_put_and_receive(self, command_str: str) -> str: try: @@ -839,7 +842,9 @@ class RtOMNYController(Controller): alloff = self._omny_interferometer_switch_put_and_receive("?002\r") # check all off if "00" not in alloff: - raise RtOMNY_mirror_switchbox_Error("Not all channels switched off.") + raise RtOMNY_mirror_switchbox_Error( + f"Not all channels switched off. Switchbox replied {alloff!r}" + ) def _rt_start_averaging_SSI(self): self.socket_put("J3")