From eedfb9fda271d459a11e83bc664084b693c975e0 Mon Sep 17 00:00:00 2001 From: Joshua Davidson <joshuadavidson2000@gmail.com> Date: Fri, 14 Sep 2018 10:25:49 -0400 Subject: [PATCH] Revert "Buttons.nas: refactor" This reverts commit d6c5338dc54fdbf1a82cc226d292e512a484047f. --- Nasal/buttons.nas | 113 ++++++++++++++++++++++---------------------- Nasal/libraries.nas | 7 +-- 2 files changed, 57 insertions(+), 63 deletions(-) diff --git a/Nasal/buttons.nas b/Nasal/buttons.nas index 525f2ffd..eb1515db 100644 --- a/Nasal/buttons.nas +++ b/Nasal/buttons.nas @@ -55,31 +55,19 @@ var variousReset = func { setprop("/controls/switches/seatbelt-sign", 1); } -var BUTTONS = { - init: func() { - var stateL = getprop("/engines/engine[0]/state"); - var stateR = getprop("/engines/engine[1]/state"); - var Lrain = getprop("/controls/switches/LrainRpt"); - var Rrain = getprop("/controls/switches/RrainRpt"); - var OnLt = getprop("/controls/switches/emerCallLtO"); - var CallLt = getprop("/controls/switches/emerCallLtC"); - var EmerCall = getprop("/controls/switches/emerCall"); - var wow = getprop("/gear/gear[1]/wow"); - var wowr = getprop("/gear/gear[2]/wow"); - var gndCtl = getprop("/systems/CVR/gndctl"); - var acPwr = getprop("/systems/electrical/bus/ac-ess"); - }, - update: func() { - rainRepel(); - CVR_master(); - if (getprop("/controls/switches/emerCall")) { - EmerCallOnLight(); - EmerCallLight(); - } - }, -}; +setlistener("/sim/signals/fdm-initialized", func { + var stateL = getprop("/engines/engine[0]/state"); + var stateR = getprop("/engines/engine[1]/state"); + var Lrain = getprop("/controls/switches/LrainRpt"); + var Rrain = getprop("/controls/switches/RrainRpt"); + var OnLt = getprop("/controls/switches/emerCallLtO"); + var CallLt = getprop("/controls/switches/emerCallLtC"); + var wow = getprop("/gear/gear[1]/wow"); + rainTimer.start(); +}); -var rainRepel = func() { +# inhibit rain rpt when engines off and on ground +var rainRepel = func { Lrain = getprop("/controls/switches/LrainRpt"); Rrain = getprop("/controls/switches/RrainRpt"); wow = getprop("/gear/gear[1]/wow"); @@ -93,53 +81,39 @@ var rainRepel = func() { } } -var EmerCallOnLight = func() { +var EmerCall = func { + setprop("/controls/switches/emerCall", 1); + EmerCallTimer1.start(); + EmerCallTimer2.start(); + settimer(func() { + setprop("/controls/switches/emerCall", 0); + EmerCallTimer1.stop(); + EmerCallTimer2.stop(); + }, 10); +} + +var EmerCallOnLight = func { OnLt = getprop("/controls/switches/emerCallLtO"); - EmerCall = getprop("/controls/switches/emerCall"); - if ((OnLt and EmerCall) or !EmerCall) { + if (OnLt) { setprop("/controls/switches/emerCallLtO", 0); - } else if (!OnLt and EmerCall) { + } else if (!OnLt) { setprop("/controls/switches/emerCallLtO", 1); } } -var EmerCallLight = func() { +var EmerCallLightCall = func { CallLt = getprop("/controls/switches/emerCallLtC"); - EmerCall = getprop("/controls/switches/emerCall"); - if ((CallLt and EmerCall) or !EmerCall) { + if (CallLt) { setprop("/controls/switches/emerCallLtC", 0); - } else if (!CallLt and EmerCall) { + } else if (!CallLt) { setprop("/controls/switches/emerCallLtC", 1); } } -var CVR_master = func() { - stateL = getprop("/engines/engine[0]/state"); - stateR = getprop("/engines/engine[1]/state"); - wow = getprop("/gear/gear[1]/wow"); - wowr = getprop("/gear/gear[2]/wow"); - gndCtl = getprop("/systems/CVR/gndctl"); - acPwr = getprop("/systems/electrical/bus/ac-ess"); - if (acPwr > 0 and wow and wowr and (gndCtl or (stateL == 3 or stateR == 3))) { - setprop("/controls/CVR/power", 1); - } else if (!wow and !wowr and acPwr > 0) { - setprop("/controls/CVR/power", 1); - } else { - setprop("/controls/CVR/power", 0); - } -} - -var EmerCall = func { - setprop("/controls/switches/emerCall", 1); +var CabinCall = func { + setprop("/controls/switches/emerCall", 0); settimer(func() { setprop("/controls/switches/emerCall", 0); - }, 10); -} - -var CabinCall = func { - setprop("/controls/switches/cabinCall", 0); - settimer(func() { - setprop("/controls/switches/cabinCall", 0); }, 15); } @@ -160,6 +134,22 @@ var CVR_test = func { } } +var CVR_master = func { + var stateL = getprop("/engines/engine[0]/state"); + var stateR = getprop("/engines/engine[1]/state"); + var wowl = getprop("/gear/gear[1]/wow"); + var wowr = getprop("/gear/gear[2]/wow"); + var gndCtl = getprop("/systems/CVR/gndctl"); + var acPwr = getprop("/systems/electrical/bus/ac-ess"); + if (acPwr > 0 and wowl and wowr and (gndCtl or (stateL == 3 or stateR == 3))) { + setprop("/controls/CVR/power", 1); + } else if (!wowl and !wowr and acPwr > 0) { + setprop("/controls/CVR/power", 1); + } else { + setprop("/controls/CVR/power", 0); + } +} + var mcpSPDKnbPull = func { setprop("/it-autoflight/input/spd-managed", 0); fmgc.ManagedSPD.stop(); @@ -249,3 +239,12 @@ var decreaseManVS = func { setprop("/systems/pressurization/outflowpos-man", manvs - 0.001); } } + +var update_CVR = func { + CVR_master(); +} + +var CVR = maketimer(0.1, update_CVR); +var EmerCallTimer1 = maketimer(0.5, EmerCallOnLight); +var EmerCallTimer2 = maketimer(0.5, EmerCallLightCall); +var rainTimer = maketimer(0.1, rainRepel); \ No newline at end of file diff --git a/Nasal/libraries.nas b/Nasal/libraries.nas index 56e77c8b..bdab14a2 100644 --- a/Nasal/libraries.nas +++ b/Nasal/libraries.nas @@ -185,13 +185,13 @@ var systemsInit = func { mcdu1.MCDU_init(); mcdu2.MCDU_init(); systemsLoop.start(); + libraries.CVR.start(); icing.icingInit(); lightsLoop.start(); var autopilot = gui.Dialog.new("sim/gui/dialogs/autopilot/dialog", "Aircraft/IDG-A32X/Systems/autopilot-dlg.xml"); setprop("/it-autoflight/input/fd1", 1); setprop("/it-autoflight/input/fd2", 1); libraries.ECAM.init(); - libraries.BUTTONS.init(); libraries.variousReset(); } @@ -206,11 +206,6 @@ var systemsLoop = maketimer(0.1, func { systems.FUEL.loop(); systems.ADIRS.loop(); libraries.ECAM.loop(); -<<<<<<< Updated upstream -======= - ecam.ECAM_controller.loop(); - libraries.BUTTONS.update(); ->>>>>>> Stashed changes fadec.fadecLoop(); if ((getprop("/controls/pneumatic/switches/groundair") or getprop("/controls/switches/cart")) and ((getprop("/velocities/groundspeed-kt") > 2) or getprop("/controls/gear/brake-parking") == 0)) {