wip add SUB_CONNECTION_CHANGED subscription
All checks were successful
CI for csaxs_bec / test (pull_request) Successful in 1m15s
CI for csaxs_bec / test (push) Successful in 1m26s

This commit is contained in:
2026-01-22 12:38:15 +01:00
parent 3d5fbfd3ba
commit ba014c989b

View File

@@ -98,6 +98,8 @@ class GalilRIOSignalRO(GalilSignalRO):
class GalilRIO(PSIDeviceBase):
"""Base integration for the Galil RIO card in BEC."""
SUB_CONNECTION_CHANGE = "connection_change"
an_ch1 = Cpt(GalilRIOSignalRO, signal_name="an_ch1", channel=1, doc="Analog input channel 1")
an_ch2 = Cpt(GalilRIOSignalRO, signal_name="an_ch2", channel=2, doc="Analog input channel 2")
an_ch3 = Cpt(GalilRIOSignalRO, signal_name="an_ch3", channel=3, doc="Analog input channel 3")
@@ -123,16 +125,17 @@ class GalilRIO(PSIDeviceBase):
socket_cls=socket_cls, socket_host=host, socket_port=port, device_manager=device_manager
)
super().__init__(name=name, device_manager=device_manager, scan_info=scan_info, **kwargs)
self.controller.subscribe(
self._update_connection_state, event_type=self.SUB_CONNECTION_CHANGE
)
def wait_for_connection(self, timeout: float = 30.0, **kwargs) -> None:
"""Wait for the RIO controller to be connected within timeout period."""
self.controller.on(timeout=timeout)
self._update_connection_state()
def destroy(self) -> None:
"""Make sure to turn off the controller socket on destroy."""
self.controller.off()
self._update_connection_state()
return super().destroy()
def _update_connection_state(self, **kwargs):