Script execution
This commit is contained in:
109
script/daq/PumpProbeXES_W1_v3.py
Normal file
109
script/daq/PumpProbeXES_W1_v3.py
Normal file
@@ -0,0 +1,109 @@
|
||||
#Script imported from: XES_W1.xml
|
||||
|
||||
#Pre-actions
|
||||
caput('X10DA-ES1:START-CSMPL', '0')
|
||||
sleep(0.1)
|
||||
caput('X10DA-ES1:TOTAL-CYCLES', '1')
|
||||
sleep(0.1)
|
||||
caput('X10DA-PILATUS-1:cam1:AcquireTime', '1')
|
||||
caput('X10DA-PILATUS-1:cam1:AcquirePeriod', '1.1')
|
||||
caput('X10DA-ES1-MA1:TRX.VAL', '-18')
|
||||
caput('X10DA-ES1-MA1:TRX1.VAL', '-15')
|
||||
|
||||
ROI1size=487
|
||||
ROI2size=487
|
||||
|
||||
DelayOn=0
|
||||
|
||||
DelayShift=480
|
||||
DelayOff=DelayOn+DelayShift
|
||||
|
||||
DELAY = ChannelInteger('X10DA-ES2-TIM:SET3-DELAY','DELAY3')
|
||||
DELAY.initialize()
|
||||
|
||||
#Creating channels: dimension 1
|
||||
#PseudoPositioner Pseudo
|
||||
#ScalarDetector SAI01-MEAN
|
||||
SAI01 = ChannelDouble('X10DA-ES1-SAI_01:MEAN', 'X10DA-ES1-SAI_01:MEAN')
|
||||
#ScalarDetector SAI02
|
||||
SAI02 = ChannelDouble('X10DA-ES1-SAI_02:MEAN', 'X10DA-ES1-SAI_02:MEAN')
|
||||
#ScalarDetector Ring-current
|
||||
RingCurrent = ChannelDouble('ARIDI-PCT:CURRENT', 'ARIDI-PCT:CURRENT')
|
||||
#ScalarDetector PilExpTime
|
||||
PilExpTime = ChannelDouble('X10DA-PILATUS-1:cam1:AcquireTime_RBV', 'X10DA-PILATUS-1:cam1:AcquireTime_RBV')
|
||||
#Timestamp Timestamp
|
||||
#ScalarDetector PilFileNum
|
||||
PilFileNum = ChannelDouble('X10DA-PILATUS-1:cam1:FileNumber_RBV', 'X10DA-PILATUS-1:cam1:FileNumber_RBV')
|
||||
#ScalarDetector TotalCounts
|
||||
TotalCounts = ChannelDouble('X10DA-PILATUS-1:Stats1:Total_RBV', 'X10DA-PILATUS-1:Stats1:Total_RBV')
|
||||
#ScalarDetector TiffFileNumber
|
||||
TiffFileNumber = ChannelDouble('X10DA-PILATUS-1:Magick1:FileNumber_RBV', 'X10DA-PILATUS-1:Magick1:FileNumber_RBV')
|
||||
#ScalarDetector ROI4
|
||||
ROI4 = ChannelDouble('X10DA-PILATUS-1:Stats4:Total_RBV', 'X10DA-PILATUS-1:Stats4:Total_RBV')
|
||||
#ArrayDetector ROI1
|
||||
ROI1_On = ChannelDoubleArray('Roi1', 'X10DA-PILATUS-1:Stats1:ProfileCursorX_RBV', ROI1size)
|
||||
#ArrayDetector ROI2
|
||||
ROI2_On = ChannelDoubleArray('Roi2', 'X10DA-PILATUS-1:Stats2:ProfileCursorX_RBV' , ROI2size)
|
||||
|
||||
|
||||
detectors = [SAI01, SAI02, RingCurrent, PilExpTime, PilFileNum, TotalCounts, TiffFileNumber, TiffFileNumber, ROI4, ROI1_On, ROI2_On]
|
||||
for det in detectors:
|
||||
det.initialize()
|
||||
|
||||
#Pseudo-devices
|
||||
class Roi1Off(Readable, ReadableArray):
|
||||
def read(self):
|
||||
before_sample()
|
||||
DELAY.write(DelayOff)
|
||||
time.sleep(0.1)
|
||||
self.cache = caget(ROI1_On.channelName, '[d')
|
||||
return self.cache
|
||||
|
||||
def getSize(self):
|
||||
return ROI1.getSize()
|
||||
|
||||
class Roi2Off(Readable, ReadableArray):
|
||||
def read(self):
|
||||
self.cache = caget(ROI2_On.channelName, '[d')
|
||||
DELAY.write(DelayOn)
|
||||
return self.cache
|
||||
|
||||
def getSize(self):
|
||||
return ROI2.getSize()
|
||||
|
||||
ROI1_Off=Roi1Off()
|
||||
ROI2_Off=Roi2Off()
|
||||
|
||||
class RoiDiff(Readable, ReadableArray):
|
||||
def __init__(self, roi_on, roi_off):
|
||||
self.roi_on = roi_on
|
||||
self.roi_off = roi_off
|
||||
|
||||
def read(self):
|
||||
return arrsub(self.roi_on.take(), self.roi_off.cache)
|
||||
|
||||
def getSize(self):
|
||||
return self.roi_on.getSize()
|
||||
|
||||
ROI1_Diff=RoiDiff(ROI1_On, ROI1_Off)
|
||||
set_device_alias(ROI1_Diff, "Roi1Diff")
|
||||
ROI2_Diff=RoiDiff(ROI2_On, ROI2_Off)
|
||||
set_device_alias(ROI2_Diff, "Roi2Diff")
|
||||
|
||||
|
||||
def before_sample():
|
||||
DELAY.write(0)
|
||||
caputq('X10DA-PILATUS-1:cam1:Acquire', 1)
|
||||
caputq('X10DA-ES1:SMPL', '1')
|
||||
sleep(0.1)
|
||||
cawait('X10DA-PILATUS-1:cam1:Acquire', 0, type = 'l')
|
||||
cawait('X10DA-ES1:SMPL-DONE', 1, type = 'l')
|
||||
sleep(0.1)
|
||||
|
||||
try:
|
||||
tscan(detectors + [ROI1_Off, ROI2_Off, ROI1_Diff, ROI2_Diff], 30, 0, before_read = before_sample, \
|
||||
line_plots = [ROI1_Diff, ROI2_Diff], enabled_plots = [ROI1_Diff, ROI2_Diff])
|
||||
finally:
|
||||
for det in detectors:
|
||||
det.close()
|
||||
|
||||
Reference in New Issue
Block a user