From f56961ba8c179d4ca75e574fd8565ae4c3f41eed Mon Sep 17 00:00:00 2001 From: appel_c Date: Wed, 4 Sep 2024 16:02:14 +0200 Subject: [PATCH] fix: fix inheritance for SimMonitor --- ophyd_devices/sim/sim_monitor.py | 19 ++++++++++++------- tests/test_simulation.py | 5 ++--- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/ophyd_devices/sim/sim_monitor.py b/ophyd_devices/sim/sim_monitor.py index 3cd30a0..60aa7da 100644 --- a/ophyd_devices/sim/sim_monitor.py +++ b/ophyd_devices/sim/sim_monitor.py @@ -21,7 +21,7 @@ from ophyd_devices.utils.errors import DeviceStopError logger = bec_logger.logger -class SimMonitor(Device): +class SimMonitor(ReadOnlySignal): """ A simulated device mimic any 1D Axis (position, temperature, beam). @@ -46,10 +46,10 @@ class SimMonitor(Device): sim_cls = SimulatedDataMonitor BIT_DEPTH = np.uint32 - readback = Cpt(ReadOnlySignal, value=BIT_DEPTH(0), kind=Kind.hinted, compute_readback=True) - SUB_READBACK = "readback" _default_sub = SUB_READBACK + # TODO: to be removed once changes in BEC are merged + readback = Cpt(ReadOnlySignal, value=BIT_DEPTH(0), kind=Kind.hinted, compute_readback=True) def __init__( self, @@ -58,7 +58,7 @@ class SimMonitor(Device): precision: int = 3, sim_init: dict = None, parent=None, - kind=None, + kind: Kind = None, device_manager=None, **kwargs, ): @@ -68,9 +68,14 @@ class SimMonitor(Device): self.sim = self.sim_cls(parent=self, **kwargs) self._registered_proxies = {} - super().__init__(name=name, parent=parent, kind=kind, **kwargs) - self.sim.sim_state[self.name] = self.sim.sim_state.pop(self.readback.name, None) - self.readback.name = self.name + super().__init__( + name=name, + parent=self, + kind=kind, + value=self.BIT_DEPTH(0), + compute_readback=True, + **kwargs, + ) if self.sim_init: self.sim.set_init(self.sim_init) diff --git a/tests/test_simulation.py b/tests/test_simulation.py index 5d879d5..343ef15 100644 --- a/tests/test_simulation.py +++ b/tests/test_simulation.py @@ -155,8 +155,7 @@ def test_signal__init__(signal): def test_monitor__init__(monitor): """Test the __init__ method of SimMonitor.""" assert isinstance(monitor, SimMonitor) - assert isinstance(monitor, BECDeviceProtocol) - assert isinstance(monitor, BECScanProtocol) + assert isinstance(monitor, BECSignalProtocol) def test_camera__init__(camera): @@ -193,7 +192,7 @@ def test_init_async_monitor(async_monitor): def test_monitor_readback(monitor, center): """Test the readback method of SimMonitor.""" motor_pos = 0 - monitor.device_manager.add_device("samx", value=motor_pos) + monitor.device_manager.add_device(name="samx", value=motor_pos) for model_name in monitor.sim.get_models(): monitor.sim.select_model(model_name) monitor.sim.params["noise_multipler"] = 10