This commit is contained in:
@@ -347,30 +347,30 @@ class X07MAAnalogSignals(PSIDeviceBase, Device):
|
||||
SUB_VALUE = "value"
|
||||
_default_sub = SUB_VALUE
|
||||
|
||||
s1 = Cpt(EpicsSignalRO, "SIGNAL0", kind=Kind.hinted)
|
||||
s2 = Cpt(EpicsSignalRO, "SIGNAL1", kind=Kind.hinted)
|
||||
s3 = Cpt(EpicsSignalRO, "SIGNAL2", kind=Kind.hinted)
|
||||
s4 = Cpt(EpicsSignalRO, "SIGNAL3", kind=Kind.hinted)
|
||||
s5 = Cpt(EpicsSignalRO, "SIGNAL4", kind=Kind.hinted)
|
||||
s6 = Cpt(EpicsSignalRO, "SIGNAL5", kind=Kind.hinted)
|
||||
s7 = Cpt(EpicsSignalRO, "SIGNAL6", kind=Kind.hinted)
|
||||
s1 = Cpt(EpicsSignalRO, "SIGNAL0", kind=Kind.hinted, auto_monitor=True)
|
||||
s2 = Cpt(EpicsSignalRO, "SIGNAL1", kind=Kind.hinted, auto_monitor=True)
|
||||
s3 = Cpt(EpicsSignalRO, "SIGNAL2", kind=Kind.hinted, auto_monitor=True)
|
||||
s4 = Cpt(EpicsSignalRO, "SIGNAL3", kind=Kind.hinted, auto_monitor=True)
|
||||
s5 = Cpt(EpicsSignalRO, "SIGNAL4", kind=Kind.hinted, auto_monitor=True)
|
||||
s6 = Cpt(EpicsSignalRO, "SIGNAL5", kind=Kind.hinted, auto_monitor=True)
|
||||
s7 = Cpt(EpicsSignalRO, "SIGNAL6", kind=Kind.hinted, auto_monitor=True)
|
||||
norm_tey = Cpt(NormTEYSignals, name="norm_tey", kind=Kind.hinted)
|
||||
norm_diode = Cpt(NormDIODESignals, name="norm_diode", kind=Kind.hinted)
|
||||
|
||||
def on_connected(self) -> None:
|
||||
self._last_broadcast_ts = 0
|
||||
self._broadcast_rate_limit_s = 0.01 # seconds
|
||||
for signal_name in ("s1", "s2", "s3", "s4", "s5", "s6", "s7"):
|
||||
getattr(self, signal_name).subscribe(self._schedule_broadcast, run=False)
|
||||
# def on_connected(self) -> None:
|
||||
# self._last_broadcast_ts = 0
|
||||
# self._broadcast_rate_limit_s = 0.01 # seconds
|
||||
# for signal_name in ("s1", "s2", "s3", "s4", "s5", "s6", "s7"):
|
||||
# getattr(self, signal_name).subscribe(self._schedule_broadcast, run=False)
|
||||
|
||||
def _schedule_broadcast(self, *args, old_value, value, **kwargs):
|
||||
if np.isclose(old_value, value):
|
||||
return
|
||||
now = time.monotonic()
|
||||
remaining = self._broadcast_rate_limit_s - (now - self._last_broadcast_ts)
|
||||
if remaining <= 0:
|
||||
self._last_broadcast_ts = now
|
||||
self._run_subs(sub_type="readback")
|
||||
# def _schedule_broadcast(self, *args, old_value, value, **kwargs):
|
||||
# if np.isclose(old_value, value):
|
||||
# return
|
||||
# now = time.monotonic()
|
||||
# remaining = self._broadcast_rate_limit_s - (now - self._last_broadcast_ts)
|
||||
# if remaining <= 0:
|
||||
# self._last_broadcast_ts = now
|
||||
# self._run_subs(sub_type="readback")
|
||||
|
||||
# Aliases
|
||||
# tey = s1
|
||||
|
||||
Reference in New Issue
Block a user