diff --git a/Nasal/ECAM/ECAM-logic.nas b/Nasal/ECAM/ECAM-logic.nas
index ee4f4747..cc08febc 100644
--- a/Nasal/ECAM/ECAM-logic.nas
+++ b/Nasal/ECAM/ECAM-logic.nas
@@ -574,6 +574,61 @@ var messages_priority_3 = func {
ECAM_controller.warningReset(apuFireMaster);
}
+ if (ADR123Fault.clearFlag == 0 and warningNodes.Logic.adr123Fault.getValue() and phaseVar3 != 4 and phaseVar3 != 8) {
+ ADR123Fault.active = 1;
+
+ if (ADR123FaultAP.clearFlag == 0 and (fmgc.Output.ap1.getBoolValue() or fmgc.Output.ap2.getBoolValue() or fmgc.Output.fd1.getBoolValue() or fmgc.Output.fd2.getBoolValue())) {
+ ADR123FaultAP.active = 1;
+ } else {
+ ECAM_controller.warningReset(ADR123FaultAP);
+ }
+
+ if (ADR123FaultATHR.clearFlag == 0 and fmgc.Output.athr.getBoolValue()) {
+ ADR123FaultATHR.active = 1;
+ } else {
+ ECAM_controller.warningReset(ADR123FaultATHR);
+ }
+
+ if (ADR123FaultPRBW.clearFlag == 0) {
+ ADR123FaultPRBW.active = 1;
+ } else {
+ ECAM_controller.warningReset(ADR123FaultPRBW);
+ }
+
+ if (ADR123FaultADRPB.clearFlag == 0 and (systems.ADIRS.Switches.adrSw[0].getBoolValue() or systems.ADIRS.Switches.adrSw[1].getBoolValue() or systems.ADIRS.Switches.adrSw[2].getBoolValue())) {
+ ADR123FaultADRPB.active = 1;
+ } else {
+ ECAM_controller.warningReset(ADR123FaultADRPB);
+ }
+
+ if (ADR123FaultSPD.clearFlag == 0) {
+ ADR123FaultSPD.active = 1;
+ } else {
+ ECAM_controller.warningReset(ADR123FaultSPD);
+ }
+
+ if (ADR123FaultSTBY.clearFlag == 0) {
+ ADR123FaultSTBY.active = 1;
+ } else {
+ ECAM_controller.warningReset(ADR123FaultSTBY);
+ }
+
+ if (ADR123FaultPROC.clearFlag == 0) {
+ ADR123FaultPROC.active = 1;
+ } else {
+ ECAM_controller.warningReset(ADR123FaultPROC);
+ }
+ } else {
+ ECAM_controller.warningReset(ADR123Fault);
+ ECAM_controller.warningReset(ADR123FaultAP);
+ ECAM_controller.warningReset(ADR123FaultATHR);
+ ECAM_controller.warningReset(ADR123FaultPRBW);
+ ECAM_controller.warningReset(ADR123FaultADRPB);
+ ECAM_controller.warningReset(ADR123FaultSPD);
+ ECAM_controller.warningReset(ADR123FaultSTBY);
+ ECAM_controller.warningReset(ADR123FaultPROC);
+ }
+
if ((ecamConfigTest.getValue() and (phaseVar3 == 1 or phaseVar3 == 2 or phaseVar3 == 9)) or phaseVar3 == 3 or phaseVar3 == 4) {
takeoffConfig = 1;
} else {
@@ -659,7 +714,7 @@ var messages_priority_3 = func {
}
if (warningNodes.Flipflops.cabPressExcessFlipflop.getValue()) {
- if (excessCabAltTHRLVR.clearFlag == 0 and !fmgc.Output.athr.getBoolValue() and warningNodes.Logic.JE1TLAI.getValue() != 0 and warningNodes.Logic.JE2TLAI.getValue() != 0) {
+ if (excessCabAltTHRLVR.clearFlag == 0 and !fmgc.Output.athr.getBoolValue() and warningNodes.Logic.JE1TLAI.getValue() == 0 and warningNodes.Logic.JE2TLAI.getValue() == 0) {
excessCabAltTHRLVR.active = 1;
} else {
ECAM_controller.warningReset(excessCabAltTHRLVR);
@@ -695,7 +750,7 @@ var messages_priority_3 = func {
ECAM_controller.warningReset(excessCabAltENG);
ECAM_controller.warningReset(excessCabAltATC);
}
-
+
if (warningNodes.Flipflops.cabPressExcessFlipflopTop.getValue() and !warningNodes.Flipflops.cabPressExcessFlipflop.getValue()) {
if (excessCabAltCAB.clearFlag == 0) {
excessCabAltCAB.active = 1;
@@ -759,6 +814,60 @@ var messages_priority_3 = func {
ECAM_controller.warningReset(excessCabAltMasks);
}
+ if (eng1OilLoPr.clearFlag == 0 and warningNodes.Logic.eng1OilLoPr.getBoolValue() and phaseVar3 != 1 and phaseVar3 != 10) {
+ eng1OilLoPr.active = 1;
+
+ if (eng1OilLoPrIf.clearFlag == 0 and pts.Controls.Engines.Engine.cutoffSw[0].getValue() == 0) {
+ eng1OilLoPrIf.active = 1;
+ } else {
+ ECAM_controller.warningReset(eng1OilLoPrIf);
+ }
+
+ if (eng1OilLoPrThrot.clearFlag == 0 and !warningNodes.Logic.JE1TLAI.getValue()) {
+ eng1OilLoPrThrot.active = 1;
+ } else {
+ ECAM_controller.warningReset(eng1OilLoPrThrot);
+ }
+
+ if (eng1OilLoPrMaster.clearFlag == 0 and pts.Controls.Engines.Engine.cutoffSw[0].getValue() == 0) {
+ eng1OilLoPrMaster.active = 1;
+ } else {
+ ECAM_controller.warningReset(eng1OilLoPrMaster);
+ }
+ } else {
+ ECAM_controller.warningReset(eng1OilLoPr);
+ ECAM_controller.warningReset(eng1OilLoPrIf);
+ ECAM_controller.warningReset(eng1OilLoPrThrot);
+ ECAM_controller.warningReset(eng1OilLoPrMaster);
+ }
+
+ if (eng2OilLoPr.clearFlag == 0 and warningNodes.Logic.eng2OilLoPr.getBoolValue() and phaseVar3 != 1 and phaseVar3 != 10) {
+ eng2OilLoPr.active = 1;
+
+ if (eng2OilLoPrIf.clearFlag == 0 and pts.Controls.Engines.Engine.cutoffSw[1].getValue() == 0) {
+ eng2OilLoPrIf.active = 1;
+ } else {
+ ECAM_controller.warningReset(eng2OilLoPrIf);
+ }
+
+ if (eng2OilLoPrThrot.clearFlag == 0 and !warningNodes.Logic.JE2TLAI.getValue()) {
+ eng2OilLoPrThrot.active = 1;
+ } else {
+ ECAM_controller.warningReset(eng2OilLoPrThrot);
+ }
+
+ if (eng2OilLoPrMaster.clearFlag == 0 and pts.Controls.Engines.Engine.cutoffSw[1].getValue() == 0) {
+ eng2OilLoPrMaster.active = 1;
+ } else {
+ ECAM_controller.warningReset(eng2OilLoPrMaster);
+ }
+ } else {
+ ECAM_controller.warningReset(eng2OilLoPr);
+ ECAM_controller.warningReset(eng2OilLoPrIf);
+ ECAM_controller.warningReset(eng2OilLoPrThrot);
+ ECAM_controller.warningReset(eng2OilLoPrMaster);
+ }
+
if (lrElevFault.clearFlag == 0 and warningNodes.Timers.LRElevFault.getValue() == 1) {
lrElevFault.active = 1;
if (lrElevFaultSpeed.clearFlag == 0) {
diff --git a/Nasal/ECAM/ECAM-nodes.nas b/Nasal/ECAM/ECAM-nodes.nas
index 1fcddb63..f14b0d0c 100644
--- a/Nasal/ECAM/ECAM-nodes.nas
+++ b/Nasal/ECAM/ECAM-nodes.nas
@@ -76,6 +76,9 @@ var warningNodes = {
Logic: {
JE1TLAI: props.globals.initNode("/ECAM/warnings/logic/eng/eng-1-tla-idle"),
JE2TLAI: props.globals.initNode("/ECAM/warnings/logic/eng/eng-1-tla-idle"),
+ adr123Fault: props.globals.initNode("/ECAM/warnings/navigation/ADR123-fault"),
+ eng1OilLoPr: props.globals.initNode("/ECAM/warnings/logic/eng/eng-1-oil-lo-pr"),
+ eng2OilLoPr: props.globals.initNode("/ECAM/warnings/logic/eng/eng-2-oil-lo-pr"),
altitudeAlert: props.globals.initNode("/ECAM/warnings/altitude-alert/c-chord"),
altitudeAlertSteady: props.globals.initNode("/ECAM/warnings/altitude-alert/altitude-alert-steady"),
altitudeAlertFlash: props.globals.initNode("/ECAM/warnings/altitude-alert/altitude-alert-flash"),
diff --git a/Systems/a320-fwc.xml b/Systems/a320-fwc.xml
index aa8db4c7..8b626bdd 100644
--- a/Systems/a320-fwc.xml
+++ b/Systems/a320-fwc.xml
@@ -3124,6 +3124,36 @@
+
+ /controls/engines/engine[0]/cutoff-switch
+ 0.03333333333
+ 100
+
+
+
+
+
+ /ECAM/warnings/logic/eng/eng-1-oil-lo-pr-cutoff-delay eq 0
+ /ECAM/warnings/logic/eng/JE1NORUN eq 0
+ /engines/engine[0]/oil-psi-actual lt 13
+
+
+
+
+ /controls/engines/engine[1]/cutoff-switch
+ 0.03333333333
+ 100
+
+
+
+
+
+ /ECAM/warnings/logic/eng/eng-2-oil-lo-pr-cutoff-delay eq 0
+ /ECAM/warnings/logic/eng/JE2NORUN eq 0
+ /engines/engine[1]/oil-psi-actual lt 13
+
+
+
@@ -4222,7 +4252,7 @@
-
+