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 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()