Guest User

Untitled

a guest
Nov 7th, 2010
627
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.67 KB | None | 0 0
  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.  
  9. The general form of the command line option is as follows:
  10.  
  11. --protocol=medium,direction,hz,medium_options,...
  12.  
  13. protocol = { native, nmea, garmin, fgfs, rul, pve, ray, etc. }
  14. medium = { serial, socket, file, etc. }
  15. direction = { in, out, bi }
  16. hz = number of times to process channel per second (floating
  17. point values are ok.
  18.  
  19.  
  20. Generic Communication:
  21.  
  22. --generic=params
  23.  
  24. With this option it is possible to output a pre-configured
  25. ASCII string or binary sequence using a predefined separator.
  26. The configuration is defined in an XML file located in the
  27. Protocol directory of the base package.
  28.  
  29. params can be:
  30. serial port communication: serial,dir,hz,device,baud,protocol
  31. socket communication: socket,dir,hz,machine,port,style,protocol
  32. i/o to a file: file,dir,hz,filename,protocol
  33.  
  34. See README.protocol for how to define a generic protocol.
  35.  
  36.  
  37. Serial Port Communication:
  38.  
  39. --nmea=serial,dir,hz,device,baud
  40.  
  41. device = OS device name of serial line to be open()'ed
  42. baud = {300, 1200, 2400, ..., 230400}
  43.  
  44. example to pretend we are a real gps and output to a moving map application:
  45.  
  46. --nmea=serial,out,0.5,COM1,4800
  47.  
  48. Note that for unix variants you might use a device name like "/dev/ttyS0"
  49.  
  50.  
  51. Socket Communication:
  52.  
  53. --native=socket,dir,hz,machine,port,style
  54.  
  55. machine = machine name or ip address if client (leave empty if server)
  56. port = port, leave empty to let system choose
  57. style = tcp or udp
  58.  
  59. example to slave one copy of fgfs to another
  60.  
  61. fgfs1: --native=socket,out,30,fgfs2,5500,udp
  62. fgfs2: --native=socket,in,30,,5500,udp --fdm=external
  63.  
  64. This instructs the first copy of fgfs to send UDP packets in the
  65. native format to a machine called fgfs2 on port 5500.
  66.  
  67. The second copy of fgfs will accept UDP packets (from anywhere) on
  68. port 5500. Note the additional --fdm=external option. This tells
  69. the second copy of fgfs to not run the normal flight model, but
  70. instead set the FDM values based on an external source (the
  71. network in this case.)
  72.  
  73.  
  74. File I/O:
  75.  
  76. --garmin=file,dir,hz,filename
  77.  
  78. filename = file system file name
  79.  
  80. example to record a flight path at 10 hz:
  81.  
  82. --native=file,out,10,flight1.fgfs
  83.  
  84. example to replay your flight
  85.  
  86. --native=file,in,10,flight1.fgfs --fdm=external
  87.  
  88. You can make the replay from a file loop back to the beginning
  89. when it reaches the end of the file with the "repeat" flag:
  90.  
  91. --generic=file,in,20,flight.out,playback,repeat
  92.  
  93. With a numeric argument, FlightGear will exit after that number of repeats.
  94. --generic=file,in,20,flight.out,playback,repeat,5
  95.  
  96.  
  97. Moving Map Example:
  98.  
  99. Per Liedman has developed a moving map program called Atlas
  100. (atlas.sourceforge.net) The initial inspiration and much code came
  101. from Alexei Novikov.
  102.  
  103. The moving map supports NMEA format input either via network or
  104. via serial port. Either way will work, but this example
  105. demonstrates the use of a socket connection.
  106.  
  107. Start up fgfs with:
  108.  
  109. fgfs --nmea=socket,out,0.5,atas-host-name,5500,udp
  110.  
  111. Start up the Atlas program with:
  112.  
  113. Atlas --udp=5500 --fgroot=path-to-fg-root --glutfonts
  114.  
  115. Once both programs are running, the Atlas program should display
  116. your current location. Atlas is a really nifty program with many
  117. neat options such as the ability to generate and use background
  118. bitmaps that show the terrain, cities, lakes, oceans, rivers, etc.
  119.  
  120.  
  121. HTTP Server Example
  122.  
  123. You can now interact with a running copy of FlightGear using your
  124. web browser. You can view all the key internal variables and even
  125. change the ones that are writable. If you have support in your
  126. favorite [scripting] language for interacting with an http server,
  127. you should be able to use this as a mechanism to interface your
  128. script with FlightGear.
  129.  
  130. Start up fgfs with the --httpd=<port#> option:
  131.  
  132. For example:
  133.  
  134. fgfs --httpd=5500
  135.  
  136. Now point your web browser to:
  137.  
  138. http://host.domain.name:5500/
  139.  
  140. When a value is displayed, you can click on it to bring up a form
  141. to assign it a new value.
  142.  
  143.  
  144. ACMS flight data recorder playback
  145.  
  146. fgfs --fdm=acms --generic=file,in,1,<path_to_replay_file>,acms
Advertisement
Add Comment
Please, Sign In to add comment