From ac8177a132cf818564bf2d367d3388b4b5cc5704 Mon Sep 17 00:00:00 2001 From: appel_c Date: Tue, 25 Nov 2025 14:04:55 +0100 Subject: [PATCH] fix(controller): add controller.on to wait_for_connection for devices with socket controllers --- csaxs_bec/devices/omny/galil/fgalil_ophyd.py | 4 ++++ csaxs_bec/devices/omny/galil/fupr_ophyd.py | 4 ++++ csaxs_bec/devices/omny/galil/lgalil_ophyd.py | 4 ++++ csaxs_bec/devices/omny/galil/ogalil_ophyd.py | 8 ++++++-- csaxs_bec/devices/omny/galil/sgalil_ophyd.py | 8 ++++++-- csaxs_bec/devices/omny/rt/rt_flomni_ophyd.py | 4 ++++ csaxs_bec/devices/omny/rt/rt_lamni_ophyd.py | 4 ++++ csaxs_bec/devices/omny/rt/rt_omny_ophyd.py | 4 ++++ 8 files changed, 36 insertions(+), 4 deletions(-) diff --git a/csaxs_bec/devices/omny/galil/fgalil_ophyd.py b/csaxs_bec/devices/omny/galil/fgalil_ophyd.py index 5faaffc..5790f76 100644 --- a/csaxs_bec/devices/omny/galil/fgalil_ophyd.py +++ b/csaxs_bec/devices/omny/galil/fgalil_ophyd.py @@ -212,6 +212,10 @@ class FlomniGalilMotor(Device, PositionerBase): self.low_limit_travel.put(limits[0]) self.high_limit_travel.put(limits[1]) + def wait_for_connection(self, timeout: int = 10, **kwargs) -> None: + """Wait for the device to be connected.""" + self.controller.on(timeout=timeout) + @property def limits(self): return (self.low_limit_travel.get(), self.high_limit_travel.get()) diff --git a/csaxs_bec/devices/omny/galil/fupr_ophyd.py b/csaxs_bec/devices/omny/galil/fupr_ophyd.py index d673537..dd257d5 100644 --- a/csaxs_bec/devices/omny/galil/fupr_ophyd.py +++ b/csaxs_bec/devices/omny/galil/fupr_ophyd.py @@ -185,6 +185,10 @@ class FuprGalilMotor(Device, PositionerBase): self.low_limit_travel.put(limits[0]) self.high_limit_travel.put(limits[1]) + def wait_for_connection(self, timeout: int = 10, **kwargs) -> None: + """Wait for the device to be connected.""" + self.controller.on(timeout=timeout) + @property def limits(self): return (self.low_limit_travel.get(), self.high_limit_travel.get()) diff --git a/csaxs_bec/devices/omny/galil/lgalil_ophyd.py b/csaxs_bec/devices/omny/galil/lgalil_ophyd.py index d560bca..f87a912 100644 --- a/csaxs_bec/devices/omny/galil/lgalil_ophyd.py +++ b/csaxs_bec/devices/omny/galil/lgalil_ophyd.py @@ -170,6 +170,10 @@ class LamniGalilMotor(Device, PositionerBase): self.low_limit_travel.put(limits[0]) self.high_limit_travel.put(limits[1]) + def wait_for_connection(self, timeout: int = 10, **kwargs) -> None: + """Wait for the device to be connected.""" + self.controller.on(timeout=timeout) + @property def limits(self): return (self.low_limit_travel.get(), self.high_limit_travel.get()) diff --git a/csaxs_bec/devices/omny/galil/ogalil_ophyd.py b/csaxs_bec/devices/omny/galil/ogalil_ophyd.py index 9f31cf9..2dcd72e 100644 --- a/csaxs_bec/devices/omny/galil/ogalil_ophyd.py +++ b/csaxs_bec/devices/omny/galil/ogalil_ophyd.py @@ -144,11 +144,11 @@ class OMNYGalilController(GalilController): FAIL = "\033[91m" ENDC = "\033[0m" - def on(self) -> None: + def on(self, timeout: int = 10) -> None: """Open a new socket connection to the controller""" self._ogalil_switchsocket_switch_all_on() time.sleep(0.3) - super().on() + super().on(timeout=timeout) def _ogalil_switchsocket(self, number: int, switch: bool): # number is socket number ranging from 1 to 4 @@ -324,6 +324,10 @@ class OMNYGalilMotor(Device, PositionerBase): self.low_limit_travel.put(limits[0]) self.high_limit_travel.put(limits[1]) + def wait_for_connection(self, timeout: int = 10, **kwargs) -> None: + """Wait for the device to be connected.""" + self.controller.on(timeout=timeout) + @property def limits(self): return (self.low_limit_travel.get(), self.high_limit_travel.get()) diff --git a/csaxs_bec/devices/omny/galil/sgalil_ophyd.py b/csaxs_bec/devices/omny/galil/sgalil_ophyd.py index 4493bd7..76af34e 100644 --- a/csaxs_bec/devices/omny/galil/sgalil_ophyd.py +++ b/csaxs_bec/devices/omny/galil/sgalil_ophyd.py @@ -54,10 +54,10 @@ class GalilController(Controller): ] _axes_per_controller = 8 - def on(self, controller_num=0) -> None: + def on(self, timeout: int = 10) -> None: """Open a new socket connection to the controller""" if not self.connected: - self.sock.open() + self.sock.open(timeout=timeout) self.connected = True else: logger.info("The connection has already been established.") @@ -530,6 +530,10 @@ class SGalilMotor(Device, PositionerBase): self.low_limit_travel.put(limits[0]) self.high_limit_travel.put(limits[1]) + def wait_for_connection(self, timeout: int = 10, **kwargs) -> None: + """Wait for the device to be connected.""" + self.controller.on(timeout=timeout) + @property def limits(self): return (self.low_limit_travel.get(), self.high_limit_travel.get()) diff --git a/csaxs_bec/devices/omny/rt/rt_flomni_ophyd.py b/csaxs_bec/devices/omny/rt/rt_flomni_ophyd.py index 5d4eecb..a689eb9 100644 --- a/csaxs_bec/devices/omny/rt/rt_flomni_ophyd.py +++ b/csaxs_bec/devices/omny/rt/rt_flomni_ophyd.py @@ -688,6 +688,10 @@ class RtFlomniMotor(Device, PositionerBase): self.low_limit_travel.put(limits[0]) self.high_limit_travel.put(limits[1]) + def wait_for_connection(self, timeout: int = 10, **kwargs) -> None: + """Wait for the device to be connected.""" + self.controller.on(timeout=timeout) + @property def limits(self): return (self.low_limit_travel.get(), self.high_limit_travel.get()) diff --git a/csaxs_bec/devices/omny/rt/rt_lamni_ophyd.py b/csaxs_bec/devices/omny/rt/rt_lamni_ophyd.py index 39946de..026e4c2 100644 --- a/csaxs_bec/devices/omny/rt/rt_lamni_ophyd.py +++ b/csaxs_bec/devices/omny/rt/rt_lamni_ophyd.py @@ -588,6 +588,10 @@ class RtLamniMotor(Device, PositionerBase): self.low_limit_travel.put(limits[0]) self.high_limit_travel.put(limits[1]) + def wait_for_connection(self, timeout: int = 10, **kwargs) -> None: + """Wait for the device to be connected.""" + self.controller.on(timeout=timeout) + @property def limits(self): return (self.low_limit_travel.get(), self.high_limit_travel.get()) diff --git a/csaxs_bec/devices/omny/rt/rt_omny_ophyd.py b/csaxs_bec/devices/omny/rt/rt_omny_ophyd.py index 06cb0f8..ade0094 100644 --- a/csaxs_bec/devices/omny/rt/rt_omny_ophyd.py +++ b/csaxs_bec/devices/omny/rt/rt_omny_ophyd.py @@ -1129,6 +1129,10 @@ class RtOMNYMotor(Device, PositionerBase): self.low_limit_travel.put(limits[0]) self.high_limit_travel.put(limits[1]) + def wait_for_connection(self, timeout: int = 10, **kwargs) -> None: + """Wait for the device to be connected.""" + self.controller.on(timeout=timeout) + @property def limits(self): return (self.low_limit_travel.get(), self.high_limit_travel.get())