Plan-zakalawe: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
No edit summary
 
(26 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)
 
=== 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