From a6754208a0991f8ccf546cbb2bee015f6daecb93 Mon Sep 17 00:00:00 2001 From: appel_c Date: Thu, 5 Sep 2024 10:19:20 +0200 Subject: [PATCH] fix: change inheritance for simmonitor from device to signal --- ophyd_devices/sim/sim_monitor.py | 10 ++++------ ophyd_devices/sim/sim_signals.py | 6 ++++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ophyd_devices/sim/sim_monitor.py b/ophyd_devices/sim/sim_monitor.py index 60aa7da..09c85b4 100644 --- a/ophyd_devices/sim/sim_monitor.py +++ b/ophyd_devices/sim/sim_monitor.py @@ -46,11 +46,6 @@ class SimMonitor(ReadOnlySignal): sim_cls = SimulatedDataMonitor BIT_DEPTH = np.uint32 - 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, name, @@ -70,14 +65,17 @@ class SimMonitor(ReadOnlySignal): super().__init__( name=name, - parent=self, + parent=parent, kind=kind, value=self.BIT_DEPTH(0), compute_readback=True, + sim=self.sim, **kwargs, ) if self.sim_init: self.sim.set_init(self.sim_init) + # TODO remove after refactoring, ensures backward compatibility with old simulation config of BEC core (pseudo signal) + self.readback = ReadOnlySignal(name=self.name, parent=self, value=self.BIT_DEPTH(0)) @property def registered_proxies(self) -> None: diff --git a/ophyd_devices/sim/sim_signals.py b/ophyd_devices/sim/sim_signals.py index 1de369b..b0773b8 100644 --- a/ophyd_devices/sim/sim_signals.py +++ b/ophyd_devices/sim/sim_signals.py @@ -138,6 +138,7 @@ class ReadOnlySignal(Signal): kind: int = Kind.normal, precision: float = PRECISION, compute_readback: bool = False, + sim=None, **kwargs, ): super().__init__(*args, name=name, parent=parent, value=value, kind=kind, **kwargs) @@ -145,7 +146,7 @@ class ReadOnlySignal(Signal): self._value = value self.precision = precision self.compute_readback = compute_readback - self.sim = getattr(self.parent, "sim", None) + self.sim = sim if sim is not None else getattr(self.parent, "sim", None) if self.sim: self._init_sim_state() self._metadata.update(write_access=False) @@ -227,6 +228,7 @@ class CustomSetableSignal(BECDeviceBase): value: any = 0, kind: int = Kind.normal, precision: float = PRECISION, + sim=None, **kwargs, ): if parent: @@ -238,7 +240,7 @@ class CustomSetableSignal(BECDeviceBase): self._dtype = type(value) self._shape = self._get_shape(value) self.precision = precision - self.sim = getattr(self.parent, "sim", None) + self.sim = sim if sim is not None else getattr(self.parent, "sim", None) self._update_sim_state(value) def _get_shape(self, value: any) -> list: