Plan-zakalawe: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
m (http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg39018.html)
 
(22 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 (see [[Property threading]])
** 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 ===
** 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
** Initially, basic information such as cruise speed, best climb rates, and so on
** Weight/balance tables
** Vspeeds computations
** Minimum runway length would allow lots of filtering to be smarter, replacing various hard-coded guesses in the NavDisplay and GPS
 
=== NAV Display ===


* Improve API based on feedback from aircraft authors!
* Re-write [[Reset & re-init|re-init]] to be a normal sim-startup
* Tested support for custom symbols specified via properties
* 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.


=== Miscellaneous ===
=== Navigation Data ===


* 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
* Unify airport dynamics modelling of active runways with ILS model, to solve the conflicting ILS issue in a more realistic way.
* HUD configuration improvements


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


[[Category:Developer Plans]]
[[Category:Developer Plans]]
[[Category:Core development projects]]
[[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