add SUB_VALUE event to publish intermediate steps
This commit is contained in:
parent
66d18e8ad4
commit
6692e53018
@ -61,6 +61,7 @@ class PGMOtFScan(FlyerInterface, Device):
|
|||||||
"""
|
"""
|
||||||
PGM on-the-fly scan
|
PGM on-the-fly scan
|
||||||
"""
|
"""
|
||||||
|
SUB_VALUE = "value"
|
||||||
|
|
||||||
e1 = Cpt(EpicsSignal, "E1")
|
e1 = Cpt(EpicsSignal, "E1")
|
||||||
e2 = Cpt(EpicsSignal, "E2")
|
e2 = Cpt(EpicsSignal, "E2")
|
||||||
@ -72,6 +73,12 @@ class PGMOtFScan(FlyerInterface, Device):
|
|||||||
data = Cpt(EpicsSignalRO, "DATA", kind=Kind.hinted, auto_monitor=True)
|
data = Cpt(EpicsSignalRO, "DATA", kind=Kind.hinted, auto_monitor=True)
|
||||||
idata = Cpt(EpicsSignalRO, "IDATA", kind=Kind.hinted, auto_monitor=True)
|
idata = Cpt(EpicsSignalRO, "IDATA", kind=Kind.hinted, auto_monitor=True)
|
||||||
fdata = Cpt(EpicsSignalRO, "FDATA", kind=Kind.hinted, auto_monitor=True)
|
fdata = Cpt(EpicsSignalRO, "FDATA", kind=Kind.hinted, auto_monitor=True)
|
||||||
|
count = Cpt(EpicsSignalRO, "COUNT", kind=Kind.omitted, auto_monitor=True)
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
self.acquire.subscribe(self._update_status, run=False)
|
||||||
|
self.count.subscribe(self._update_data, run=False)
|
||||||
|
|
||||||
def kickoff(self):
|
def kickoff(self):
|
||||||
self._start_time = time.time()
|
self._start_time = time.time()
|
||||||
@ -95,8 +102,8 @@ class PGMOtFScan(FlyerInterface, Device):
|
|||||||
}
|
}
|
||||||
for attr in ("edata", "data", "idata", "fdata"):
|
for attr in ("edata", "data", "idata", "fdata"):
|
||||||
obj = getattr(self, attr)
|
obj = getattr(self, attr)
|
||||||
data["data"][attr] = obj.value
|
data["data"][obj.name] = obj.get()
|
||||||
data["timestamps"][attr] = obj.timestamp
|
data["timestamps"][obj.name] = obj.timestamp
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
@ -106,6 +113,17 @@ class PGMOtFScan(FlyerInterface, Device):
|
|||||||
desc.update(getattr(self, attr).describe())
|
desc.update(getattr(self, attr).describe())
|
||||||
return desc
|
return desc
|
||||||
|
|
||||||
|
def _update_status(self, *, old_value, value, **kwargs):
|
||||||
|
if old_value == 1 and value == 0:
|
||||||
|
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)
|
||||||
|
|
||||||
|
|
||||||
class VacuumValve(PVPositionerComparator):
|
class VacuumValve(PVPositionerComparator):
|
||||||
"""
|
"""
|
||||||
EPS vacuum valve.
|
EPS vacuum valve.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user