From bf5f981f52f063df687042567b8bc6e40cdb1d85 Mon Sep 17 00:00:00 2001 From: Klaus Wakonig Date: Mon, 20 Mar 2023 17:59:42 +0100 Subject: [PATCH] fix: online bug fixes --- .../epics/db/{x07ma_database.yml => x07ma_database.yaml} | 0 ophyd_devices/epics/devices/X07MADevices.py | 8 +++++++- 2 files changed, 7 insertions(+), 1 deletion(-) rename ophyd_devices/epics/db/{x07ma_database.yml => x07ma_database.yaml} (100%) diff --git a/ophyd_devices/epics/db/x07ma_database.yml b/ophyd_devices/epics/db/x07ma_database.yaml similarity index 100% rename from ophyd_devices/epics/db/x07ma_database.yml rename to ophyd_devices/epics/db/x07ma_database.yaml diff --git a/ophyd_devices/epics/devices/X07MADevices.py b/ophyd_devices/epics/devices/X07MADevices.py index eef9dc9..6765831 100644 --- a/ophyd_devices/epics/devices/X07MADevices.py +++ b/ophyd_devices/epics/devices/X07MADevices.py @@ -63,6 +63,7 @@ class PGMOtFScan(FlyerInterface, Device): """ SUB_VALUE = "value" + SUB_FLYER = "flyer" _default_sub = SUB_VALUE e1 = Cpt(EpicsSignal, "E1", kind=Kind.config) @@ -114,13 +115,18 @@ class PGMOtFScan(FlyerInterface, Device): def _update_status(self, *, old_value, value, **kwargs): if old_value == 1 and value == 0: + self._update_data(100) # make sure that the last entries are also emitted self._done_acquiring() def _update_data(self, value, **kwargs): if value == 0: return data = self.collect() - self._run_subs(sub_type=self.SUB_VALUE, value=data) + + # FIXME: to avoid emitting outdated / stale data, wait until all signals report > 10 entries + if any(len(val)<10 for val in data["data"].values()) or value < 10: + return + self._run_subs(sub_type=self.SUB_FLYER, value=data) class VacuumValve(PVPositionerComparator):