def FE_scan_prepare(): FE_centerX_ini = BML_FE_centerX.read() FE_centerY_ini = BML_FE_centerY.read() BML_FE_centerX.setSpeed(1.5) BML_FE_centerY.setSpeed(1.5) 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_centerX.update() BML_FE_centerY.update() #started = time.strftime("%H:%M:%S", time.localtime()) BML_FE_centerX.move(xmin) BML_FE_centerY.move(ymin) def FE_scan_move(): BML_FE_centerY.setSpeed(0.05) BML_FE_centerY.moveAsync(2.0) for i in range(0,10): BML_FE_centerX.move(2.0) BML_FE_centerX.move(-2.0) print(i) def time_scan_2DFE(samples=850, interval=0.1): try: sensors = [SR_current, "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'] #85 * PASSES tscan(sensors, samples, interval, auto_range=(samples<0)) except ScanAbortedException as ex: print "Stop Scan" def run_parallel_scan(fixed=True): FE_scan_prepare() if fixed: parallelize(FE_scan_move, time_scan_2DFE) else: task = fork((time_scan_2DFE,(-1,))) try: FE_scan_move() except: print sys.exc_info() finally: abort() run_parallel_scan()