83 lines
2.1 KiB
Text
83 lines
2.1 KiB
Text
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.
|
|
|
|
The definition of the protocol consists of variable seperators, line seperators,
|
|
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).
|
|
|
|
|
|
The output section also could define the variable seperator and line seperator.
|
|
|
|
The seperators can be either a control character such as a tab or newline, or a
|
|
user specified string or other single charachter. The currently supported
|
|
control charachters are:
|
|
|
|
<var_seperator>:
|
|
<line_seperator>:
|
|
Name Charachter
|
|
|
|
newline '\n'
|
|
tab '\t'
|
|
formfeed '\f'
|
|
carriagereturn '\r'
|
|
verticaltab '\v'
|
|
|
|
any other charachters just need to be added to "Network/generic.cxx"
|
|
|
|
The var_seperator is placed between each variable, while the line_seperator is
|
|
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>
|
|
<line_seperator>newline</line_seperator>
|
|
<var_seperator>newline</var_seperator>
|
|
|
|
<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>
|