Add fire detection warnings to engine system

This commit is contained in:
legoboyvdlp R 2019-05-01 12:59:05 +01:00
parent 0b87833218
commit 8b003bf8af
3 changed files with 68 additions and 3 deletions

View file

@ -792,6 +792,60 @@ var messages_priority_2 = func {
ECAM_controller.warningReset(apuEmerShutdownMast);
apuEmerShutdown.hasSubmsg = 0;
}
if (eng1FireDetFault.clearFlag == 0 and (systems.engFireDetectorUnits.vector[0].condition == 0 or (systems.engFireDetectorUnits.vector[0].loopOne == 9 and systems.engFireDetectorUnits.vector[0].loopTwo == 9)) and (getprop("/ECAM/warning-phase") == 6 or getprop("/ECAM/warning-phase") >= 9 or getprop("/ECAM/warning-phase") <= 2)) {
eng1FireDetFault.active = 1;
} else {
ECAM_controller.warningReset(eng1FireDetFault);
}
if (eng1LoopAFault.clearFlag == 0 and (systems.engFireDetectorUnits.vector[0].loopOne == 9 or systems.engFireDetectorUnits.vector[0].loopOne == 8) and systems.engFireDetectorUnits.vector[0].loopTwo != 9 and systems.engFireDetectorUnits.vector[0].loopTwo != 8) {
eng1LoopAFault.active = 1;
} else {
ECAM_controller.warningReset(eng1LoopAFault);
}
if (eng1LoopBFault.clearFlag == 0 and systems.engFireDetectorUnits.vector[0].loopOne != 9 and systems.engFireDetectorUnits.vector[0].loopOne != 8 and (systems.engFireDetectorUnits.vector[0].loopTwo == 9 or systems.engFireDetectorUnits.vector[0].loopTwo == 8)) {
eng1LoopBFault.active = 1;
} else {
ECAM_controller.warningReset(eng1LoopBFault);
}
if (eng2FireDetFault.clearFlag == 0 and (systems.engFireDetectorUnits.vector[1].condition == 0 or (systems.engFireDetectorUnits.vector[1].loopOne == 9 and systems.engFireDetectorUnits.vector[1].loopTwo == 9)) and (getprop("/ECAM/warning-phase") == 6 or getprop("/ECAM/warning-phase") >= 9 or getprop("/ECAM/warning-phase") <= 2)) {
eng2FireDetFault.active = 1;
} else {
ECAM_controller.warningReset(eng2FireDetFault);
}
if (eng2LoopAFault.clearFlag == 0 and (systems.engFireDetectorUnits.vector[1].loopOne == 9 or systems.engFireDetectorUnits.vector[1].loopOne == 8) and systems.engFireDetectorUnits.vector[1].loopTwo != 9 and systems.engFireDetectorUnits.vector[1].loopTwo != 8) {
eng2LoopAFault.active = 1;
} else {
ECAM_controller.warningReset(eng2LoopAFault);
}
if (eng2LoopBFault.clearFlag == 0 and systems.engFireDetectorUnits.vector[1].loopOne != 9 and systems.engFireDetectorUnits.vector[1].loopOne != 8 and (systems.engFireDetectorUnits.vector[1].loopTwo == 9 or systems.engFireDetectorUnits.vector[1].loopTwo == 8)) {
eng2LoopBFault.active = 1;
} else {
ECAM_controller.warningReset(eng2LoopBFault);
}
if (apuFireDetFault.clearFlag == 0 and (systems.engFireDetectorUnits.vector[2].condition == 0 or (systems.engFireDetectorUnits.vector[2].loopOne == 9 and systems.engFireDetectorUnits.vector[2].loopTwo == 9)) and (getprop("/ECAM/warning-phase") == 6 or getprop("/ECAM/warning-phase") >= 9 or getprop("/ECAM/warning-phase") <= 2)) {
apuFireDetFault.active = 1;
} else {
ECAM_controller.warningReset(apuFireDetFault);
}
if (apuLoopAFault.clearFlag == 0 and (systems.engFireDetectorUnits.vector[2].loopOne == 9 or systems.engFireDetectorUnits.vector[2].loopOne == 8) and systems.engFireDetectorUnits.vector[2].loopTwo != 9 and systems.engFireDetectorUnits.vector[2].loopTwo != 8) {
apuLoopAFault.active = 1;
} else {
ECAM_controller.warningReset(apuLoopAFault);
}
if (apuLoopBFault.clearFlag == 0 and systems.engFireDetectorUnits.vector[2].loopOne != 9 and systems.engFireDetectorUnits.vector[2].loopOne != 8 and (systems.engFireDetectorUnits.vector[2].loopTwo == 9 or systems.engFireDetectorUnits.vector[2].loopTwo == 8)) {
apuLoopBFault.active = 1;
} else {
ECAM_controller.warningReset(apuLoopBFault);
}
}
var messages_priority_1 = func {}

View file

@ -132,8 +132,19 @@ var warnings = std.Vector.new([
var cargoSmokeAftAgent = warning.new(msg: "-AGENT............DISCH", colour: "c"),
# APU shutdown
var apuEmerShutdown = warning.new(msg: "APU EMER SHUTDOWN", colour: "a", aural: 1, light: 1, hasSubmsg: 1),
var apuEmerShutdown = warning.new(msg: "APU EMER SHUT DOWN", colour: "a", aural: 1, light: 1, hasSubmsg: 1),
var apuEmerShutdownMast = warning.new(msg: " -MASTER SW..........OFF", colour: "c"),
# FIRE det fault
var eng1FireDetFault = warning.new(msg: "ENG 1 FIRE DET FAULT", colour: "a", aura: 1, light: 1),
var eng1LoopAFault = warning.new(msg: "ENG 1 FIRE LOOP A FAULT", colour: "a"),
var eng1LoopBFault = warning.new(msg: "ENG 1 FIRE LOOP B FAULT", colour: "a"),
var eng2FireDetFault = warning.new(msg: "ENG 2 FIRE DET FAULT", colour: "a", aura: 1, light: 1),
var eng2LoopAFault = warning.new(msg: "ENG 2 FIRE LOOP A FAULT", colour: "a"),
var eng2LoopBFault = warning.new(msg: "ENG 2 FIRE LOOP B FAULT", colour: "a"),
var apuFireDetFault = warning.new(msg: "APU FIRE DET FAULT", colour: "a", aura: 1, light: 1),
var apuLoopAFault = warning.new(msg: "APU FIRE LOOP A FAULT", colour: "a"),
var apuLoopBFault = warning.new(msg: "APU FIRE LOOP B FAULT", colour: "a"),
]);
var leftmemos = std.Vector.new([

View file

@ -89,9 +89,9 @@ var engFireDetectorUnit = {
}
},
receiveSignal: func(type) {
if (type == 1 and me.loopOne != 9 and me.condition != 0) {
if (type == 1 and me.loopOne != 9 and me.loopOne != 8 and me.condition != 0) {
me.loopOne = 1;
} elsif (type == 2 and me.loopTwo != 9 and me.condition != 0) {
} elsif (type == 2 and me.loopTwo != 9 and me.loopTwo != 8 and me.condition != 0) {
me.loopTwo = 1;
}
},