1
0
Fork 0
fgdata/Protocol/README.Protocol

84 lines
2.1 KiB
Text
Raw Normal View History

2003-05-03 12:19:02 +00:00
The generic communication protocol for FlightGear provides a powerfull way
of adding a simple ASCII based output only protocol, just by defining an
XML encoded configuration file.
2003-06-22 08:02:27 +00:00
The definition of the protocol consists of variable separators, line separators,
2003-05-03 12:19:02 +00:00
and chuncks of text.
Each chunck defines:
<name> for ease of use
<node> the property tree node which provides the data
<type> the value type (needed for formatting)
<format> defines the actual piece of text which should be sent.
it can include formatting options like:
<type>
%s string
%i integer (default)
%f float
<factor> an optionale multiplication factor which can be used for
unit conversion. (for example, radians to degrees).
<offset> an optional offset which can be used for unit conversion.
(for example, degrees Celsius to degrees Fahrenheit).
2003-06-22 08:02:27 +00:00
The output section also could define the variable separator and line separator.
2003-05-03 12:19:02 +00:00
2003-06-22 08:02:27 +00:00
The separators can be either a control character such as a tab or newline, or a
2003-05-03 12:19:02 +00:00
user specified string or other single charachter. The currently supported
control charachters are:
2003-06-22 08:02:27 +00:00
<var_separator>:
<line_separator>:
2003-05-03 12:19:02 +00:00
Name Charachter
newline '\n'
tab '\t'
formfeed '\f'
carriagereturn '\r'
verticaltab '\v'
any other charachters just need to be added to "Network/generic.cxx"
2003-06-22 08:02:27 +00:00
The var_separator is placed between each variable, while the line_separator is
2003-05-03 12:19:02 +00:00
placed at the end of each lot of variables.
A simple protocol configuration file then could look something like the
following:
<?xml version="1.0"?>
<PropertyList>
<generic>
<output>
2003-06-22 08:02:27 +00:00
<line_separator>newline</line_separator>
<var_separator>newline</var_separator>
2003-05-03 12:19:02 +00:00
<chunk>
<name>speed</name>
<format>V=%d</format>
<node>/velocities/airspeed-kt</node>
</chunk>
<chunk>
<name>heading</name>
<format>H=%02d</format>
<node>/orientation/heading-deg</node>
<factor>57.29578</factor> <!-- radians to degrees -->
</chunk>
<chunk>
<name>pitch angle</name>
<format>P=%05.1f</format>
<type>float</type>
<node>/orientation/pitch-deg</node>
</chunk>
</generic>
</PropertyList>