APU fire warn works
This commit is contained in:
parent
c6af8d90f5
commit
f0a812d85f
3 changed files with 70 additions and 8 deletions
|
@ -221,31 +221,31 @@ var messages_priority_3 = func {
|
|||
}
|
||||
|
||||
# ENG FIRE
|
||||
if (eng1FireFlAgent2.clearFlag == 0 and getprop("/systems/fire/engine1/warning-active") == 1 and phaseVar >= 5 and phaseVar <= 7) {
|
||||
if (eng1FireFlAgent2.clearFlag == 0 and getprop("/systems/failures/engine-left-fire") == 1 and phaseVar >= 5 and phaseVar <= 7) {
|
||||
eng1FireFl.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1FireFl);
|
||||
}
|
||||
|
||||
if (eng1FireGnevacBat.clearFlag == 0 and getprop("/systems/fire/engine1/warning-active") == 1 and (phaseVar < 5 or phaseVar > 7)) {
|
||||
if (eng1FireGnevacBat.clearFlag == 0 and getprop("/systems/failures/engine-left-fire") == 1 and (phaseVar < 5 or phaseVar > 7)) {
|
||||
eng1FireGn.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1FireGn);
|
||||
}
|
||||
|
||||
if (eng2FireFlAgent2.clearFlag == 0 and getprop("/systems/fire/engine2/warning-active") == 1 and phaseVar >= 5 and phaseVar <= 7) {
|
||||
if (eng2FireFlAgent2.clearFlag == 0 and getprop("/systems/failures/engine-right-fire") == 1 and phaseVar >= 5 and phaseVar <= 7) {
|
||||
eng2FireFl.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2FireFl);
|
||||
}
|
||||
|
||||
if (eng2FireGnevacBat.clearFlag == 0 and getprop("/systems/fire/engine2/warning-active") == 1 and (phaseVar < 5 or phaseVar > 7)) {
|
||||
if (eng2FireGnevacBat.clearFlag == 0 and getprop("/systems/failures/engine-right-fire") == 1 and (phaseVar < 5 or phaseVar > 7)) {
|
||||
eng2FireGn.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2FireGn);
|
||||
}
|
||||
|
||||
if (apuFireMaster.clearFlag == 0 and getprop("/systems/fire/apu/warning-active") == 1) {
|
||||
if (apuFireMaster.clearFlag == 0 and getprop("/systems/failures/apu-fire") == 1) {
|
||||
apuFire.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(apuFire);
|
||||
|
@ -358,11 +358,19 @@ var messages_priority_3 = func {
|
|||
} else {
|
||||
ECAM_controller.warningReset(apuFirePB);
|
||||
}
|
||||
if (apuFireAgent.clearFlag == 0 and !getprop("/systems/fire/apu/disch")) {
|
||||
|
||||
if (apuFireAgent.clearFlag == 0 and !getprop("/systems/fire/apu/disch") and getprop("/systems/fire/apu/agent-timer") != 0) {
|
||||
apuFireAgentTimer.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(apuFireAgentTimer);
|
||||
}
|
||||
|
||||
if (apuFireAgent.clearFlag == 0 and !getprop("/systems/fire/apu/disch") and getprop("/systems/fire/apu/agent-timer") == 0) {
|
||||
apuFireAgent.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(apuFireAgent);
|
||||
}
|
||||
|
||||
if (apuFireMaster.clearFlag == 0 and getprop("/controls/APU/master")) {
|
||||
apuFireMaster.active = 1;
|
||||
} else {
|
||||
|
@ -370,6 +378,7 @@ var messages_priority_3 = func {
|
|||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(apuFirePB);
|
||||
ECAM_controller.warningReset(apuFireAgentTimer);
|
||||
ECAM_controller.warningReset(apuFireAgent);
|
||||
ECAM_controller.warningReset(apuFireMaster);
|
||||
}
|
||||
|
|
|
@ -99,7 +99,8 @@ var warnings = std.Vector.new([
|
|||
# APU FIRE
|
||||
var apuFire = warning.new(msg: "APU FIRE ", colour: "r", aural: 0, light: 0, hasSubmsg: 1, sdPage: "apu"),
|
||||
var apuFirePB = warning.new(msg: " -APU FIRE P/B......PUSH", colour: "c"),
|
||||
var apuFireAgent = warning.new(msg: " -AGENT AFT 10 S...DISCH", colour: "c"),
|
||||
var apuFireAgentTimer = warning.new(msg: " -AGENT AFT 10 S...DISCH", colour: "c"),
|
||||
var apuFireAgent = warning.new(msg: " -AGENT............DISCH", colour: "c"),
|
||||
var apuFireMaster = warning.new(msg: " -MASTER SW..........OFF", colour: "c"),
|
||||
|
||||
# Config
|
||||
|
|
|
@ -36,9 +36,14 @@ var testBtn2 = props.globals.getNode("/controls/fire/test-btn-2", 1);
|
|||
var eng1FireWarn = props.globals.initNode("/systems/fire/engine1/warning-active", 0, "BOOL");
|
||||
var eng2FireWarn = props.globals.initNode("/systems/fire/engine2/warning-active", 0, "BOOL");
|
||||
var apuFireWarn = props.globals.initNode("/systems/fire/apu/warning-active", 0, "BOOL");
|
||||
var eng1AgentTimer = props.globals.initNode("/systems/fire/engine1/agent-timer", 0, "INT");
|
||||
var eng2AgentTimer = props.globals.initNode("/systems/fire/engine2/agent-timer", 0, "INT");
|
||||
var apuAgentTimer = props.globals.initNode("/systems/fire/apu/agent-timer", 0, "INT");
|
||||
var wow = props.globals.getNode("/fdm/jsbsim/position/wow", 1);
|
||||
var dcbatNode = props.globals.getNode("systems/electrical/bus/dcbat", 1);
|
||||
var dcessNode = props.globals.getNode("systems/electrical/bus/dc-ess", 1);
|
||||
var apuBleedNode = props.globals.getNode("/systems/apu/bleed-used", 1);
|
||||
var apuMaster = props.globals.getNode("/controls/APU/master", 1);
|
||||
|
||||
var fire_init = func {
|
||||
setprop("/controls/OH/protectors/fwddisch", 0);
|
||||
|
@ -288,7 +293,18 @@ var engFireDetectorUnit = {
|
|||
} elsif (system == 2) {
|
||||
apuFireWarn.setBoolValue(1);
|
||||
if (me.wow.getValue() == 1) {
|
||||
extinguisherBottles.vector[4].discharge();
|
||||
if (apuMaster.getBoolValue()) {
|
||||
apuBleedNode.setValue(0);
|
||||
apuMaster.setValue(0);
|
||||
Listener = setlistener("/systems/apu/rpm", func() {
|
||||
if (getprop("/systems/apu/rpm") == 0) {
|
||||
extinguisherBottles.vector[4].discharge();
|
||||
removelistener(Listener);
|
||||
}
|
||||
}, 0, 0);
|
||||
} else {
|
||||
extinguisherBottles.vector[4].discharge();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -494,18 +510,54 @@ var createFireBottleListener = func(prop, fireBtnProp, index) {
|
|||
setlistener("/controls/engines/engine[0]/fire-btn", func() {
|
||||
if (getprop("/controls/engines/engine[0]/fire-btn") == 1) {
|
||||
ecam.shutUpYou();
|
||||
eng1AgentTimer.setValue(10);
|
||||
createAgentTimerListener(1);
|
||||
}
|
||||
}, 0, 0);
|
||||
|
||||
var createAgentTimerListener = func(agent) {
|
||||
var elapsedList = setlistener("/sim/time/elapsed-sec", func() {
|
||||
if (agent == 1) {
|
||||
if (eng1AgentTimer != 1) {
|
||||
eng1AgentTimer.setValue(eng1AgentTimer.getValue() - 1);
|
||||
} else {
|
||||
eng1AgentTimer.setValue(0);
|
||||
removelistener(elapsedList);
|
||||
removeListener(createAgentTimerListener);
|
||||
}
|
||||
} elsif (agent == 2) {
|
||||
if (eng2AgentTimer != 1) {
|
||||
eng2AgentTimer.setValue(eng2AgentTimer.getValue() - 1);
|
||||
} else {
|
||||
eng2AgentTimer.setValue(0);
|
||||
removelistener(elapsedList);
|
||||
removeListener(createAgentTimerListener);
|
||||
}
|
||||
} elsif (agent == 3) {
|
||||
if (apuAgentTimer != 1) {
|
||||
eng1AgentTimer.setValue(apuAgentTimer.getValue() - 1);
|
||||
} else {
|
||||
apuAgentTimer.setValue(0);
|
||||
removelistener(elapsedList);
|
||||
removeListener(createAgentTimerListener);
|
||||
}
|
||||
}
|
||||
}, 0, 0);
|
||||
}
|
||||
|
||||
setlistener("/controls/engines/engine[1]/fire-btn", func() {
|
||||
if (getprop("/controls/engines/engine[1]/fire-btn") == 1) {
|
||||
ecam.shutUpYou();
|
||||
eng2AgentTimer.setValue(10);
|
||||
createAgentTimerListener(2);
|
||||
}
|
||||
}, 0, 0);
|
||||
|
||||
setlistener("/controls/APU/fire-btn", func() {
|
||||
if (getprop("/controls/APU/fire-btn") == 1) {
|
||||
ecam.shutUpYou();
|
||||
apuAgentTimer.setValue(10);
|
||||
createAgentTimerListener(3);
|
||||
}
|
||||
}, 0, 0);
|
||||
|
||||
|
|
Reference in a new issue