Plan-zakalawe: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
 
(25 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Task List ==
== Task List ==


Short term plans
=== GUI / renderer ===


== Areas ==
* Adapt the 2D panel code to build Canvas nodes


General areas I'm working on, or planning to work on
=== GPS / FMS / Route-planning ===


* Make an 'IRS' instrument which models an inertial reference platform (partially done, but the simulation of the IRS needs to be changed to an error-walk model instead of attempting actually integration of acceleration values, which is too inaccurate at our simulation rate without sophisticated integrators)


=== Core properties and subsystems ===
* GPS Restructuring
** Break the C++ GPS into various discrete modules, which can be selected or combined from Nasal
** Bug-fix the various LNAV path controllers (DME arcs, DME intercepts)
** Make a VNAV module for FMS use (compute climb and descent profiles)


* Create a property benchmark (reading / writing / tied properties / listeners)
Using the above, more real-world GPS and FMC units can be created with Nasal to combine C++ core modules.
* Create a prototype multi-threaded property implementation
** Track per-thread property state
** Synchronise property tree structure changes (adding / removing nodes)
** Define synchronisation points between threads to update property data


=== GUI / renderer ===
* Create a generic Boeing CDU instrument, using the existing keypad model, but with the Canvas for the content. Various people have done parts of this, it's mostly a collating and refactoring job to get a solution that will scale to the 747-400, 777 and 737NG. Once that's done should discuss with Scott about any Airbus MCDU overlap (but likely not much is possible)


* Migrate PLIB GUI into our source tree, and convert to a set of custom OSG drawables
=== Instruments / displays ===
** Convert event handling code to use OSG event adapters natively
** Ensure all state changes occur via update callbacks, and hence mark the GUIs as static
** Replace puValue with an SGProperty? i.e allow widgets to be directly bound to a property node
** Convert all text display to use osgText drawables
** Make layout support native to widgets?


* <del>Convert '2D' panel node to manage its own picking (removing the currently ugly hack for 2.5D panels)</del>
* <del>Port NavDisplay to use the Canvas internally</del> (see [[NavDisplay]]) {{Progressbar|70}}
* <del>Make the pure 2D panel am FGPanelNode attached to the GUI camera</del>
* Convert 2D panel text to use osgText


* Clean up renderer scene (especially the GUI camera children) once all its children are nodes which manage their own picking
== Post 2.12 Tasks ==


=== FGPositioned ===
=== Core properties and subsystems ===
 
* Re-investigate caching data in a binary format to accelerate startup time (avoid reading nav.dat, apt.dat on launch, and scenery airport data repeatedley)
** Need to cache stat() values for scenery airport data, but SimGear contains code for this now, and this will make the map dialog and GPS function better, since the first access of airport runways won't be as slow.
** Decide persistence scheme for spatial data, probably an 'index string', three bits per octree layer. For a 64-bit value this would give 21 octree levels, which is ample for the purposes of loading.
** Hook the min / max type ranges on filters to avoid excessive loads
** Don't worry about un-loading in the first instance, since the actual memory usage is not a concern (given that the current sim loads all items permanently!)
 
=== GPS / FMS / Route-planning ===
 
* Extend the GPS code to support more flight-plan functions and en-route information
** Climb/descent computations, based on some aircraft performance data
** Compute distances along the route path, including as offsets from any waypoint (this will allow aircraft authors to compute sane top-of-climb / top-of-descent locations, for example)


* Allow performance data to be specific per-aircraft
* Re-write [[Reset & re-init|re-init]] to be a normal sim-startup
** Initially, basic information such as cruise speed, best climb rates, and so on
* USB-HID support, support for more HID devices (also see [https://code.google.com/p/flightgear-bugs/issues/detail?id=619 issue #619])
** Weight/balance tables
** Add a hidapi backend to event-input code
** Vspeeds computations
** Write a loader to use existing joystick configs with event-input
** Minimum runway length would allow lots of filtering to be smarter, replacing various hard-coded guesses in the NavDisplay and GPS
** Remove PLIB JS dependency
* Migrate Nasal geo.Coord to be implemented in C++, and hence agree with SGGeodesy functions for courses, distances and so on.


=== NAV Display ===
=== Navigation Data ===


* Improve API based on feedback from aircraft authors!
* Unify airport dynamics modelling of active runways with ILS model, to solve the conflicting ILS issue in a more realistic way.
* Tested support for custom symbols specified via properties


=== Miscellaneous ===
=== Data / deployment ===
* Enable persistent cache for TerraSync stamps
* Make libSvn replacement code enabled by default (and remove libsvn / libapr from builds)
* Improve sync reporting so finalize-position can wait on TerraSync tile sync
* Make various data elements synced over SVN - at least ATC chatter, AI models and traffic, and different texture sets (DDS, high-res, low-res)
* Once sim re-init is possible, enable aircraft switching and hence build a UI for the aircraft package manager code


* command to load a property-tree XML from a web-service (TCP host + port). Initially to be sued to dynamically retrieve a server list from a server
[[Category:Developer Plans]]
* HUD configuration improvements
[[Category:Core development projects]]

Latest revision as of 18:18, 12 May 2014

Task List

GUI / renderer

  • Adapt the 2D panel code to build Canvas nodes

GPS / FMS / Route-planning

  • Make an 'IRS' instrument which models an inertial reference platform (partially done, but the simulation of the IRS needs to be changed to an error-walk model instead of attempting actually integration of acceleration values, which is too inaccurate at our simulation rate without sophisticated integrators)
  • GPS Restructuring
    • Break the C++ GPS into various discrete modules, which can be selected or combined from Nasal
    • Bug-fix the various LNAV path controllers (DME arcs, DME intercepts)
    • Make a VNAV module for FMS use (compute climb and descent profiles)

Using the above, more real-world GPS and FMC units can be created with Nasal to combine C++ core modules.

  • Create a generic Boeing CDU instrument, using the existing keypad model, but with the Canvas for the content. Various people have done parts of this, it's mostly a collating and refactoring job to get a solution that will scale to the 747-400, 777 and 737NG. Once that's done should discuss with Scott about any Airbus MCDU overlap (but likely not much is possible)

Instruments / displays

  • Port NavDisplay to use the Canvas internally (see NavDisplay) 70}% completed

Post 2.12 Tasks

Core properties and subsystems

  • Re-write re-init to be a normal sim-startup
  • USB-HID support, support for more HID devices (also see issue #619)
    • Add a hidapi backend to event-input code
    • Write a loader to use existing joystick configs with event-input
    • Remove PLIB JS dependency
  • Migrate Nasal geo.Coord to be implemented in C++, and hence agree with SGGeodesy functions for courses, distances and so on.

Navigation Data

  • Unify airport dynamics modelling of active runways with ILS model, to solve the conflicting ILS issue in a more realistic way.

Data / deployment

  • Enable persistent cache for TerraSync stamps
  • Make libSvn replacement code enabled by default (and remove libsvn / libapr from builds)
  • Improve sync reporting so finalize-position can wait on TerraSync tile sync
  • Make various data elements synced over SVN - at least ATC chatter, AI models and traffic, and different texture sets (DDS, high-res, low-res)
  • Once sim re-init is possible, enable aircraft switching and hence build a UI for the aircraft package manager code