]> git.mxchange.org Git - flightgear.git/blob - docs-mini/README.IO
Minor tweak.
[flightgear.git] / docs-mini / README.IO
1 This document describes how to invoke FlightGear's generic IO subsystem.
2
3 FlightGear has a fairly flexible generic IO subsystem that allows you
4 to "speak" any supported protocol over any supported medium.  The IO
5 options are configured at runtime via command line options.  You can
6 specify multiple entries if you like, one per command line option.
7
8 The general form of the command line option is as follows:
9
10     --protocol=medium,direction,hz,medium_options,...
11
12     protocol = { native, nmea, garmin, fgfs, rul, pve, ray, etc. }
13     medium = { serial, socket, file, etc. }
14     direction = { in, out, bi }
15     hz = number of times to process channel per second (floating
16          point values are ok.
17
18 Serial Port Communication:
19
20     --nmea=serial,dir,hz,device,baud
21
22     device = OS device name of serial line to be open()'ed
23     baud = {300, 1200, 2400, ..., 230400}
24
25     example to pretend we are a real gps and output to a moving map application:
26
27     --nmea=serial,out,0.5,COM1,4800
28
29     Note that for unix varients you might use a device name like "/dev/ttyS0"
30
31 Socket Communication:
32
33     --native=socket,dir,hz,machine,port,style
34
35     machine = machine name or ip address if client (leave empty if server)
36     port = port, leave empty to let system choose
37     style = tcp or udp
38
39     example to slave one copy of fgfs to another
40
41     fgfs1:  --native=socket,out,30,fgfs2,5500,udp
42     fgfs2:  --native=socket,in,30,,5500,udp --fdm=external
43
44     This instructs the first copy of fgfs to send UDP packets in the
45     native format to a machine called fgfs2 on port 5500.
46
47     The second copy of fgfs will accept UDP packets (from anywhere) on
48     port 5500.  Note the additional --fdm=external option.  This tells
49     the second copy of fgfs to not run the normal flight model, but
50     instead set the FDM values based on an external source (the
51     network in this case.)
52
53
54 File I/O:
55
56     --garmin=file,dir,hz,filename
57
58     filename = file system file name
59
60     example to record a flight path at 10 hz:
61
62     --native=file,out,10,flight1.fgfs
63
64     example to replay your flight
65
66     --native=file,in,10,flight1.fgfs --fdm=external
67
68
69 Moving Map Example:
70
71     Per Liedman has developed a moving map program called Atlas
72     (atlas.sourceforge.net) The initial inspiration and much code came
73     from Alexei Novikov.
74
75     The moving map supports NMEA format input either via network or
76     via serial port.  Either way will work, but this example
77     demonstrates the use of a socket connection.
78
79     Start up fgfs with:
80
81         fgfs --nmea=socket,out,0.5,atas-host-name,5500,udp
82
83     Start up the Atlas program with:
84
85         Atlas --udp=5500 --fgroot=path-to-fg-root --glutfonts
86
87     Once both programs are running, the Atlas program should display
88     your current location.  Atlas is a really nifty program with many
89     neat options such as the ability to generate and use background
90     bitmaps that show the terrain, cities, lakes, oceans, rivers, etc.
91
92
93 HTTP Server Example
94
95     You can now interact with a running copy of FlightGear using your
96     web browser.  You can view all the key internal variables and even
97     change the ones that are writable.  If you have support in your
98     favorite [scripting] language for interacting with an http server,
99     you should be able to use this as a mechanism to interface your
100     script with FlightGear.
101
102     Start up fgfs with the --httpd=<port#> option:
103
104     For example:
105
106         fgfs --httpd=5500
107
108     Now point your web browser to:
109
110         http://host.domain.name:5500/
111
112     When a value is displayed, you can click on it to bring up a form
113     to assign it a new value.