diff --git a/csaxs_bec/devices/omny/galil/galil_ophyd.py b/csaxs_bec/devices/omny/galil/galil_ophyd.py index f05325e..d6fcda9 100644 --- a/csaxs_bec/devices/omny/galil/galil_ophyd.py +++ b/csaxs_bec/devices/omny/galil/galil_ophyd.py @@ -381,7 +381,10 @@ class GalilReadbackSignal(GalilSignalRO): class GalilSetpointSignal(GalilSignalBase): - setpoint = 0 + + def __init__(self, signal_name, **kwargs): + super().__init__(signal_name, **kwargs) + self.setpoint = 0.0 def _socket_get(self) -> float: """Get command for receiving the setpoint / target value. diff --git a/csaxs_bec/devices/omny/galil/lgalil_ophyd.py b/csaxs_bec/devices/omny/galil/lgalil_ophyd.py index b17d429..bff1cd6 100644 --- a/csaxs_bec/devices/omny/galil/lgalil_ophyd.py +++ b/csaxs_bec/devices/omny/galil/lgalil_ophyd.py @@ -262,6 +262,14 @@ class LamniGalilMotor(Device, PositionerBase): def wait_for_connection(self, timeout: float = 30.0) -> bool: self.controller.on(timeout=timeout) + self._update_setpoint_from_readback() + + def _update_setpoint_from_readback(self): + """ + The setpoint is only stored locally. After a restart, + we need to update it to match the current readback value. + """ + self.user_setpoint.setpoint = self.readback.get() def destroy(self): """Make sure to turn off the controller socket on destroy.""" diff --git a/csaxs_bec/devices/omny/galil/ogalil_ophyd.py b/csaxs_bec/devices/omny/galil/ogalil_ophyd.py index ca55b9d..a7086ab 100644 --- a/csaxs_bec/devices/omny/galil/ogalil_ophyd.py +++ b/csaxs_bec/devices/omny/galil/ogalil_ophyd.py @@ -326,6 +326,14 @@ class OMNYGalilMotor(Device, PositionerBase): def wait_for_connection(self, timeout: float = 30.0) -> bool: self.controller.on(timeout=timeout) + self._update_setpoint_from_readback() + + def _update_setpoint_from_readback(self): + """ + The setpoint is only stored locally. After a restart, + we need to update it to match the current readback value. + """ + self.user_setpoint.setpoint = self.readback.get() def destroy(self): """Make sure to turn off the controller socket on destroy.""" diff --git a/csaxs_bec/devices/omny/galil/sgalil_ophyd.py b/csaxs_bec/devices/omny/galil/sgalil_ophyd.py index c787aaf..16b1c93 100644 --- a/csaxs_bec/devices/omny/galil/sgalil_ophyd.py +++ b/csaxs_bec/devices/omny/galil/sgalil_ophyd.py @@ -388,7 +388,10 @@ class GalilReadbackSignal(GalilSignalRO): class GalilSetpointSignal(GalilSignalBase): - setpoint = 0 + + def __init__(self, signal_name, **kwargs): + super().__init__(signal_name, **kwargs) + self.setpoint = 0.0 def _socket_get(self) -> float: """Get command for receiving the setpoint / target value. @@ -532,6 +535,14 @@ class SGalilMotor(Device, PositionerBase): def wait_for_connection(self, timeout: float = 30.0) -> bool: self.controller.on(timeout=timeout) + self._update_setpoint_from_readback() + + def _update_setpoint_from_readback(self): + """ + The setpoint is only stored locally. After a restart, + we need to update it to match the current readback value. + """ + self.user_setpoint.setpoint = self.readback.get() def destroy(self): """Make sure to turn off the controller socket on destroy.""" diff --git a/csaxs_bec/devices/omny/rt/rt_flomni_ophyd.py b/csaxs_bec/devices/omny/rt/rt_flomni_ophyd.py index def31da..f5a3e57 100644 --- a/csaxs_bec/devices/omny/rt/rt_flomni_ophyd.py +++ b/csaxs_bec/devices/omny/rt/rt_flomni_ophyd.py @@ -490,7 +490,6 @@ class RtFlomniReadbackSignal(RtReadbackSignal): class RtFlomniSetpointSignal(RtSetpointSignal): - setpoint = 0 @retry_once @threadlocked @@ -605,6 +604,14 @@ class RtFlomniMotor(Device, PositionerBase): def wait_for_connection(self, timeout: float = 30.0) -> bool: self.controller.on(timeout=timeout) + self._update_setpoint_from_readback() + + def _update_setpoint_from_readback(self): + """ + The setpoint is only stored locally. After a restart, + we need to update it to match the current readback value. + """ + self.user_setpoint.setpoint = self.readback.get() def destroy(self): """Make sure to turn off the controller socket on destroy.""" diff --git a/csaxs_bec/devices/omny/rt/rt_lamni_ophyd.py b/csaxs_bec/devices/omny/rt/rt_lamni_ophyd.py index 3e3df3c..c4d22f2 100644 --- a/csaxs_bec/devices/omny/rt/rt_lamni_ophyd.py +++ b/csaxs_bec/devices/omny/rt/rt_lamni_ophyd.py @@ -554,7 +554,10 @@ class RtLamniReadbackSignal(RtLamniSignalRO): class RtLamniSetpointSignal(RtLamniSignalBase): - setpoint = 0 + + def __init__(self, signal_name, **kwargs): + super().__init__(signal_name, **kwargs) + self.setpoint = 0.0 def _socket_get(self) -> float: """Get command for receiving the setpoint / target value. @@ -676,6 +679,14 @@ class RtLamniMotor(Device, PositionerBase): def wait_for_connection(self, timeout: float = 30.0) -> bool: self.controller.on(timeout=timeout) + self._update_setpoint_from_readback() + + def _update_setpoint_from_readback(self): + """ + The setpoint is only stored locally. After a restart, + we need to update it to match the current readback value. + """ + self.user_setpoint.setpoint = self.readback.get() def destroy(self): """Make sure to turn off the controller socket on destroy.""" diff --git a/csaxs_bec/devices/omny/rt/rt_omny_ophyd.py b/csaxs_bec/devices/omny/rt/rt_omny_ophyd.py index 13a5fa2..98052fa 100644 --- a/csaxs_bec/devices/omny/rt/rt_omny_ophyd.py +++ b/csaxs_bec/devices/omny/rt/rt_omny_ophyd.py @@ -1020,7 +1020,6 @@ class RtOMNYReadbackSignal(RtReadbackSignal): class RtOMNYSetpointSignal(RtSetpointSignal): - setpoint = 0 @retry_once @threadlocked @@ -1121,6 +1120,14 @@ class RtOMNYMotor(Device, PositionerBase): def wait_for_connection(self, timeout: float = 30.0) -> bool: self.controller.on(timeout=timeout) + self._update_setpoint_from_readback() + + def _update_setpoint_from_readback(self): + """ + The setpoint is only stored locally. After a restart, + we need to update it to match the current readback value. + """ + self.user_setpoint.setpoint = self.readback.get() def destroy(self): """Make sure to turn off the controller socket on destroy.""" diff --git a/csaxs_bec/devices/omny/rt/rt_ophyd.py b/csaxs_bec/devices/omny/rt/rt_ophyd.py index d61d3bd..1948b08 100644 --- a/csaxs_bec/devices/omny/rt/rt_ophyd.py +++ b/csaxs_bec/devices/omny/rt/rt_ophyd.py @@ -81,7 +81,10 @@ class RtReadbackSignal(RtSignalRO): class RtSetpointSignal(RtSignalBase): - setpoint = 0 + + def __init__(self, signal_name, **kwargs): + super().__init__(signal_name, **kwargs) + self.setpoint = 0.0 def _socket_get(self) -> float: """Get command for receiving the setpoint / target value.