diff --git a/Models/FlightDeck/a320.flightdeck.xml b/Models/FlightDeck/a320.flightdeck.xml index 004c2830..8311d277 100644 --- a/Models/FlightDeck/a320.flightdeck.xml +++ b/Models/FlightDeck/a320.flightdeck.xml @@ -5238,7 +5238,7 @@ 1 - ECAM/warnings/master-warning-light + ECAM/warnings/master-warning-flash 1 diff --git a/Nasal/ECAM/ECAM-controller.nas b/Nasal/ECAM/ECAM-controller.nas index ea4f61c2..2b1f7ae1 100644 --- a/Nasal/ECAM/ECAM-controller.nas +++ b/Nasal/ECAM/ECAM-controller.nas @@ -1,9 +1,6 @@ # A3XX Electronic Centralised Aircraft Monitoring System -# Jonathan Redpath (legoboyvdlp) -############################################## -# Copyright (c) Joshua Davidson (it0uchpods) # -############################################## +# Copyright (c) 2019 Jonathan Redpath (legoboyvdlp) var num_lines = 6; var msg = nil; @@ -11,9 +8,12 @@ var spacer = nil; var line = nil; var right_line = nil; var wow = getprop("/gear/gear[1]/wow"); +var light = 0; +var flash = 0; setprop("/ECAM/show-left-msg", 1); setprop("/ECAM/show-right-msg", 1); setprop("/ECAM/warnings/master-warning-light", 0); +setprop("/ECAM/warnings/master-warning-flash", 0); setprop("/ECAM/warnings/master-caution-light", 0); setprop("/ECAM/warnings/overflow", 0); setprop("/ECAM/warnings/overflow-left", 0); @@ -221,8 +221,8 @@ var ECAM_controller = { }, }; -setlistener("/systems/electrical/bus/ac-ess", func { - if (getprop("/systems/electrical/bus/ac-ess") < 110) { +setlistener("/systems/electrical/bus/dc-ess", func { + if (getprop("/systems/electrical/bus/dc-ess") < 25) { ECAM_controller.reset(); } }, 0, 0); @@ -230,3 +230,28 @@ setlistener("/systems/electrical/bus/ac-ess", func { var ECAMloopTimer = maketimer(0.2, func { ECAM_controller.loop(); }); + +# Flash Master Warning Light +var warnTimer = maketimer(0.2, func { + flash = getprop("/ECAM/warnings/master-warning-flash"); + light = getprop("/ECAM/warnings/master-warning-light"); + if (!light) { + warnTimer.stop(); + setprop("/ECAM/warnings/master-warning-flash", 0); + } else if (flash != 1) { + setprop("/ECAM/warnings/master-warning-flash", 1); + } else { + setprop("/ECAM/warnings/master-warning-flash", 0); + } +}); + +setlistener("/ECAM/warnings/master-warning-light", func { + light = getprop("/ECAM/warnings/master-warning-light"); + if (light == 1) { + setprop("/ECAM/warnings/master-warning-flash", 0); + warnTimer.start(); + } else { + warnTimer.stop(); + setprop("/ECAM/warnings/master-warning-flash", 0); + } +}, 0, 0); diff --git a/Nasal/ECAM/ECAM-logic.nas b/Nasal/ECAM/ECAM-logic.nas index 767cf96a..44cdcc94 100644 --- a/Nasal/ECAM/ECAM-logic.nas +++ b/Nasal/ECAM/ECAM-logic.nas @@ -1,9 +1,6 @@ # A3XX Electronic Centralised Aircraft Monitoring System -# Jonathan Redpath (legoboyvdlp) -############################################## -# Copyright (c) Joshua Davidson (it0uchpods) # -############################################## +# Copyright (c) 2019 Jonathan Redpath (legoboyvdlp) var messages_priority_3 = func { if ((getprop("/position/gear-agl-ft") < 750 and getprop("/gear/gear[1]/position-norm") != 1 and (getprop("/ECAM/warning-phase") <= 3 and getprop("/ECAM/warning-phase") >= 5)) and ((((getprop("/engines/engine[0]/n1-actual") < 75.0 and getprop("/engines/engine[1]/n1-actual") < 75.0)) or ((getprop("/engines/engine[0]/n1-actual") < 77.0 and getprop("/controls/engines/engine[1]/cutoff-switch") == 0) or (getprop("/engines/engine[1]/n1-actual") < 77.0 and getprop("/controls/engines/engine[0]/cutoff-switch") == 0))) or getprop("/controls/flight/flap-pos") > 1)) { diff --git a/Nasal/ECAM/ECAM-messages.nas b/Nasal/ECAM/ECAM-messages.nas index 8a08f994..aed5bf2f 100644 --- a/Nasal/ECAM/ECAM-messages.nas +++ b/Nasal/ECAM/ECAM-messages.nas @@ -1,9 +1,6 @@ # A3XX Electronic Centralised Aircraft Monitoring System -# Jonathan Redpath (legoboyvdlp) -############################################## -# Copyright (c) Joshua Davidson (it0uchpods) # -############################################## +# Copyright (c) 2019 Jonathan Redpath (legoboyvdlp) # messages stored in vectors