Flightgear subsystems: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
Line 10: Line 10:


[[User:Callahanp/Flightgear and Simgear Code/Subsystems]]
[[User:Callahanp/Flightgear and Simgear Code/Subsystems]]
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:
* 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 communications
====Simgear Subsystem Groups====
The information below is intended to serve as a starting point for exploring code releated to these subsystems.
{{WIP}}
=====Subsystems - Managed by the Subsystem Manager=====
{| class="wikitable"
|-
! Subsystem Name !! Folder !! Class !! Description
|-
| ai-model || {{flightgear file|src/AIModel/AIManager.cxx}} || <FGAIManager> ||
|-
| aircraft-performance-db || {{flightgear file|src/AIModel/performancedb.cxx}}<br/>src/AIModel/performancedata.cxx || <PerformanceDB> ||
|-
| airport-dynamics || src/Airports/airportDynamicsManager.cxx || <AirportDynamicsManager> ||
|-
| ATC || src/ATC || see flightgear/src/ATC/atc_mgr.hxx ||
|-
| CanvasMgr, Canvas & CanvasGUI || {{flightgear file|src/Canvas/canvas_mgr.cxx}} ||
|-
| controls || src/Aircraft/controls.cxx || <FGControls> ||
|-
| dns || src/Network/DNSClient.cxx || <FGDNSClient> ||
|-
| environment || src/Environment/environment_mgr.cxx|| ||
|-
| ephemeris || src/Environment/ephemeris.cxx<br/>simgear/ephemeris/ephemeris.cxx  || <Ephemeris> ||
|-
| http || src/Network/HTTPClient.cxx  || <FGHTTPClient> ||
|-
| input-mouse || /src/Input || <FGMouserInput> ||
|-
| scenery || /src/Scenery || <scenery> <FGScenery> ||
|-
| view-manager || /src/Viewer || <FGViewMgr> ||
|-
| flight || ||
|-
| gui  || /src/GUI|| <NewGUI> || See [[PUI]]
|-
| history || ||
|-
| input  || /src/input || ||
|-
| kln89 || /src/Instrumentation/kln89 || || legacy GPS implementation, OD_Gauge based
|-
| lighting || ||
|-
| logger || src/Main/logger.cxx ||
|-
| model-manager  || /src/Model/modelmgr.cxx || ||
|-
| nasal  || {{flightgear file|/src/Scripting}} ||  <FGNasalSys> || scripting subsystem
|-
| realwx  || /src/Environment || ||
|-
| route-manager  || /src/Navaids || || [[Route manager]]
|-
| sound  || /src/Sound/soundmanager.cxx || <SGSoundManager> <FGSoundManager> ||
|-
| terrasync  || scripts/python/TerraSync/terrasync/main.py || ||
|-
| time  || /src/Time/TimeManager.cxx || <TimeManager> ||
|-
| traffic-manager  || /src/Traffic/TrafficMgr.cxx || ||
|}
=====Subsystems - Independently Managed=====
{| class="wikitable"
|-
! Subsystem Name !! Module !! Class Name!! Description
|-
| Add-Ons ||  src/Add-ons/  ||  ||
|-
| Cockpit ||  src/Cockpit/CockpitDisplayManager.cxx ||  ||
|-
| Events ||  src/Instrumentation/instrument_manager.cxx ||  ||
|-
| Embedded Resources || simgear/embedded_resources/EmbeddedResourceManager.cxx || ||
|-
| Instrument ||  src/Instrumentation/instrument_manager.cxx ||  ||
|-
| Magnetic Variance ||  src/Environment/magvarmanager.cxx  ||  ||
|-
| Multiplay ||  src/Multiplayer/multiplaymgr.cxx  ||  ||
|-
| Systems || src/Systems/system_mgr.cxx ||
|-
| Subsystems || simgear/Systems/SGSubsystemMgr.cxx<br/>simgear/structure/subsystem_mgr.cxx ||
|}
=====Subsystems - Unmanaged=====
{| class="wikitable"
|-
! Subsystem Name !! Folder or Module !! Classes !! Description
|-
| Aircraft ||  src/Aircraft ||  ||
|-
| Autopilot ||  src/Autopilot ||  || (FDM-interleaved)
|-
| Flight Dynamics Models ||  src/FDM ||  ||
|-
| Navigational Aids || /src/Navaids || || see also [[Navcache]]
|-
| Network || /src/Network<br/> Simgear/serial<br/>simgear/io<br/> scripts/python/FlightGear.py <br/> scripts/python/Terrasync folder ||
|-
| Properties || /src/Main/fg_props.cxx <br/> simgear/props/<br/>|| SGPropertyNode<br/>ChangeListener Classes<br/>SGCondition and sub-classes<br/>Easing Functions<br/>ExtendedPropertyAdapter<br/>PropertyBasedMgr<br/>PropertyInterpolationMgr<br/>See also flightgear/docs-mini/Nasal.html<br/>
|-
| Radio || /src/Radio ||
|-
| Systems || /src/Systems ||
|-
| Viewer || /src/Viewer ||
|}
936

edits

Navigation menu