#!/usr/bin/env python3
'''Configure uut for Burst RGM operation, with bursts self-stimulated from the Gate Pulse Generator GPG.
This program makes initial customisation:
set_rgm(): configures Burst RGM
set_gpg(): configures Gate Pulse Generator GPG
Example usage::
NETCLIENT_TRACE=1 SITECLIENT_TRACE=1 ./user_apps/acq400/gpg_load_oneshot.py \
--capture=1 --remote_trigger=EXT --pre=0 --post=4000000 --stl ./STL/4x2Hz.stl \
--es_enable=0 --channels=1,2 --plot_data=-2 acq2106_178
ref: acq2106-gpg-acq48x-fat-r2
START trigger is supplied ONCE on FP TRG (TRG.d0)
GPG provides BURST pulses on EVT.d0 to both ADC system and output on AUX2
'''
import acq400_hapi
import argparse
import acq400_fullshot
[docs]def get_stl(stl):
with open (stl, "r") as stl_file:
stl = stl_file.read()
return stl
[docs]def set_gpg(args, uut):
uut.s0.gpg_enable = 0
# uut.s0.GPG_TRG = 'external'
# uut.s0.GPG_TRG_DX = 'd0'
# uut.s0.GPG_TRG_SENSE = 'rising'
uut.s0.gpg_trg = '1,0,1'
uut.s0.GPG_MODE = 'LOOPWAIT'
stl = get_stl(args.stl)
uut.load_gpg(stl)
uut.s0.gpg_enable = 1
uut.s0.SIG_EVENT_SRC_0 = 'GPG'
uut.s0.SIG_FP_GPIO = 'EVT0'
[docs]def set_rgm(args, uut):
uut.s1.RGM = 'RGM'
uut.s1.RGM_DX = 'd0'
uut.s1.RGM_SENSE = 'rising'
if args.es_enable is not None:
uut.s1.es_enable = args.es_enable
[docs]def main(args):
uuts = [ acq400_hapi.factory(u) for u in args.uuts ]
for uut in uuts:
set_rgm(args, uut)
set_gpg(args, uut)
acq400_fullshot.run_main(args)
[docs]def get_parser():
parser = acq400_fullshot.get_parser()
parser.description = 'Run shot and load GPG'
parser.add_argument('--stl', default='./test.stl', type=str, help="GPG pulse pattern STL")
parser.add_argument('--es_enable', default=None, help="enable/disable Event Signature (default: no touch)")
return parser
if __name__ == '__main__':
main(get_parser().parse_args())