diff --git a/Docs/README.IO b/Docs/README.IO
index fc3bcbaeb..19fd13933 100644
--- a/Docs/README.IO
+++ b/Docs/README.IO
@@ -5,6 +5,7 @@ to "speak" any supported protocol over any supported medium. The IO
options are configured at runtime via command line options. You can
specify multiple entries if you like, one per command line option.
+
The general form of the command line option is as follows:
--protocol=medium,direction,hz,medium_options,...
@@ -15,13 +16,14 @@ The general form of the command line option is as follows:
hz = number of times to process channel per second (floating
point values are ok.
-Generic Communction:
+
+Generic Communication:
--generic=params
With this option it is possible to output a pre-configured
- ASCII string using a predefined seperator. The configuration is
- defined in an XML file located in the Protocol directiory of
+ ASCII string using a predefined separator. The configuration is
+ defined in an XML file located in the Protocol directory of
the base package.
params can be:
@@ -29,34 +31,7 @@ Generic Communction:
socket communication: socket,dir,hz,machine,port,style,protocol
output to a file: file,dir,hz,filename,protocol
-
- The confinfiguration file is defined as follows:
-
-
-
-
-
-
-
-
+ See README.protocol for how to define a generic protocol.
Serial Port Communication:
@@ -70,7 +45,8 @@ Serial Port Communication:
--nmea=serial,out,0.5,COM1,4800
- Note that for unix varients you might use a device name like "/dev/ttyS0"
+ Note that for unix variants you might use a device name like "/dev/ttyS0"
+
Socket Communication:
@@ -160,3 +136,4 @@ HTTP Server Example
ACMS flight data recorder playback
fgfs --fdm=acms --generic=file,in,1,,acms
+
diff --git a/Docs/README.protocol b/Docs/README.protocol
index 96c4aa55b..7e66858ba 100644
--- a/Docs/README.protocol
+++ b/Docs/README.protocol
@@ -1,81 +1,227 @@
-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 and placing it in the $FG_ROOT/data/Protocols
-directory.
-
-The definition of the protocol consists of variable separators, line separators,
-and chuncks of text.
-
-Each chunck defines:
-
- for ease of use
- the property tree node which provides the data
- the value type (needed for formatting)
- defines the actual piece of text which should be sent.
- it can include formatting options like:
-
- %s string
- %i integer (default)
- %f float
-
- an optionale 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 Celsius to degrees Fahrenheit).
+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.
-The output section also could define the variable separator and line separator.
-
-The separators 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:
-
-:
-:
-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_separator is placed between each variable, while the line_separator is
-placed at the end of each lot of variables.
-A simple protocol configuration file then could look something like the
-following:
+== file layout ================================================================
+
+A protocol file can contain either or both of and