#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)