Excess cabin press
This commit is contained in:
parent
fa634ef032
commit
fd5d4676ff
5 changed files with 269 additions and 10 deletions
|
@ -626,6 +626,139 @@ var messages_priority_3 = func {
|
|||
ECAM_controller.warningReset(park_brk_config);
|
||||
}
|
||||
|
||||
if (excessCabAlt.clearFlag == 0 and warningNodes.Logic.excessCabAlt.getValue() == 1 and phaseVar3 == 6) {
|
||||
excessCabAlt.active = 1;
|
||||
|
||||
if (excessCabAltMask.clearFlag == 0 and warningNodes.Flipflops.cabPressExcessFlipflopTop.getValue()) {
|
||||
excessCabAltMask.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltMask);
|
||||
}
|
||||
|
||||
if (warningNodes.Flipflops.cabPressExcessFlipflop.getValue()) {
|
||||
if (excessCabAltSigns.clearFlag == 0 and (!pts.Controls.Lighting.noSmokingSign.getValue() or !pts.Controls.Lighting.seatbeltSign.getValue())) {
|
||||
excessCabAltSigns.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltSigns);
|
||||
}
|
||||
|
||||
if (excessCabAltEmerD.clearFlag == 0) {
|
||||
excessCabAltEmerD.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltEmerD);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltSigns);
|
||||
ECAM_controller.warningReset(excessCabAltEmerD);
|
||||
}
|
||||
|
||||
if (excessCabAltDES.clearFlag == 0 and warningNodes.Flipflops.cabPressExcessFlipflopTop.getValue()) {
|
||||
excessCabAltDES.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltDES);
|
||||
}
|
||||
|
||||
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) {
|
||||
excessCabAltTHRLVR.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltTHRLVR);
|
||||
}
|
||||
|
||||
if (excessCabAltSPDBRK.clearFlag == 0 and pts.Controls.Flight.speedbrake.getValue() != 1) {
|
||||
excessCabAltSPDBRK.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltSPDBRK);
|
||||
}
|
||||
|
||||
if (excessCabAltSPD.clearFlag == 0) {
|
||||
excessCabAltSPD.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltSPD);
|
||||
}
|
||||
|
||||
if (excessCabAltENG.clearFlag == 0 and pts.Controls.Engines.startSw.getValue() != 1) {
|
||||
excessCabAltENG.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltENG);
|
||||
}
|
||||
|
||||
if (excessCabAltATC.clearFlag == 0) {
|
||||
excessCabAltATC.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltATC);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltTHRLVR);
|
||||
ECAM_controller.warningReset(excessCabAltSPDBRK);
|
||||
ECAM_controller.warningReset(excessCabAltSPD);
|
||||
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;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltCAB);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltCAB);
|
||||
}
|
||||
|
||||
if (warningNodes.Flipflops.cabPressExcessFlipflop.getValue()) {
|
||||
if (excessCabAltPA.clearFlag == 0) {
|
||||
excessCabAltPA.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltPA);
|
||||
}
|
||||
|
||||
if (excessCabAltXPDR.clearFlag == 0) {
|
||||
excessCabAltXPDR.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltXPDR);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltPA);
|
||||
ECAM_controller.warningReset(excessCabAltXPDR);
|
||||
}
|
||||
|
||||
if (excessCabAltMEA.clearFlag == 0) {
|
||||
excessCabAltMEA.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltMEA);
|
||||
}
|
||||
|
||||
if (excessCabAltCabAlt.clearFlag == 0) {
|
||||
excessCabAltCabAlt.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltCabAlt);
|
||||
}
|
||||
|
||||
if (excessCabAltMasks.clearFlag == 0) {
|
||||
excessCabAltMasks.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAltMasks);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(excessCabAlt);
|
||||
ECAM_controller.warningReset(excessCabAltMask);
|
||||
ECAM_controller.warningReset(excessCabAltSigns);
|
||||
ECAM_controller.warningReset(excessCabAltEmerD);
|
||||
ECAM_controller.warningReset(excessCabAltDES);
|
||||
ECAM_controller.warningReset(excessCabAltTHRLVR);
|
||||
ECAM_controller.warningReset(excessCabAltSPDBRK);
|
||||
ECAM_controller.warningReset(excessCabAltSPD);
|
||||
ECAM_controller.warningReset(excessCabAltENG);
|
||||
ECAM_controller.warningReset(excessCabAltCAB);
|
||||
ECAM_controller.warningReset(excessCabAltATC);
|
||||
ECAM_controller.warningReset(excessCabAltPA);
|
||||
ECAM_controller.warningReset(excessCabAltXPDR);
|
||||
ECAM_controller.warningReset(excessCabAltMEA);
|
||||
ECAM_controller.warningReset(excessCabAltCabAlt);
|
||||
ECAM_controller.warningReset(excessCabAltMasks);
|
||||
}
|
||||
|
||||
if (lrElevFault.clearFlag == 0 and warningNodes.Timers.LRElevFault.getValue() == 1) {
|
||||
lrElevFault.active = 1;
|
||||
if (lrElevFaultSpeed.clearFlag == 0) {
|
||||
|
@ -3340,7 +3473,7 @@ var messages_config_memo = func {
|
|||
toMemoLine1.colour = "c";
|
||||
}
|
||||
|
||||
if (pts.Controls.Switches.seatbeltSwitch.getValue() and pts.Controls.Switches.noSmokingSwitch.getValue()) {
|
||||
if (pts.Controls.Lighting.seatbeltSign.getValue() and pts.Controls.Lighting.noSmokingSign.getValue()) {
|
||||
toMemoLine2.msg = " SIGNS ON";
|
||||
toMemoLine2.colour = "g";
|
||||
} else {
|
||||
|
@ -3406,7 +3539,7 @@ var messages_config_memo = func {
|
|||
ldgMemoLine1.colour = "c";
|
||||
}
|
||||
|
||||
if (pts.Controls.Switches.seatbeltSwitch.getValue() and pts.Controls.Switches.noSmokingSwitch.getValue()) {
|
||||
if (pts.Controls.Lighting.seatbeltSign.getValue() and pts.Controls.Lighting.noSmokingSign.getValue()) {
|
||||
ldgMemoLine2.msg = " SIGNS ON";
|
||||
ldgMemoLine2.colour = "g";
|
||||
} else {
|
||||
|
|
|
@ -136,6 +136,7 @@ var warnings = std.Vector.new([
|
|||
var excessCabAltSPDBRK = warning.new(msg: " -SPD BRK...........FULL", colour: "c"),
|
||||
var excessCabAltSPD = warning.new(msg: " SPD.....MAX/APPROPRIATE", colour: "c"),
|
||||
var excessCabAltENG = warning.new(msg: " -ENG MODE...........IGN", colour: "c"),
|
||||
var excessCabAltATC = warning.new(msg: " -ATC.............NOTIFY", colour: "c"),
|
||||
var excessCabAltCAB = warning.new(msg: " -CABIN CREW......ADVISE", colour: "c"),
|
||||
var excessCabAltPA = warning.new(msg: " -EMER DES (PA).ANNOUNCE", colour: "c"),
|
||||
var excessCabAltXPDR = warning.new(msg: " -XPDR 7700.....CONSIDER", colour: "c"),
|
||||
|
|
|
@ -74,6 +74,8 @@ var FWC = {
|
|||
|
||||
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"),
|
||||
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"),
|
||||
|
@ -152,6 +154,7 @@ var warningNodes = {
|
|||
gen2Off: props.globals.initNode("/ECAM/warnings/logic/elec/gen-2-off"),
|
||||
spdBrkOut: props.globals.initNode("/ECAM/warnings/fctl/spd-brk-still-out"),
|
||||
excessPress: props.globals.initNode("/ECAM/warnings/press/exess-residual-pressure"),
|
||||
excessCabAlt: props.globals.initNode("/ECAM/warnings/logic/press/excess-cabin-alt"),
|
||||
},
|
||||
Timers: {
|
||||
apuFaultOutput: props.globals.initNode("/ECAM/warnings/timer/apu-fault-output"),
|
||||
|
@ -215,5 +218,7 @@ var warningNodes = {
|
|||
parkBrk: props.globals.initNode("/ECAM/warnings/config/park-brk/park-brk-output"),
|
||||
eng1ThrLvrAbvIdle: props.globals.initNode("/ECAM/warnings/logic/eng/eng-1-thr-lvr-abv-idle"),
|
||||
eng2ThrLvrAbvIdle: props.globals.initNode("/ECAM/warnings/logic/eng/eng-2-thr-lvr-abv-idle"),
|
||||
cabPressExcessFlipflopTop: props.globals.initNode("/ECAM/warnings/logic/press/excess-cabin-alt-flipflop-top"),
|
||||
cabPressExcessFlipflop: props.globals.initNode("/ECAM/warnings/logic/press/excess-cabin-alt-flipflop"),
|
||||
},
|
||||
};
|
|
@ -2673,9 +2673,9 @@
|
|||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/ECAM/warnings/logic/eng/eng-1-tla-abv-6-output eq 1
|
||||
/engines/engine[0]/state eq 3
|
||||
/ECAM/warnings/logic/eng/JE1NORUN eq 1
|
||||
<test logic="AND">
|
||||
/engines/engine[1]/state eq 3
|
||||
/ECAM/warnings/logic/eng/JE2NORUN eq 1
|
||||
<test logic="OR">
|
||||
<test logic="AND">
|
||||
/ECAM/warnings/logic/eng/eng-2-reverse eq 1
|
||||
|
@ -2692,9 +2692,9 @@
|
|||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/ECAM/warnings/logic/eng/eng-1-tla-abv-6-2-output eq 1
|
||||
/engines/engine[0]/state eq 3
|
||||
/ECAM/warnings/logic/eng/JE1NORUN eq 1
|
||||
<test logic="AND">
|
||||
/engines/engine[1]/state eq 3
|
||||
/ECAM/warnings/logic/eng/JE2NORUN eq 1
|
||||
<test logic="OR">
|
||||
/ECAM/warnings/logic/eng/eng-2-tla-idle-output eq 1
|
||||
<test logic="AND">
|
||||
|
@ -2711,9 +2711,9 @@
|
|||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/ECAM/warnings/logic/eng/eng-2-tla-abv-6-output eq 1
|
||||
/engines/engine[1]/state eq 3
|
||||
/ECAM/warnings/logic/eng/JE2NORUN eq 1
|
||||
<test logic="AND">
|
||||
/engines/engine[0]/state eq 3
|
||||
/ECAM/warnings/logic/eng/JE1NORUN eq 1
|
||||
<test logic="OR">
|
||||
<test logic="AND">
|
||||
/ECAM/warnings/logic/eng/eng-1-reverse eq 1
|
||||
|
@ -2730,9 +2730,9 @@
|
|||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/ECAM/warnings/logic/eng/eng-2-tla-abv-6-2-output eq 1
|
||||
/engines/engine[1]/state eq 3
|
||||
/ECAM/warnings/logic/eng/JE2NORUN eq 1
|
||||
<test logic="AND">
|
||||
/engines/engine[0]/state eq 3
|
||||
/ECAM/warnings/logic/eng/JE1NORUN eq 1
|
||||
<test logic="OR">
|
||||
/ECAM/warnings/logic/eng/eng-1-tla-idle-output eq 1
|
||||
<test logic="AND">
|
||||
|
@ -3176,6 +3176,82 @@
|
|||
<rate_limit sense="decr">100</rate_limit>
|
||||
</actuator>
|
||||
|
||||
<switch name="/ECAM/warnings/timer/press/excess-cabin-alt-input">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/systems/pressurization/cabinalt-norm ge 9550
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<actuator name="/ECAM/warnings/timer/press/excess-cabin-alt">
|
||||
<input>/ECAM/warnings/timer/press/excess-cabin-alt-input</input>
|
||||
<rate_limit sense="incr">1</rate_limit>
|
||||
<rate_limit sense="decr">100</rate_limit>
|
||||
</actuator>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/press/excess-cabin-alt">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/ECAM/warnings/timer/press/excess-cabin-alt eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/phase-3-10-pulse-input">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/ECAM/warning-phase eq 3
|
||||
/ECAM/warning-phase eq 10
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/press/excess-cabin-alt-flipflop-top-set">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
<test logic="OR">
|
||||
<test logic="OR">
|
||||
/systems/navigation/adr/computation/baro-alt-corrected-1-capt ge 10000
|
||||
/systems/navigation/adr/computation/baro-alt-corrected-2-capt ge 10000
|
||||
/systems/navigation/adr/computation/baro-alt-corrected-3-capt ge 10000
|
||||
</test>
|
||||
<test logic="AND">
|
||||
/systems/navigation/adr/operating-1 eq 0
|
||||
/systems/navigation/adr/operating-2 eq 0
|
||||
/systems/navigation/adr/operating-3 eq 0
|
||||
</test>
|
||||
</test>
|
||||
/ECAM/warnings/logic/press/excess-cabin-alt eq 1
|
||||
/ECAM/warnings/logic/press/excess-cabin-alt-pulse eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/press/excess-cabin-alt-flipflop-set">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
<test logic="OR">
|
||||
<test logic="OR">
|
||||
/systems/navigation/adr/computation/baro-alt-corrected-1-capt ge 16000
|
||||
/systems/navigation/adr/computation/baro-alt-corrected-2-capt ge 16000
|
||||
/systems/navigation/adr/computation/baro-alt-corrected-3-capt ge 16000
|
||||
</test>
|
||||
<test logic="AND">
|
||||
/systems/navigation/adr/operating-1 eq 0
|
||||
/systems/navigation/adr/operating-2 eq 0
|
||||
/systems/navigation/adr/operating-3 eq 0
|
||||
</test>
|
||||
</test>
|
||||
/ECAM/warnings/logic/press/excess-cabin-alt eq 1
|
||||
/ECAM/warnings/logic/press/excess-cabin-alt-pulse eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/press/excess-cabin-alt-flipflop-reset">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/ECAM/warnings/logic/phase-3-10-pulse-input eq 1
|
||||
/ECAM/warnings/logic/phase-3-10-pulse eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
</channel>
|
||||
|
||||
<channel name="FCTL" execrate="16">
|
||||
|
|
|
@ -630,6 +630,17 @@
|
|||
<output>/ECAM/warnings/logic/phase-9-pulse</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>monostable</type>
|
||||
<time>
|
||||
<value>1.0</value>
|
||||
</time>
|
||||
<S>
|
||||
<not><property>/ECAM/warnings/logic/phase-3-10-pulse-input</property></not>
|
||||
</S>
|
||||
<output>/ECAM/warnings/logic/phase-3-10-pulse</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>monostable</type>
|
||||
<time>
|
||||
|
@ -641,6 +652,17 @@
|
|||
<output>/ECAM/warnings/logic/phase-10-pulse</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>monostable</type>
|
||||
<time>
|
||||
<value>1.0</value>
|
||||
</time>
|
||||
<S>
|
||||
<not><property>/ECAM/warnings/logic/press/excess-cabin-alt</property></not>
|
||||
</S>
|
||||
<output>/ECAM/warnings/logic/press/excess-cabin-alt-pulse</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>monostable</type>
|
||||
<time>
|
||||
|
@ -1233,4 +1255,26 @@
|
|||
</R>
|
||||
<output>/ECAM/warnings/hyd/yellow-elec-pump-fail</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>SR</type>
|
||||
<S>
|
||||
<property>/ECAM/warnings/logic/press/excess-cabin-alt-flipflop-set</property>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/warnings/logic/press/excess-cabin-alt-flipflop-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/warnings/logic/press/excess-cabin-alt-flipflop</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>SR</type>
|
||||
<S>
|
||||
<property>/ECAM/warnings/logic/press/excess-cabin-alt-flipflop-top-set</property>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/warnings/logic/press/excess-cabin-alt-flipflop-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/warnings/logic/press/excess-cabin-alt-flipflop-top</output>
|
||||
</flipflop>
|
||||
</PropertyList>
|
||||
|
|
Loading…
Reference in a new issue