140 lines
4.3 KiB
Python
140 lines
4.3 KiB
Python
#tscan(['ca://X11MA-FE-SL1:TRXW-PosAct', CADC2], points=50, interval=0.001, keep=False, save=False, name='Unknown', domain_axis='Time')
|
|
#
|
|
####################################################################################################
|
|
## Example on running simultaneous scans.
|
|
####################################################################################################
|
|
#
|
|
##Simple example running 2 simultaneous scans, not manipulating same writables.
|
|
##Each scan plots to a different context.
|
|
#def scan1():
|
|
# print "scan1"
|
|
# return lscan(ao1, ai1, 0, 40, 20, 0.1, title = "scan1", tag = "scan_1")
|
|
#
|
|
#def scan2():
|
|
# print "scan2"
|
|
# return lscan(ao2, wf1, 0, 40, 20, 0.1, title = "scan2", tag = "scan_2")
|
|
#
|
|
#parallelize(scan1, scan2)
|
|
#
|
|
#
|
|
#
|
|
##Example of simultaneous scans, running one at a time in passes, manipulating same writable.
|
|
##All scans plot to default context.
|
|
#
|
|
#REGIONS = [("R1",(1.0, 2.0, 0.1)), ("R2",(2.0, 8.0, 0.5)), ("R3",(8.0, 9.0, 0.2)), ]
|
|
#PASSES = 3
|
|
#
|
|
#scanning=False
|
|
#current_index=-1
|
|
#def scan(region):
|
|
# name, pars=REGIONS[region]
|
|
# def before_pass(pass_num, scan):
|
|
# global scanning, current_index
|
|
# while (current_index != (region-1)) or scanning:
|
|
# time.sleep(0.1)
|
|
# scanning = True
|
|
# current_index = current_index+1
|
|
# App.getInstance().mainFrame.setScanDisplays(scan, None)
|
|
# def after_pass(pass_num):
|
|
# global scanning, current_index
|
|
# if current_index>=(len(REGIONS)-1):
|
|
# current_index=-1
|
|
# scanning = False
|
|
# lscan(ao1, [ai1, ai2], pars[0], pars[1], pars[2], 0.1, tag=name, passes=PASSES,
|
|
# before_pass = before_pass, after_pass=after_pass, initial_move=False)
|
|
#
|
|
#parallelize(* [[scan,[i,]] for i in range(len(REGIONS))])
|
|
#
|
|
|
|
def FE_scan_prepare():
|
|
|
|
FE_centerX_ini = BML_FE_centerX.read()
|
|
FE_centerY_ini = BML_FE_centerY.read()
|
|
FE_speedcX_ini = BML_FE_centerX.getSpeed()
|
|
FE_speedcY_ini = BML_FE_centerY.getSpeed()
|
|
FE_sizeX_ini = BML_FE_sizeX.read()
|
|
FE_sizeY_ini = BML_FE_sizeY.read()
|
|
FE_speedsX_ini = BML_FE_sizeX.getSpeed()
|
|
FE_speedsY_ini = BML_FE_sizeY.getSpeed()
|
|
|
|
BML_FE_sizeX.setSpeed(1.0)
|
|
BML_FE_sizeY.setSpeed(1.0)
|
|
BML_FE_centerX.setSpeed(1.0)
|
|
BML_FE_centerY.setSpeed(1.0)
|
|
|
|
FE_centerX = 0.0
|
|
FE_centerY = 0.0
|
|
|
|
FE_sizeX = 0.1
|
|
FE_sizeY = 0.1
|
|
|
|
x_range = 4.0
|
|
y_range = 4.0
|
|
|
|
x_steps = 0.2
|
|
y_steps = 0.2
|
|
|
|
xmin = FE_centerX - x_range/2
|
|
xmax = FE_centerX + x_range/2
|
|
|
|
ymin = FE_centerY - y_range/2
|
|
ymax = FE_centerY + y_range/2
|
|
|
|
xsteps = x_steps
|
|
ysteps = y_steps
|
|
|
|
BML_FE_sizeX.update()
|
|
BML_FE_sizeY.update()
|
|
BML_FE_centerX.update()
|
|
BML_FE_centerY.update()
|
|
|
|
# started = time.strftime("%H:%M:%S", time.localtime())
|
|
|
|
BML_FE_sizeX.move(FE_sizeX)
|
|
BML_FE_sizeY.move(FE_sizeY)
|
|
|
|
BML_FE_centerX.move(xmin)
|
|
BML_FE_centerY.move(ymin)
|
|
|
|
def FE_scan_move():
|
|
|
|
BML_FE_sizeX.update()
|
|
BML_FE_sizeY.update()
|
|
BML_FE_centerX.update()
|
|
BML_FE_centerY.update()
|
|
|
|
BML_FE_centerY.setSpeed(0.05)
|
|
BML_FE_centerY.moveAsync(2.0)
|
|
|
|
for i in range(0,10):
|
|
|
|
BML_FE_sizeX.update()
|
|
BML_FE_sizeY.update()
|
|
BML_FE_centerX.update()
|
|
BML_FE_centerY.update()
|
|
|
|
BML_FE_centerX.move(2.0)
|
|
|
|
BML_FE_sizeX.update()
|
|
BML_FE_sizeY.update()
|
|
BML_FE_centerX.update()
|
|
BML_FE_centerY.update()
|
|
|
|
BML_FE_centerX.move(-2.0)
|
|
print(i)
|
|
# BML_FE_centerY.move(ymin)
|
|
|
|
# stopped = time.strftime("%H:%M:%S", time.localtime())
|
|
# print("started: " + started)
|
|
# print("stopped: " + stopped)
|
|
|
|
def time_scan_2DFE():
|
|
sensors = [CADC2, 'ca://X11MA-FE-SL1:TRXR-VelAct', 'ca://X11MA-FE-SL1:TRXW-VelAct', 'ca://X11MA-FE-SL1:TRXR-PosAct', 'ca://X11MA-FE-SL1:TRXW-PosAct', 'ca://X11MA-FE-SL1:TRYB-VelAct', 'ca://X11MA-FE-SL1:TRYT-VelAct', 'ca://X11MA-FE-SL1:TRYB-PosAct', 'ca://X11MA-FE-SL1:TRYT-PosAct']
|
|
# tscan(sensors, points=850, interval=0.1, keep=False, save=False, name='Unknown', domain_axis='Time')
|
|
tscan(sensors, 850, 0.1, domain_axis='Time')
|
|
json_path = get_exec_pars().path
|
|
bml_save_scan_settings_json(json_path)
|
|
|
|
def run_parallel_scan():
|
|
FE_scan_prepare()
|
|
parallelize(FE_scan_move, time_scan_2DFE) |