20,741
edits
Line 80: | Line 80: | ||
The property tree is read, written, accessed and manipulated in a variety of ways, such as | The property tree is read, written, accessed and manipulated in a variety of ways, such as | ||
* startup arguments via <nowiki>--prop:/sim/foo=bar</nowiki> | |||
* XML files | |||
* internal compiled code within FG - the c/c++ code | * 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. | * [[Nasal]] scripts - this is javascript-like scripting with read/write to the property tree. This is the way most aircraft are implemented. | ||
* Using native protocols, implemented in C++ (see [https://gitorious.org/fg/flightgear/trees/next/src/Network $SG_SRC/Network]. [[Property Tree/Sockets]] | * Using native protocols, implemented in C++ (see [https://gitorious.org/fg/flightgear/trees/next/src/Network $SG_SRC/Network]. [[Property Tree/Sockets]] | ||
* Using the generic protocol, either in/out/bi - this allows send/receive to the FG sim via the [[Generic Protocol]] | * Using the generic protocol, either in/out/bi - this allows send/receive to the FG sim via the [[Generic Protocol]] | ||
* telnet interface - query and fly the plane on the command line or using a scripted session (see [[Telnet usage]]) | * telnet interface - query and fly the plane on the command line or using a scripted session (see [[Telnet usage]]) | ||
* html interface - access the property tree using a conventional web browser like firefox/safari or chrome | * html interface - access the property tree using a conventional web browser like firefox/safari or chrome | ||
* using the built in [[Property browser]] | |||
* using other GUI dialogs | |||
* using cockpit bindings | |||
* using joystick bindings etc | |||
So they can come from many places, thus there's no single source file where you'll find ALL properties/types. You will need to look at the corresponding subsystem/component. $FG_SRC/Network is the right pace to look for hardcoded protocols, make sure to also understand their inheritance (the interface being implemented). | |||
For example, multiplayer mode is accomplished by exchanging sets of variables from the tree (height, position, speed, etc). | For example, multiplayer mode is accomplished by exchanging sets of variables from the tree (height, position, speed, etc). | ||