ENERGIES = [845.0, 852.0] ACC_TIME = 1.0 ACC_SAMPLES = 100 cadc1_av = create_averager(CADC1, ACC_SAMPLES, interval = ACC_TIME/100, name = "CADC1", monitored=-1) cadc2_av = create_averager(CADC2, ACC_SAMPLES, interval = ACC_TIME/100, name = "CADC2", monitored=-1) cadc3_av = create_averager(CADC3, ACC_SAMPLES, interval = ACC_TIME/100, name = "CADC3", monitored=-1) class TeyNorm(Readable): def read(self): return cadc1_av.take().doubleValue() / cadc2_av.take().doubleValue() class DiodeNorm(Readable): def read(self): return cadc3_av.take().doubleValue() / cadc2_av.take().doubleValue() sensors = [cadc1_av, cadc2_av, cadc3_av, TeyNorm(),DiodeNorm(), energy_readback,Temperature] def after_readout(record, scan): pass def before_pass(pass_num): print "pass: ",pass_num en = ENERGIES[((pass_num-1)%2)] set_energy(en) time.sleep(ACC_TIME) ret= tscan(sensors, 1, 0, passes = 1000, before_pass = before_pass, after_read=after_readout)