def main(): parser = argparse.ArgumentParser(description='Reads (and plots) ADC trace') parser.add_argument('--adc', type=Coordinate.ADC, help='ADC Board Id', required=True) parser.add_argument('--ip', type=str, help='ADC Service IP', required=False) parser.add_argument('--port', type=int, help='ADC Service Port', required=False) parser.add_argument('--channel', type=lambda x: Coordinate.ChannelOnADC(int(x)), help="MUX", required=False, default=Coordinate.ChannelOnADC(0)) parser.add_argument('--samples', type=int, help='Number of samples to collect', required=True) parser.add_argument('--calibration', action='store_true', help='Try to apply calibration') parser.add_argument('--dump', action='store_true', help='Dump trace data to console') parser.add_argument('--plot', action='store_true', help='Plot trace data using matplotlib') args = parser.parse_args() init_logger() data = measure(args.adc, args.ip, args.port, args.channel, args.samples) if args.dump: dump(data) if args.plot: plot(data)
def get_trace(self, adc_channel, trace_length): HICANN.flush(self.h) conf = ADC.Config(trace_length, Coordinate.ChannelOnADC(adc_channel), Coordinate.TriggerOnADC(0)) ADC.config(self.adc, conf) ADC.trigger_now(self.adc) trace = ADC.get_trace(self.adc) v = -0.00066535 * trace + 2.02391 t = np.arange(trace.size) * 1 / 96e6 return (trace, v, t)