FG1000: Difference between revisions

Jump to navigation Jump to search
7,130 bytes added ,  8 May 2019
+- Template:Cite web instead of Template:PDF Link, which was only used on this page and defaulted to page 190 of the Garmin G1000 Pilot’s Guide for Cessna Nav III, Rev. A
(+- Template:Cite web instead of Template:PDF Link, which was only used on this page and defaulted to page 190 of the Garmin G1000 Pilot’s Guide for Cessna Nav III, Rev. A)
(46 intermediate revisions by 5 users not shown)
Line 16: Line 16:
== Current Status ==
== Current Status ==


24/02/2018:
21/02/2019:
* A very basic PFD is available with horizon, compass rose, altimeter, speed tape.
* PFD is largely complete. NRST, ALT units and alternative units still to implement.
* Initial implementation of the MFD is available on git/next.  It is integrated with the [[Route Manager|route manager]], GPS and the generic NAV/COM radios.  It displays engine information from a single piston engine, and can be used as an EFB.
* MFD is functional, and now includes display and editing of the current flightplan, along with moving map, engine information.
* MFD and PFD can be displayed as a GUI window under Debug menu or added to an aircraft with the GDU-1045 model as part of a 3D cockpit.
* MFD and PFD can be displayed as a GUI window under Debug menu or added to an aircraft with the GDU-1045 model as part of a 3D cockpit.  
* GFC700 autopilot is integrated and includes all modes apart from VNV (vertical navigation to follow a flightplan) and BC (ILS back-course).
* A reference implementation is available for the Cessna 182T https://github.com/HHS81/c182s/tree/C182T


There's still a huge number of pages to write, and the pages around route planning will likely be particularly challenging, but it should be far faster now these blocks are in place. .  If anyone is interested in creating a specific page, please also get in touch with Stuart.  The various ''Nearest... and ...Information'' pages should be quite easy to do based on the pages that have been written already.  See the Design Notes for details.
There's still a number of pages to write, and the more complex pages around route planning will likely be particularly challenging, but it should be far faster now these blocks are in place.  See the Design Notes for details.


Next steps:
Next steps:
* Writing the remaining (large) number of pages
* Writing the remaining pages
* Complete the PFD function
* Styling the pages - making the iconography match Garmin exactly.
* Styling the pages - making the iconography match Garmin exactly.


=== Gallery ===
=== Gallery ===
<gallery mode=packed widths=230px heights=230px>
<gallery mode=packed widths=230px heights=230px>
Fg1000 mfd.jpg|PUI-canvas FG1000 early prototype using PUI dialog to speed up development (11/2017)
PFD 20180406.png|FG1000 PFD showing inset map, current wind data, HSI with GPS bearing, active flightplan list
Fg1000-pdf.png|Screenshot showing a [[Canvas]] GUI dialog with an embedded FG1000 PFD (early version from 03/2018)
MFD 20180406.png|FG1000 MFD with Cessna 182T Engine Information System (EIS), and Active Flightplan
Fg1000-pfd-with-inset-map.png|[[FG1000]] screenshot showing the new inset map added in 03/2019
FG1000_Checklist_MFD_page.png|FG1000 MFD with Checklist page displayed
</gallery>
</gallery>


Line 47: Line 48:
* Use the RANGE knob to zoom map views in/out.
* Use the RANGE knob to zoom map views in/out.


===MFD===
* Artificial horizon, compass rose, altimeter and airspeed indicator are all hopefully obvious!
* HSI can display NAV1, NAV2, GPS information (press the CDI softkey)
* Wind information (press PFD->WIND then select one of the options for display)
* Bearings to NAV1, NAV2, GPS (press PFD then BRG1/BRG2 to cycle through the options)
* Inset Map (Press INSET softkey)
* Active Flight Plan (press FPL when there is an active flightplan to display)
* DirectTo GPS (press DTO)
* Transponder (press XPDR)


Implemented function:
===MFD===
 
PFD:
* Basic artificial horizon, compass rose, altimeter and airspeed indicator
 
MFD:
* There is a two channel NAV/COM with an active and standby frequency and automatic ID of NAV frequencies at the top of the UI.  They all integrate with the standard properties, so should work automatically with most aircraft.
* There is a two channel NAV/COM with an active and standby frequency and automatic ID of NAV frequencies at the top of the UI.  They all integrate with the standard properties, so should work automatically with most aircraft.
* If you have a frequency highlighted in any of the pages (e.g. WPT - AIRPORT INFORMATION) press the ENT key to load it into the standby NAV/COM frequency as appropriate.
* If you have a frequency highlighted in any of the pages (e.g. WPT - AIRPORT INFORMATION) press the ENT key to load it into the standby NAV/COM frequency as appropriate.
* To set up a GPS Direct To route:
* To set up a GPS Direct To route:
** Press the DTO button (D with an arrow through it on the right side of the panel, below the word "PAN").  This will bring up a Direct To window, allowing you to enter the ID of an airport, Fix etc. to navigate to.
** Press the DTO button (D with an arrow through it on the right side of the panel, below the word "PAN").  This will bring up a Direct To window, allowing you to enter the ID of an airport, Fix etc. to navigate to.
** You can enter the ID in one of two ways:
** You can enter the ID in one of three ways:
*** Scroll the FMS knob backwards to bring up a sub-menu of waypoints categories (FPL, NRST, RECENT, USER, AIRWAY).  Use the inner FMS knob to scroll between the different categories, and the outer FMS knob to select a specific item.   
*** Scroll the FMS knob backwards to bring up a sub-menu of waypoints categories (FPL, NRST, RECENT, USER, AIRWAY).  Use the inner FMS knob to scroll between the different categories, and the outer FMS knob to select a specific item.   
*** Scroll the FMS knob forwards to enter an ID manually using the FMS knob.  Use the outer FMS knob to move to the next poisition in the ID.   
*** Scroll the FMS knob forwards to enter an ID manually using the FMS knob.  Use the outer FMS knob to move to the next poisition in the ID.
*** Use multikey support to type in the ID using the keyboard - type ":ms" followed by the ID.  This is by far the fastest method!
** Once you've got an ID, press ENT which will load details into the window and highlight the ACTIVATE button.
** Once you've got an ID, press ENT which will load details into the window and highlight the ACTIVATE button.
** Press ENT once more to load the Direct-to into the GPS and activate it.
** Press ENT once more to load the Direct-to into the GPS and activate it.
* To view airport information, select the WPT - AIRPORT INFORMATION page.  Use the outer FMS knob to move between the AIRPORT, RUNWAYS and FREQUENCY boxes, and the inner FMS to edit the airport ID, scroll through available runways, or highlight a frequency.
* To view airport information, select the WPT - AIRPORT INFORMATION page.  Use the outer FMS knob to move between the AIRPORT, RUNWAYS and FREQUENCY boxes, and the inner FMS to edit the airport ID, scroll through available runways, or highlight a frequency.
* To edit the current flightplan, press the FPL page, then press the CRSR and enter waypoints for DTO above.
===GFC700 Autopilot===
The GFC700 autopilot is a two axis autopilot with independent lateral and vertical modes.  The default later/vertical modes are ROL and PIT, which hold the current roll and pitch respectively.
If installed on the aircraft, the GFC700 autopilot is enabled by pressing any of the buttons on the bottom left of the PFD/MFD fascia:
* AP enables/disables autopilot
* FD enables a Flight Director mode, displaying control bars to follow manually.  Note that this button is disabled when the autopilot is enabled.
* HDG enables a heading mode, tracking the blue heading bug.  Use the HDG knob on the PFD to set.
* VS enables Vertical Speed hold.  Current target is displayed at the top of the PFD.  It may be adjusted by using NOSE UP / NOSE DN.
* ALT enables Altitude Hold, which holds the current altitude.
* GA enables Go Around, which sets ROL to 0 and PIT to 7 degrees nose up.
* NAV enables NAV mode.  The navigation source depends on what the CDI is set to on the PFD.  Currently this is only implemented for GPS.
* APR enables Approach mode for both vertical and lateral GPS or ILS approaches.  Will use the currently selected CDI source.
* VNV enables vertical NAV mode (not yet implemented)
* FLC enables Flight Level Change, where the autopilot will maintain the current airspeed by pitch.  NOSE UP / NOSE DN is used to set the target airspeed, which is displayed at the top of the PFD, and on the airspeed tape.
* BC enables Back Course mode (not yet implemented)
Buttons toggle modes on/off, defaulting to ROL for lateral and PIT for vertical.  The current pitch setting in PIT mode can be adjusted by using the NOSE UP and NOSE DN buttons.
In PIT/VS/FLC mode, Selected Altitude Capture mode (ALTS) is armed, targetting the current altitude bug.  Once the aircraft gets within 200ft of the selected altitude the autopilot will automatically transition to ALTS and then ALT mode to track that altitude.  Note that once the altitude is fixed in ALTS mode changing the altitude bug will not change the target altitude.
(Control Wheel Steering (CWS) can be used to set new ROL/PIT targets, but is not yet implemented)
===Multikey Support===
To improve usability, the FG1000 also supports multikey.  If installed on the aircraft (aircraft developers need to include Aircraft/Instruments-3d/FG1000/fg1000-multikey.xml), the following keys are available.
* ":p" controls the PFD
** 1- 12 selects the softkeys
** s allows you to use the keyboard to enter text directly into the PFD, e.g. when entering an airport
* ":m" controls the MFD
** 1-12 selects the softkeys
** a selects the Airport Information page
** c selects the Checklists page
** f selects the Flightplan page
** m selects the Navigation Map page
** n selects the Nearest Airports page
** s allows you to use the keyboard to enter text directly into the PFD, e.g. when entering an airport
** t selects the Traffic Map page


== Aircraft Installation ==
== Aircraft Installation ==
Line 79: Line 126:
for each PFD, MFD etc.  You must only used one of each <device-number> value,
for each PFD, MFD etc.  You must only used one of each <device-number> value,
though you can mix and match the GDU models.
though you can mix and match the GDU models.
The different GDU models are as follows:
* GDU-1040 - No autopilot controls
* GDU-1044B - autopilot controls without VNAV
* GDU-1045 - autopilot controls with VNAV
=== Include the GFC700 autopilot (optional)===
If using the 1044B or 1045 GDU, the GFC700 autopilot can be incorporated by adding the following to under /sim/systems
<syntaxhighlight lang="xml">
<autopilot>
      <path>Aircraft/Instruments-3d/FG1000/GFC700.xml</path>
</autopilot>
</syntaxhighlight>
The autopilot has been tuned for the Cessna 182, so may not be correct for light jets.


=== Load the Interfaces to provide data ===
=== Load the Interfaces to provide data ===
Line 92: Line 156:
<syntaxhighlight lang="nasal">
<syntaxhighlight lang="nasal">
var nasal_dir = getprop("/sim/fg-root") ~ "/Aircraft/Instruments-3d/FG1000/Nasal/";
var nasal_dir = getprop("/sim/fg-root") ~ "/Aircraft/Instruments-3d/FG1000/Nasal/";
io.load_nasal(nasal_dir ~ 'Interfaces/GenericInterfaceController.nas', "fg1000");
var interfaceController = fg1000.GenericInterfaceController.getOrCreateInstance();
var interfaceController = fg1000.GenericInterfaceController.getOrCreateInstance();
interfaceController.start();
interfaceController.start();
Line 106: Line 172:
This is the Engine Information System and displays on the left side of the MFD.
This is the Engine Information System and displays on the left side of the MFD.


There is a generic EIS provided
A simply EIS for the Cessna 182T is provided.  For other aircraft you will need to create your own.  The simplest way to do this is
(see FG1000/Nasal/EIS, and FG1000/MFDPages/EIS.svg) that is intended to match
 
a Cessna 172If you need something different, you should create your own
# Copy Aircraft/Instruments-3d/FG1000/EIS into your aircraft Nasal directory.  Re-name EIS-c182t.nas to something sensible (e.g. EIS-[aircraft].nas).  Don't forget to rename the class itself!
EIS class and SVG file.
# Copy one of the EIS .svg files from Aircraft/Instruments-3d/FG1000/MFDPages into your aircraft Nasal.  Modify it as required, noting the names of objects and how they map to the EIS.nas file.
# Edit the SVG and EIS-[aircraft].nas as appropriate. In particular note that the Fuel submenu is used to set the contents of the fuel tanks manually, with a fuel totalizer approach.
# Copy Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/GenericEISPublisher.nas into your Nasal directory, and rename it (e.g. [aircraft]EISPublisher.nas.  Don't forget to rename the class itself! Modify it to publish the correct set of properties to EmesaryNote that for multiple engine aircraft you need to modify the publish() method.
# Copy Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/GenericInterfaceController.nas into your Nasal directory, and rename it (e.g. [aircraft]InterfaceController.nas).  Modify it to refer to your new [aircraft]EISPublisher.
# Finally, modify whatever Nasal you use to load the FG1000 to pass in the new EIS class and SVG file. Note that you need to load the EIS Controller, style and Options classes as well.
 
This is what your Nasal file may look like at the end:
 
<syntaxhighlight lang="nasal">
# Load custom Interface controller, which will refer to the EISPublisher.
io.load_nasal('AircraftInterfaceController.nas');
var interfaceController = AircraftInterfaceController.getOrCreateInstance();
interfaceController.start();
 
# Load the custom EIS display
io.load_nasal('EIS.nas', "eis");
io.load_nasal('EISController.nas', "eis");
io.load_nasal('EISStyles.nas', "eis");
io.load_nasal('EISOptions.nas', "eis");
var EIS_Class = eis.EIS;
 
# Create the FG1000 using custom EIS
var fg1000system = fg1000.FG1000.getOrCreateInstance(EIS_Class:EIS_Class, EIS_SVG:"Nasal/EIS.svg);
</syntaxhighlight>
 
=== Add multikey support ===
Include <code>Aircraft/Instruments-3d/FG1000/fg1000-multikey.xml</code> in your -set.xml file to support multikey. 
 
<syntaxhighlight lang="xml">
  <input>
    <keyboard n="0">
      <multikey include="Aircraft/Instruments-3d/FG1000/fg1000-multikey.xml"/>
    </keyboard>
  <input>
</syntaxhighlight>
 


Note that you need to pass data to/from the engine using Emesary. See
See [[Howto:Add_multi-key_commands_to_an_aircraft]] for further details.
Interfaces/GenericEISPublisher.nas for a reference implementation.


=== Load and start the FG1000 system ===
=== Load and start the FG1000 system ===


See FG1000/Nasal/FG1000.nas for full details,
A simple FG1000 using the generic EIS, and displaying PFD on device-number 1 and an MFD on device-number 2 is as follows:
including how to pass in the EIS. A simple FG1000 using the generic EIS, and
displaying PFD on device-number 1 and an MFD on device-number 2 is as follows:


<syntaxhighlight lang="nasal">
<syntaxhighlight lang="nasal">
Line 128: Line 226:


# Create a PFD as device 1, MFD as device 2
# Create a PFD as device 1, MFD as device 2
fg1000system.addPFD(1);
fg1000system.addPFD(index:1);
fg1000system.addMFD(2);
fg1000system.addMFD(index:2);
 
# Map the devices to placement objects Screen{i}, in this case Screen1 and Screen2
fg1000system.display(index:1);
fg1000system.display(index:2);


# Display the devices
# Show the devices
fg1000system.display(1);
fg1000system.show(index:1);
fg1000system.display(2);
fg1000system.show(index:2);


#  Display a GUI version of device 1 at 50% scale.
#  Display a GUI version of device 1 at 50% scale.
#fg1000system.displayGUI(1, 0.5);
#fg1000system.displayGUI(index:1, scale:0.5);
</syntaxhighlight>
</syntaxhighlight>


== Page Status ==
== Page Status ==


This is the current status of the individual pages.  "Done" indicates that they are functionally complete, though the iconography is not correct.
This is the current status of the individual pages.  Full progress bars indicate that they are functionally complete, though the iconography is not correct.


{| class="wikitable sortable"
{| class="wikitable sortable"
Line 147: Line 249:
! Page !! Reference !! Status !! Notes
! Page !! Reference !! Status !! Notes
|-
|-
| {{FG1000 file|name=NavigationMap|label=Navigation Map}} ||  || Done || See Layers below
| {{FG1000 file|name=NavigationMap|label=Navigation Map}} ||  || {{progressbar|100|20}} || See Layers below
|-
|-
| {{FG1000 file|name=TrafficMap|label=Traffic Map}} ||  || Done || Zoom controls unclear
| {{FG1000 file|name=TrafficMap|label=Traffic Map}} ||  || {{progressbar|100|20}} || Zoom controls unclear
|-
|-
| {{FG1000 file|name=Stormscope|label=Storm Scope}} ||  || Not Started ||  
| {{FG1000 file|name=Stormscope|label=Storm Scope}} ||  || {{progressbar|0|20}} ||  
|-
|-
| {{FG1000 file|name=WeatherDataLink|label=Weather Data Link}} ||  || Not Started ||  
| {{FG1000 file|name=WeatherDataLink|label=Weather Data Link}} ||  || {{progressbar|0|20}} ||  
|-
|-
| {{FG1000 file|name=TAWSB|label=TAWS-B}}||  || Not Started ||  
| {{FG1000 file|name=TAWSB|label=TAWS-B}}||  || {{progressbar|0|20}} ||  
|-
|-
| {{FG1000 file|name=AirportInformation|label=Airport Information}} ||  || Done || Needs additional page of AOPA information, which we don't have
| {{FG1000 file|name=AirportInformation|label=Airport Information}} ||  || {{progressbar|100|20}} || Needs additional page of AOPA information, which we don't have
|-
|-
| {{FG1000 file|name=IntersectionInfo|label=Intersection Information}} ||  || Not Started ||  
| {{FG1000 file|name=IntersectionInfo|label=Intersection Information}} ||  || {{progressbar|100|20}} ||  
|-
|-
| NDB Information ||  || Not Started ||  
| {{FG1000 file|name=NDBInfo|label=NDB Information}} ||  || {{progressbar|100|20}} ||  
|-
|-
| VOR Information ||  || Not Started ||  
| {{FG1000 file|name=VORInfo|label=VOR Information}} ||  || {{progressbar|100|20}} ||  
|-
|-
| User WPT Information ||  || Not Started ||  
| User WPT Information ||  || {{progressbar|0|20}} ||  
|-
|-
| Trip Planning ||  || Not Started ||  
| Trip Planning ||  || {{progressbar|0|20}} ||  
|-
|-
| Utility ||  || Not Started ||  
| Utility ||  || {{progressbar|0|20}} ||  
|-
|-
| GPS Status ||  || Not Started ||  
| GPS Status ||  || {{progressbar|0|20}} ||  
|-
|-
| XM Radio ||  || Not Started ||  
| XM Radio ||  || {{progressbar|0|20}} ||  
|-
|-
| System Status ||  || Not Started ||  
| System Status ||  || {{progressbar|0|20}} ||  
|-
|-
| Active Flightplan ||  || Not Started ||  
| {{FG1000 file|name=ActiveFlightPlanNarrow|label=Active Flight Plan}} ||  || {{progressbar|100|20}} || Viewing and editing of the active flight plan implemented.  VNAV and the "wide view" not yet implemented
|-
|-
| Flight Plan Catalog ||  || Not Started ||  
| Flight Plan Catalog ||  || {{progressbar|0|20}} ||  
|-
|-
| Stored Flight Plan ||  || Not Started ||  
| Stored Flight Plan ||  || {{progressbar|0|20}} ||  
|-
|-
| Checklist 1-5 ||  || Not Started ||  
| {{FG1000 file|name=Checklist|label=Checklist}} ||  || {{progressbar|100|20}} ||  
|-
|-
| {{FG1000 file|name=NearestAirports|label=Nearest Airports}} ||  || Done ||  
| {{FG1000 file|name=NearestAirports|label=Nearest Airports}} ||  || {{progressbar|100|20}} ||  
|-
|-
| {{FG1000 file|name=NearestIntersections|label=Nearest Intersections}} ||  ||Done ||  
| {{FG1000 file|name=NearestIntersections|label=Nearest Intersections}} ||  || {{progressbar|100|20}} ||  
|-
|-
| {{FG1000 file|name=NearestNDB|label=Nearest NDB}} ||  ||Done ||  
| {{FG1000 file|name=NearestNDB|label=Nearest NDB}} ||  || {{progressbar|100|20}} ||  
|-
|-
| {{FG1000 file|name=NearestNDB|label=Nearest VOR}} ||  || Done ||  
| {{FG1000 file|name=NearestNDB|label=Nearest VOR}} ||  || {{progressbar|100|20}} ||  
|-
|-
| Nearest User Waypoints ||  || Not Started ||  
| Nearest User Waypoints ||  || {{progressbar|0|20}} ||  
|-
|-
| Nearest Frequencies ||  || Not Started ||  
| Nearest Frequencies ||  || {{progressbar|0|20}} ||  
|-
|-
| Nearest Airspaces ||  || Not Started ||  
| Nearest Airspaces ||  || {{progressbar|0|20}}||  
|}
|}


Line 206: Line 308:
! Area !! Status !! Notes
! Area !! Status !! Notes
|-
|-
| Navigation - FMS || Complete ||  
| Navigation - FMS || {{progressbar|100|20}} ||  
|-
|-
| Softkeys || Complete ||  
| Softkeys || {{progressbar|100|20}} ||  
|-
|-
| MENU key || Not started ||  
| MENU key || {{progressbar|0|20}} ||  
|-
|-
| NAV/COM  || 95% Complete || Volume controls to be added
| NAV/COM  || {{progressbar|90|20}} || Volume controls to be added
|-
|-
| GPE Header || Not starter ||
| GPE Header || {{progressbar|0|20}} ||
|}
|}


Line 232: Line 334:
The airspace system is in the process of changing drastically [...]  this isn't just a matter of throwing up a canvas showing some GPS waypoints and a magenta line. Modern navigators are astoundingly-complex devices — probably an order of magnitude more lines of code than FlightGear itself — and even their basic flight planning algorithms and databases (e.g. fly-by waypoints vs fly-over waypoints, open vs closed approach procedures, transitions into RNAV approaches, etc.) are far beyond the scope of anything we've tried, and we'd also need an up-to-date database far more complex than the ones we have now. Once you get to the extra features, like FIS-B weather or TIS-B traffic info over ADS-B, or TAWS (terrain alerting), we're probably in way over our heads trying to emulate even the simplest general-aviation IFR GPS.
The airspace system is in the process of changing drastically [...]  this isn't just a matter of throwing up a canvas showing some GPS waypoints and a magenta line. Modern navigators are astoundingly-complex devices — probably an order of magnitude more lines of code than FlightGear itself — and even their basic flight planning algorithms and databases (e.g. fly-by waypoints vs fly-over waypoints, open vs closed approach procedures, transitions into RNAV approaches, etc.) are far beyond the scope of anything we've tried, and we'd also need an up-to-date database far more complex than the ones we have now. Once you get to the extra features, like FIS-B weather or TIS-B traffic info over ADS-B, or TAWS (terrain alerting), we're probably in way over our heads trying to emulate even the simplest general-aviation IFR GPS.


This may help folks understand what the G1000 is all about: http://static.garmincdn.com/pumac/190-00498-07_0A_Web.pdf  
This may help folks understand what the G1000 is all about:<ref name="Pilot's Guide">{{cite web
| url            = http://static.garmincdn.com/pumac/190-00498-07_0A_Web.pdf
| title          = Garmin G1000 Pilot’s Guide for Cessna Nav III, Rev. A
| date            = October, 2011
| publisher      = Garmin International, Inc.
| format          = pdf
| archiveurl      = https://web.archive.org/web/20170708032442/http://static.garmincdn.com/pumac/190-00498-07_0A_Web.pdf
| archivedate    =
| accessdate      = May 8, 2019
}}</ref>
Writing a G1000 isn't that hard. Writing a '''feature complete''' G1000 is a ton of work. <ref>{{cite web
Writing a G1000 isn't that hard. Writing a '''feature complete''' G1000 is a ton of work. <ref>{{cite web
   |url    =  https://sourceforge.net/p/flightgear/mailman/message/35925783/  
   |url    =  https://sourceforge.net/p/flightgear/mailman/message/35925783/  
Line 415: Line 526:
Many of these would also be good to have for other avionics/GUI dialogs, including the NavDisplay framework, which is currently re-implementing this functionality separately, i.e. not yet using MapStructure.
Many of these would also be good to have for other avionics/GUI dialogs, including the NavDisplay framework, which is currently re-implementing this functionality separately, i.e. not yet using MapStructure.


Following is the list of layers displayed by the G1000 system, based on the Garmin G1000 Integrated Flight Deck Pilot's Guide for the Cessna Nav III [http://static.garmincdn.com/pumac/190-00498-07_0A_Web.pdf Garmin Site] [https://web.archive.org/web/20170708032442/http://static.garmincdn.com/pumac/190-00498-07_0A_Web.pdf Wayback machine], page 153, and the mapping to the equivalent MapStructure Layer.
Following is the list of layers displayed by the G1000 system, based on the Garmin G1000 Integrated Flight Deck Pilot's Guide for the Cessna Nav III,<ref name="Pilot's Guide" /> page 153, and the mapping to the equivalent MapStructure Layer.


Richard mentioned that if he were to implement approach plates in the EFB he'd probably use raster images provided via http and provide an http service within FG to do this, or to allow the EFB to use any other external web service. Other content for the EFB could be also provided as SVG via http.<ref>{{cite web  |url    =  https://forum.flightgear.org/viewtopic.php?p=259194#p259194  |title  =  <nowiki> Re:  </nowiki>  |author =  <nowiki> Richard </nowiki>  |date  =  Sep 29th, 2015  |added  =  Sep 29th, 2015  |script_version = 0.36  }}</ref>
Richard mentioned that if he were to implement approach plates in the EFB he'd probably use raster images provided via http and provide an http service within FG to do this, or to allow the EFB to use any other external web service. Other content for the EFB could be also provided as SVG via http.<ref>{{cite web  |url    =  https://forum.flightgear.org/viewtopic.php?p=259194#p259194  |title  =  <nowiki> Re:  </nowiki>  |author =  <nowiki> Richard </nowiki>  |date  =  Sep 29th, 2015  |added  =  Sep 29th, 2015  |script_version = 0.36  }}</ref>
Line 421: Line 532:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Layer !! [[Canvas MapStructure Layers|MapStructure Layer]] !! Status !! Page || Notes
! Layer !! [[Canvas MapStructure Layers|MapStructure Layer]] !! Status !! Page in <ref name="Pilot's Guide" /> || Notes
|-
|-
| Flight Plan Route Lines || {{MapStructure_File|name=RTE|type=lcontroller}} || Requires styling || {{PDF Link|page=190}} ||
| Flight Plan Route Lines || {{MapStructure_File|name=RTE|type=lcontroller}} || Requires styling || 190 ||
|-
|-
| Flight Plan Route Waypoints || {{MapStructure_File|name=WPT|type=lcontroller}}  || Requires styling || {{PDF Link|page=190}} ||  
| Flight Plan Route Waypoints || {{MapStructure_File|name=WPT|type=lcontroller}}  || Requires styling || 190 ||  
|-
|-
| Rivers/Lakes || {{MapStructure_File|name=VFRChart|type=lcontroller}}  ||  || {{PDF Link|page=148}} || Currently using downloaded raster from web.  Perhaps generate similarly to Atlas<ref>{{cite web
| Rivers/Lakes || {{MapStructure_File|name=VFRChart|type=lcontroller}}  ||  || 148 || Currently using downloaded raster from web.  Perhaps generate similarly to Atlas<ref>{{cite web
   |url    =  https://forum.flightgear.org/viewtopic.php?p=203495#p203495  
   |url    =  https://forum.flightgear.org/viewtopic.php?p=203495#p203495  
   |title  =  <nowiki> Re: Atlas still in use ? </nowiki>  
   |title  =  <nowiki> Re: Atlas still in use ? </nowiki>  
Line 436: Line 547:
   }}</ref>, or could be vector data from scenery. {{AtlasVsCanvasCameras}}
   }}</ref>, or could be vector data from scenery. {{AtlasVsCanvasCameras}}
|-
|-
| Topography Data || {{MapStructure_File|name=VFRChart|type=lcontroller}} || Synthetic  || {{PDF Link|page=145}} || Height-map at chart-resolution.  Perhaps generate similarly to Atlas? {{AtlasVsCanvasCameras}}
| Topography Data || {{MapStructure_File|name=VFRChart|type=lcontroller}} || Synthetic  || 145 || Height-map at chart-resolution.  Perhaps generate similarly to Atlas? {{AtlasVsCanvasCameras}}
|-
|-
| International Borders ||  ||  || {{PDF Link|page=148}} || Vector data from scenery?
| International Borders ||  ||  || 148 || Vector data from scenery?
|-
|-
| Track Vector ||  ||  || {{PDF Link|page=156}} || Forward looking display of track. Look-ahead time selectable.  
| Track Vector ||  ||  || 156 || Forward looking display of track. Look-ahead time selectable.  
|-
|-
| Navigation Range Ring ||  ||  || {{PDF Link|page=159}} || Straightforward extension of {{MapStructure_File|name=APS|type=lcontroller}}.
| Navigation Range Ring ||  ||  || 159 || Straightforward extension of {{MapStructure_File|name=APS|type=lcontroller}}.
|-
|-
| Fuel Range Ring ||  ||  || 159 || Straightforward extension of {{MapStructure_File|name=APS|type=lcontroller}}.
| Fuel Range Ring ||  ||  || 159 || Straightforward extension of {{MapStructure_File|name=APS|type=lcontroller}}.
Line 448: Line 559:
| Terrain Data ||  ||  || 364 || Should be straightforward, with exception of obstacles.  [[Spoken GCA|Profile view]] also required.
| Terrain Data ||  ||  || 364 || Should be straightforward, with exception of obstacles.  [[Spoken GCA|Profile view]] also required.
|-
|-
| Traffic || {{MapStructure_File|name=TFC|type=lcontroller}} ||  || 394,423 || Various options, each with different iconography and data displayed.  
| Traffic || {{MapStructure_File|name=TFC|type=lcontroller}} ||  || 394, 423 || Various options, each with different iconography and data displayed.  
|-
|-
| Airways || {{MapStructure_File|name=VFRChart|type=lcontroller}} ||  ||  154 || Needs to be replaced with vector data
| Airways || {{MapStructure_File|name=VFRChart|type=lcontroller}} ||  ||  154 || Needs to be replaced with vector data
Line 555: Line 666:
Key design notes:
Key design notes:
* Most of the underlying Canvas [[MapStructure]] layers are now written (though they require styling, and/or would benefit from replacement with vector data).  
* Most of the underlying Canvas [[MapStructure]] layers are now written (though they require styling, and/or would benefit from replacement with vector data).  
* [[Emesary]] IPC framwork is used to link between the MFD and underlying simulation state. This should make it easy to run the MFD on a separate FG instance, and provides a good demarkation between the individual aircraft systems and the FG1000 itself.  
* [[Emesary]] IPC framework is used to link between the MFD and underlying simulation state. This should make it easy to run the MFD on a separate FG instance, and provides a good demarkation between the individual aircraft systems and the FG1000 itself.  
* Various underlying UI classes are used to handle highlighting, selection and scrolling of fields.  See [[Canvas MFD Framework]] for details of the elements now supported.  
* Various underlying UI classes are used to handle highlighting, selection and scrolling of fields.  See [[Canvas MFD Framework]] for details of the elements now supported.
 
 


== Resources ==
== Resources ==

Navigation menu