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