From 8fdffa16e648798952220651161a879b3c0d254c Mon Sep 17 00:00:00 2001 From: Stuart Buchanan Date: Sun, 29 Apr 2018 21:15:18 +0100 Subject: [PATCH] FG1000 - Fix 3D model GDUs, find nearest ID on DTO --- .../Instruments-3d/FG1000/GDU104X/GDU-1040.1.xml | 5 +++-- .../Instruments-3d/FG1000/GDU104X/GDU-1040.2.xml | 5 +++-- .../Instruments-3d/FG1000/GDU104X/GDU-1040.3.xml | 5 +++-- .../Instruments-3d/FG1000/GDU104X/GDU-1040.4.xml | 5 +++-- .../Instruments-3d/FG1000/GDU104X/GDU-1044B.1.xml | 5 +++-- .../Instruments-3d/FG1000/GDU104X/GDU-1044B.2.xml | 5 +++-- .../Instruments-3d/FG1000/GDU104X/GDU-1044B.3.xml | 5 +++-- .../Instruments-3d/FG1000/GDU104X/GDU-1044B.4.xml | 5 +++-- .../Instruments-3d/FG1000/GDU104X/GDU-1045.1.xml | 5 +++-- .../Instruments-3d/FG1000/GDU104X/GDU-1045.2.xml | 5 +++-- .../Instruments-3d/FG1000/GDU104X/GDU-1045.3.xml | 5 +++-- .../Instruments-3d/FG1000/GDU104X/GDU-1045.4.xml | 5 +++-- .../FG1000/Nasal/Interfaces/NavDataInterface.nas | 6 +++--- .../FG1000/Nasal/MFDPages/DirectTo/DirectTo.nas | 4 ++-- .../MFDPages/NearestVOR/NearestVORController.nas | 15 +++++++-------- .../PFDInstruments/PFDInstrumentsController.nas | 2 ++ Nasal/canvas/map/RTE.lcontroller | 14 ++++++-------- 17 files changed, 56 insertions(+), 45 deletions(-) diff --git a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1040.1.xml b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1040.1.xml index 883e0da03..e08bdf480 100644 --- a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1040.1.xml +++ b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1040.1.xml @@ -191,7 +191,6 @@ - knob NavOuter @@ -300,6 +299,7 @@ FG1000HardKeyPushed 1 ALT_INNER + 1 @@ -307,6 +307,7 @@ FG1000HardKeyPushed 1 ALT_OUTER + 1 @@ -719,7 +720,7 @@ pick - FMSInner + FmsInner diff --git a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1040.2.xml b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1040.2.xml index 4cd0b510f..609024b38 100644 --- a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1040.2.xml +++ b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1040.2.xml @@ -191,7 +191,6 @@ - knob NavOuter @@ -300,6 +299,7 @@ FG1000HardKeyPushed 2 ALT_INNER + 1 @@ -307,6 +307,7 @@ FG1000HardKeyPushed 2 ALT_OUTER + 1 @@ -719,7 +720,7 @@ pick - FMSInner + FmsInner diff --git a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1040.3.xml b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1040.3.xml index 804a2d7aa..aca46393e 100644 --- a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1040.3.xml +++ b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1040.3.xml @@ -191,7 +191,6 @@ - knob NavOuter @@ -300,6 +299,7 @@ FG1000HardKeyPushed 3 ALT_INNER + 1 @@ -307,6 +307,7 @@ FG1000HardKeyPushed 3 ALT_OUTER + 1 @@ -719,7 +720,7 @@ pick - FMSInner + FmsInner diff --git a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1040.4.xml b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1040.4.xml index 883e0da03..e08bdf480 100644 --- a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1040.4.xml +++ b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1040.4.xml @@ -191,7 +191,6 @@ - knob NavOuter @@ -300,6 +299,7 @@ FG1000HardKeyPushed 1 ALT_INNER + 1 @@ -307,6 +307,7 @@ FG1000HardKeyPushed 1 ALT_OUTER + 1 @@ -719,7 +720,7 @@ pick - FMSInner + FmsInner diff --git a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1044B.1.xml b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1044B.1.xml index db713ca34..add8f096d 100644 --- a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1044B.1.xml +++ b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1044B.1.xml @@ -203,7 +203,6 @@ - knob NavOuter @@ -552,6 +551,7 @@ FG1000HardKeyPushed 1 ALT_INNER + 1 @@ -559,6 +559,7 @@ FG1000HardKeyPushed 1 ALT_OUTER + 1 @@ -971,7 +972,7 @@ pick - FMSInner + FmsInner diff --git a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1044B.2.xml b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1044B.2.xml index a705beffe..e9db2c8a4 100644 --- a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1044B.2.xml +++ b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1044B.2.xml @@ -203,7 +203,6 @@ - knob NavOuter @@ -552,6 +551,7 @@ FG1000HardKeyPushed 2 ALT_INNER + 1 @@ -559,6 +559,7 @@ FG1000HardKeyPushed 2 ALT_OUTER + 1 @@ -971,7 +972,7 @@ pick - FMSInner + FmsInner diff --git a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1044B.3.xml b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1044B.3.xml index 0ee95664c..263f28e61 100644 --- a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1044B.3.xml +++ b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1044B.3.xml @@ -203,7 +203,6 @@ - knob NavOuter @@ -552,6 +551,7 @@ FG1000HardKeyPushed 3 ALT_INNER + 1 @@ -559,6 +559,7 @@ FG1000HardKeyPushed 3 ALT_OUTER + 1 @@ -971,7 +972,7 @@ pick - FMSInner + FmsInner diff --git a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1044B.4.xml b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1044B.4.xml index 1d8c7b72d..8fa08e11d 100644 --- a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1044B.4.xml +++ b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1044B.4.xml @@ -203,7 +203,6 @@ - knob NavOuter @@ -552,6 +551,7 @@ FG1000HardKeyPushed 4 ALT_INNER + 1 @@ -559,6 +559,7 @@ FG1000HardKeyPushed 4 ALT_OUTER + 1 @@ -971,7 +972,7 @@ pick - FMSInner + FmsInner diff --git a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1045.1.xml b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1045.1.xml index 0c30a7013..beb109c92 100644 --- a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1045.1.xml +++ b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1045.1.xml @@ -208,7 +208,6 @@ - knob NavOuter @@ -557,6 +556,7 @@ FG1000HardKeyPushed 1 ALT_INNER + 1 @@ -564,6 +564,7 @@ FG1000HardKeyPushed 1 ALT_OUTER + 1 @@ -976,7 +977,7 @@ pick - FMSInner + FmsInner diff --git a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1045.2.xml b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1045.2.xml index 73a99e1f5..59fd784cd 100644 --- a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1045.2.xml +++ b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1045.2.xml @@ -203,7 +203,6 @@ - knob NavOuter @@ -552,6 +551,7 @@ FG1000HardKeyPushed 2 ALT_INNER + 1 @@ -559,6 +559,7 @@ FG1000HardKeyPushed 2 ALT_OUTER + 1 @@ -971,7 +972,7 @@ pick - FMSInner + FmsInner diff --git a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1045.3.xml b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1045.3.xml index 2e9cebdd5..ac061393f 100644 --- a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1045.3.xml +++ b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1045.3.xml @@ -203,7 +203,6 @@ - knob NavOuter @@ -552,6 +551,7 @@ FG1000HardKeyPushed 3 ALT_INNER + 1 @@ -559,6 +559,7 @@ FG1000HardKeyPushed 3 ALT_OUTER + 1 @@ -971,7 +972,7 @@ pick - FMSInner + FmsInner diff --git a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1045.4.xml b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1045.4.xml index 3d7e41ef3..5bba7d816 100644 --- a/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1045.4.xml +++ b/Aircraft/Instruments-3d/FG1000/GDU104X/GDU-1045.4.xml @@ -203,7 +203,6 @@ - knob NavOuter @@ -552,6 +551,7 @@ FG1000HardKeyPushed 4 ALT_INNER + 1 @@ -559,6 +559,7 @@ FG1000HardKeyPushed 4 ALT_OUTER + 1 @@ -971,7 +972,7 @@ pick - FMSInner + FmsInner diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/NavDataInterface.nas b/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/NavDataInterface.nas index 7502f84ac..d14f3f07f 100644 --- a/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/NavDataInterface.nas +++ b/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/NavDataInterface.nas @@ -336,9 +336,9 @@ setDirectTo : func(param) # No flightplan, or waypoint not found, so use the GPS DTO function. # Hokey property-based interface. setprop("/instrumentation/gps/scratch/ident", id); - setprop("/instrumentation/gps/scratch/altitude-ft", 0); - setprop("/instrumentation/gps/scratch/latitude-deg", 0); - setprop("/instrumentation/gps/scratch/longitude-deg", 0); + setprop("/instrumentation/gps/scratch/altitude-ft", alt_ft); + setprop("/instrumentation/gps/scratch/latitude-deg", getprop("/position/latitude-deg")); + setprop("/instrumentation/gps/scratch/longitude-deg", getprop("/position/longitude-deg")); } # Switch the GPS to DTO mode. diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/MFDPages/DirectTo/DirectTo.nas b/Aircraft/Instruments-3d/FG1000/Nasal/MFDPages/DirectTo/DirectTo.nas index 0f4267783..c66d18429 100644 --- a/Aircraft/Instruments-3d/FG1000/Nasal/MFDPages/DirectTo/DirectTo.nas +++ b/Aircraft/Instruments-3d/FG1000/Nasal/MFDPages/DirectTo/DirectTo.nas @@ -113,13 +113,13 @@ var DirectTo = }, offdisplay : func() { - me.DirectToChart.setVisible(0); + if (me.DirectToChart != nil) me.DirectToChart.setVisible(0); me._group.setVisible(0); me.getElement("Group").setVisible(0); me.getController().offdisplay(); }, ondisplay : func() { - me.DirectToChart.setVisible(1); + if (me.DirectToChart != nil) me.DirectToChart.setVisible(1); me._group.setVisible(1); me.getElement("Group").setVisible(1); me.getController().ondisplay(); diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/MFDPages/NearestVOR/NearestVORController.nas b/Aircraft/Instruments-3d/FG1000/Nasal/MFDPages/NearestVOR/NearestVORController.nas index 2a9ad6775..9a31df645 100644 --- a/Aircraft/Instruments-3d/FG1000/Nasal/MFDPages/NearestVOR/NearestVORController.nas +++ b/Aircraft/Instruments-3d/FG1000/Nasal/MFDPages/NearestVOR/NearestVORController.nas @@ -51,7 +51,6 @@ var NearestVORController = me._crsrToggle = 1; }, - # Input Handling handleCRSR : func() { me._crsrToggle = (! me._crsrToggle); @@ -81,13 +80,13 @@ var NearestVORController = }, handleFMSOuter : func(value) { if (me._crsrToggle == 1) { - if (me._currentGroup == NearestVORController.UIGROUP.VOR) { - # Scroll through whatever is the current list - me.page.select.incrSmall(value); - var id = me.page.select.getValue(); - var data = me.getNavDataItem(id); - if ((data != nil) and (size(data) >0)) me.page.updateNavDataItem(data[0]); - } + if (me._currentGroup == NearestVORController.UIGROUP.VOR) { + # Scroll through whatever is the current list + me.page.select.incrSmall(value); + var id = me.page.select.getValue(); + var data = me.getNavDataItem(id); + if ((data != nil) and (size(data) >0)) me.page.updateNavDataItem(data[0]); + } return emesary.Transmitter.ReceiptStatus_Finished; } else { return me.page.mfd.SurroundController.handleFMSOuter(value); diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/MFDPages/PFDInstruments/PFDInstrumentsController.nas b/Aircraft/Instruments-3d/FG1000/Nasal/MFDPages/PFDInstruments/PFDInstrumentsController.nas index 23c8cebd9..f5c0b952c 100644 --- a/Aircraft/Instruments-3d/FG1000/Nasal/MFDPages/PFDInstruments/PFDInstrumentsController.nas +++ b/Aircraft/Instruments-3d/FG1000/Nasal/MFDPages/PFDInstruments/PFDInstrumentsController.nas @@ -54,6 +54,8 @@ var PFDInstrumentsController = _leg_xtrk_nm : 0, _leg_valid : 0, + _navSelected : 1, + _nav1_id : "", _nav1_freq : 0.0, _nav1_radial_deg : 0, diff --git a/Nasal/canvas/map/RTE.lcontroller b/Nasal/canvas/map/RTE.lcontroller index 914a84e3d..fb99702ea 100644 --- a/Nasal/canvas/map/RTE.lcontroller +++ b/Nasal/canvas/map/RTE.lcontroller @@ -1,7 +1,7 @@ # See: http://wiki.flightgear.org/MapStructure # TODO: this layer doesn't make sense to support for AI/MP traffic, because we don't currently have access to flightplan/routing info # that also applies to other layers like WPT or even navaid layers that handle station tuning based on local radio settings -# +# # Class things: var name = 'RTE'; var parents = [SymbolLayer.Controller]; @@ -26,9 +26,9 @@ var new = func(layer) { listeners: [], }; layer.searcher._equals = func(l,r) 0; # TODO: create model objects instead? - append(m.listeners, setlistener(layer.options.active_node, func m.layer.update() ), + append(m.listeners, setlistener(layer.options.active_node, func m.layer.update() ), setlistener(layer.options.wp_num, func m.layer.update() )); - + m.addVisibilityListener(); var driver = opt_member(m.layer.options, 'route_driver'); if(driver == nil){ @@ -52,20 +52,19 @@ var searchCmd = func { # FIXME: do we return the current route even if it isn't active? printlog(_MP_dbg_lvl, "Running query: ", name); var plans = []; # TODO: multiple flightplans? - var plans = []; var driver = me.route_driver; driver.update(); if(!driver.shouldUpdate()) return me.last_result; # http://wiki.flightgear.org/Nasal_Flightplan var planCount = driver.getNumberOfFlightPlans(); for (var idx = 0; idx < planCount; idx += 1) { - #var fp = driver.getFlightPlan(idx); + if (driver.getFlightPlan(idx) == nil) return []; var fpSize = driver.getPlanSize(idx); if(fpSize < 2) continue; var type = driver.getFlightPlanType(idx); if(type == nil) type = 'current'; - if (!getprop(me.layer.options.active_node) and - type == 'current' and + if (!getprop(me.layer.options.active_node) and + type == 'current' and !me.layer.options.display_inactive_rte) fpSize = 0; var coords = []; var discontinuity = 0; @@ -91,4 +90,3 @@ var searchCmd = func { me.last_result = plans; return plans; }; -