Property tree
The Property Tree is FlightGear's central nervous system.
To make it easier, start FlightGear with the following command line
fgfs --httpd=5480
Then after a few moments open in a new window - http://localhost:5480
Introduction
When a simulation is running, all the variables such as position, speed, flaps, cabin lights, et all are calculated and manipulated through a property tree.
The "virtual" tree that runs the simulation appears much like a directory/file structure. eg:
/sim/aircraft = A333 /position/ /position/longitude-deg = '-122.3576677' (double) /position/latitude-deg = '37.61372424' (double) /position/altitude-ft = '28.24418581' (double) /position/altitude-agl-ft = '22.47049626' (double) /controls/seat/eject/initiate /controls/electric/APU-generator
Some of these variables are "calculated" within the sim, whilst others can be manipulated. Writing a variable is as easy as
/* Its my turn to play the sim */ set('/controls/seat/eject/initiate', 1)
The values can also be set from the httpd interface.
What makes FG powerful is that a new aircraft can easily be designed with its unique set of properties that somehow affect the simulation. The Aircraft model has an xml file of properties within the property tree.
This is why the property tree is not consitent with fixed variables, they are created dynamically, to represent a propeller plane vs Jumbo or even a "Caspian Sea Monster".
The property tree is read, written, accessed and manipulated in a variety of ways, such as
- internal compiled code within FG - the c/c++ code
- Nasal scripts - this is javascript like scripting with read/write to the property tree. This is the way most aircraft are implemented.
- sockets that are either in/out/bi - this allows send/recieve to the FG sim via sockets
- telnet interface - query and fly the plane on the command line
- html interface - fly the plane with a browser or an PDA
What makes multiplayer work for example is a set of variables from the tree are broadcasted across the network as Bytes eg height, pos, etc
For a motion simulator one would be interested in
Brandon to do this about gforce
Flight Dynamics Model (FDM)
FlightGear uses a few Flight Dynamics Models, such as
These flight dynamics model present themselves differently in the tree, different variables in diferent places. That is what an aircraft can be designed around.