Script execution

This commit is contained in:
gac-x10da
2019-03-19 12:22:49 +01:00
parent 6b1ea3c6c9
commit 42cccbb7fc

View File

@@ -46,34 +46,49 @@ ROI1_On = ChannelDoubleArray('X10DA-PILATUS-1:Stats1:ProfileCursorX_RBV', 'X10DA
ROI2_On = ChannelDoubleArray('X10DA-PILATUS-1:Stats2:ProfileCursorX_RBV', '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 Roi1_Off(Readable, ReadableArray):
class Roi1Off(Readable, ReadableArray):
def read(self):
before_sample()
DELAY.write(100)
time.sleep(0.1)
self.cache = caget('X10DA-PILATUS-1:Stats1:ProfileCursorX_RBV', '[d')
DELAY.write(0)
self.cache = caget(ROI1_On.channelName, '[d')
return self.cache
def getSize(self):
return ROI1.getSize()
ROI1_Off=Roi1_Off()
class Roi1Diff(Readable, ReadableArray):
class Roi2Off(Readable, ReadableArray):
def read(self):
return arrsub(ROI1_On.take(), ROI1_Off.cache)
self.cache = caget(ROI2_On.channelName, '[d')
DELAY.write(0)
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 ROI1.getSize()
ROI1_Diff=Roi1Diff()
return self.roi_on.getSize()
ROI1_Diff=RoiDiff(ROI1_On, ROI1_Off)
ROI2_Diff=RoiDiff(ROI2_On, ROI2_Off)
detectors = [SAI01, SAI02, RingCurrent, PilExpTime, PilFileNum, TotalCounts, TiffFileNumber, TiffFileNumber, ROI4, ROI1_On, ROI1_On]
for det in detectors:
det.initialize()
def before_sample():
DELAY.write(0)
caputq('X10DA-PILATUS-1:cam1:Acquire', 1)
@@ -84,7 +99,8 @@ def before_sample():
sleep(0.1)
try:
tscan(detectors + [ROI1_Off, ROI1_Diff], 30, 0, before_read = before_sample)
#tscan(detectors + [ROI1_Off, ROI1_Diff, ROI2_Off, ROI2_Diff], 30, 0, before_read = before_sample)
vscan(DELAY, detectors + [ROI1_Off, ROI1_Diff, ROI2_Off, ROI2_Diff], [0,100], passes=30, before_read = before_sample)
finally:
for det in detectors:
det.close()