FrameReceiver#

Commandline Interface#

The frameReceiver is a C++ compiled application and is configured by a combination of command-line options and equivalent parameters stored in an INI-formatted configuration file. The command-line options take precedence over the configuration file if specified. The options and their default values can be viewed by invoking the --help option:

$ bin/frameReceiver --help
usage: frameReceiver [options]

Generic options:
  -h [ --help ]         Print this help message
  -v [ --version ]      Print program version string
  -c [ --config ] arg   Specify program configuration file
Configuration options:
  -d [ --debug-level ] arg (=0)         Set the debug level
  -n [ --node ] arg (=1)                Set the frame receiver node ID
  -l [ --logconfig ] arg                Set the log4cxx logging configuration
                                        file
  -m [ --maxmem ] arg (=1048576)        Set the maximum amount of shared memory
                                        to allocate for frame buffers
  -t [ --decodertype ] arg (=unknown)   Set the decoder type to to handle data
                                        reception
  --path arg (=/home/gnx91527/work/tristan/odin-data/build_name/lib/)
                                        Path to load the decoder library from
  --rxtype arg (=udp)                   Set the interface to use for receiving
                                        frame data (udp or zmq)
  -p [ --port ] arg (=8989,8990)        Set the port to receive frame data on
  -i [ --ipaddress ] arg (=0.0.0.0)     Set the IP address of the interface to
                                        receive frame data on
  --sharedbuf arg (=FrameReceiverBuffer)
                                        Set the name of the shared memory frame
                                        buffer
  --frametimeout arg (=1000)            Set the incomplete frame timeout in ms
  -f [ --frames ] arg (=0)              Set the number of frames to receive
                                        before terminating
  --packetlog arg (=0)                  Enable logging of packet diagnostics to
                                        file
  --rxbuffer arg (=30000000)            Set UDP receive buffer size
  --iothreads arg (=1)                  Set number of IPC channel IO threads
  --ctrl arg (=tcp://*:5000)            Set the control channel endpoint
  --ready arg (=tcp://*:5001)           Set the frame ready channel endpoint
  --release arg (=tcp://*:5002)         Set the frame release channel endpoint
  -j [ --json_file ] arg                Path to a JSON configuration file to
                                        submit to the application

The meaning of the configuration options are as follows:

  • -h or --help

    Print the help message shown above.

  • -v or --version

    Print the program version string (to be implemented).

  • -c or --config

    Specify the program configuration file to be loaded.

  • -d or --debug

    Specify the debug level. Increasing the value increases the verbosity of the debug output.

  • -n or --node

    Set the frame receiver node ID. Identifies the node in a multi-receiver system.

  • -l or --logconfig

    Set the log4cxx logging configuration file to use, which configures the format and destination of logging output from the application. See the README.md file in the config directory for more information.

  • -m or --maxmem

    Set the maximum amount of shared memory to allocate for frame buffers. This memory is where received frames are stored and handed off for processing by e.g. the FrameProcessor.

  • -s or --sensortype

    Set the sensor type to receive frame data from. This a string parameter describing which type of data the receiver should expect. Currently only a type of percivalemulator is supported.

  • -p or --port

    Set the port(s) to receive frame data on, specified as a comma-separated list, e.g. 8989,8990.

  • -i or --ipaddress

    Set the the IP address to listen for data on. The default value of 0.0.0.0 listens on all available network interfaces.

  • --sharedbuf

    Set the name of the shared memory frame buffer to use. Needs to match the name used by the downstream processing task, e.g. the frameProcessor.

  • --frametimeout

    Set the timeout in milliseconds for releasing incomplete frames (i.e. those missing packets) to the downtream processing task.

  • -f or --frames

    Set the number of frames to receive before terminating. The frameReceiver will wait for those frames to be released by the processing task before terminating. The default value of 0 means run indefinitely.

  • --packetlog

    Set to a non-zero value to enable logging of packet diagnostics to a separate log file, whose format and destination are configured in the logging configuration file.

    WARNING: Turning this option on will produce large quantities of output and significantly impact on the performance of the frameReceiver.

  • --rxbuffer

    Set UDP receive buffer size in bytes.

An example configuration file fr_test.config i.s available in the config directory. Typical invocation of the frameReceiver in a test would be as follows:

bin/frameReceiver --config test_config/fr_test.config --logconfig test_config/fr_log4cxx.xml --debug 2 --frames 3