Fgtape

From FlightGear wiki
Jump to navigation Jump to search

Fgtape[1] is a PropertyList-encoded XML file format used by the FlightGear flight recorder subsystem to store serialized FlightGear properties for flight replay.

The whole system is XML-configurable, so that custom/aircraft-specific properties can be easily supported, while generic/common properties are typically included from a shared location in $FG_ROOT/Aircraft/Generic/flightrecorder/ .

The reference can be found in docs-mini/README-recordings.md.

File format

Normal recordings

Normal recordings are written as a compressed gzip stream using simgear::gzContainerWriter.

Header

  • A zero-terminated magic string: FlightGear Flight Recorder Tape (variable FlightRecorderFileMagic).
  • A Meta property tree containing a meta node with various child nodes.
  • A Config property tree containing information about what signals will be contained in each frame.

Each signal is a property; signals are used for the main recorded information such as position and orientation of the user's aircraft, and positions of flight surfaces, gear up/down etc. Aircraft may define their own customized set of signals.

The Meta and Config property trees are each written as <length:64><text> where <text> is a text representation of the properties. <text> is terminated with a zero which is included in the <length:64> field.

A series of frames, each containing the data in a FGReplayData instance, looking like:

  • Frame time as a binary double.
  • Signals information as described in the header's Config property tree, represented as a 64-bit length followed by binary data.

Continuous recordings

See docs-mini/README-recordings.md in the repository for more info.

Use Cases

1rightarrow.png See Instant Replay for the main article about this subject.