1
0
Fork 0
fgdata/Aircraft/Instruments-3d/FG1000
Stuart Buchanan 76cfa2c077 FG1000 and MFD handle non-MFD Emesary notifications
Previously the FG1000 and MFD assumed that all notifications received
via Emesary had a Device_Id field.  This is true for
notifications.PFDEventNotification.DefaultType but not for other
messages - e.g. those generated by the AN SPN 46  system on the
carrier.

The effect of this was that when Nimitz was loaded, the FG1000 stopped
working with various errors.

This fix checks the notification type before the Device_Id.
2020-03-12 17:25:34 +00:00
..
Dialogs Refactor FG1000 in preparation for PFD, 3D model. 2018-02-05 19:33:28 +00:00
GDU104X FG1000: Fix RANGE, HDG, CRS knob behaviour 2020-02-29 19:23:51 +00:00
GMA1347 FG1000: Resize GDU/GMA and increase ADC refresh 2018-07-29 14:02:39 +01:00
Icons Refactor FG1000 in preparation for PFD, 3D model. 2018-02-05 19:33:28 +00:00
MFDPages FG1000 : APR and GS modes 2019-02-21 22:09:48 +00:00
Nasal FG1000 and MFD handle non-MFD Emesary notifications 2020-03-12 17:25:34 +00:00
fg1000-multikey.xml FG1000 - Improved timers 2019-03-12 20:33:35 +00:00
GFC700-AP-off-FSM.xml FG1000: FLC, NAV GPS Autopilot modes 2019-02-17 21:35:32 +00:00
GFC700-lateral-FSM.xml FG1000 : APR and GS modes 2019-02-21 22:09:48 +00:00
GFC700-vertical-FSM.xml FG1000 : APR and GS modes 2019-02-21 22:09:48 +00:00
GFC700.xml FG1000: Cascading PID controllers for GFC700 2019-03-29 16:13:15 +00:00
README Support for Runway numbers on RWY MapStructure layer 2018-02-18 21:41:17 +00:00

README for the FG1000 glass panel display

The FG1000 aims to emulate the successful Garmin G1000 glass panel.

Development status can be found on the wiki:  http://wiki.flightgear.org/FG1000

=How To Install On An Aircraft=

1)  Place one or more of the display (GDU) units in your model.  The XML files
are named  <model>.<device-number>.xml, e.g.

GDU-1045.1.xml  GDU-1045.2.xml  GDU-1045.3.xml  GDU-1045.4.xml

The <device-number> is referenced later to identify which displays to used
for each PFD, MFD etc.  You must only used one of each <device-number> value,
though you can mix and match the GDU models.

2) Create Interfaces for Navigation, engine, NAV/COM, FMS data.  There is a
generic interface (GenericInterfaceController) that uses the standard FG route
manager, GPS, navigation data and NAV/COM settings, and engine data for a single
piston engine.

You need to load it as follows:

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();
interfaceController.start();

You may want to create your own version depending on what properties you are
using for the NAV/COM, and your engine configuration.

Note that you should only start the interface after you've loaded the FG1000
as they will publish information at start of day that the displays need.

3) Set up the Engine Information System.  There is a generic EIS provided
(see FG1000/Nasal/EIS, and FG1000/MFDPages/EIS.svg) that is intended to match
a Cessna 172.  If you need something different, you should create your own
EIS class and SVG file.

Note that you need to pass data to/from the engine using Emesary. See
Interfaces/GenericEISPublisher.nas for a reference implementation.

4) Load the FG1000 itself.  See FG1000/Nasal/FG1000.nas for full details,
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:

var nasal_dir = getprop("/sim/fg-root") ~ "/Aircraft/Instruments-3d/FG1000/Nasal/";
io.load_nasal(nasal_dir ~ 'FG1000.nas', "fg1000");

# Create the FG1000
var fg1000system = fg1000.FG1000.getInstance();

# Create a PFD as device 1, MFD as device 2
fg1000system.addPFD(1);
fg1000system.addMFD(2);

# Display the devices
fg1000system.display(1);
fg1000system.display(2);

#  Display a GUI version of device 1 at 50% scale.
#fg1000system.displayGUI(1, 0.5)