X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=docs-mini%2FREADME.protocol;h=ef9c39a2e1d8bd39a7a64e2f5d2cfde4826511a2;hb=0f9f0924121e680c68a1f6388d13a4c84ad1ded6;hp=7e66858ba1ade9e73eb2058d6798e773d13974cd;hpb=2bcf5b7fe7b9b7c6227f977137e1bd057136c049;p=flightgear.git diff --git a/docs-mini/README.protocol b/docs-mini/README.protocol index 7e66858ba..ef9c39a2e 100644 --- a/docs-mini/README.protocol +++ b/docs-mini/README.protocol @@ -1,7 +1,7 @@ The generic communication protocol for FlightGear provides a powerful way of adding a simple ASCII based or binary input/output protocol, just by defining an XML encoded configuration file and placing it in the -$FG_ROOT/data/Protocols/ directory. +$FG_ROOT/Protocol/ directory. @@ -56,12 +56,14 @@ and data sets, as well as a list of s. Each defines a property that should be written (and how), or a variable and which property it should be written to. +--- ASCII protocol parameters --- + output only: - BOOL default: false (= ASCII mode) STRING default: "" file header put on top of the file STRING default: "" file footer put at the end of the file input & output: + BOOL default: false (= ASCII mode) STRING default: "" field separator STRING default: "" separator between data sets @@ -90,6 +92,7 @@ or \r\n +--- Binary protocol parameters --- To enable binary mode, simply include a true tag in your XML file. The format of the binary output is tightly packed, with 1 byte @@ -115,35 +118,34 @@ each of which describes the properties of on variable to write/read. the property tree node which provides the data the value type (needed for formatting) one of string, float, bool, int (default: int) - defines the actual piece of text which should be sent. + (ASCII protocol only, not used or needed in binary mode) + defines the actual piece of text which should be sent. it can include "printf" style formatting options like: %s string %d integer (default) %f float - (not used or needed in binary mode) an optional multiplication factor which can be used for unit conversion. (for example, radians to degrees). an optional offset which can be used for unit conversion. - (for example, degrees to radians). + (for example, degrees Celcius to degrees Fahrenheit). Chunks can also consist of a single constant , like in: - - + Data Section == examples =================================================================== Writes log of this form: -V=1736 -H=17647 -P=004.6 -V=1780 -H=18105 -P=006.4 +V=16 +H=3.590505 +P=3.59 +V=12 +H=3.589020 +P=3.59 @@ -186,7 +188,7 @@ P=006.4 -- writing data in XML syntax ------------------------------------------------- -Assuming the file is called $FG_ROOT/Protocols/xmltest.xml, then it could be +Assuming the file is called $FG_ROOT/Protocol/xmltest.xml, then it could be used as $ fgfs --generic=file,out,1,/tmp/data.xml,xmltest @@ -196,32 +198,53 @@ used as $ fgfs --generic=file,out,1,/tmp/data.xml,xmltest false - - + \n + \n <?xml version="1.0"?>\n\n<data>\n </data>\n - \t<set>\n + \t<set> /position/altitude-ft float - \t\t<altitude-ft>%.8f</altitude-ft>\n + \t\t<altitude-ft>%.8f</altitude-ft> /velocities/airspeed-kt float - \t\t<airspeed-kt>%.8f</airspeed-kt>\n + \t\t<airspeed-kt>%.8f</airspeed-kt> - \t</set>\n + \t</set> +-- Analyzing the resulting binary packet format ------------------------------- + +A utility called generic-protocol-analyse can be found under +FlightGear/utils/xmlgrep which can be used to analyze the resulting +data packet for the binary protocol. + +The output would be something like: + +bintest.xml +Generic binary output protocol packet description: + + pos | size | type | factor | description +-----|------|--------|------------|------------------------ + 0 | 4 | int | | indicated speed (kt) + 4 | 4 | float | | pitch att (deg) + 8 | 4 | float | | magnetic heading (deg) + 12 | 4 | int | | outside air temperarure (degF) + 16 | 1 | bool | | autocoord + +total package size: 17 bytes +