diff --git a/Nasal/ECAM/ECAM-controller.nas b/Nasal/ECAM/ECAM-controller.nas
index 4ebd194b..883daa37 100644
--- a/Nasal/ECAM/ECAM-controller.nas
+++ b/Nasal/ECAM/ECAM-controller.nas
@@ -73,6 +73,8 @@ var warningNodes = {
Flipflops: {
bleed1LowTemp: props.globals.initNode("/ECAM/warnings/logic/bleed-1-low-temp-flipflop-output"),
bleed2LowTemp: props.globals.initNode("/ECAM/warnings/logic/bleed-2-low-temp-flipflop-output"),
+ pack1Ovht: props.globals.initNode("/ECAM/warnings/flipflop/pack-1-ovht"),
+ pack2Ovht: props.globals.initNode("/ECAM/warnings/flipflop/pack-2-ovht"),
},
};
diff --git a/Nasal/ECAM/ECAM-logic.nas b/Nasal/ECAM/ECAM-logic.nas
index f9ac97b3..c1f4d2f8 100644
--- a/Nasal/ECAM/ECAM-logic.nas
+++ b/Nasal/ECAM/ECAM-logic.nas
@@ -1571,6 +1571,44 @@ var messages_priority_2 = func {
ECAM_controller.warningReset(bleedMon2Fault);
}
+ # PACK
+
+ if (pack1Ovht.clearFlag == 0 and (phaseVar <= 2 or phaseVar >= 9 or phaseVar == 6) and warningNodes.Flipflops.pack1Ovht.getValue()) {
+ pack1Ovht.active = 1;
+
+ if (systems.PNEU.Switch.pack1.getBoolValue()) {
+ pack1OvhtOff.active = 1;
+ } else {
+ ECAM_controller.warningReset(pack1OvhtOff);
+ }
+
+ pack1OvhtOut.active = 1;
+ pack1OvhtPack.active = 1;
+ } else {
+ ECAM_controller.warningReset(pack1Ovht);
+ ECAM_controller.warningReset(pack1OvhtOff);
+ ECAM_controller.warningReset(pack1OvhtOut);
+ ECAM_controller.warningReset(pack1OvhtPack);
+ }
+
+ if (pack2Ovht.clearFlag == 0 and (phaseVar <= 2 or phaseVar >= 9 or phaseVar == 6) and warningNodes.Flipflops.pack2Ovht.getValue()) {
+ pack2Ovht.active = 1;
+
+ if (systems.PNEU.Switch.pack2.getBoolValue()) {
+ pack2OvhtOff.active = 1;
+ } else {
+ ECAM_controller.warningReset(pack2OvhtOff);
+ }
+
+ pack2OvhtOut.active = 1;
+ pack2OvhtPack.active = 1;
+ } else {
+ ECAM_controller.warningReset(pack2Ovht);
+ ECAM_controller.warningReset(pack2OvhtOff);
+ ECAM_controller.warningReset(pack2OvhtOut);
+ ECAM_controller.warningReset(pack2OvhtPack);
+ }
+
# ENG AICE
if (eng1IceClosed.clearFlag == 0 and (phaseVar <= 2 or phaseVar >= 9 or phaseVar == 6) and warningNodes.Timers.eng1AiceNotOpen.getValue() == 1) {
eng1IceClosed.active = 1;
diff --git a/Nasal/ECAM/ECAM-messages.nas b/Nasal/ECAM/ECAM-messages.nas
index 3df8cee7..6f8af069 100644
--- a/Nasal/ECAM/ECAM-messages.nas
+++ b/Nasal/ECAM/ECAM-messages.nas
@@ -296,6 +296,37 @@ var warnings = std.Vector.new([
var bleedMon1Fault = warning.new(msg: "BLEED MONIT SYS 1 FAULT", colour: "a", aural: 0, light: 0),
var bleedMon2Fault = warning.new(msg: "BLEED MONIT SYS 2 FAULT", colour: "a", aural: 0, light: 0),
+ # PACK
+ var pack12Fault = warning.new(msg: "AIR PACK 1+2 FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
+ var pack12FaultPackOff1 = warning.new(msg: " -PACK 1.............OFF", colour: "c"),
+ var pack12FaultPackOff2 = warning.new(msg: " -PACK 2.............OFF", colour: "c"),
+ var pack12FaultDescend = warning.new(msg: " -DESCENT TO FL 100/MEA ", colour: "c"),
+ var pack12FaultDiffPr = warning.new(msg: " •WHEN DIFF PR <1 PSI", colour: "w"),
+ var pack12FaultDiffPr2 = warning.new(msg: " AND FL BELOW 100 :", colour: "w"),
+ var pack12FaultRam = warning.new(msg: " -RAM AIR...........OPEN", colour: "c"),
+ var pack12FaultMax = warning.new(msg: " MAX FL..........100/MEA", colour: "c"),
+ var pack12FaultOvht = warning.new(msg: " •WHEN PACK OVHT OUT:", colour: "w"),
+ var pack12FaultPackOn1 = warning.new(msg: " -PACK 1..............ON", colour: "c"),
+ var pack12FaultPackOn2 = warning.new(msg: " -PACK 2..............ON", colour: "c"),
+ var pack1Ovht = warning.new(msg: "AIR PACK 1 OVHT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
+ var pack1OvhtOff = warning.new(msg: " -PACK 1.............OFF", colour: "c"),
+ var pack1OvhtOut = warning.new(msg: " •WHEN PACK OVHT OUT:", colour: "w"),
+ var pack1OvhtPack = warning.new(msg: " -PACK 1..............ON", colour: "c"),
+ var pack2Ovht = warning.new(msg: "AIR PACK 2 OVHT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
+ var pack2OvhtOff = warning.new(msg: " -PACK 2.............OFF", colour: "c"),
+ var pack2OvhtOut = warning.new(msg: " •WHEN PACK OVHT OUT:", colour: "w"),
+ var pack2OvhtPack = warning.new(msg: " -PACK 2..............ON", colour: "c"),
+ var pack1Fault = warning.new(msg: "AIR PACK 1 FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
+ var pack1FaultOff = warning.new(msg: " -PACK 1.............OFF", colour: "c"),
+ var pack2Fault = warning.new(msg: "AIR PACK 2 FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
+ var pack2FaultOff = warning.new(msg: " -PACK 2.............OFF", colour: "c"),
+ var pack1Off = warning.new(msg: "AIR PACK 1 OFF", colour: "a", aural: 1, light: 1),
+ var pack2Off = warning.new(msg: "AIR PACK 2 OFF", colour: "a", aural: 1, light: 1),
+ var pack1RegulFlt = warning.new(msg: "AIR PACK 1 REGUL FAULT", colour: "a", aural: 0, light: 0),
+ var pack2RegulFlt = warning.new(msg: "AIR PACK 2 REGUL FAULT", colour: "a", aural: 0, light: 0),
+ var aftCrgVentFlt = warning.new(msg: "AIR AFT CRG VENT FAULT", colour: "a", aural: 0, light: 0),
+ var fwdCrgVentFlt = warning.new(msg: "AIR FWD CRG VENT FAULT", colour: "a", aural: 0, light: 0),
+
# Eng AICE
var eng1IceClosed = warning.new(msg: "ANTI ICE ENG1 VALVE CLSD", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var eng1IceClosedIcing = warning.new(msg: " AVOID ICING CONDITIONS", colour: "c"),
diff --git a/Systems/a320-aircond.xml b/Systems/a320-aircond.xml
index 4f504916..2803012a 100644
--- a/Systems/a320-aircond.xml
+++ b/Systems/a320-aircond.xml
@@ -331,4 +331,24 @@
+
+
+
+
+
+ /systems/air-conditioning/packs/pack-1-outlet-temp ge 260
+
+
+
+
+
+
+
+ /systems/air-conditioning/packs/pack-2-outlet-temp ge 260
+
+
+
+
+
+
diff --git a/Systems/a320-fwc.xml b/Systems/a320-fwc.xml
index cae8aad1..08c76752 100644
--- a/Systems/a320-fwc.xml
+++ b/Systems/a320-fwc.xml
@@ -828,6 +828,42 @@
/systems/pneumatics/psi/engine-2-psi gt 49
+
+
+
+
+ /ECAM/warning-phase eq 10
+
+
+
+
+
+
+
+ /ECAM/warnings/logic/phase-10-pulse-input eq 1
+ /ECAM/warnings/logic/phase-10-pulse eq 1
+
+
+ /ECAM/warnings/logic/pack-1-pulse eq 1
+ /controls/pneumatics/switches/pack-1 eq 1
+
+
+
+
+
+
+
+
+ /ECAM/warnings/logic/phase-10-pulse-input eq 1
+ /ECAM/warnings/logic/phase-10-pulse eq 1
+
+
+ /ECAM/warnings/logic/pack-2-pulse eq 1
+ /controls/pneumatics/switches/pack-2 eq 1
+
+
+
+
diff --git a/Systems/ecam-proprules.xml b/Systems/ecam-proprules.xml
index b984a7c2..1028fa55 100644
--- a/Systems/ecam-proprules.xml
+++ b/Systems/ecam-proprules.xml
@@ -546,7 +546,6 @@
-
monostable
+
+ monostable
+
+
+ /ECAM/warnings/logic/phase-10-pulse-input
+
+
+
+
+
+ monostable
+
+
+ /controls/pneumatics/switches/pack-1
+
+
+
+
+
+ monostable
+
+
+ /controls/pneumatics/switches/pack-2
+
+
+
+
RS
@@ -686,4 +718,26 @@
+
+ RS
+
+ /systems/air-conditioning/warnings/pack-1-ovht
+
+
+ /ECAM/warnings/logic/pack-1-ovht-reset
+
+
+
+
+
+ RS
+
+ /systems/air-conditioning/warnings/pack-2-ovht
+
+
+ /ECAM/warnings/logic/pack-2-ovht-reset
+
+
+
+