Jump to: navigation, search

User:Callahanp/Flightgear and Simgear Code/Subsystems

1,962 bytes added, 04:27, 22 October 2019
no edit summary
Major changes to this area are coming.
[[User:Callahanp/Flightgear and Simgear Code/Subsystems |Subsystems]] is intended as a supplement to [ From Command Line to Holding_Short], providing additional details on the subsystem manager, the subsystem factory and the individual subsystems. It's focus is on the high level description of the subsystems, their main data and control flows and relationships with other parts of flightgear.
== Factory Managed Subsystems ==
* Managed and accessed through simgear's SGSubsystemMgr
== Component Managed Subsystems ==
* Subsystems managed by an independent Component Manager
== Unmanaged Subsystems ==
* Subsystems without a manager at all
== The Factory ==
== The Manager ==
== Subsystem Index ==
=== Subsystem 1 ===
Notes from 2018.
As of Flightgear 2018.2.1, the material below is obsoleted by recent changes in the way subsystems and groups of subsystems are managed.
What it's intended to cover is partially covered in
The Flightgear and Simgear codebase can be broken down into subsystems. Some of these are Managed and accessed through simgear's SGSubsystemMgr. Others have their own componentManager independent of SGSubsystemMgr. Still others have no Manager function per se.
The lists below give starting points for exploration of the various subsystems in Flightgear/Simgear. As a person new to the Flightgear projects codebase, I think its important to understand the code in the following areas in some detail:. It is also important to know that as of March 2018 subsystems and their management was under active discussion on the mailing list. The result of these discussions is a change in the way subsystems are created, initialized, bound and deleted. Work in this area is significant and will have an impact on both testing and the HLA/RTI or other parallelization efforts.
* [ Edward d'Auvergne's e-mail on testing]
** Factory Methods
** globals, constructors, init, bind, Incremental Init, update, sub-system dependencies
** syncronizing a global property tree with local property trees
* FGPrecipitationMgr
* FGTrafficMgr
* How Sub-Systems are managed
* Subsystems that are not managed
* How the main event loop works
* How properties are set and how their values are accessed. This includes understanding the concept of "tied" properties.
* How I/O works, especially I/O used for communicationsover HTTP or Telnet.
===='''Simgear Subsystem Groups===='''
The information below is intended to serve as a starting point for exploring code releated to these subsystems.
====='''Subsystems - Managed by the Subsystem Manager====='''
{| class="wikitable"
| gui || /src/GUI|| <NewGUI> || See [[PUI]]
| history || |||| tracks position and appends it to a buffer (used by the map dialog)
| input || /src/input || ||
| sound || /src/Sound/soundmanager.cxx || <SGSoundManager> <FGSoundManager> ||
| terrasync || scripts[[$SG_SRC]] {{simgear file|simgear/pythonscene/TerraSynctsync/terrasync/ cxx}} || <SGTerraSync> || not an actual fgfs subsystem but a Python script(terrasync in sim <ref></ref>
| time || /src/Time/TimeManager.cxx || <TimeManager> ||
====='''Subsystems - Independently Managed====='''
{| class="wikitable"
====='''Subsystems - Unmanaged=====''' 
{| class="wikitable"

Navigation menu