Plan-zakalawe: Difference between revisions

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


Short term plans
=== GUI / renderer ===
 
* Adapt the 2D panel code to build Canvas nodes
 
=== GPS / FMS / Route-planning ===


== Areas ==
* 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)


General areas I'm working on, or planning to work on
* 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)


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


* Migrate PLIB GUI into our source tree, and convert to a set of custom OSG drawables
* 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)
** 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?


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


=== FGPositioned ===
== Post 2.12 Tasks ==


* 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)
=== Core properties and subsystems ===


=== GPS / FMS / Route-planning ===
* Re-write [[Reset & re-init|re-init]] to be a normal sim-startup
* USB-HID support, support for more HID devices (also see [https://code.google.com/p/flightgear-bugs/issues/detail?id=619 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.


* Extend the GPS code to support more flight-plan functions and en-route information
=== Navigation Data ===
** Climb/descent computations, based on some aircraft performance data
* Allow performance data to be specific per-aircraft
** Initially, basic information such as cruise speed, best climb rates, and so on
** Weight/balance tables
** Vspeeds computations


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


* Improve API based on feedback from aircraft authors!
=== 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


=== Miscellaneous ===
[[Category:Developer Plans]]
[[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