FG1000/development
Background
|
|
Status
Updated: 08/2020
| Note The PFD/MFD will increase your VRAM utilization by about 100MB/instance. |
Key features:
- Primary Flight Display (PFD). Fully functional and 99% complete vs. the real thing. (Alerts, ALT units and alternative HSI displays are the remaining pieces)
- Multi Function Display (MFD). Fully functional and 90% complete vs. the real thing. Includes moving map, navigation features, flightplan, traffic, engine information. .
- MFD and PFD can be displayed
- as part of an aircraft cockpit
- as a window within FlightGear
- on a separate window or monitor using FGQCanvas.
- GFC700 autopilot. Fully functional and integrated with the route manager, PFD and MFD. Includes all modes apart from VNV (vertical navigation to follow a flightplan) and BC (ILS back-course).
The following aircraft are available from the official hangar and use the FG1000:
- Cessna 182T (c182t)
- Diamond DA40 (da40)
- Piper J3 Cub (j3cub)
Next steps:
- Writing the remaining pages
- Styling the pages - making the iconography match Garmin exactly.
Page Status
This is the current status of the individual pages. Full progress bars indicate that they are functionally complete, though the iconography is not correct.
| Page | Reference | Status | Notes |
|---|---|---|---|
| Navigation Map | See Layers below | ||
| Traffic Map | Zoom controls unclear | ||
| Storm Scope | |||
| Weather Data Link | |||
| TAWS-B | |||
| Airport Information | Needs additional page of AOPA information, which we don't have | ||
| Intersection Information | |||
| NDB Information | |||
| VOR Information | |||
| User WPT Information | |||
| Trip Planning | |||
| Utility | |||
| GPS Status | |||
| XM Radio | |||
| System Status | |||
| Active Flight Plan | Viewing and editing of the active flight plan implemented. VNAV and the "wide view" not yet implemented | ||
| Flight Plan Catalog | |||
| Stored Flight Plan | |||
| Checklist | |||
| Nearest Airports | |||
| Nearest Intersections | |||
| Nearest NDB | |||
| Nearest VOR | |||
| Nearest User Waypoints | |||
| Nearest Frequencies | |||
| Nearest Airspaces |
This is the current status of the major functional elements
| Area | Status | Notes |
|---|---|---|
| Navigation - FMS | ||
| Softkeys | ||
| MENU key | ||
| NAV/COM | Volume controls to be added | |
| GPE Header |
Challenges
Performance
Nasal as such is fast, and compared with the cost of rendering the terrain, rendering a canvas display is fast on the GPU (you can test by rendering but not updating a canvas display), and unless you're doing something very inefficient, calculating a display but not writing it to the property tree is fast (you can test this by disabling the write commands). It's the property I/O which you need to structure well, and then canvas will run fast. And of course the complexity of your underlying simulation costs - if you run a thermal model underneath to get real temperature reading, it costs more than inventing the numbers. But that has nothing to do with canvas. [1]
it's a lot of work to code all these displays which someone has to do, but there's no reason to assume it'd be hopeless performance-wise.[2]
we need to be realistic here: The G1000 is a fairly significant piece of computer hardware that we're going to emulate. It's not going to be "free" particularly for those on older hardware that's already struggling. However, hopefully we can offload a chunk of the logic (route management, autopilot/flight director) to the core, and do things like offline generation of terrain maps to minimize the impact.[3]
Possible Work
Architectural TODO List
This is a short list of architectural improvements I've noted during development that need to be revisited:
- Use NavMap for MFD Navigation Map, DirectTo, Nearest, Information pages.
- Separate out the HSI, tapes from the PFD and make them generic MFD UI Elements
- Improve the performance of the maps, perhaps using a cache for queries, definitely by more aggressive clipping of the SlippyMap layers based on map size.
The layers table shown above mentions a few limitations and ideas, such as:
Nasal/Canvas
- <image> tag support for svg.nas (patch: Howto:Extend the Canvas SVG module)
- MapStructure: Allocating selectable ranges into Canvas groups
C++
- fix up projection issues, and adopt Gijs' projection handling code for the hard-coded PUI Map, to get rid of the standard Sanson-Flamsteed projection
- adding a profile view, probably in conjunction with terrain sampling
- using atlas code to generate heightmaps/topography
- adding ESRI shapefile support to the Canvas system
- adding PDF rendering support the Canvas system
- ↑ Thorsten Renk (Jul 4th, 2017). Re: [Flightgear-devel] RFD: FlightGear and the changing state of air navigation .
- ↑ Thorsten Renk (Jul 4th, 2017). Re: [Flightgear-devel] RFD: FlightGear and the changing state of air navigation .
- ↑ Stuart Buchanan (Jul 4th, 2017). Re: [Flightgear-devel] RFD: FlightGear and the changing state of air navigation .