scan_complete=False def check_end_scan(record, scan): global scan_complete if record.index>=50: print "Data aquisition completed" scan.abort() scan_complete=True record.cancel() elif (record.index>0) and (record.index % 10 == 0): get_context().dataManager.splitScanData(scan) def do_scan(): global scan_complete scan_complete=False try: mscan (sin, sin, -1, -1, after_read = check_end_scan) except: if not scan_complete: raise set_exec_pars(group="x_{count}"); do_scan() set_exec_pars(group="y_{count}", reset=True) do_scan()