Plan-zakalawe: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
 
(28 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 ===


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


* Create a property benchmark (reading / writing / tied properties / listeners)
* GPS Restructuring
* Create a prototype multi-threaded property implementation
** Break the C++ GPS into various discrete modules, which can be selected or combined from Nasal
** Track per-thread property state
** Bug-fix the various LNAV path controllers (DME arcs, DME intercepts)
** Synchronise property tree structure changes (adding / removing nodes)
** Make a VNAV module for FMS use (compute climb and descent profiles)
** Define synchronisation points between threads to update property data


=== 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?


<del>* Convert '2D' panel node to manage its own picking (removing the currently ugly hack for 2.5D panels)</del>
=== Instruments / displays ===
<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
* <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