1
0
Fork 0

Add modern ALL ENGINE FAILURE ECAM warning which replaces old DUAL FAILURE

This commit is contained in:
legoboyvdlp R 2020-10-17 14:12:36 +01:00
parent 6b7bbeeb7c
commit 57e6da80c2
4 changed files with 85 additions and 192 deletions

View file

@ -90,185 +90,94 @@ var messages_priority_3 = func {
overspeedFlap.msg = "-VFE................XXX"; overspeedFlap.msg = "-VFE................XXX";
} }
# ENG DUAL FAIL # ENG ALL ENGINE FAILURE
if (phaseVar3 >= 5 and phaseVar3 <= 7 and dualFailNode.getBoolValue() and dualFail.clearFlag == 0) { if (allEngFail.clearFlag == 0 and dualFailNode.getBoolValue()) {
dualFail.active = 1; allEngFail.active = 1;
} else {
ECAM_controller.warningReset(dualFail); if (allEngFailElec.clearFlag == 0 and getprop("/systems/electrical/relay/emer-glc/contact-pos") == 0) {
} allEngFailElec.active = 1;
if (dualFail.active == 1) {
if (getprop("/controls/engines/engine-start-switch") != 2 and dualFailModeSel.clearFlag == 0) {
dualFailModeSel.active = 1;
} else { } else {
ECAM_controller.warningReset(dualFailModeSel); ECAM_controller.warningReset(allEngFailElec);
} }
if (getprop("/fdm/jsbsim/fcs/throttle-lever[0]") > 0.01 and getprop("/fdm/jsbsim/fcs/throttle-lever[1]") > 0.01 and dualFailLevers.clearFlag == 0) { if (allEngFailSPD1.clearFlag == 0 and allEngFailSPD2.clearFlag == 0 and allEngFailSPD3.clearFlag == 0 and allEngFailSPD4.clearFlag == 0) {
dualFailLevers.active = 1; if (find("LEAP", getprop("/MCDUC/eng"))) {
allEngFailSPD2.active = 1;
ECAM_controller.warningReset(allEngFailSPD1);
ECAM_controller.warningReset(allEngFailSPD3);
ECAM_controller.warningReset(allEngFailSPD4);
} elsif (find("V2527", getprop("/MCDUC/eng"))) {
allEngFailSPD3.active = 1;
ECAM_controller.warningReset(allEngFailSPD1);
ECAM_controller.warningReset(allEngFailSPD2);
ECAM_controller.warningReset(allEngFailSPD4);
} elsif (find("PW11", getprop("/MCDUC/eng"))) {
allEngFailSPD1.active = 1;
ECAM_controller.warningReset(allEngFailSPD2);
ECAM_controller.warningReset(allEngFailSPD3);
ECAM_controller.warningReset(allEngFailSPD4);
} else {
allEngFailSPD4.active = 1;
ECAM_controller.warningReset(allEngFailSPD1);
ECAM_controller.warningReset(allEngFailSPD2);
ECAM_controller.warningReset(allEngFailSPD3);
}
} else { } else {
ECAM_controller.warningReset(dualFailLevers); ECAM_controller.warningReset(allEngFailSPD1);
ECAM_controller.warningReset(allEngFailSPD2);
ECAM_controller.warningReset(allEngFailSPD3);
ECAM_controller.warningReset(allEngFailSPD4);
} }
if (engOpt.getValue() == "IAE" and dualFailRelightSPD.clearFlag == 0) { if (allEngFailAPU.clearFlag == 0 and !systems.APUNodes.Controls.master.getBoolValue() and systems.ELEC.Switch.genApu.getValue() and !systems.APUNodes.Controls.fire.getValue() and !systems.APU.signals.autoshutdown and !systems.APU.signals.emer and pts.Instrumentation.Altimeter.indicatedFt.getValue() < 22500) {
dualFailRelightSPD.active = 1; allEngFailAPU.active = 1;
} else { } else {
ECAM_controller.warningReset(dualFailRelightSPD); ECAM_controller.warningReset(allEngFailAPU);
} }
if (engOpt.getValue() != "IAE" and dualFailRelightSPDCFM.clearFlag == 0) { if (allEngFailLevers.clearFlag == 0 and (pts.Controls.Engines.Engine.throttleLever[0].getValue() > 0.01 or pts.Controls.Engines.Engine.throttleLever[0].getValue() > 0.01)) {
dualFailRelightSPDCFM.active = 1; allEngFailLevers.active = 1;
} else { } else {
ECAM_controller.warningReset(dualFailRelightSPDCFM); ECAM_controller.warningReset(allEngFailLevers);
} }
if (emerGen.getValue() == 0 and dualFailElec.clearFlag == 0) { if (allEngFailFAC.clearFlag == 0 and fbw.FBW.Computers.fac1.getBoolValue() == 0) {
dualFailElec.active = 1; allEngFailFAC.active = 1;
} else { } else {
ECAM_controller.warningReset(dualFailElec); ECAM_controller.warningReset(allEngFailFAC);
} }
if (dualFailRadio.clearFlag == 0) { if (allEngFailGlide.clearFlag == 0) {
dualFailRadio.active = 1; allEngFailGlide.active = 1;
} else { } else {
ECAM_controller.warningReset(dualFailRadio); ECAM_controller.warningReset(allEngFailGlide);
} }
if (getprop("/systems/fctl/fac1-healthy-signal") == 0 and dualFailFAC.clearFlag == 0) { if (allEngFailDiversion.clearFlag == 0) {
dualFailFAC.active = 1; allEngFailDiversion.active = 1;
} else { } else {
ECAM_controller.warningReset(dualFailFAC); ECAM_controller.warningReset(allEngFailDiversion);
} }
if (allEngFailProc.clearFlag == 0) {
if (dualFailMasters.clearFlag == 0) { allEngFailProc.active = 1;
dualFailRelight.active = 1; # assumption
dualFailMasters.active = 1;
} else { } else {
ECAM_controller.warningReset(dualFailRelight); ECAM_controller.warningReset(allEngFailProc);
ECAM_controller.warningReset(dualFailMasters);
}
if (dualFailSPDGD.clearFlag == 0) {
dualFailSuccess.active = 1; # assumption
dualFailSPDGD.active = 1;
} else {
ECAM_controller.warningReset(dualFailSuccess);
ECAM_controller.warningReset(dualFailSPDGD);
}
if (dualFailAPU.clearFlag == 0) {
dualFailAPU.active = 1;
} else {
ECAM_controller.warningReset(dualFailAPU);
}
if (dualFailAPUwing.clearFlag == 0 and pts.APU.rpm.getValue() > 94.9 and wing_pb.getBoolValue()) {
dualFailAPUwing.active = 1;
} else {
ECAM_controller.warningReset(dualFailAPUwing);
}
if (dualFailAPUbleed.clearFlag == 0 and pts.APU.rpm.getValue() > 94.9 and !apu_bleedSw.getBoolValue()) {
dualFailAPUbleed.active = 1;
} else {
ECAM_controller.warningReset(dualFailAPUbleed);
}
if (dualFailMastersAPU.clearFlag == 0) {
dualFailMastersAPU.active = 1;
} else {
ECAM_controller.warningReset(dualFailMastersAPU);
}
if (dualFailflap.clearFlag == 0) {
dualFailAPPR.active = 1; # assumption
dualFailflap.active = 1;
} else {
ECAM_controller.warningReset(dualFailAPPR);
ECAM_controller.warningReset(dualFailflap);
}
if (dualFailcabin.clearFlag == 0) {
dualFailcabin.active = 1;
} else {
ECAM_controller.warningReset(dualFailcabin);
}
if (dualFailrudd.clearFlag == 0) {
dualFailrudd.active = 1;
} else {
ECAM_controller.warningReset(dualFailrudd);
}
if (dualFailgear.clearFlag == 0 and gear.getValue() != 1) {
dualFail5000.active = 1; # according to doc
dualFailgear.active = 1;
} else {
ECAM_controller.warningReset(dualFailgear);
ECAM_controller.warningReset(dualFail5000);
}
if (dualFailfinalspeed.clearFlag == 0) {
dualFailfinalspeed.active = 1;
} else {
ECAM_controller.warningReset(dualFailfinalspeed);
}
if (dualFailmasteroff.clearFlag == 0 and (!pts.Controls.Engines.Engine.cutoffSw[0].getValue() or !pts.Controls.Engines.Engine.cutoffSw[1].getValue())) {
dualFailmasteroff.active = 1;
} else {
ECAM_controller.warningReset(dualFailmasteroff);
}
if (dualFailapuoff.clearFlag == 0 and systems.APUNodes.Controls.master.getBoolValue()) {
dualFailapuoff.active = 1;
} else {
ECAM_controller.warningReset(dualFailapuoff);
}
if (dualFailevac.clearFlag == 0) {
dualFailevac.active = 1;
} else {
ECAM_controller.warningReset(dualFailevac);
}
if (dualFailbatt.clearFlag == 0) { # elec power lost when batt goes off anyway I guess
dualFailbatt.active = 1;
dualFailtouch.active = 1;
} else {
ECAM_controller.warningReset(dualFailbatt);
ECAM_controller.warningReset(dualFailtouch);
} }
} else { } else {
ECAM_controller.warningReset(dualFailModeSel); ECAM_controller.warningReset(allEngFail);
ECAM_controller.warningReset(dualFailLevers); ECAM_controller.warningReset(allEngFailElec);
ECAM_controller.warningReset(dualFailRelightSPD); ECAM_controller.warningReset(allEngFailSPD1);
ECAM_controller.warningReset(dualFailRelightSPDCFM); ECAM_controller.warningReset(allEngFailSPD2);
ECAM_controller.warningReset(dualFailElec); ECAM_controller.warningReset(allEngFailSPD3);
ECAM_controller.warningReset(dualFailRadio); ECAM_controller.warningReset(allEngFailSPD4);
ECAM_controller.warningReset(dualFailFAC); ECAM_controller.warningReset(allEngFailAPU);
ECAM_controller.warningReset(dualFailRelight); ECAM_controller.warningReset(allEngFailLevers);
ECAM_controller.warningReset(dualFailMasters); ECAM_controller.warningReset(allEngFailFAC);
ECAM_controller.warningReset(dualFailSuccess); ECAM_controller.warningReset(allEngFailGlide);
ECAM_controller.warningReset(dualFailSPDGD); ECAM_controller.warningReset(allEngFailDiversion);
ECAM_controller.warningReset(dualFailAPU); ECAM_controller.warningReset(allEngFailProc);
ECAM_controller.warningReset(dualFailAPUwing);
ECAM_controller.warningReset(dualFailAPUbleed);
ECAM_controller.warningReset(dualFailMastersAPU);
ECAM_controller.warningReset(dualFailAPPR);
ECAM_controller.warningReset(dualFailflap);
ECAM_controller.warningReset(dualFailcabin);
ECAM_controller.warningReset(dualFailrudd);
ECAM_controller.warningReset(dualFailgear);
ECAM_controller.warningReset(dualFail5000);
ECAM_controller.warningReset(dualFailfinalspeed);
ECAM_controller.warningReset(dualFailmasteroff);
ECAM_controller.warningReset(dualFailapuoff);
ECAM_controller.warningReset(dualFailevac);
ECAM_controller.warningReset(dualFailbatt);
ECAM_controller.warningReset(dualFailtouch);
} }
# ENG ABV IDLE # ENG ABV IDLE
@ -317,7 +226,7 @@ var messages_priority_3 = func {
if (eng1Fire.active == 1) { if (eng1Fire.active == 1) {
if (phaseVar3 >= 5 and phaseVar3 <= 7) { if (phaseVar3 >= 5 and phaseVar3 <= 7) {
if (eng1FireFllever.clearFlag == 0 and getprop("/fdm/jsbsim/fcs/throttle-lever[0]") > 0.01) { if (eng1FireFllever.clearFlag == 0 and pts.Controls.Engines.Engine.throttleLever[0].getValue() > 0.01) {
eng1FireFllever.active = 1; eng1FireFllever.active = 1;
} else { } else {
ECAM_controller.warningReset(eng1FireFllever); ECAM_controller.warningReset(eng1FireFllever);
@ -383,7 +292,7 @@ var messages_priority_3 = func {
} }
if (phaseVar3 < 5 or phaseVar3 > 7) { if (phaseVar3 < 5 or phaseVar3 > 7) {
if (eng1FireGnlever.clearFlag == 0 and getprop("/fdm/jsbsim/fcs/throttle-lever[0]") > 0.01 and getprop("/fdm/jsbsim/fcs/throttle-lever[1]") > 0.01) { if (eng1FireGnlever.clearFlag == 0 and pts.Controls.Engines.Engine.throttleLever[0].getValue() > 0.01 and pts.Controls.Engines.Engine.throttleLever[1].getValue() > 0.01) {
eng1FireGnlever.active = 1; eng1FireGnlever.active = 1;
} else { } else {
ECAM_controller.warningReset(eng1FireGnlever); ECAM_controller.warningReset(eng1FireGnlever);
@ -472,7 +381,7 @@ var messages_priority_3 = func {
if (eng2Fire.active == 1) { if (eng2Fire.active == 1) {
if (phaseVar3 >= 5 and phaseVar3 <= 7) { if (phaseVar3 >= 5 and phaseVar3 <= 7) {
if (eng2FireFllever.clearFlag == 0 and getprop("/fdm/jsbsim/fcs/throttle-lever[1]") > 0.01) { if (eng2FireFllever.clearFlag == 0 and pts.Controls.Engines.Engine.throttleLever[1].getValue() > 0.01) {
eng2FireFllever.active = 1; eng2FireFllever.active = 1;
} else { } else {
ECAM_controller.warningReset(eng2FireFllever); ECAM_controller.warningReset(eng2FireFllever);
@ -538,7 +447,7 @@ var messages_priority_3 = func {
} }
if (phaseVar3 < 5 or phaseVar3 > 7) { if (phaseVar3 < 5 or phaseVar3 > 7) {
if (eng2FireGnlever.clearFlag == 0 and getprop("/fdm/jsbsim/fcs/throttle-lever[0]") > 0.01 and getprop("/fdm/jsbsim/fcs/throttle-lever[1]") > 0.01) { if (eng2FireGnlever.clearFlag == 0 and pts.Controls.Engines.Engine.throttleLever[0].getValue() > 0.01 and pts.Controls.Engines.Engine.throttleLever[1].getValue() > 0.01) {
eng2FireGnlever.active = 1; eng2FireGnlever.active = 1;
} else { } else {
ECAM_controller.warningReset(eng2FireGnlever); ECAM_controller.warningReset(eng2FireGnlever);
@ -627,7 +536,7 @@ var messages_priority_3 = func {
# APU Fire # APU Fire
if (apuFire.active == 1) { if (apuFire.active == 1) {
if (apuFirePB.clearFlag == 0 and !getprop("/controls/apu/fire-btn")) { if (apuFirePB.clearFlag == 0 and !systems.APUNodes.Controls.fire.getValue()) {
apuFirePB.active = 1; apuFirePB.active = 1;
} else { } else {
ECAM_controller.warningReset(apuFirePB); ECAM_controller.warningReset(apuFirePB);
@ -637,13 +546,13 @@ var messages_priority_3 = func {
apuFireAgentTimer.msg = " -AGENT AFT " ~ getprop("/systems/fire/apu/agent-timer") ~ " S...DISCH"; apuFireAgentTimer.msg = " -AGENT AFT " ~ getprop("/systems/fire/apu/agent-timer") ~ " S...DISCH";
} }
if (apuFireAgent.clearFlag == 0 and getprop("/controls/apu/fire-btn") and !getprop("/systems/fire/apu/disch") and getprop("/systems/fire/apu/agent-timer") != 0) { if (apuFireAgent.clearFlag == 0 and systems.APUNodes.Controls.fire.getValue() and !getprop("/systems/fire/apu/disch") and getprop("/systems/fire/apu/agent-timer") != 0) {
apuFireAgentTimer.active = 1; apuFireAgentTimer.active = 1;
} else { } else {
ECAM_controller.warningReset(apuFireAgentTimer); ECAM_controller.warningReset(apuFireAgentTimer);
} }
if (apuFireAgent.clearFlag == 0 and getprop("/controls/apu/fire-btn") and !getprop("/systems/fire/apu/disch") and getprop("/systems/fire/apu/agent-timer") == 0) { if (apuFireAgent.clearFlag == 0 and systems.APUNodes.Controls.fire.getValue() and !getprop("/systems/fire/apu/disch") and getprop("/systems/fire/apu/agent-timer") == 0) {
apuFireAgent.active = 1; apuFireAgent.active = 1;
} else { } else {
ECAM_controller.warningReset(apuFireAgent); ECAM_controller.warningReset(apuFireAgent);
@ -930,7 +839,7 @@ var messages_priority_3 = func {
ECAM_controller.warningReset(emerconfigFuelG2); ECAM_controller.warningReset(emerconfigFuelG2);
} }
if (getprop("/systems/fctl/fac1-healthy-signal") == 0 and emerconfigFAC.clearFlag == 0) { if (fbw.FBW.Computers.fac1.getBoolValue() == 0 and emerconfigFAC.clearFlag == 0) {
emerconfigFAC.active = 1; emerconfigFAC.active = 1;
} else { } else {
ECAM_controller.warningReset(emerconfigFAC); ECAM_controller.warningReset(emerconfigFAC);

View file

@ -18,35 +18,18 @@ var warnings = std.Vector.new([
var overspeedGear = warning.new(msg: "-VLE...........280 /.67", colour: "r"), var overspeedGear = warning.new(msg: "-VLE...........280 /.67", colour: "r"),
var overspeedFlap = warning.new(msg: "-VFE................XXX", colour: "r"), var overspeedFlap = warning.new(msg: "-VFE................XXX", colour: "r"),
# DUAL ENG FAIL var allEngFail = warning.new(msg: "ENG ALL ENGINES FAILURE", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var dualFail = warning.new(msg: "ENG DUAL FAILURE", colour: "r", aural: 0, light: 0, isMainMsg: 1), var allEngFailElec = warning.new(msg: " -EMER ELEC PWR...MAN ON", colour: "c"),
var dualFailModeSel = warning.new(msg: " -ENG MODE SEL.......IGN", colour: "c"), var allEngFailSPD1 = warning.new(msg: " OPT RELIGHT SPD.260/.77", colour: "c"),
var dualFailLevers = warning.new(msg: " -THR LEVERS........IDLE", colour: "c"), var allEngFailSPD2 = warning.new(msg: " OPT RELIGHT SPD.270/.77", colour: "c"),
var dualFailRelightSPD = warning.new(msg: " OPTIMUM RELIGHT SPD.280", colour: "c"), var allEngFailSPD3 = warning.new(msg: " OPT RELIGHT SPD.280/.77", colour: "c"),
var dualFailRelightSPDCFM = warning.new(msg: " OPTIMUM RELIGHT SPD.300", colour: "c"), var allEngFailSPD4 = warning.new(msg: " OPT RELIGHT SPD.300/.77", colour: "c"),
var dualFailElec = warning.new(msg: " -EMER ELEC PWR...MAN ON", colour: "c"), var allEngFailAPU = warning.new(msg: " -APU..............START", colour: "c"),
var dualFailRadio = warning.new(msg: " -VHF1/ATC1..........USE", colour: "c"), var allEngFailLevers = warning.new(msg: " -THR LEVERS........IDLE", colour: "c"),
var dualFailFAC = warning.new(msg: " -FAC 1......OFF THEN ON", colour: "c"), var allEngFailFAC = warning.new(msg: " -FAC 1......OFF THEN ON", colour: "c"),
var dualFailRelight = warning.new(msg: "•IF NO RELIGHT AFTER 30S", colour: "w", isMainMsg: 1), var allEngFailGlide = warning.new(msg: " GLDG DIST: 2NM/1000FT", colour: "c"),
var dualFailMasters = warning.new(msg: " -ENG MASTERS.OFF 30S/ON", colour: "c"), var allEngFailDiversion = warning.new(msg: " -DIVERSION.....INITIATE", colour: "c"),
var dualFailSuccess = warning.new(msg: " •IF UNSUCCESSFUL : ", colour: "w", isMainMsg: 1), var allEngFailProc = warning.new(msg: " -ALL ENG FAIL PROC.APPLY", colour: "c"),
var dualFailAPU = warning.new(msg: " -APU (IF AVAIL)...START", colour: "c"),
var dualFailAPUwing = warning.new(msg: " -WING ANTI ICE......OFF", colour: "c"),
var dualFailAPUbleed = warning.new(msg: " -APU BLEED...........ON", colour: "c"),
var dualFailMastersAPU = warning.new(msg: " -ENG MASTERS.OFF 30S/ON", colour: "c"),
var dualFailSPDGD = warning.new(msg: " OPTIMUM SPEED.....G DOT", colour: "c"),
var dualFailAPPR = warning.new(msg: " •EARLY IN APPR : ", colour: "w", isMainMsg: 1),
var dualFailcabin = warning.new(msg: " -CAB SECURE.......ORDER", colour: "c"),
var dualFailrudd = warning.new(msg: " -USE RUDDER WITH CARE ", colour: "c"),
var dualFailflap = warning.new(msg: " -FOR LDG.....USE FLAP 3", colour: "c"),
var dualFail5000 = warning.new(msg: " •AT 5000 FT AGL : ", colour: "w", isMainMsg: 1),
var dualFailgear = warning.new(msg: " -L/G.........GRVTY EXTN", colour: "c"),
var dualFailfinalspeed = warning.new(msg: " TARGET SPEED.....150 KT", colour: "c"),
var dualFailtouch = warning.new(msg: " •AT TOUCH DOWN : ", colour: "w", isMainMsg: 1),
var dualFailmasteroff = warning.new(msg: " -ENG MASTERS........OFF", colour: "c"),
var dualFailapuoff = warning.new(msg: " -APU MASTER SW......OFF", colour: "c"),
var dualFailevac = warning.new(msg: " -EVAC..........INITIATE", colour: "c"),
var dualFailbatt = warning.new(msg: " -BAT 1+2............OFF", colour: "c"),
# ENG 1 THR LEVER ABV IDLE # ENG 1 THR LEVER ABV IDLE
var eng1ThrLvrAbvIdle = warning.new(msg: "ENG 1 THR LEVER ABV IDLE", colour: "r", aural: 3, light: 0, isMainMsg: 1), var eng1ThrLvrAbvIdle = warning.new(msg: "ENG 1 THR LEVER ABV IDLE", colour: "r", aural: 3, light: 0, isMainMsg: 1),

View file

@ -26,6 +26,7 @@ var Controls = {
firePb: [props.globals.getNode("/controls/engines/engine[0]/fire-btn"), props.globals.getNode("/controls/engines/engine[1]/fire-btn")], firePb: [props.globals.getNode("/controls/engines/engine[0]/fire-btn"), props.globals.getNode("/controls/engines/engine[1]/fire-btn")],
throttle: [props.globals.getNode("/controls/engines/engine[0]/throttle"), props.globals.getNode("/controls/engines/engine[1]/throttle")], throttle: [props.globals.getNode("/controls/engines/engine[0]/throttle"), props.globals.getNode("/controls/engines/engine[1]/throttle")],
throttleFdm: [props.globals.getNode("/controls/engines/engine[0]/throttle-fdm"), props.globals.getNode("/controls/engines/engine[1]/throttle-fdm")], throttleFdm: [props.globals.getNode("/controls/engines/engine[0]/throttle-fdm"), props.globals.getNode("/controls/engines/engine[1]/throttle-fdm")],
throttleLever: [props.globals.getNode("/controls/engines/engine[0]/throttle-lever"), props.globals.getNode("/controls/engines/engine[1]/throttle-lever")],
throttleOutput: [props.globals.getNode("/controls/engines/engine[0]/throttle-output"), props.globals.getNode("/controls/engines/engine[1]/throttle-output")], throttleOutput: [props.globals.getNode("/controls/engines/engine[0]/throttle-output"), props.globals.getNode("/controls/engines/engine[1]/throttle-output")],
throttlePos: [props.globals.getNode("/controls/engines/engine[0]/throttle-pos"), props.globals.getNode("/controls/engines/engine[1]/throttle-pos")], throttlePos: [props.globals.getNode("/controls/engines/engine[0]/throttle-pos"), props.globals.getNode("/controls/engines/engine[1]/throttle-pos")],
throttleRev: [props.globals.getNode("/controls/engines/engine[0]/throttle-rev"), props.globals.getNode("/controls/engines/engine[1]/throttle-rev")], throttleRev: [props.globals.getNode("/controls/engines/engine[0]/throttle-rev"), props.globals.getNode("/controls/engines/engine[1]/throttle-rev")],

View file

@ -630,7 +630,7 @@ eng2Agent2TimerMakeTimerFunc = func() {
} }
setlistener("/controls/apu/fire-btn", func() { setlistener("/controls/apu/fire-btn", func() {
if (getprop("/controls/apu/fire-btn") == 1) { if (systems.APUNodes.Controls.fire.getValue() == 1) {
ecam.shutUpYou(); ecam.shutUpYou();
systems.APUController.APU.emergencyStop(); systems.APUController.APU.emergencyStop();
apuAgentTimerMakeTimer.stop(); apuAgentTimerMakeTimer.stop();