283def parse_args():
284 parser = argparse.ArgumentParser(
285 description='Python script to parse DUNE-DAQ HDF5 output files.')
286
287 parser.add_argument('-f', '--file-name',
288 help='path to HDF5 file',
289 required=True)
290
291 parser.add_argument('-b', '--binary-output',
292 help='convert to the specified binary file')
293
294 parser.add_argument('-p', '--print-out', action='append',
295 choices=['header', 'fragment', 'both', 'attributes',
296 'all'],
297 help='''select which part of data to be displayed, this
298 option can be repeated multiple times, "-p both" is
299 equivalent to "-p header -p fragment", "-p all" is
300 equivalent to "-p attributes -p header -p fragment"''')
301
302 parser.add_argument('-c', '--check-fragments',
303 help='''check if fragments written in trigger record
304 matches expected number in trigger record header''',
305 action='store_true')
306
307 parser.add_argument('-l', '--list-components',
308 help='''list components in trigger record header, used
309 with "--print-out header" or "--print-out both", not
310 applicable to TimeSlice data''', action='store_true')
311
312 parser.add_argument('-n', '--num-of-records', type=int,
313 help='specify number of records to be parsed',
314 default=0)
315
316 parser.add_argument('-s', '--speed-of-clock', type=float,
317 help='''specify clock speed in Hz, default is
318 62500000.0 (62.5MHz)''',
319 default=62500000.0)
320
321 parser.add_argument('-v', '--version', action='version',
322 version='%(prog)s 2.0')
323 return parser.parse_args()
324
325