This document describes how to invoke FlightGear's generic IO subsystem.
FlightGear has a fairly flexible generic IO subsystem that allows you
-to speak any supported protocol over any supported medium. The IO
+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, one per option.
+specify multiple entries if you like, one per command line option.
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=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
+ the base package.
+
+ params can be:
+ serial port communication: serial,dir,hz,device,baud,protocol
+ 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:
+
+ <?xml version="1.0"?>
+ <PropertyList>
+
+ <generic>
+ <output>
+ <seperator>\n</seperator>
+
+ <chunk>
+ <name>speed</name> <!-- for readabillity -->
+ <type>int</type> <!-- one of: bool,int,float,string -->
+ <format>V=%d</format> <!-- output format string -->
+ <node>/velocities/speed</node> <!-- location of the value -->
+ <offset>0.0</offset> <!-- add this to the value -->
+ <factor>1.0</factor> <!-- multiply by this value -->
+ </chunk>
+
+ <chunk>
+ ...
+ </chunk>
+
+ ...
+
+ </output>
+ </generic>
+ </PropertyList>
+
+
Serial Port Communication:
--nmea=serial,dir,hz,device,baud
--nmea=serial,out,0.5,COM1,4800
- Note that for unix varient you might use a device name like "/dev/ttyS0"
+ Note that for unix varients you might use a device name like "/dev/ttyS0"
Socket Communication:
example to replay your flight
- --native=file,in,10,flight1.fgfs
+ --native=file,in,10,flight1.fgfs --fdm=external
Moving Map Example:
Once both programs are running, the Atlas program should display
your current location. Atlas is a really nifty program with many
- neat optoins such as the ability to generate and use background
+ neat options such as the ability to generate and use background
bitmaps that show the terrain, cities, lakes, oceans, rivers, etc.
+
+
+HTTP Server Example
+
+ You can now interact with a running copy of FlightGear using your
+ web browser. You can view all the key internal variables and even
+ change the ones that are writable. If you have support in your
+ favorite [scripting] language for interacting with an http server,
+ you should be able to use this as a mechanism to interface your
+ script with FlightGear.
+
+ Start up fgfs with the --httpd=<port#> option:
+
+ For example:
+
+ fgfs --httpd=5500
+
+ Now point your web browser to:
+
+ http://host.domain.name:5500/
+
+ When a value is displayed, you can click on it to bring up a form
+ to assign it a new value.