mot=DummyMotor("motor") reg= DummyRegister("register") mot.initialize() reg.initialize() beam_ok = True def is_beam_ok(): return beam_ok def wait_beam(): if not is_beam_ok(): print "Waiting for beam..." while not is_beam_ok(): time.sleep(0.1) print "Beam ok" def before_read(pos, scan): wait_beam() #... def after_read(rec, scan): if not is_beam_ok(): print "Beam is down invalidating record ", rec.index, " at position ", rec.setpoints rec.invalidate() return #... a= lscan(mot, reg, 0.0, 10.0, 0.1, latency=0.1, before_read=before_read, after_read=after_read)