diff --git a/Nasal/FMGC/FMGC-b.nas b/Nasal/FMGC/FMGC-b.nas index 76acb10f..bdd332cb 100644 --- a/Nasal/FMGC/FMGC-b.nas +++ b/Nasal/FMGC/FMGC-b.nas @@ -173,7 +173,7 @@ var Custom = { spdManaged: props.globals.getNode("/it-autoflight/input/spd-managed", 1), }, Output: { - fmaPower: props.globals.initNode("/it-autoflight/output/fma-pwr", 0, "BOOL"), + fmaPower: 0, vsFCU: props.globals.initNode("/it-autoflight/output/vs-fcu-display", "", "STRING"), }, Sound: { @@ -229,7 +229,7 @@ var ITAF = { Text.lat.setValue(" "); Text.vert.setValue(" "); Custom.showHdg.setBoolValue(1); - Custom.Output.fmaPower.setBoolValue(1); + Custom.Output.fmaPower = 1; ManagedSPD.stop(); loopTimer.start(); slowLoopTimer.start(); @@ -448,8 +448,8 @@ var ITAF = { ap1Master: func(s) { if (s == 1) { if (Output.vert.getValue() != 6 and !Gear.wow1.getBoolValue() and !Gear.wow2.getBoolValue() and systems.ELEC.Bus.acEss.getValue() >= 110 and fbw.FBW.apOff == 0 and Position.gearAglFt.getValue() >= 100) { - me.revertBasicMode(); Output.ap1.setBoolValue(1); + me.updateFma(); Output.latTemp = Output.lat.getValue(); if (Output.ap2.getBoolValue() and !Output.apprArm.getBoolValue() and Output.latTemp != 2 and Output.latTemp != 4) { me.ap2Master(0); @@ -465,12 +465,13 @@ var ITAF = { if (Input.ap1.getBoolValue() != Output.ap1Temp) { Input.ap1.setBoolValue(Output.ap1Temp); } + fmaAp(); }, ap2Master: func(s) { if (s == 1) { if (Output.vert.getValue() != 6 and !Gear.wow1.getBoolValue() and !Gear.wow2.getBoolValue() and systems.ELEC.Bus.acEss.getValue() >= 110 and fbw.FBW.apOff == 0 and Position.gearAglFt.getValue() >= 100) { - me.revertBasicMode(); Output.ap2.setBoolValue(1); + me.updateFma(); Output.latTemp = Output.lat.getValue(); if (Output.ap1.getBoolValue() and !Output.apprArm.getBoolValue() and Output.latTemp != 2 and Output.latTemp != 4) { me.ap1Master(0); @@ -486,6 +487,7 @@ var ITAF = { if (Input.ap2.getBoolValue() != Output.ap2Temp) { Input.ap2.setBoolValue(Output.ap2Temp); } + fmaAp(); }, apOffFunction: func() { if (!Output.ap1.getBoolValue() and !Output.ap2.getBoolValue()) { # Only do if both APs are off @@ -515,6 +517,7 @@ var ITAF = { if (Input.athr.getBoolValue() != Output.athrTemp) { Input.athr.setBoolValue(Output.athrTemp); } + fmaAthr(); }, fd1Master: func(s) { if (s == 1) { @@ -530,6 +533,7 @@ var ITAF = { if (Input.fd1.getBoolValue() != Output.fd1Temp) { Input.fd1.setBoolValue(Output.fd1Temp); } + fmaFd(); }, fd2Master: func(s) { if (s == 1) { @@ -545,6 +549,7 @@ var ITAF = { if (Input.fd2.getBoolValue() != Output.fd2Temp) { Input.fd2.setBoolValue(Output.fd2Temp); } + fmaFd(); }, setLatMode: func(n) { Output.vertTemp = Output.vert.getValue(); @@ -596,7 +601,9 @@ var ITAF = { Text.lat.setValue("T/O"); me.armTextCheck(); } else if (n == 9) { # NONE + Output.lnavArm.setBoolValue(0); Output.locArm.setBoolValue(0); + Output.apprArm.setBoolValue(0); Output.lat.setValue(9); Custom.showHdg.setBoolValue(1); Text.lat.setValue(" "); @@ -882,9 +889,10 @@ var ITAF = { me.setLatMode(9); me.setVertMode(9); me.setLatArm(0); - Custom.Output.fmaPower.setBoolValue(0); + Custom.Output.fmaPower = 0; } else { - Custom.Output.fmaPower.setBoolValue(1); + if (!Custom.Output.fmaPower) showAllBoxes(); + Custom.Output.fmaPower = 1; me.revertBasicMode(); } }, diff --git a/Nasal/FMGC/FMGC-c.nas b/Nasal/FMGC/FMGC-c.nas index f47947ab..b918532f 100644 --- a/Nasal/FMGC/FMGC-c.nas +++ b/Nasal/FMGC/FMGC-c.nas @@ -513,7 +513,7 @@ setlistener("/it-autoflight/output/appr-armed", func { }); # AP -var ap = func { +var fmaAp = func { ap1 = Output.ap1.getValue(); ap2 = Output.ap2.getValue(); newap = Modes.PFD.FMA.apMode.getValue(); @@ -529,7 +529,7 @@ var ap = func { } # FD -var fd = func { +var fmaFd = func { fd1 = Output.fd1.getValue(); fd2 = Output.fd2.getValue(); newfd = Modes.PFD.FMA.fdMode.getValue(); @@ -544,8 +544,8 @@ var fd = func { } } -# AT -var atMode = func { +# A/THR +var fmaAthr = func { at = Output.athr.getValue(); if (at and Modes.PFD.FMA.athrMode.getValue() != "A/THR") { Modes.PFD.FMA.athrMode.setValue("A/THR"); @@ -554,14 +554,7 @@ var atMode = func { } } -var boxchk = func { - if ((Output.ap1.getValue() or Output.ap2.getValue() or Output.fd1.getValue() or Output.fd2.getValue()) and !Custom.Output.fmaPower.getValue()) { - Input.lat.setValue(3); - boxchk_b(); - } -} - -var boxchk_b = func { +var showAllBoxes = func { if (Modes.PFD.FMA.rollMode.getValue() != " ") { Modes.PFD.FMA.rollModeTime.setValue(pts.Sim.Time.elapsedSec.getValue()); } @@ -579,27 +572,6 @@ var boxchk_b = func { } } -# Update AP FD ATHR -setlistener("/it-autoflight/output/ap1", func { - ap(); - boxchk(); -}); -setlistener("/it-autoflight/output/ap2", func { - ap(); - boxchk(); -}); -setlistener("/it-autoflight/output/fd1", func { - fd(); - boxchk(); -}); -setlistener("/it-autoflight/output/fd2", func { - fd(); - boxchk(); -}); -setlistener("/it-autoflight/output/athr", func { - atMode(); -}); - # Boxes setlistener("/modes/pfd/fma/ap-mode", func { if (Modes.PFD.FMA.apMode.getValue() != " ") { diff --git a/Nasal/FMGC/FMGC.nas b/Nasal/FMGC/FMGC.nas index c2465e1a..00760980 100644 --- a/Nasal/FMGC/FMGC.nas +++ b/Nasal/FMGC/FMGC.nas @@ -42,7 +42,6 @@ var tempOverspeed = nil; setprop("/position/gear-agl-ft", 0); setprop("/it-autoflight/settings/accel-agl-ft", 1500); #eventually set to 1500 above runway setprop("/it-autoflight/internal/vert-speed-fpm", 0); -setprop("/it-autoflight/output/fma-pwr", 0); setprop("/instrumentation/nav[0]/nav-id", "XXX"); setprop("/instrumentation/nav[1]/nav-id", "XXX");