next version phoenix trigger

This commit is contained in:
gac-x07mb
2024-08-23 15:38:17 +02:00
parent 9f34dc3b22
commit 69097bc9aa

View File

@ -7,6 +7,7 @@ from ophyd import (
) )
from ophyd import Component as Cpt from ophyd import Component as Cpt
from ophyd import FormattedComponent as FCpt
from ophyd import Device, EpicsSignal, EpicsSignalRO from ophyd import Device, EpicsSignal, EpicsSignalRO
from ophyd_devices.interfaces.base_classes.psi_detector_base import PSIDetectorBase, CustomDetectorMixin 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() done = self.parent.smpl_done.get()
return done return done
def on_done_cpt(self):
done = self.parent.smpl_done_cpt.get()
return done
def on_dwell(self,t): def on_dwell(self,t):
" calculate cycles from time in sec " " calculate cycles from time in sec "
@ -66,14 +70,29 @@ class PhoenixTriggerSetup(CustomDetectorMixin):
time.sleep(0.05) time.sleep(0.05)
cycles=self.parent.total_cycles.get() cycles=self.parent.total_cycles.get()
time.sleep(0.05) time.sleep(0.05)
cycles=self.parent.total_cycles.put(0) self.parent.total_cycles.put(0)
time.sleep(0.05) time.sleep(0.05)
cycles=self.parent.smpl.put(1) self.parent.smpl.put(1)
time.sleep(0.5) time.sleep(0.5)
print(cycles)
cycles=self.parent.total_cycles.put(cycles) cycles=self.parent.total_cycles.put(cycles)
logger.success('PhoenixTrigger on stage') 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_on"
,"a_cont_sample_off" ,"a_cont_sample_off"
,"prefix" ,"prefix"
,"a_done"] ,"a_done"
,"a_done_cpt"
,"SMPL"]
##################################################################### #####################################################################
# specify Setup class into variable custom_prepare_cls # specify Setup class into variable custom_prepare_cls
@ -222,9 +243,15 @@ class PhoenixTrigger(PSIDetectorBase):
intr_count = Cpt(EpicsSignal,'INTR-COUNT') # conter run up intr_count = Cpt(EpicsSignal,'INTR-COUNT') # conter run up
total_cycles = Cpt(EpicsSignal,'TOTAL-CYCLES') # cycles set total_cycles = Cpt(EpicsSignal,'TOTAL-CYCLES') # cycles set
smpl = Cpt(EpicsSignal,'SMPL') # start sampling --> aquire 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 # link to reasonable names
# start with a_ to see functions quicklz in listing # start with a_ to see functions quicklz in listing
# #
@ -242,5 +269,9 @@ class PhoenixTrigger(PSIDetectorBase):
done=self.custom_prepare.on_done() done=self.custom_prepare.on_done()
return done return done
def a_done_cpt(self):
done=self.custom_prepare.on_done_cpt()
return done
def a_dwell(self): def a_dwell(self):
self.custom_prepare.on_dwell() self.custom_prepare.on_dwell()