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