fix(AcsSignal) force update before subscribing
CI for debye_bec / test (push) Failing after 32s
CI for debye_bec / test (pull_request) Failing after 1m17s

This commit is contained in:
x01da
2026-08-18 09:45:02 +02:00
parent 76d4de1336
commit 6771d338d0
+20 -13
View File
@@ -149,10 +149,22 @@ class AcsSignal(SocketSignal):
self.controller.set_var(self.tag, convert(v), self.prec, i)
def subscribe(self, callback, event_type=None, run=True):
# logger.info(f"subscribe to signal {self.tag} called from: {traceback.format_stack()}")
self._ensure_polling()
cid = super().subscribe(callback, event_type=event_type, run=run)
return cid
if run:
self._force_fresh_read()
return super().subscribe(callback, event_type=event_type, run=run)
def _force_fresh_read(self):
old_value = self._readback
try:
new_value = self._socket_get()
except Exception as e:
logger.warning(f"Fresh read failed for {self.name} during subscribe() with {e}")
return
self._readback = new_value
self._run_subs(
sub_type=self.SUB_VALUE, old_value=old_value, value=new_value, timestamp=time.time()
)
def clear_sub(self, cb, event_type=None):
super().clear_sub(cb, event_type=event_type)
@@ -173,18 +185,13 @@ class AcsSignal(SocketSignal):
old_value = self._readback
try:
new_value = self._socket_get()
except Exception as e:
logger.warning(f"During polling acs signal, got exception {e}")
except Exception:
time.sleep(self._poll_time)
continue
if new_value != old_value:
self._readback = new_value
self._run_subs(
sub_type=self.SUB_VALUE,
old_value=old_value,
value=new_value,
timestamp=time.time(),
)
self._readback = new_value
self._run_subs(
sub_type=self.SUB_VALUE, old_value=old_value, value=new_value, timestamp=time.time()
)
time.sleep(self._poll_time)