116 lines
2.8 KiB
Python
116 lines
2.8 KiB
Python
###################################################################################################
|
|
# Deployment specific global definitions - executed after startup.py
|
|
###################################################################################################
|
|
|
|
class MyInterlock1 (Interlock):
|
|
def __init__(self):
|
|
Interlock.__init__(self, (alpha, gamma))
|
|
|
|
def check(self, (a, g)):
|
|
if a>=g:
|
|
return False
|
|
return True
|
|
|
|
#interlock1 = MyInterlock1()
|
|
|
|
|
|
|
|
def open_shutter():
|
|
"""
|
|
"""
|
|
shutter.write("On")
|
|
time.sleep(0.1)
|
|
|
|
|
|
def close_shutter():
|
|
"""
|
|
"""
|
|
shutter.write("Off")
|
|
|
|
|
|
|
|
run("device/Mythen")
|
|
run("device/Pixel")
|
|
|
|
|
|
|
|
|
|
def after_sample(record, scan):
|
|
close_shutter()
|
|
|
|
count_time = 1.0
|
|
count_id = None
|
|
image_filename = None
|
|
|
|
|
|
|
|
def trigger_detectors(position, scan):
|
|
global count_time, count_id, image_filename
|
|
pix_is_on = pixel in scan.readables
|
|
mythen.abort()
|
|
open_shutter()
|
|
if (count_time != 0):
|
|
if pix_is_on:
|
|
pixel.set_expose(count_time)
|
|
pix.start()
|
|
|
|
if (count_time > 0):
|
|
mythen.set_acquire_time(count_time)
|
|
mythen.set_acquire_mode("Single")
|
|
mythen.start()
|
|
else:
|
|
print "Preset monitor counting is not supported\!"
|
|
|
|
#waitcount
|
|
if pix_is_on:
|
|
pixel.wait_finished()
|
|
|
|
i = 0
|
|
while (mythen.is_acquiring()):
|
|
time.sleep (0.05)
|
|
i += 1
|
|
if (i * 0.05 >= count_time * 2):
|
|
print "MYTHEN Izero times out, status: " + str(mythen.get_status())
|
|
break
|
|
|
|
|
|
#count_end()
|
|
# update the IMAGE_FILENAME and COUNT_ID variables
|
|
if pix_is_on:
|
|
image_filename = pixel.get_image_filename()
|
|
count_id = pixel.doUpdate()
|
|
pixlogwrite()
|
|
else :
|
|
image_filename = None
|
|
count_id = + 1
|
|
close_shutter()
|
|
|
|
"""
|
|
|
|
#get_counts
|
|
global COUNT_ID
|
|
S[0] = mythen.acquire_time.read()
|
|
S[1] = mythen.read() #get_total_counts
|
|
# S[2] is detector counts from image.mac ###TODO
|
|
S[3] = S[2] / count_time / transm.getValue()
|
|
S[5] = transm.readback.read()
|
|
|
|
|
|
#TODO:Auto
|
|
# set threshold counts in case auto-level support is available
|
|
#if "AUTO_THRESH1" in globals():
|
|
# AUTO_THRESH1_COUNT = (S[2]>=AUTO_THRESH1)?S[2]:0
|
|
# AUTO_THRESH2_COUNT = (S[2]>=AUTO_THRESH2)?S[2]:0
|
|
# AUTO_THRESH3_COUNT = (S[2]>=AUTO_THRESH3)?S[2]:0
|
|
# AUTO_THRESH4_COUNT = (S[2]>=AUTO_THRESH4)?S[2]:0
|
|
#user_getcounts
|
|
#TODO: image
|
|
#imageUserGetcounts()
|
|
|
|
"""
|
|
|
|
|
|
MOTOR_READBACKS = phi.readback, omegaH.readback, nu.readback, omegaV.readback, alpha.readback, delta.readback, gamma.readback, \
|
|
xv.readback, y1.readback, y2.readback, y3.readback, trx.readback, thy.readback
|
|
|
|
#PSEUDO_DEVICES = h, k, l, lambda |