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 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,... protocol = { native, nmea, garmin, fgfs, rul, pve, ray, etc. } medium = { serial, socket, file, etc. } direction = { in, out, bi } hz = number of times to process channel per second (floating point values are ok. Serial Port Communication: --nmea=serial,dir,hz,device,baud device = OS device name of serial line to be open()'ed baud = {300, 1200, 2400, ..., 230400} example to pretend we are a real gps and output to a moving map application: --nmea=serial,out,0.5,COM1,4800 Note that for unix varients you might use a device name like "/dev/ttyS0" Socket Communication: --native=socket,dir,hz,machine,port,style machine = machine name or ip address if client (leave empty if server) port = port, leave empty to let system choose style = tcp or udp example to slave one copy of fgfs to another fgfs1: --native=socket,out,30,fgfs2,5500,udp fgfs2: --native=socket,in,30,,5500,udp --fdm=external This instructs the first copy of fgfs to send UDP packets in the native format to a machine called fgfs2 on port 5500. The second copy of fgfs will accept UDP packets (from anywhere) on port 5500. Note the additional --fdm=external option. This tells the second copy of fgfs to not run the normal flight model, but instead set the FDM values based on an external source (the network in this case.) File I/O: --garmin=file,dir,hz,filename filename = file system file name example to record a flight path at 10 hz: --native=file,out,10,flight1.fgfs example to replay your flight --native=file,in,10,flight1.fgfs --fdm=external Moving Map Example: Per Liedman has developed a moving map program called Atlas (atlas.sourceforge.net) The initial inspiration and much code came from Alexei Novikov. The moving map supports NMEA format input either via network or via serial port. Either way will work, but this example demonstrates the use of a socket connection. Start up fgfs with: fgfs --nmea=socket,out,0.5,atas-host-name,5500,udp Start up the Atlas program with: Atlas --udp=5500 --fgroot=path-to-fg-root --glutfonts Once both programs are running, the Atlas program should display your current location. Atlas is a really nifty program with many neat options such as the ability to generate and use background bitmaps that show the terrain, cities, lakes, oceans, rivers, etc.