Plan-zakalawe: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
m (Robot: Cosmetic changes)
 
(35 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)
 
* 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)


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


* Investigate if caching cartesian positions on FGPositioned is a good space versus time tradeoff
* 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)
* Remove the <tt>_list</tt> classes as they become obsolete.
** Many of the list classes are gone now - the major remaining piece is the nav_list, which is used to support frequency-based lookups of radio navaids.


=== GPS / FMS / Route-planning ===
=== Instruments / displays ===
 
* <del>Port NavDisplay to use the Canvas internally</del> (see [[NavDisplay]]) {{Progressbar|70}}
 
== Post 2.12 Tasks ==
 
=== Core properties and subsystems ===


* Extend the GPS code to support more flight-plan functions and en-route information
* Re-write [[Reset & re-init|re-init]] to be a normal sim-startup
** Climb/descent computations, based on some aircraft performance data
* USB-HID support, support for more HID devices (also see [https://code.google.com/p/flightgear-bugs/issues/detail?id=619 issue #619])
* Add proper support for special leg types, ideally equivalent to [[ARINC-424]] path-terminators. This implies support for [[DME arc]], heading to fix, heading until crossing radial, holding pattern and assorted other special leg behaviours.
** Add a hidapi backend to event-input code
* Create a new generic 3D instrument for the KLN89b, using Nasal and the updated GPS code
** Write a loader to use existing joystick configs with event-input
* Create a generic 3D instrument modelling a Delco Carousel INS, using the GPS as the backend
** Remove PLIB JS dependency
* Investigate creating a special camera/view mode and input context so a GPS, FMS or other 3D instrument can occupy most of the screen, and intercept key presses. GUI dialogs must solve the keyboard input issue already. Imagining that a click on the instrument animates the camera to a 'face on' view, and click outside the instrument returns to the previous view point.
* Migrate Nasal geo.Coord to be implemented in C++, and hence agree with SGGeodesy functions for courses, distances and so on.
* Add GPS precision approach support
** Define an on-disk format for defining approaches. This will likely be similar to the navdata.org / PIC-767 XML format
** Add approach and missed-approach modes to the GPS code
* Extend the route manager to allow basic flight-planning
** Generate a route using a search: VOR-VOR, airways or GPS direct.
** Thomas Forster has generic routing code for this
* 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 ===
=== Navigation Data ===


* Prototype a Nasal canvas API (similar to HTML5 canvas), but with support for retained primitives.
* Unify airport dynamics modelling of active runways with ILS model, to solve the conflicting ILS issue in a more realistic way.
* Get primitives rendering into the existing scene
* Write a nasal driver, with appropriate C++ glue, to query waypoints


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


* Add realistic Mach computation to the airspeed indicator, so it can be used as Mach-meter too, and avoid panels reading <tt>/velocities/mach</tt> directly.
[[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