Playback

This component reads the contents of log file(s) and publishes it on DDS. The log file(s) must have the same structure as that created by RatatoskLogger. A typical use case for this component is to provide realistic DDS signals as a mock-up of a real vessel, for the purpose of development and testing. This can be valuable when developing software for interfacing ship systems or as a prerequisite for a virtual testbed for such software.

  • Options:
    • Speed: The ratio between playback speed and the original recording speed of the log file.
  • LogSpecification:
    • Dir: The directory where the log files are found.
    • LogPrefix: The prefix of the log file names, assuming the name to be <prefix><timestamp>.nc
  • PlaybackSignals: A yaml list of output signals and how they are created from the log file data. Each element are of the following format:
    • Topic: The topic to output on.
    • Type: The DDS type to output.
    • Mapping: Where the data is found in the log file. This can be of two different formats:
      1. The name of the variable.
      2. A yaml list with the following structure, mapping the fields of the output type to the variables in the log file:
        • Field: The topic field name.
        • Var: The variable name in the log file

An example input file is shown below, as well as here.

Options:
Speed: 2.49
LogSpecification:
Dir: logs
LogPrefix: Logs_
PlaybackSignals:
- Topic: In1
Type: DoubleVal
Mapping: Nav_Depth.depthBelowTransducer
- Topic: In2
Type: Float3
Mapping:
- {Field: x, Var: Hull_Euler_rad.x}
- {Field: y, Var: Hull_Euler_rad.y}
- {Field: z, Var: Hull_Euler_rad.z}
- Topic: In3
Type: DoubleVal
Mapping: Hull_Euler_rad.y