#!/usr/bin/env python
"""fire a soft trigger
.. rst-class:: hidden
usage: acq400_soft_trigger.py [-h] uut [uut ...]
configure fire a soft trigger
positional arguments:
uut uut
optional arguments:
-h, --help show this help message and exit
"""
import acq400_hapi
import os
import argparse
import time
[docs]def run_main(args):
uuts = [ acq400_hapi.Acq400(u) for u in args.uut ]
if len(uuts) == 1:
u = uuts[0]
if args.instrument:
u.s0.SIG_TRG_MB_RESET = 1
time.sleep(1)
it = 0
while it < args.count:
u.s0.soft_trigger = 1
if args.interval > 0:
time.sleep(args.interval)
it += 1
if args.instrument:
tcount = u.s0.SIG_TRG_MB_COUNT
print("{}: sent {} triggers, actual {} triggers ".format("PASS" if tcount == args.count else "FAIL", args.count, tcount))
else:
print("multiple uuts, send one trigger to each")
for u in uuts:
u.s0.soft_trigger = 1
[docs]def get_parser():
parser = argparse.ArgumentParser(description='Fire soft trigger on UUT')
parser.add_argument('--count', type=int, default=1, help="send many triggers, perhaps to test max rate")
parser.add_argument('--interval', type=float, default=0, help="send periodic trigger (s) default: 0 aka max")
parser.add_argument('--instrument', type=int, default=0, help="count before and after")
parser.add_argument('uut', nargs='+', help="uut")
return parser
if __name__ == '__main__':
run_main(get_parser().parse_args())