1
0
Fork 0

Hydraulic dual failure warnings

This commit is contained in:
legoboyvdlp R 2020-10-18 17:37:23 +01:00
parent f81c7ca72a
commit bcf4754174
6 changed files with 493 additions and 17 deletions

View file

@ -64,6 +64,12 @@ var warningNodes = {
gearNotDown2: props.globals.initNode("/ECAM/warnings/fctl/gear-not-down-cancellable"),
gearNotDownLocked: props.globals.initNode("/ECAM/warnings/fctl/gear-not-down-locked"),
gearNotDownLockedFlipflop: props.globals.initNode("/ECAM/warnings/fctl/gear-not-downlocked-output"),
blueGreen: props.globals.initNode("/ECAM/warnings/hyd/blue-green-failure"),
blueGreenFuel: props.globals.initNode("/ECAM/warnings/hyd/blue-green-fuel-consumpt"),
blueYellow: props.globals.initNode("/ECAM/warnings/hyd/blue-yellow-failure"),
blueYellowFuel: props.globals.initNode("/ECAM/warnings/hyd/blue-yellow-fuel-consumpt"),
greenYellow: props.globals.initNode("/ECAM/warnings/hyd/green-yellow-failure"),
greenYellowFuel: props.globals.initNode("/ECAM/warnings/hyd/green-yellow-fuel-consumpt"),
},
Timers: {
apuFaultOutput: props.globals.initNode("/ECAM/warnings/timer/apu-fault-output"),

View file

@ -961,6 +961,196 @@ var messages_priority_3 = func {
ECAM_controller.warningReset(emerconfigProt);
ECAM_controller.warningReset(emerconfigMaxSpeed);
}
if (hydBYloPr.clearFlag == 0 and phaseVar3 != 4 and phaseVar3 != 5 and warningNodes.Logic.blueYellow.getValue()) {
hydBYloPr.active = 1;
if (hydBYloPrRat.clearFlag == 0 and systems.HYD.Rat.position.getValue() != 0) {
hydBYloPrRat.active = 1;
} else {
ECAM_controller.warningReset(hydBYloPrRat);
}
if (hydBYloPrYElec.clearFlag == 0 and !systems.HYD.Pump.yellowElec.getValue() and systems.ELEC.Bus.ac2.getValue() >= 110 and systems.HYD.Qty.yellow.getValue() >= 3.5) {
hydBYloPrYElec.active = 1;
} else {
ECAM_controller.warningReset(hydBYloPrYElec);
}
if (hydBYloPrRatOn.clearFlag == 0 and systems.HYD.Rat.position.getValue() == 0 and systems.HYD.Qty.blue.getValue() >= 2.4) {
hydBYloPrRatOn.active = 1;
} else {
ECAM_controller.warningReset(hydBYloPrRatOn);
}
if (hydBYloPrBElec.clearFlag == 0 and systems.HYD.Switch.blueElec.getValue()) {
hydBYloPrBElec.active = 1;
} else {
ECAM_controller.warningReset(hydBYloPrBElec);
}
if (hydBYloPrYEng.clearFlag == 0 and systems.HYD.Switch.yellowEDP.getValue()) {
hydBYloPrYEng.active = 1;
} else {
ECAM_controller.warningReset(hydBYloPrYEng);
}
if (hydBYloPrMaxSpd.clearFlag == 0) {
hydBYloPrMaxSpd.active = 1;
} else {
ECAM_controller.warningReset(hydBYloPrMaxSpd);
}
if (hydBYloPrMnvrCare.clearFlag == 0) {
hydBYloPrMnvrCare.active = 1;
} else {
ECAM_controller.warningReset(hydBYloPrMnvrCare);
}
if (hydBYloPrGaPitch.clearFlag == 0) {
hydBYloPrGaPitch.active = 1;
} else {
ECAM_controller.warningReset(hydBYloPrGaPitch);
}
if (hydBYloPrFuelCnsmpt.clearFlag == 0 and warningNodes.Logic.blueYellowFuel.getValue()) {
hydBYloPrFuelCnsmpt.active = 1;
} else {
ECAM_controller.warningReset(hydBYloPrFuelCnsmpt);
}
if (hydBYloPrFmsPredict.clearFlag == 0 and warningNodes.Logic.blueYellowFuel.getValue()) {
hydBYloPrFmsPredict.active = 1;
} else {
ECAM_controller.warningReset(hydBYloPrFmsPredict);
}
} else {
ECAM_controller.warningReset(hydBYloPr);
ECAM_controller.warningReset(hydBYloPrRat);
ECAM_controller.warningReset(hydBYloPrYElec);
ECAM_controller.warningReset(hydBYloPrRatOn);
ECAM_controller.warningReset(hydBYloPrBElec);
ECAM_controller.warningReset(hydBYloPrYEng);
ECAM_controller.warningReset(hydBYloPrMaxSpd);
ECAM_controller.warningReset(hydBYloPrMnvrCare);
ECAM_controller.warningReset(hydBYloPrGaPitch);
ECAM_controller.warningReset(hydBYloPrFuelCnsmpt);
ECAM_controller.warningReset(hydBYloPrFmsPredict);
}
if (hydGBloPr.clearFlag == 0 and phaseVar3 != 4 and phaseVar3 != 5 and warningNodes.Logic.blueGreen.getValue()) {
hydGBloPr.active = 1;
if (hydGBloPrRat.clearFlag == 0 and systems.HYD.Rat.position.getValue() != 0) {
hydGBloPrRat.active = 1;
} else {
ECAM_controller.warningReset(hydGBloPrRat);
}
if (hydGBloPrRatOn.clearFlag == 0 and systems.HYD.Rat.position.getValue() == 0 and systems.HYD.Qty.blue.getValue() >= 2.4) {
hydGBloPrRatOn.active = 1;
} else {
ECAM_controller.warningReset(hydGBloPrRatOn);
}
if (hydGBloPrBElec.clearFlag == 0 and systems.HYD.Switch.blueElec.getValue()) {
hydGBloPrBElec.active = 1;
} else {
ECAM_controller.warningReset(hydGBloPrBElec);
}
if (hydGBloPrGEng.clearFlag == 0 and systems.HYD.Switch.greenEDP.getValue()) {
hydGBloPrGEng.active = 1;
} else {
ECAM_controller.warningReset(hydGBloPrGEng);
}
if (hydGBloPrMnvrCare.clearFlag == 0) {
hydGBloPrMnvrCare.active = 1;
} else {
ECAM_controller.warningReset(hydGBloPrMnvrCare);
}
if (hydGBloPrGaPitch.clearFlag == 0) {
hydGBloPrGaPitch.active = 1;
} else {
ECAM_controller.warningReset(hydGBloPrGaPitch);
}
if (hydGBloPrFuelCnsmpt.clearFlag == 0 and warningNodes.Logic.blueGreenFuel.getValue()) {
hydGBloPrFuelCnsmpt.active = 1;
} else {
ECAM_controller.warningReset(hydGBloPrFuelCnsmpt);
}
if (hydGBloPrFmsPredict.clearFlag == 0 and warningNodes.Logic.blueGreenFuel.getValue()) {
hydGBloPrFmsPredict.active = 1;
} else {
ECAM_controller.warningReset(hydGBloPrFmsPredict);
}
} else {
ECAM_controller.warningReset(hydGBloPr);
ECAM_controller.warningReset(hydGBloPrRat);
ECAM_controller.warningReset(hydGBloPrRatOn);
ECAM_controller.warningReset(hydGBloPrBElec);
ECAM_controller.warningReset(hydGBloPrGEng);
ECAM_controller.warningReset(hydGBloPrMnvrCare);
ECAM_controller.warningReset(hydGBloPrGaPitch);
ECAM_controller.warningReset(hydGBloPrFuelCnsmpt);
ECAM_controller.warningReset(hydGBloPrFmsPredict);
}
if (hydGYloPr.clearFlag == 0 and phaseVar3 != 4 and phaseVar3 != 5 and warningNodes.Logic.greenYellow.getValue()) {
hydGYloPr.active = 1;
if (hydGYloPrPtu.clearFlag == 0 and systems.HYD.Switch.ptu.getValue() != 0) {
hydGYloPrPtu.active = 1;
} else {
ECAM_controller.warningReset(hydGYloPrPtu);
}
if (hydGYloPrGEng.clearFlag == 0 and systems.HYD.Switch.greenEDP.getValue()) {
hydGYloPrGEng.active = 1;
} else {
ECAM_controller.warningReset(hydGYloPrGEng);
}
if (hydGYloPrYEng.clearFlag == 0 and systems.HYD.Switch.yellowEDP.getValue()) {
hydGYloPrYEng.active = 1;
} else {
ECAM_controller.warningReset(hydGYloPrYEng);
}
if (hydGYloPrYElec.clearFlag == 0 and !systems.HYD.Pump.yellowElec.getValue() and systems.ELEC.Bus.ac2.getValue() >= 110 and systems.HYD.Qty.yellow.getValue() >= 3.5) {
hydGYloPrYElec.active = 1;
} else {
ECAM_controller.warningReset(hydGYloPrYElec);
}
if (hydGYloPrMnvrCare.clearFlag == 0) {
hydGYloPrMnvrCare.active = 1;
} else {
ECAM_controller.warningReset(hydGYloPrMnvrCare);
}
if (hydGYloPrFuelCnsmpt.clearFlag == 0 and warningNodes.Logic.greenYellowFuel.getValue()) {
hydGYloPrFuelCnsmpt.active = 1;
} else {
ECAM_controller.warningReset(hydGYloPrFuelCnsmpt);
}
if (hydGYloPrFmsPredict.clearFlag == 0 and warningNodes.Logic.greenYellowFuel.getValue()) {
hydGYloPrFmsPredict.active = 1;
} else {
ECAM_controller.warningReset(hydGYloPrFmsPredict);
}
} else {
ECAM_controller.warningReset(hydGYloPr);
ECAM_controller.warningReset(hydGYloPrPtu);
ECAM_controller.warningReset(hydGYloPrGEng);
ECAM_controller.warningReset(hydGYloPrYEng);
ECAM_controller.warningReset(hydGYloPrYElec);
ECAM_controller.warningReset(hydGYloPrMnvrCare);
ECAM_controller.warningReset(hydGYloPrFuelCnsmpt);
ECAM_controller.warningReset(hydGYloPrFmsPredict);
}
}
var messages_priority_2 = func {

View file

@ -140,25 +140,59 @@ var warnings = std.Vector.new([
# Emer Config
var emerconfig = warning.new(msg: "ELEC EMER CONFIG", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var emerconfigMinRat = warning.new(msg: "MIN RAT SPD......140 KT", colour: "c"),
var emerconfigGen = warning.new(msg: "-GEN 1+2....OFF THEN ON", colour: "c"),
var emerconfigGen2 = warning.new(msg: " •IF UNSUCCESSFUL :", colour: "w"),
var emerconfigBusTie = warning.new(msg: "-BUS TIE............OFF", colour: "c"),
var emerconfigGen3 = warning.new(msg: "-GEN 1+2....OFF THEN ON", colour: "c"),
var emerconfigManOn = warning.new(msg: "-EMER ELEC PWR...MAN ON", colour: "c"),
var emerconfigEngMode = warning.new(msg: "-ENG MODE SEL.......IGN", colour: "c"),
var emerconfigRadio = warning.new(msg: "-VHF1/ATC1..........USE", colour: "c"),
var emerconfigIcing = warning.new(msg: "AVOID ICING CONDITIONS", colour: "c"),
var emerconfigFuelG = warning.new(msg: "FUEL GRVTY FEED", colour: "c"),
var emerconfigFuelG2 = warning.new(msg: "PROC:GRVTY FUEL FEEDING", colour: "c"),
var emerconfigFAC = warning.new(msg: "-FAC 1......OFF THEN ON", colour: "c"),
var emerconfigBusTie2 = warning.new(msg: "-BUS TIE...........AUTO", colour: "c"),
var emerconfigAPU = warning.new(msg: "-APU (IF AVAIL)...START", colour: "c"),
var emerconfigVent = warning.new(msg: "-BLOWER + EXTRACT..OVRD", colour: "c"),
var emerconfigMinRat = warning.new(msg: " MIN RAT SPD......140 KT", colour: "c"),
var emerconfigGen = warning.new(msg: " -GEN 1+2....OFF THEN ON", colour: "c"),
var emerconfigGen2 = warning.new(msg: " •IF UNSUCCESSFUL :", colour: "w"),
var emerconfigBusTie = warning.new(msg: " -BUS TIE............OFF", colour: "c"),
var emerconfigGen3 = warning.new(msg: " -GEN 1+2....OFF THEN ON", colour: "c"),
var emerconfigManOn = warning.new(msg: " -EMER ELEC PWR...MAN ON", colour: "c"),
var emerconfigEngMode = warning.new(msg: " -ENG MODE SEL.......IGN", colour: "c"),
var emerconfigRadio = warning.new(msg: " -VHF1/ATC1..........USE", colour: "c"),
var emerconfigIcing = warning.new(msg: " AVOID ICING CONDITIONS", colour: "c"),
var emerconfigFuelG = warning.new(msg: " FUEL GRVTY FEED", colour: "c"),
var emerconfigFuelG2 = warning.new(msg: " PROC:GRVTY FUEL FEEDING", colour: "c"),
var emerconfigFAC = warning.new(msg: " -FAC 1......OFF THEN ON", colour: "c"),
var emerconfigBusTie2 = warning.new(msg: " -BUS TIE...........AUTO", colour: "c"),
var emerconfigAPU = warning.new(msg: " -APU (IF AVAIL)...START", colour: "c"),
var emerconfigVent = warning.new(msg: " -BLOWER + EXTRACT..OVRD", colour: "c"),
var emerconfigAltn = warning.new(msg: "F/CTL ALTN LAW", colour: "a"),
var emerconfigProt = warning.new(msg: " (PROT LOST)", colour: "a"),
var emerconfigMaxSpeed = warning.new(msg: " MAX SPEED........320 KT", colour: "c"),
# B + Y LO PR
var hydBYloPr = warning.new(msg: "HYD B+Y SYS LO PR", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var hydBYloPrRat = warning.new(msg: " MIN RAT SPD......140 KT", colour: "c"),
var hydBYloPrYElec = warning.new(msg: " -YELLOW ELEC PUMP....ON", colour: "c"),
var hydBYloPrRatOn = warning.new(msg: " -RAT.............MAN ON", colour: "c"),
var hydBYloPrBElec = warning.new(msg: " -BLUE ELEC PUMP.....OFF", colour: "c"),
var hydBYloPrYEng = warning.new(msg: " -YELLOW ENG 2 PUMP..OFF", colour: "c"),
var hydBYloPrMaxSpd = warning.new(msg: " MAX SPEED.......320/.77", colour: "c"),
var hydBYloPrMnvrCare = warning.new(msg: " MANEUVER WITH CARE", colour: "c"),
var hydBYloPrGaPitch = warning.new(msg: " FOR GA:MAX PITCH 15 DEG", colour: "c"),
var hydBYloPrFuelCnsmpt = warning.new(msg: " FUEL CONSUMPT INCRSD", colour: "c"),
var hydBYloPrFmsPredict = warning.new(msg: " FMS PRED UNRELIABLE", colour: "c"),
# G + B LO PR
var hydGBloPr = warning.new(msg: "HYD G+B SYS LO PR", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var hydGBloPrRat = warning.new(msg: " MIN RAT SPD......140 KT", colour: "c"),
var hydGBloPrRatOn = warning.new(msg: " -RAT.............MAN ON", colour: "c"),
var hydGBloPrBElec = warning.new(msg: " -BLUE ELEC PUMP.....OFF", colour: "c"),
var hydGBloPrGEng = warning.new(msg: " -GREEN ENG 1 PUMP...OFF", colour: "c"),
var hydGBloPrMnvrCare = warning.new(msg: " MANEUVER WITH CARE", colour: "c"),
var hydGBloPrGaPitch = warning.new(msg: " FOR GA:MAX PITCH 15 DEG", colour: "c"),
var hydGBloPrFuelCnsmpt = warning.new(msg: " FUEL CONSUMPT INCRSD", colour: "c"),
var hydGBloPrFmsPredict = warning.new(msg: " FMS PRED UNRELIABLE", colour: "c"),
# G + Y LO PR
var hydGYloPr = warning.new(msg: "HYD G+Y SYS LO PR", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var hydGYloPrPtu = warning.new(msg: " -PTU................OFF", colour: "c"),
var hydGYloPrGEng = warning.new(msg: " -GREEN ENG 1 PUMP...OFF", colour: "c"),
var hydGYloPrYEng = warning.new(msg: " -YELLOW ENG 2 PUMP..OFF", colour: "c"),
var hydGYloPrYElec = warning.new(msg: " -YELLOW ELEC PUMP....ON", colour: "c"),
var hydGYloPrMnvrCare = warning.new(msg: " MANEUVER WITH CARE", colour: "c"),
var hydGYloPrFuelCnsmpt = warning.new(msg: " FUEL CONSUMPT INCRSD", colour: "c"),
var hydGYloPrFmsPredict = warning.new(msg: " FMS PRED UNRELIABLE", 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"),

View file

@ -34,10 +34,16 @@ var HYD = {
active: props.globals.getNode("/systems/hydraulic/sources/ptu/ptu-hydraulic-condition"),
diff: props.globals.getNode("/systems/hydraulic/yellow-psi-diff"),
},
Pump: {
yellowElec: props.globals.getNode("/systems/hydraulic/sources/yellow-elec/pump-operate"),
},
Qty: {
blueInput: props.globals.initNode("/systems/hydraulic/blue-qty-input", 0, "INT"),
blue: props.globals.getNode("/systems/hydraulic/blue-qty"),
greenInput: props.globals.initNode("/systems/hydraulic/green-qty-input", 0, "INT"),
green: props.globals.getNode("/systems/hydraulic/green-qty"),
yellowInput: props.globals.initNode("/systems/hydraulic/yellow-qty-input", 0, "INT"),
yellow: props.globals.getNode("/systems/hydraulic/yellow-qty"),
},
Rat: {
position: props.globals.getNode("/systems/hydraulic/sources/rat/position"),

View file

@ -1374,7 +1374,7 @@
<default value="0"/>
<test logic="AND" value="1">
/systems/hydraulic/green-psi lt 1500
/ECAM/warning-phase eq 1
/ECAM/warning-phase ne 1
</test>
</switch>
@ -1419,7 +1419,7 @@
<default value="0"/>
<test logic="AND" value="1">
/systems/hydraulic/yellow-psi lt 1500
/ECAM/warning-phase eq 1
/ECAM/warning-phase ne 1
</test>
</switch>
@ -2167,4 +2167,210 @@
</test>
</switch>
</channel>
<channel name="Hydraulic" execrate="8">
<switch name="/ECAM/warnings/hyd/engines-2-online">
<default value="0"/>
<test logic="AND" value="1">
/engines/engine[0]/state eq 3
/engines/engine[1]/state eq 3
</test>
</switch>
<actuator name="/ECAM/warnings/hyd/engines-2-online-output">
<input>/ECAM/warnings/hyd/engines-2-online</input>
<rate_limit sense="decr">100</rate_limit> <!-- Instant -->
<rate_limit sense="incr">1</rate_limit>
</actuator>
<switch name="/ECAM/warnings/hyd/engines-2-off-in-air">
<default value="0"/>
<test logic="AND" value="1">
/engines/engine[0]/state ne 3
/engines/engine[1]/state ne 3
/ECAM/timer/ground-calc eq 0
</test>
</switch>
<actuator name="/ECAM/warnings/hyd/engines-2-off-in-air-output">
<input>/ECAM/warnings/hyd/engines-2-off-in-air</input>
<rate_limit sense="decr">100</rate_limit> <!-- Instant -->
<rate_limit sense="incr">0.2</rate_limit> <!-- 5 seconds -->
</actuator>
<switch name="/ECAM/warnings/hyd/engine-1-start">
<default value="0"/>
<test logic="OR" value="1">
/engines/engine[0]/state eq 3
<test logic="AND">
/ECAM/warning-phase ne 1
/ECAM/warning-phase ne 2
/ECAM/warning-phase ne 9
/ECAM/warning-phase ne 10
</test>
</test>
</switch>
<actuator name="/ECAM/warnings/hyd/engine-1-start-output">
<input>/ECAM/warnings/hyd/engine-1-start</input>
<rate_limit sense="decr">100</rate_limit> <!-- Instant -->
<rate_limit sense="incr">1</rate_limit>
</actuator>
<switch name="/ECAM/warnings/hyd/engine-2-start">
<default value="0"/>
<test logic="AND" value="1">
/engines/engine[1]/state eq 3
<test logic="AND">
/ECAM/warning-phase ne 1
/ECAM/warning-phase ne 2
/ECAM/warning-phase ne 9
/ECAM/warning-phase ne 10
</test>
</test>
</switch>
<actuator name="/ECAM/warnings/hyd/engine-2-start-output">
<input>/ECAM/warnings/hyd/engine-2-start</input>
<rate_limit sense="decr">100</rate_limit> <!-- Instant -->
<rate_limit sense="incr">1</rate_limit>
</actuator>
<switch name="/ECAM/warnings/hyd/blue-abnorm-lo-pr">
<default value="0"/>
<test logic="AND" value="1">
/systems/hydraulics/warnings/blue-lo-pr eq 1
<test logic="OR">
/ECAM/warnings/hyd/engines-2-online eq 1
/ECAM/warnings/hyd/engines-2-off-in-air-output eq 1
</test>
</test>
</switch>
<switch name="/ECAM/warnings/hyd/green-abnorm-lo-pr">
<default value="0"/>
<test logic="AND" value="1">
/systems/hydraulics/warnings/green-lo-pr eq 1
/ECAM/warnings/hyd/engine-1-start-output eq 1
</test>
</switch>
<switch name="/ECAM/warnings/hyd/yellow-abnorm-lo-pr">
<default value="0"/>
<test logic="AND" value="1">
/systems/hydraulics/warnings/yellow-lo-pr eq 1
/ECAM/warnings/hyd/engine-2-start-output eq 1
</test>
</switch>
<switch name="/ECAM/warnings/hyd/blue-dual-failure">
<default value="0"/>
<test logic="OR" value="1">
<test logic="AND">
/ECAM/warnings/hyd/blue-abnorm-lo-pr eq 1
/ECAM/warnings/hyd/yellow-abnorm-lo-pr eq 1
</test>
<test logic="AND">
/ECAM/warnings/hyd/blue-abnorm-lo-pr eq 1
/ECAM/warnings/hyd/green-abnorm-lo-pr eq 1
</test>
</test>
</switch>
<switch name="/ECAM/warnings/hyd/green-dual-failure">
<default value="0"/>
<test logic="OR" value="1">
<test logic="AND">
/ECAM/warnings/hyd/blue-abnorm-lo-pr eq 1
/ECAM/warnings/hyd/green-abnorm-lo-pr eq 1
</test>
<test logic="AND">
/ECAM/warnings/hyd/yellow-abnorm-lo-pr eq 1
/ECAM/warnings/hyd/green-abnorm-lo-pr eq 1
</test>
</test>
</switch>
<switch name="/ECAM/warnings/hyd/yellow-dual-failure">
<default value="0"/>
<test logic="OR" value="1">
<test logic="AND">
/ECAM/warnings/hyd/blue-abnorm-lo-pr eq 1
/ECAM/warnings/hyd/yellow-abnorm-lo-pr eq 1
</test>
<test logic="AND">
/ECAM/warnings/hyd/yellow-abnorm-lo-pr eq 1
/ECAM/warnings/hyd/green-abnorm-lo-pr eq 1
</test>
</test>
</switch>
<switch name="/ECAM/warnings/hyd/blue-green-failure">
<default value="0"/>
<test logic="AND" value="1">
/ECAM/warnings/hyd/blue-abnorm-lo-pr eq 1
/ECAM/warnings/hyd/green-abnorm-lo-pr eq 1
</test>
</switch>
<switch name="/ECAM/warnings/hyd/blue-yellow-failure">
<default value="0"/>
<test logic="AND" value="1">
/ECAM/warnings/hyd/blue-abnorm-lo-pr eq 1
/ECAM/warnings/hyd/yellow-abnorm-lo-pr eq 1
</test>
</switch>
<switch name="/ECAM/warnings/hyd/green-yellow-failure">
<default value="0"/>
<test logic="AND" value="1">
/engines/engine[0]/state eq 3
/engines/engine[1]/state eq 3
/ECAM/warnings/hyd/green-abnorm-lo-pr eq 1
/ECAM/warnings/hyd/yellow-abnorm-lo-pr eq 1
</test>
</switch>
<switch name="/ECAM/warnings/hyd/blue-green-fuel-consumpt">
<default value="0"/>
<test logic="AND" value="1">
/ECAM/timer/ground-calc eq 0
/engines/engine[0]/state eq 3
/engines/engine[1]/state eq 3
</test>
</switch>
<switch name="/ECAM/warnings/hyd/blue-yellow-fuel-consumpt">
<default value="0"/>
<test logic="AND" value="1">
/ECAM/timer/ground-calc eq 0
/engines/engine[0]/state eq 3
/engines/engine[1]/state eq 3
<test logic="OR">
fcs/flap-pos-deg ne 0
hydraulics/spoiler-l1/final-deg gt 0
hydraulics/spoiler-r1/final-deg gt 0
hydraulics/spoiler-l2/final-deg gt 0
hydraulics/spoiler-r2/final-deg gt 0
hydraulics/spoiler-l4/final-deg gt 0
hydraulics/spoiler-r4/final-deg gt 0
hydraulics/spoiler-l5/final-deg gt 0
hydraulics/spoiler-r5/final-deg gt 0
<!-- aileron servo -->
</test>
</test>
</switch>
<switch name="/ECAM/warnings/hyd/green-yellow-fuel-consumpt">
<default value="0"/>
<test logic="AND" value="1">
/ECAM/timer/ground-calc eq 0
/engines/engine[0]/state eq 3
/engines/engine[1]/state eq 3
</test>
</switch>
</channel>
</system>

View file

@ -587,6 +587,40 @@
/systems/hydraulic/green-qty lt 3.5
</test>
</switch>
<switch name="/systems/hydraulics/warnings/blue-lo-pr">
<default value="0"/>
<test logic="OR" value="1">
<test logic="AND">
/systems/hydraulic/blue-psi lt 1750
/systems/hydraulics/warnings/blue-lo-pr eq 1
</test>
/systems/hydraulic/blue-psi lt 1450
</test>
</switch>
<switch name="/systems/hydraulics/warnings/green-lo-pr">
<default value="0"/>
<test logic="OR" value="1">
<test logic="AND">
/systems/hydraulic/green-psi lt 1750
/systems/hydraulics/warnings/green-lo-pr eq 1
</test>
/systems/hydraulic/green-psi lt 1450
</test>
</switch>
<switch name="/systems/hydraulics/warnings/yellow-lo-pr">
<default value="0"/>
<test logic="OR" value="1">
<test logic="AND">
/systems/hydraulic/yellow-psi lt 1750
/systems/hydraulics/warnings/yellow-lo-pr eq 1
</test>
/systems/hydraulic/yellow-psi lt 1450
</test>
</switch>
</channel>
</system>