add ENG1/2 FAIL warnings, THR LVR NOT SET message
This commit is contained in:
parent
cbc2f565f9
commit
146f14bde5
5 changed files with 606 additions and 18 deletions
|
@ -89,6 +89,11 @@ var warningNodes = {
|
|||
rudTrimConfig2: props.globals.initNode("/ECAM/warnings/fctl/rudder-trim-config-range"),
|
||||
dc2FuelConsumptionIncreased: props.globals.initNode("/ECAM/warnings/logic/dc-2-fuel-consumption-increased"),
|
||||
dc2FMSPredictions: props.globals.initNode("/ECAM/warnings/logic/dc-2-fms-predictions-unreliable"),
|
||||
thrLeversNotSet: props.globals.initNode("/ECAM/warnings/logic/eng/thr-lever-not-set"),
|
||||
revSet: props.globals.initNode("/ECAM/warnings/logic/eng/reverse-set"),
|
||||
eng1Fail: props.globals.initNode("/ECAM/warnings/logic/eng/eng-1-fail"),
|
||||
eng2Fail: props.globals.initNode("/ECAM/warnings/logic/eng/eng-2-fail"),
|
||||
phase5Trans: props.globals.initNode("/ECAM/warnings/logic/eng/phase-5-output"),
|
||||
},
|
||||
Timers: {
|
||||
apuFaultOutput: props.globals.initNode("/ECAM/warnings/timer/apu-fault-output"),
|
||||
|
|
|
@ -1160,6 +1160,240 @@ var messages_priority_3 = func {
|
|||
|
||||
var messages_priority_2 = func {
|
||||
phaseVar2 = phaseNode.getValue();
|
||||
|
||||
if ((phaseVar2 == 2 or phaseVar2 == 3 or phaseVar2 == 9) and warningNodes.Logic.thrLeversNotSet.getValue() and engThrustLvrNotSet.clearFlag == 0) {
|
||||
engThrustLvrNotSet.active = 1;
|
||||
|
||||
if (fadec.Thrust.limFlex.getValue()) {
|
||||
engThrustLvrNotSetMCT.active = 1;
|
||||
ECAM_controller.warningReset(engThrustLvrNotSetMCT);
|
||||
} else {
|
||||
engThrustLvrNotSetTO.active = 1;
|
||||
ECAM_controller.warningReset(engThrustLvrNotSetTO);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(engThrustLvrNotSet);
|
||||
ECAM_controller.warningReset(engThrustLvrNotSetMCT);
|
||||
ECAM_controller.warningReset(engThrustLvrNotSetTO);
|
||||
}
|
||||
|
||||
if ((phaseVar2 >= 5 and phaseVar2 <= 7) and warningNodes.Logic.revSet.getValue() and engRevSet.clearFlag == 0) {
|
||||
engRevSet.active = 1;
|
||||
|
||||
if (engRevSetLevers.clearFlag == 0) {
|
||||
engRevSetLevers.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(engRevSetLevers);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(engRevSet);
|
||||
ECAM_controller.warningReset(engRevSetLevers);
|
||||
}
|
||||
|
||||
if (warningNodes.Logic.eng1Fail.getValue() and eng1Fail.clearFlag == 0) {
|
||||
eng1Fail.active = 1;
|
||||
|
||||
if (0 == 1 and thrustMalfunction1.clearFlag == 0) { # OVER THR PROTECT
|
||||
thrustMalfunction1.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(thrustMalfunction1);
|
||||
}
|
||||
|
||||
if (0 == 1 and shaftFailure1.clearFlag == 0) { # PW ONLY
|
||||
shaftFailure1.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(shaftFailure1);
|
||||
}
|
||||
|
||||
if (phaseVar2 != 2 and phaseVar2 != 9 and pts.Controls.Engines.startSw.getValue() != 2 and eng1FailModeSel.clearFlag == 0) { # and not stall and not EGT protect
|
||||
eng1FailModeSel.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1FailModeSel);
|
||||
}
|
||||
|
||||
if (phaseVar2 != 4 and warningNodes.Logic.phase5Trans.getValue() == 1) {
|
||||
if (eng1FailThrLvrIdle.clearFlag == 0 and pts.Controls.Engines.Engine.throttleLever[0].getValue() > 0.01) {
|
||||
eng1FailThrLvrIdle.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1FailThrLvrIdle);
|
||||
}
|
||||
|
||||
if (eng1FailNoRelight.clearFlag == 0 and phaseVar2 != 2 and phaseVar2 != 9 and pts.Controls.Engines.Engine.cutoffSw[0].getValue() == 0) {
|
||||
eng1FailNoRelight.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1FailNoRelight);
|
||||
}
|
||||
|
||||
if (eng1FailMasterOff.clearFlag == 0 and pts.Controls.Engines.Engine.cutoffSw[0].getValue() == 0) {
|
||||
eng1FailMasterOff.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1FailMasterOff);
|
||||
}
|
||||
|
||||
if (eng1FailDamage.clearFlag == 0 and systems.fireButtons[0].getValue() == 0) {
|
||||
eng1FailDamage.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1FailDamage);
|
||||
}
|
||||
|
||||
if (eng1FailFirePB.clearFlag == 0 and systems.fireButtons[0].getValue() == 0) {
|
||||
eng1FailFirePB.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1FailFirePB);
|
||||
}
|
||||
|
||||
if (eng1FailAgent1DischT.clearFlag == 0 and !systems.extinguisherBottles.vector[0].lightProp.getValue()) {
|
||||
eng1FailAgent1DischT.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1FailAgent1DischT);
|
||||
}
|
||||
|
||||
if (eng1FailAgent1Disch.clearFlag == 0 and !systems.extinguisherBottles.vector[0].lightProp.getValue()) {
|
||||
eng1FailAgent1Disch.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1FailAgent1Disch);
|
||||
}
|
||||
|
||||
if (eng1FailNoDamage.clearFlag == 0) {
|
||||
eng1FailNoDamage.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1FailNoDamage);
|
||||
}
|
||||
|
||||
if (eng1FailRelight.clearFlag == 0) {
|
||||
eng1FailRelight.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1FailRelight);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1FailThrLvrIdle);
|
||||
ECAM_controller.warningReset(eng1FailNoRelight);
|
||||
ECAM_controller.warningReset(eng1FailMasterOff);
|
||||
ECAM_controller.warningReset(eng1FailDamage);
|
||||
ECAM_controller.warningReset(eng1FailFirePB);
|
||||
ECAM_controller.warningReset(eng1FailAgent1DischT);
|
||||
ECAM_controller.warningReset(eng1FailAgent1Disch);
|
||||
ECAM_controller.warningReset(eng1FailNoDamage);
|
||||
ECAM_controller.warningReset(eng1FailRelight);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1Fail);
|
||||
ECAM_controller.warningReset(thrustMalfunction1);
|
||||
ECAM_controller.warningReset(shaftFailure1);
|
||||
ECAM_controller.warningReset(eng1FailModeSel);
|
||||
ECAM_controller.warningReset(eng1FailThrLvrIdle);
|
||||
ECAM_controller.warningReset(eng1FailNoRelight);
|
||||
ECAM_controller.warningReset(eng1FailMasterOff);
|
||||
ECAM_controller.warningReset(eng1FailDamage);
|
||||
ECAM_controller.warningReset(eng1FailFirePB);
|
||||
ECAM_controller.warningReset(eng1FailAgent1DischT);
|
||||
ECAM_controller.warningReset(eng1FailAgent1Disch);
|
||||
ECAM_controller.warningReset(eng1FailNoDamage);
|
||||
ECAM_controller.warningReset(eng1FailRelight);
|
||||
}
|
||||
|
||||
if (warningNodes.Logic.eng2Fail.getValue() and eng2Fail.clearFlag == 0) {
|
||||
eng2Fail.active = 1;
|
||||
|
||||
if (0 == 1 and thrustMalfunction2.clearFlag == 0) { # OVER THR PROTECT
|
||||
thrustMalfunction2.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(thrustMalfunction2);
|
||||
}
|
||||
|
||||
if (0 == 1 and shaftFailure2.clearFlag == 0) { # PW ONLY
|
||||
shaftFailure2.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(shaftFailure2);
|
||||
}
|
||||
|
||||
if (phaseVar2 != 2 and phaseVar2 != 9 and pts.Controls.Engines.startSw.getValue() != 2 and eng2FailModeSel.clearFlag == 0) { # and not stall and not EGT protect
|
||||
eng2FailModeSel.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2FailModeSel);
|
||||
}
|
||||
|
||||
if (phaseVar2 != 4 and warningNodes.Logic.phase5Trans.getValue() == 1) {
|
||||
if (eng2FailThrLvrIdle.clearFlag == 0 and pts.Controls.Engines.Engine.throttleLever[1].getValue() > 0.01) {
|
||||
eng2FailThrLvrIdle.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2FailThrLvrIdle);
|
||||
}
|
||||
|
||||
if (eng2FailNoRelight.clearFlag == 0 and phaseVar2 != 2 and phaseVar2 != 9 and pts.Controls.Engines.Engine.cutoffSw[1].getValue() == 0) {
|
||||
eng2FailNoRelight.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2FailNoRelight);
|
||||
}
|
||||
|
||||
if (eng2FailMasterOff.clearFlag == 0 and pts.Controls.Engines.Engine.cutoffSw[1].getValue() == 0) {
|
||||
eng2FailMasterOff.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2FailMasterOff);
|
||||
}
|
||||
|
||||
if (eng2FailDamage.clearFlag == 0 and systems.fireButtons[1].getValue() == 0) {
|
||||
eng2FailDamage.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2FailDamage);
|
||||
}
|
||||
|
||||
if (eng2FailFirePB.clearFlag == 0 and systems.fireButtons[1].getValue() == 0) {
|
||||
eng2FailFirePB.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2FailFirePB);
|
||||
}
|
||||
|
||||
if (eng2FailAgent1DischT.clearFlag == 0 and !systems.extinguisherBottles.vector[2].lightProp.getValue()) {
|
||||
eng2FailAgent1DischT.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2FailAgent1DischT);
|
||||
}
|
||||
|
||||
if (eng2FailAgent1Disch.clearFlag == 0 and !systems.extinguisherBottles.vector[2].lightProp.getValue()) {
|
||||
eng2FailAgent1Disch.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2FailAgent1Disch);
|
||||
}
|
||||
|
||||
if (eng2FailNoDamage.clearFlag == 0) {
|
||||
eng2FailNoDamage.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2FailNoDamage);
|
||||
}
|
||||
|
||||
if (eng2FailRelight.clearFlag == 0) {
|
||||
eng2FailRelight.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2FailRelight);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2FailThrLvrIdle);
|
||||
ECAM_controller.warningReset(eng2FailNoRelight);
|
||||
ECAM_controller.warningReset(eng2FailMasterOff);
|
||||
ECAM_controller.warningReset(eng2FailDamage);
|
||||
ECAM_controller.warningReset(eng2FailFirePB);
|
||||
ECAM_controller.warningReset(eng2FailAgent1DischT);
|
||||
ECAM_controller.warningReset(eng2FailAgent1Disch);
|
||||
ECAM_controller.warningReset(eng2FailNoDamage);
|
||||
ECAM_controller.warningReset(eng2FailRelight);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2Fail);
|
||||
ECAM_controller.warningReset(thrustMalfunction2);
|
||||
ECAM_controller.warningReset(shaftFailure2);
|
||||
ECAM_controller.warningReset(eng2FailModeSel);
|
||||
ECAM_controller.warningReset(eng2FailThrLvrIdle);
|
||||
ECAM_controller.warningReset(eng2FailNoRelight);
|
||||
ECAM_controller.warningReset(eng2FailMasterOff);
|
||||
ECAM_controller.warningReset(eng2FailDamage);
|
||||
ECAM_controller.warningReset(eng2FailFirePB);
|
||||
ECAM_controller.warningReset(eng2FailAgent1DischT);
|
||||
ECAM_controller.warningReset(eng2FailAgent1Disch);
|
||||
ECAM_controller.warningReset(eng2FailNoDamage);
|
||||
ECAM_controller.warningReset(eng2FailRelight);
|
||||
}
|
||||
|
||||
# DC EMER CONFIG
|
||||
if (!systems.ELEC.EmerElec.getValue() and systems.ELEC.Bus.dcEss.getValue() < 25 and systems.ELEC.Bus.dc1.getValue() < 25 and systems.ELEC.Bus.dc2.getValue() < 25 and phaseVar2 != 4 and phaseVar2 != 8 and dcEmerconfig.clearFlag == 0) {
|
||||
dcEmerconfig.active = 1;
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
# Left E/WD
|
||||
|
||||
var warnings = std.Vector.new([
|
||||
# LEVEL 3 WARN
|
||||
var stall = warning.new(msg: "", aural: 2),
|
||||
var flap_not_zero = warning.new(msg: "F/CTL FLAP LVR NOT ZERO", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
|
||||
|
@ -47,12 +48,12 @@ var warnings = std.Vector.new([
|
|||
var eng1FireFlAgent1Timer = warning.new(msg: " -AGENT 1 AFT 10 S.DISCH", colour: "w"),
|
||||
var eng1FireFlAgent1 = warning.new(msg: " -AGENT 1..........DISCH", colour: "c"),
|
||||
var eng1FireFlATC = warning.new(msg: " -ATC.............NOTIFY", colour: "c"),
|
||||
var eng1FireFl30Sec = warning.new(msg: " •IF FIRE AFTER 30 S:", colour: "w", isMainMsg: 1),
|
||||
var eng1FireFl30Sec = warning.new(msg: " •IF FIRE AFTER 30 S:", colour: "w"),
|
||||
var eng1FireFlAgent2 = warning.new(msg: " -AGENT 2..........DISCH", colour: "c"),
|
||||
|
||||
# ENG 1 FIRE (ground)
|
||||
var eng1FireGnlever = warning.new(msg: " -THR LEVERS........IDLE", colour: "c"),
|
||||
var eng1FireGnstopped = warning.new(msg: " •WHEN A/C IS STOPPED:", colour: "w", isMainMsg: 1),
|
||||
var eng1FireGnstopped = warning.new(msg: " •WHEN A/C IS STOPPED:", colour: "w"),
|
||||
var eng1FireGnparkbrk = warning.new(msg: " -PARKING BRK.........ON", colour: "c"),
|
||||
var eng1FireGnATC = warning.new(msg: " -ATC.............NOTIFY", colour: "c"),
|
||||
var eng1FireGncrew = warning.new(msg: " -CABIN CREW.......ALERT", colour: "c"),
|
||||
|
@ -70,12 +71,12 @@ var warnings = std.Vector.new([
|
|||
var eng2FireFlAgent1Timer = warning.new(msg: " -AGENT 1 AFT 10 S.DISCH", colour: "w"),
|
||||
var eng2FireFlAgent1 = warning.new(msg: " -AGENT 1..........DISCH", colour: "c"),
|
||||
var eng2FireFlATC = warning.new(msg: " -ATC.............NOTIFY", colour: "c"),
|
||||
var eng2FireFl30Sec = warning.new(msg: " •IF FIRE AFTER 30 S:", colour: "w", isMainMsg: 1),
|
||||
var eng2FireFl30Sec = warning.new(msg: " •IF FIRE AFTER 30 S:", colour: "w"),
|
||||
var eng2FireFlAgent2 = warning.new(msg: " -AGENT 2..........DISCH", colour: "c"),
|
||||
|
||||
# ENG 2 FIRE (ground)
|
||||
var eng2FireGnlever = warning.new(msg: " -THR LEVERS........IDLE", colour: "c"),
|
||||
var eng2FireGnstopped = warning.new(msg: " •WHEN A/C IS STOPPED:", colour: "w", isMainMsg: 1),
|
||||
var eng2FireGnstopped = warning.new(msg: " •WHEN A/C IS STOPPED:", colour: "w"),
|
||||
var eng2FireGnparkbrk = warning.new(msg: " -PARKING BRK.........ON", colour: "c"),
|
||||
var eng2FireGnATC = warning.new(msg: " -ATC.............NOTIFY", colour: "c"),
|
||||
var eng2FireGncrew = warning.new(msg: " -CABIN CREW.......ALERT", colour: "c"),
|
||||
|
@ -94,7 +95,7 @@ var warnings = std.Vector.new([
|
|||
var ADR123FaultBUSSF = warning.new(msg: " -FO BKUP SPD/ALT.....ON", colour: "c"),
|
||||
var ADR123FaultADRPB = warning.new(msg: " -ADR 1+2+3 P/B......OFF", colour: "c"),
|
||||
var ADR123FaultSPD = warning.new(msg: " -SPD......FLY THE GREEN", colour: "c"),
|
||||
var ADR123FaultAOADISAG = warning.new(msg: " •IF AOA DISAGREE: ", colour: "w", isMainMsg: 1),
|
||||
var ADR123FaultAOADISAG = warning.new(msg: " •IF AOA DISAGREE: ", colour: "w"),
|
||||
var ADR123FaultBUSSINOP = warning.new(msg: " BKUP SPD/ALT.DO NOT USE", colour: "c"),
|
||||
var ADR123FaultSTBY = warning.new(msg: " -STBY INST.MAY BE UNREL", colour: "c"),
|
||||
var ADR123FaultPROC = warning.new(msg: " -ALL ADR OFF PROC.APPLY", colour: "c"),
|
||||
|
@ -123,7 +124,7 @@ var warnings = std.Vector.new([
|
|||
var excessCabAlt = warning.new(msg: "CAB PR EXCESS CAB ALT", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var excessCabAltMask = warning.new(msg: " -CREW OXY MASKS.....USE", colour: "c"),
|
||||
var excessCabAltSigns = warning.new(msg: " -SIGNS...............ON", colour: "c"),
|
||||
var excessCabAltEmerD = warning.new(msg: " •EMER DESCENT:", colour: "w", isMainMsg: 1),
|
||||
var excessCabAltEmerD = warning.new(msg: " •EMER DESCENT:", colour: "w"),
|
||||
var excessCabAltDES = warning.new(msg: " -DESCENT.......INITIATE", colour: "c"),
|
||||
var excessCabAltTHRLVR = warning.new(msg: " -THR LEVERS........IDLE", colour: "c"),
|
||||
var excessCabAltSPDBRK = warning.new(msg: " -SPD BRK...........FULL", colour: "c"),
|
||||
|
@ -133,20 +134,20 @@ var warnings = std.Vector.new([
|
|||
var excessCabAltPA = warning.new(msg: " -EMER DES (PA).ANNOUNCE", colour: "c"),
|
||||
var excessCabAltXPDR = warning.new(msg: " -XPDR 7700.....CONSIDER", colour: "c"),
|
||||
var excessCabAltMEA = warning.new(msg: " MAX FL.....100/MEA-MORA", colour: "c"),
|
||||
var excessCabAltCabAlt = warning.new(msg: " •IF CAB ALT>14000 FT:", colour: "w", isMainMsg: 1),
|
||||
var excessCabAltCabAlt = warning.new(msg: " •IF CAB ALT>14000 FT:", colour: "w"),
|
||||
var excessCabAltMasks = warning.new(msg: " -PAX OXY MASKS...MAN ON", colour: "c"),
|
||||
|
||||
# ENG 1 OIL LO PR
|
||||
var eng1OilLoPr = warning.new(msg: "ENG 1 OIL LO PR ", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var eng1OilLoPrIf = warning.new(msg: " •IF OIL PR < 13 PSI :", colour: "w", isMainMsg: 1),
|
||||
var eng1OilLoPrIf2 = warning.new(msg: " •IF OIL PR < 60 PSI :", colour: "w", isMainMsg: 1),
|
||||
var eng1OilLoPrIf = warning.new(msg: " •IF OIL PR < 13 PSI :", colour: "w"),
|
||||
var eng1OilLoPrIf2 = warning.new(msg: " •IF OIL PR < 60 PSI :", colour: "w"),
|
||||
var eng1OilLoPrThrot = warning.new(msg: " -THR LEVER 1.......IDLE", colour: "c"),
|
||||
var eng1OilLoPrMaster = warning.new(msg: " -ENG MASTER 1.......OFF", colour: "c"),
|
||||
|
||||
# ENG 2 OIL LO PR
|
||||
var eng2OilLoPr = warning.new(msg: "ENG 2 OIL LO PR ", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var eng2OilLoPrIf = warning.new(msg: " •IF OIL PR < 13 PSI :", colour: "w", isMainMsg: 1),
|
||||
var eng2OilLoPrIf2 = warning.new(msg: " •IF OIL PR < 60 PSI :", colour: "w", isMainMsg: 1),
|
||||
var eng2OilLoPrIf = warning.new(msg: " •IF OIL PR < 13 PSI :", colour: "w"),
|
||||
var eng2OilLoPrIf2 = warning.new(msg: " •IF OIL PR < 60 PSI :", colour: "w"),
|
||||
var eng2OilLoPrThrot = warning.new(msg: " -THR LEVER 2.......IDLE", colour: "c"),
|
||||
var eng2OilLoPrMaster = warning.new(msg: " -ENG MASTER 2.......OFF", colour: "c"),
|
||||
|
||||
|
@ -161,7 +162,7 @@ var warnings = std.Vector.new([
|
|||
|
||||
var gearNotDownLocked = warning.new(msg: "L/G GEAR NOT DOWNLOCKED", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var gearNotDownLockedRec = warning.new(msg: " -L/G LEVER......RECYCLE", colour: "c"),
|
||||
var gearNotDownLockedWork = warning.new(msg: " •IF UNSUCCESSFUL:", colour: "w", isMainMsg: 1),
|
||||
var gearNotDownLockedWork = warning.new(msg: " •IF UNSUCCESSFUL:", colour: "w"),
|
||||
var gearNotDownLocked120 = warning.new(msg: " AFTER 120S:", colour: "w"),
|
||||
var gearNotDownLockedGrav = warning.new(msg: " -L/G.........GRVTY EXTN", colour: "c"),
|
||||
|
||||
|
@ -171,17 +172,17 @@ var warnings = std.Vector.new([
|
|||
# Cargo smoke
|
||||
var cargoSmokeFwd = warning.new(msg: "SMOKE FWD CARGO SMOKE", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var cargoSmokeFwdFans = warning.new(msg: " -CAB FANS...........OFF", colour: "c"),
|
||||
var cargoSmokeFwdGrdClsd = warning.new(msg: " •IF FWD CRG CLSD:", colour: "w", isMainMsg: 1),
|
||||
var cargoSmokeFwdGrdClsd = warning.new(msg: " •IF FWD CRG CLSD:", colour: "w"),
|
||||
var cargoSmokeFwdAgent = warning.new(msg: " -AGENT............DISCH", colour: "c"),
|
||||
var cargoSmokeFwdGrd = warning.new(msg: " •WHEN ON GROUND", colour: "w", isMainMsg: 1),
|
||||
var cargoSmokeFwdDoors = warning.new(msg: " BEFORE OPEN CRG DOORS:", colour: "w", isMainMsg: 1),
|
||||
var cargoSmokeFwdGrd = warning.new(msg: " •WHEN ON GROUND", colour: "w"),
|
||||
var cargoSmokeFwdDoors = warning.new(msg: " BEFORE OPEN CRG DOORS:", colour: "w"),
|
||||
var cargoSmokeFwdDisemb = warning.new(msg: "-PAX..........DISEMBARK", colour: "c"),
|
||||
var cargoSmokeAft = warning.new(msg: "SMOKE AFT CARGO SMOKE", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var cargoSmokeAftFans = warning.new(msg: " -CAB FANS...........OFF", colour: "c"),
|
||||
var cargoSmokeAftGrdClsd = warning.new(msg: " •IF AFT CRG CLSD:", colour: "w", isMainMsg: 1),
|
||||
var cargoSmokeAftGrdClsd = warning.new(msg: " •IF AFT CRG CLSD:", colour: "w"),
|
||||
var cargoSmokeAftAgent = warning.new(msg: " -AGENT............DISCH", colour: "c"),
|
||||
var cargoSmokeAftGrd = warning.new(msg: " •WHEN ON GROUND", colour: "w", isMainMsg: 1),
|
||||
var cargoSmokeAftDoors = warning.new(msg: " BEFORE OPEN CRG DOORS:", colour: "w", isMainMsg: 1),
|
||||
var cargoSmokeAftGrd = warning.new(msg: " •WHEN ON GROUND", colour: "w"),
|
||||
var cargoSmokeAftDoors = warning.new(msg: " BEFORE OPEN CRG DOORS:", colour: "w"),
|
||||
var cargoSmokeAftDisemb = warning.new(msg: "-PAX..........DISEMBARK", colour: "c"),
|
||||
|
||||
# Lavatory SMOKE
|
||||
|
@ -256,6 +257,46 @@ var warnings = std.Vector.new([
|
|||
var airBleedLeak = warning.new(msg: "AIR BLEED LEAK ", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||
var airBleedLeakShut = warning.new(msg: " -X BLEED..........SHUT", colour: "c"),
|
||||
|
||||
# LEVEL 2 WARN
|
||||
# THR LEVERS NOT SET
|
||||
var engThrustLvrNotSet = warning.new(msg: "ENG THR LEVERS NOT SET ", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||
var engThrustLvrNotSetMCT = warning.new(msg: " -THR LEVERS ....MCT/FLX", colour: "c"),
|
||||
var engThrustLvrNotSetTO = warning.new(msg: " -THR LEVERS.......TO/GA", colour: "c"),
|
||||
|
||||
# REV SET
|
||||
var engRevSet = warning.new(msg: "ENG REV SET ", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||
var engRevSetLevers = warning.new(msg: " -THR LEVER......FWD THR", colour: "c"),
|
||||
|
||||
# ENG 1 FAIL
|
||||
var eng1Fail = warning.new(msg: "ENG 1 FAIL ", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||
var thrustMalfunction1 = warning.new(msg: " THRUST MALFUNCTION ", colour: "a"),
|
||||
var shaftFailure1 = warning.new(msg: " SHAFT FAILURE ", colour: "a"),
|
||||
var eng1FailModeSel = warning.new(msg: " -ENG MODE SEL.......IGN", colour: "c"),
|
||||
var eng1FailThrLvrIdle = warning.new(msg: " -THR LEVER 1.......IDLE", colour: "c"),
|
||||
var eng1FailNoRelight = warning.new(msg: "•IF NO RELIGHT AFTER 30S", colour: "w"),
|
||||
var eng1FailMasterOff = warning.new(msg: " -ENG MASTER 1.......OFF", colour: "c"),
|
||||
var eng1FailDamage = warning.new(msg: " IF DAMAGE : ", colour: "w"),
|
||||
var eng1FailFirePB = warning.new(msg: " -ENG 1 FIRE P/B....PUSH", colour: "c"),
|
||||
var eng1FailAgent1DischT = warning.new(msg: " -AGENT1 AFTER 10S.DISCH", colour: "c"),
|
||||
var eng1FailAgent1Disch = warning.new(msg: " -AGENT 1..........DISCH", colour: "c"),
|
||||
var eng1FailNoDamage = warning.new(msg: " IF NO DAMAGE : ", colour: "w"),
|
||||
var eng1FailRelight = warning.new(msg: " -ENG 1 RELIGHT.CONSIDER", colour: "c"),
|
||||
|
||||
# ENG 2 FAIL
|
||||
var eng2Fail = warning.new(msg: "ENG 2 FAIL ", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||
var thrustMalfunction2 = warning.new(msg: " THRUST MALFUNCTION ", colour: "a"),
|
||||
var shaftFailure2 = warning.new(msg: " SHAFT FAILURE ", colour: "a"),
|
||||
var eng2FailModeSel = warning.new(msg: " -ENG MODE SEL.......IGN", colour: "c"),
|
||||
var eng2FailThrLvrIdle = warning.new(msg: " -THR LEVER 2.......IDLE", colour: "c"),
|
||||
var eng2FailNoRelight = warning.new(msg: "•IF NO RELIGHT AFTER 30S", colour: "w"),
|
||||
var eng2FailMasterOff = warning.new(msg: " -ENG MASTER 2.......OFF", colour: "c"),
|
||||
var eng2FailDamage = warning.new(msg: " IF DAMAGE : ", colour: "w"),
|
||||
var eng2FailFirePB = warning.new(msg: " -ENG 2 FIRE P/B....PUSH", colour: "c"),
|
||||
var eng2FailAgent1DischT = warning.new(msg: " -AGENT2 AFTER 10S.DISCH", colour: "c"),
|
||||
var eng2FailAgent1Disch = warning.new(msg: " -AGENT 2..........DISCH", colour: "c"),
|
||||
var eng2FailNoDamage = warning.new(msg: " IF NO DAMAGE : ", colour: "w"),
|
||||
var eng2FailRelight = warning.new(msg: " -ENG 2 RELIGHT.CONSIDER", colour: "c"),
|
||||
|
||||
# DC EMER CONFIG
|
||||
var dcEmerconfig = warning.new(msg: "ELEC DC EMER CONFIG", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||
var dcEmerconfigManOn = warning.new(msg: " -EMER ELEC PWR...MAN ON", colour: "c"),
|
||||
|
|
|
@ -2183,6 +2183,245 @@
|
|||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng/new-retard-logic">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/ECAM/warnings/logic/eng/eng-1-thr-lvr-abv-idle eq 1
|
||||
/ECAM/warnings/logic/eng/eng-2-thr-lvr-abv-idle eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng/thr-lever-1-mcl-mct">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/engines/engine[0]/n2-actual ge 59.4
|
||||
/controls/engines/engine[0]/throttle-pos ge 0.60
|
||||
/controls/engines/engine[0]/throttle-pos lt 0.78
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<actuator name="/ECAM/warnings/logic/eng/thr-lever-1-mcl-mct-output">
|
||||
<input>/ECAM/warnings/logic/eng/thr-lever-1-mcl-mct</input>
|
||||
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
|
||||
<rate_limit sense="incr">0.25</rate_limit> <!-- 4 seconds -->
|
||||
</actuator>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng/thr-lever-1-mct">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/engines/engine[0]/n2-actual ge 59.4
|
||||
/controls/engines/engine[0]/throttle-pos ge 0.60
|
||||
/controls/engines/engine[0]/throttle-pos lt 0.83
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<actuator name="/ECAM/warnings/logic/eng/thr-lever-1-mct-output">
|
||||
<input>/ECAM/warnings/logic/eng/thr-lever-1-mct</input>
|
||||
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
|
||||
<rate_limit sense="incr">0.25</rate_limit> <!-- 4 seconds -->
|
||||
</actuator>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng/thr-lever-2-mcl-mct">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/engines/engine[1]/n2-actual ge 59.4
|
||||
/controls/engines/engine[1]/throttle-pos ge 0.60
|
||||
/controls/engines/engine[1]/throttle-pos lt 0.78
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<actuator name="/ECAM/warnings/logic/eng/thr-lever-2-mcl-mct-output">
|
||||
<input>/ECAM/warnings/logic/eng/thr-lever-2-mcl-mct</input>
|
||||
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
|
||||
<rate_limit sense="incr">0.25</rate_limit> <!-- 4 seconds -->
|
||||
</actuator>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng/thr-lever-2-mct">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/engines/engine[1]/n2-actual ge 59.4
|
||||
/controls/engines/engine[1]/throttle-pos ge 0.60
|
||||
/controls/engines/engine[1]/throttle-pos lt 0.83
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<actuator name="/ECAM/warnings/logic/eng/thr-lever-2-mct-output">
|
||||
<input>/ECAM/warnings/logic/eng/thr-lever-2-mct</input>
|
||||
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
|
||||
<rate_limit sense="incr">0.25</rate_limit> <!-- 4 seconds -->
|
||||
</actuator>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng/thr-lever-not-set">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/ECAM/warnings/logic/eng/new-retard-logic ne 1
|
||||
<test logic="OR">
|
||||
<test logic="AND">
|
||||
/systems/thrust/lim-flex eq 0
|
||||
<test logic="OR">
|
||||
/ECAM/warnings/logic/eng/thr-lever-2-mct-output eq 1
|
||||
/ECAM/warnings/logic/eng/thr-lever-2-mcl-mct-output eq 1
|
||||
</test>
|
||||
</test>
|
||||
<test logic="AND">
|
||||
/systems/thrust/lim-flex eq 1
|
||||
/ECAM/warnings/logic/eng/thr-lever-2-mcl-mct-output eq 1
|
||||
</test>
|
||||
<test logic="AND">
|
||||
/systems/thrust/lim-flex eq 0
|
||||
<test logic="OR">
|
||||
/ECAM/warnings/logic/eng/thr-lever-1-mct-output eq 1
|
||||
/ECAM/warnings/logic/eng/thr-lever-1-mcl-mct-output eq 1
|
||||
</test>
|
||||
</test>
|
||||
<test logic="AND">
|
||||
/systems/thrust/lim-flex eq 1
|
||||
/ECAM/warnings/logic/eng/thr-lever-1-mcl-mct-output eq 1
|
||||
</test>
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng/reverse-set">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/ECAM/timer/ground-calc eq 0
|
||||
<test logic="OR">
|
||||
/gear/gear[1]/rollspeed-ms lt 36
|
||||
/ECAM/warning-phase ne 7
|
||||
</test>
|
||||
<test logic="OR">
|
||||
/controls/engines/engine[0]/throttle-rev gt 0.0
|
||||
/controls/engines/engine[1]/throttle-rev gt 0.0
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng/eng-1-fail-cond-set-input">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/engines/engine[0]/n2-actual ge 59.4
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<actuator name="/ECAM/warnings/logic/eng/eng-1-fail-cond-set">
|
||||
<input>/ECAM/warnings/logic/eng/eng-1-fail-cond-set-input</input>
|
||||
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
|
||||
<rate_limit sense="incr">0.3333</rate_limit> <!-- 3 seconds -->
|
||||
</actuator>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng/eng-1-fail-cond-reset">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/controls/engines/engine[0]/cutoff-switch eq 1
|
||||
/controls/engines/engine[0]/fire-btn eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng/eng-2-fail-cond-set-input">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/engines/engine[1]/n2-actual ge 59.4
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<actuator name="/ECAM/warnings/logic/eng/eng-2-fail-cond-set">
|
||||
<input>/ECAM/warnings/logic/eng/eng-2-fail-cond-set-input</input>
|
||||
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
|
||||
<rate_limit sense="incr">0.3333</rate_limit> <!-- 3 seconds -->
|
||||
</actuator>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng/eng-2-fail-cond-reset">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/controls/engines/engine[1]/cutoff-switch eq 1
|
||||
/controls/engines/engine[1]/fire-btn eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng/eng-1-fail-set">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/controls/engines/engine[0]/cutoff-switch eq 0
|
||||
/controls/engines/engine[0]/fire-btn eq 0
|
||||
/engines/engine[0]/n2-actual lt 59.4
|
||||
/ECAM/warnings/logic/eng/eng-1-fail-cond eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng/eng-2-fail-set">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/controls/engines/engine[1]/cutoff-switch eq 0
|
||||
/controls/engines/engine[1]/fire-btn eq 0
|
||||
/engines/engine[1]/n2-actual lt 59.4
|
||||
/ECAM/warnings/logic/eng/eng-2-fail-cond eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng/eng-1-fail-reset">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/engines/engine[0]/n2-actual ge 59.4
|
||||
/ECAM/dual-failure-enabled eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng/eng-2-fail-reset">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/engines/engine[1]/n2-actual ge 59.4
|
||||
/ECAM/dual-failure-enabled eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<actuator name="/ECAM/warnings/logic/eng/eng-1-master-60-sec">
|
||||
<input>/controls/engines/engine[0]/cutoff-switch</input>
|
||||
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
|
||||
<rate_limit sense="incr">0.01666666666</rate_limit> <!-- 60 seconds -->
|
||||
</actuator>
|
||||
|
||||
<actuator name="/ECAM/warnings/logic/eng/eng-2-master-60-sec">
|
||||
<input>/controls/engines/engine[1]/cutoff-switch</input>
|
||||
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
|
||||
<rate_limit sense="incr">0.01666666666</rate_limit> <!-- 60 seconds -->
|
||||
</actuator>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng/phase-5">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
<test logic="AND">
|
||||
/ECAM/warnings/logic/stall/phase-4-output eq 0
|
||||
/ECAM/warnings/logic/stall/phase-4 eq 0
|
||||
/ECAM/warning-phase eq 5
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng/eng-1-fail">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
<test logic="OR">
|
||||
/ECAM/warnings/logic/eng/phase-5-output eq 1
|
||||
/ECAM/warnings/logic/eng/phase-5-output-2 eq 1
|
||||
/ECAM/warnings/logic/eng/eng-1-master-60-sec eq 0 <!-- because the sense of cutoff is inverted -->
|
||||
</test>
|
||||
/ECAM/warnings/logic/eng/eng-1-fail-output eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng/eng-2-fail">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
<test logic="OR">
|
||||
/ECAM/warnings/logic/eng/phase-5-output eq 1
|
||||
/ECAM/warnings/logic/eng/phase-5-output-2 eq 1
|
||||
/ECAM/warnings/logic/eng/eng-2-master-60-sec eq 0 <!-- because the sense of cutoff is inverted -->
|
||||
</test>
|
||||
/ECAM/warnings/logic/eng/eng-2-fail-output eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
</channel>
|
||||
|
||||
<channel name="Config" execrate="16">
|
||||
|
|
|
@ -1081,4 +1081,73 @@
|
|||
</R>
|
||||
<output>/ECAM/warnings/fctl/park-brk-config-output</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>RS</type>
|
||||
<S>
|
||||
<property>/ECAM/warnings/logic/eng/eng-1-fail-cond-set</property>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/warnings/logic/eng/eng-1-fail-cond-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/warnings/logic/eng/eng-1-fail-cond</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>RS</type>
|
||||
<S>
|
||||
<property>/ECAM/warnings/logic/eng/eng-2-fail-cond-set</property>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/warnings/logic/eng/eng-2-fail-cond-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/warnings/logic/eng/eng-2-fail-cond</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>RS</type>
|
||||
<S>
|
||||
<property>/ECAM/warnings/logic/eng/eng-1-fail-set</property>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/warnings/logic/eng/eng-1-fail-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/warnings/logic/eng/eng-1-fail-output</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>RS</type>
|
||||
<S>
|
||||
<property>/ECAM/warnings/logic/eng/eng-2-fail-set</property>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/warnings/logic/eng/eng-2-fail-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/warnings/logic/eng/eng-2-fail-output</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>monostable</type>
|
||||
<inverted type="bool">true</inverted>
|
||||
<time>
|
||||
<value>30.0</value>
|
||||
</time>
|
||||
<S>
|
||||
<property>/ECAM/warnings/logic/eng/phase-5</property>
|
||||
</S>
|
||||
<output>/ECAM/warnings/logic/eng/phase-5-output</output>
|
||||
</flipflop>
|
||||
|
||||
|
||||
<flipflop>
|
||||
<type>monostable</type>
|
||||
<inverted type="bool">true</inverted>
|
||||
<time>
|
||||
<value>1.0</value>
|
||||
</time>
|
||||
<S>
|
||||
<property>/ECAM/warnings/logic/eng/phase-5-output</property>
|
||||
</S>
|
||||
<output>/ECAM/warnings/logic/eng/phase-5-output-2</output>
|
||||
</flipflop>
|
||||
</PropertyList>
|
||||
|
|
Loading…
Reference in a new issue