import ch.psi.pshell.epics.ChannelDouble as ChannelDouble t = ChannelDouble("fine delay (ns)", "SINEG01-DICT215:Pul1-Delay-SP-SIM") q = ChannelDouble("charge (pC)", "SINEG01-DICT215:AL1-ICT-CHARGE-SIM") V = ChannelDouble("DC output (V)", "SINEG01-DICT215:AL1-ICT-VOLTAGE-SIM") t.initialize() q.initialize() V.initialize() t0 = t.read() start = 0.0 stop = 10.0 step = 0.1 nb = 2 lat = 0.080 try: q_averager = create_averager(q, nb, lat) V_averager = create_averager(V, nb, lat) V_averager.monitored=True r = lscan(t, (q_averager, V_averager), start, stop, step, latency=lat) delay = r.getPositions(0) charge = [val.mean for val in r.getReadable(0)] chargerms = [val.stdev for val in r.getReadable(0)] volt = [val.mean for val in r.getReadable(1)] voltrms = [val.stdev for val in r.getReadable(1)] finally: t.write(t0) t.close() q.close() V.close()