Files
x11ma/script/templates/AutoFocus.py
2021-12-14 14:25:13 +01:00

50 lines
1.9 KiB
Python

if (get_exec_pars().source == CommandSource.ui) and (get_exec_pars().script == "AutoFocus") :
SCAN_TYPE = "all"
RANGE_OBJ = 2.0
STEP_OBJ = 0.2
RANGE_STIG = 20.0
STEP_STIG = 2.0
UPDATE_POSITION = True
AVERAGE = 1
RUNS = 1
width, height = eiger.getImageSize()
RENDERER = None
ROI = Rectangle(width/3, height/3, width/3, height/3,)
EXPOSURE = None
print "Auto Focus: ", SCAN_TYPE, RANGE_OBJ, STEP_OBJ, RANGE_STIG , STEP_STIG, UPDATE_POSITION, AVERAGE, RUNS, ROI, EXPOSURE
initial_state = objective.read(),obj_stig_a.read(),obj_stig_b.read()
print "Initial state:" , initial_state
set_focus_scan_roi(ROI, RENDERER)
former_exposure = None
try:
if EXPOSURE:
former_exposure = eiger.getExposure()
if former_exposure!=EXPOSURE:
set_exposure_time(EXPOSURE)
grab_frame(image, None, True) #Update reference image if changing exposure
for run_no in range(RUNS):
if SCAN_TYPE in ("all", "obj"):
#print "Scan obj"
r=scan_focus(objective, RANGE_OBJ, STEP_OBJ, average = AVERAGE, update_position = UPDATE_POSITION)
if SCAN_TYPE in ("all", "stiga"):
#print "Scan stig a"
r=scan_focus(obj_stig_a, RANGE_STIG, STEP_STIG, average = AVERAGE, update_position = UPDATE_POSITION)
if SCAN_TYPE in ("all", "stigb"):
#print "Scan stig b"
r=scan_focus(obj_stig_b, RANGE_STIG, STEP_STIG, average = AVERAGE, update_position = UPDATE_POSITION)
if SCAN_TYPE in ("all"):
#print "Scan obj"
r=scan_focus(objective, RANGE_OBJ, STEP_OBJ, average = AVERAGE, update_position = UPDATE_POSITION)
finally:
if EXPOSURE:
if (former_exposure is not None) and (former_exposure!=EXPOSURE):
set_exposure_time(former_exposure)
restore_eiger()
final_state = objective.read(),obj_stig_a.read(),obj_stig_b.read()
print "Final state:" , final_state