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:
-hor--helpPrint the help message shown above.
-vor--versionPrint the program version string (to be implemented).
-cor--configSpecify the program configuration file to be loaded.
-dor--debugSpecify the debug level. Increasing the value increases the verbosity of the debug output.
-nor--nodeSet the frame receiver node ID. Identifies the node in a multi-receiver system.
-lor--logconfigSet 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
configdirectory for more information.-mor--maxmemSet 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.
-sor--sensortypeSet 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
percivalemulatoris supported.-por--portSet the port(s) to receive frame data on, specified as a comma-separated list, e.g.
8989,8990.-ior--ipaddressSet the the IP address to listen for data on. The default value of
0.0.0.0listens on all available network interfaces.--sharedbufSet 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.
--frametimeoutSet the timeout in milliseconds for releasing incomplete frames (i.e. those missing packets) to the downtream processing task.
-for--framesSet 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.
--packetlogSet 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.
--rxbufferSet 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