diff --git a/phoenix_bec/devices/phoenix_trigger.py b/phoenix_bec/devices/phoenix_trigger.py index 8d1ea1d..2d6426c 100644 --- a/phoenix_bec/devices/phoenix_trigger.py +++ b/phoenix_bec/devices/phoenix_trigger.py @@ -7,6 +7,7 @@ from ophyd import ( ) from ophyd import Component as Cpt +from ophyd import FormattedComponent as FCpt from ophyd import Device, EpicsSignal, EpicsSignalRO from ophyd_devices.interfaces.base_classes.psi_detector_base import PSIDetectorBase, CustomDetectorMixin @@ -54,6 +55,9 @@ class PhoenixTriggerSetup(CustomDetectorMixin): done = self.parent.smpl_done.get() return done + def on_done_cpt(self): + done = self.parent.smpl_done_cpt.get() + return done def on_dwell(self,t): " calculate cycles from time in sec " @@ -66,14 +70,29 @@ class PhoenixTriggerSetup(CustomDetectorMixin): time.sleep(0.05) cycles=self.parent.total_cycles.get() time.sleep(0.05) - cycles=self.parent.total_cycles.put(0) + self.parent.total_cycles.put(0) time.sleep(0.05) - cycles=self.parent.smpl.put(1) + self.parent.smpl.put(1) time.sleep(0.5) + print(cycles) cycles=self.parent.total_cycles.put(cycles) logger.success('PhoenixTrigger on stage') + def on_unstage(self): + # is this called on each point in scan or just before scan ??? + print('on unstage') + #while self.parent.smpl_done.get() + self.parent.total_cycles.put(5) + time.sleep(0.3) + self.parent.start_csmpl.put(1) + time.sleep(0.3) + self.parent.smpl.put(1) + time.sleep(2) + + self.parent.smpl.put(1) + time.sleep(.5) + logger.success('PhoenixTrigger.on_unstage') @@ -196,7 +215,9 @@ class PhoenixTrigger(PSIDetectorBase): ,"a_cont_sample_on" ,"a_cont_sample_off" ,"prefix" - ,"a_done"] + ,"a_done" + ,"a_done_cpt" + ,"SMPL"] ##################################################################### # specify Setup class into variable custom_prepare_cls @@ -222,9 +243,15 @@ class PhoenixTrigger(PSIDetectorBase): intr_count = Cpt(EpicsSignal,'INTR-COUNT') # conter run up total_cycles = Cpt(EpicsSignal,'TOTAL-CYCLES') # cycles set smpl = Cpt(EpicsSignal,'SMPL') # start sampling --> aquire - smpl_done = Cpt(EpicsSignal,'SMPL-DONE') # show trigger is done + # Done field is of type bi + smpl_done_cpt = Cpt(EpicsSignal,'SMPL-DONE') # show trigger is done + smpl_done = EpicsSignal(name='SMPL-DONE',read_pv='X07MB-OP2:SMPL') + def SMPL(): + s= EpicsSignal(name='SMPL-DONE',read_pv='X07MB-OP2:SMPL') + return s + # link to reasonable names # start with a_ to see functions quicklz in listing # @@ -242,5 +269,9 @@ class PhoenixTrigger(PSIDetectorBase): done=self.custom_prepare.on_done() return done + def a_done_cpt(self): + done=self.custom_prepare.on_done_cpt() + return done + def a_dwell(self): self.custom_prepare.on_dwell() \ No newline at end of file