Running pRUParser: Difference between revisions

From pCT
No edit summary
No edit summary
Line 9: Line 9:
== Protocol Dependencies ==
== Protocol Dependencies ==
The pRUParser uses the pRU Data Format Specification v0.2
The pRUParser uses the pRU Data Format Specification v0.2
'''TODO''' add link to protocol document/page


== Usage ==
== Usage ==
Line 71: Line 73:
ALPIDE Strobe Extended: n
ALPIDE Strobe Extended: n
</syntaxhighlight>
</syntaxhighlight>
== Parser specification ==
=== I/O formats ===
=== Decoder ===
[[File:PRU Parser ALPIDE Decoder flow chart.jpeg|x400px]]
=== Handling of format errors ===
* recovery
* fatal errors
* propagation/monitoring
=== Generation of test data ===

Revision as of 11:13, 19 June 2020

Main Page -> Control & Readout Software Documentation and Howto's -> Running pRUParser


Software Function

The pRUParser takes a raw, binary, offload stream of pRU data from a file created by the pDTP Client. It will sort, error check and prunes this in to a raw, binary, stream and save this do disk for further prosessing. It will lastly print a summary of any errors it detected.

Protocol Dependencies

The pRUParser uses the pRU Data Format Specification v0.2

TODO add link to protocol document/page

Usage

In the readout/ folder in your build directory: For help run:

$./run-pru-parser -h

To parse a file, run:

$./run-pru-parser -i relative/path/to/input/file -o relative/path/to/output/file -v verbosity level (0 or 1)

Output

During the parse, if verbosity is greater than 0, a status summaries will be printed:

Starting pipeline ... 
Input policy  [File reader]: file readout/testDataX288.bin size kxcd
Filter policy [Forward]: buffer of kxcd byte(s)
This parse had a speed of: kx.cd Mb/s
Ouput policy  [File writer]: write to file readout/pData.bin size kxcd
... done

Otherwise, only a the parse benchmark will be printed

This parse had a speed of: kx.cd Mb/s

Then a summary is printed:

SUMMARY -------------
Total number of pRU frames parsed: n
Total number of pRU empty words found: n
Total number of pRU delimiter words found: n
Unfinished pRU words in buffer: n

If any pRU empty words are received a shot summary will be printed:

EMPTY FRAMES FOUND: n

If no errors are found, this will be printed:

No errors found.

Otherwise an error summary will be printed:

INPUT_SIZE_ERROR: n, MULTIPLE_PRU_HEADER_ERROR: n, DATA_WORD_MISSING_HEADER_ERROR: n, 
TRAILER_WORD_MISSING_HEADER_ERROR: n, PRU_TRAILER_FLAGS_ERROR: n, NO_DATA_WORD_ERROR: n, 
FRAME_SIZE_ERROR: n, MISSING_CHIP_HEADER_ERROR: n, MISSING_REGION_HEADER_ERROR: n, 
MISSING_CHIP_TRAILER_ERROR: n, MULTIPLE_CHIP_HEADER_ERROR: n, ALPIDE_TRAILER_FLAGS_ERROR: n, 
PADDING_ERROR: n, UNKNOWN_ALPIDE_WORD_ERROR: n

If any of the non fatal alpide trailer flags has been detected, a summary will be printed:

ALPIDE Busy Transition: n
ALPIDE Strobe Extended: n

Parser specification

I/O formats

Decoder

PRU Parser ALPIDE Decoder flow chart.jpeg

Handling of format errors

  • recovery
  • fatal errors
  • propagation/monitoring

Generation of test data