fix: change inheritance for simmonitor from device to signal

This commit is contained in:
appel_c 2024-09-05 10:19:20 +02:00
parent f56961ba8c
commit a6754208a0
2 changed files with 8 additions and 8 deletions

View File

@ -46,11 +46,6 @@ class SimMonitor(ReadOnlySignal):
sim_cls = SimulatedDataMonitor sim_cls = SimulatedDataMonitor
BIT_DEPTH = np.uint32 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__( def __init__(
self, self,
name, name,
@ -70,14 +65,17 @@ class SimMonitor(ReadOnlySignal):
super().__init__( super().__init__(
name=name, name=name,
parent=self, parent=parent,
kind=kind, kind=kind,
value=self.BIT_DEPTH(0), value=self.BIT_DEPTH(0),
compute_readback=True, compute_readback=True,
sim=self.sim,
**kwargs, **kwargs,
) )
if self.sim_init: if self.sim_init:
self.sim.set_init(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 @property
def registered_proxies(self) -> None: def registered_proxies(self) -> None:

View File

@ -138,6 +138,7 @@ class ReadOnlySignal(Signal):
kind: int = Kind.normal, kind: int = Kind.normal,
precision: float = PRECISION, precision: float = PRECISION,
compute_readback: bool = False, compute_readback: bool = False,
sim=None,
**kwargs, **kwargs,
): ):
super().__init__(*args, name=name, parent=parent, value=value, kind=kind, **kwargs) super().__init__(*args, name=name, parent=parent, value=value, kind=kind, **kwargs)
@ -145,7 +146,7 @@ class ReadOnlySignal(Signal):
self._value = value self._value = value
self.precision = precision self.precision = precision
self.compute_readback = compute_readback 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: if self.sim:
self._init_sim_state() self._init_sim_state()
self._metadata.update(write_access=False) self._metadata.update(write_access=False)
@ -227,6 +228,7 @@ class CustomSetableSignal(BECDeviceBase):
value: any = 0, value: any = 0,
kind: int = Kind.normal, kind: int = Kind.normal,
precision: float = PRECISION, precision: float = PRECISION,
sim=None,
**kwargs, **kwargs,
): ):
if parent: if parent:
@ -238,7 +240,7 @@ class CustomSetableSignal(BECDeviceBase):
self._dtype = type(value) self._dtype = type(value)
self._shape = self._get_shape(value) self._shape = self._get_shape(value)
self.precision = precision 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) self._update_sim_state(value)
def _get_shape(self, value: any) -> list: def _get_shape(self, value: any) -> list: