1
0
Fork 0

ECAM: fixes for hydraulic faults; ensure that the faults only happen on the ground wtih engine running

This commit is contained in:
legoboyvdlp R 2021-01-31 20:18:19 +00:00
parent 177679ff7a
commit a7128554c8
3 changed files with 74 additions and 13 deletions

View file

@ -63,7 +63,7 @@ var messages_priority_3 = func {
ECAM_controller.warningReset(flap_not_zero); ECAM_controller.warningReset(flap_not_zero);
} }
if ((phaseVar3 == 1 or (phaseVar3 >= 5 and phaseVar3 <= 7)) and getprop("/systems/navigation/adr/output/overspeed")) { if (overspeed.clearFlag == 0 and (phaseVar3 == 1 or (phaseVar3 >= 5 and phaseVar3 <= 7)) and getprop("/systems/navigation/adr/output/overspeed")) {
overspeed.active = 1; overspeed.active = 1;
if (getprop("/systems/navigation/adr/computation/overspeed-vmo") or getprop("/systems/navigation/adr/computation/overspeed-mmo")) { if (getprop("/systems/navigation/adr/computation/overspeed-vmo") or getprop("/systems/navigation/adr/computation/overspeed-mmo")) {
overspeedVMO.active = 1; overspeedVMO.active = 1;
@ -967,7 +967,7 @@ var messages_priority_3 = func {
ECAM_controller.warningReset(emerconfigFMSPRD); ECAM_controller.warningReset(emerconfigFMSPRD);
} }
if (hydBYloPr.clearFlag == 0 and phaseVar3 != 4 and phaseVar3 != 5 and warningNodes.Logic.blueYellow.getValue()) { if (hydBYloPr.clearFlag == 0 and warningNodes.Logic.blueYellow.getValue()) {
hydBYloPr.active = 1; hydBYloPr.active = 1;
if (hydBYloPrRat.clearFlag == 0 and systems.HYD.Rat.position.getValue() != 0) { if (hydBYloPrRat.clearFlag == 0 and systems.HYD.Rat.position.getValue() != 0) {
hydBYloPrRat.active = 1; hydBYloPrRat.active = 1;
@ -1042,7 +1042,7 @@ var messages_priority_3 = func {
ECAM_controller.warningReset(hydBYloPrFmsPredict); ECAM_controller.warningReset(hydBYloPrFmsPredict);
} }
if (hydGBloPr.clearFlag == 0 and phaseVar3 != 4 and phaseVar3 != 5 and warningNodes.Logic.blueGreen.getValue()) { if (hydGBloPr.clearFlag == 0 and warningNodes.Logic.blueGreen.getValue()) {
hydGBloPr.active = 1; hydGBloPr.active = 1;
if (hydGBloPrRat.clearFlag == 0 and systems.HYD.Rat.position.getValue() != 0) { if (hydGBloPrRat.clearFlag == 0 and systems.HYD.Rat.position.getValue() != 0) {
hydGBloPrRat.active = 1; hydGBloPrRat.active = 1;

View file

@ -252,6 +252,10 @@ var warnings = std.Vector.new([
var hydGYloPrFuelCnsmpt = warning.new(msg: " FUEL CONSUMPT INCRSD", colour: "c"), var hydGYloPrFuelCnsmpt = warning.new(msg: " FUEL CONSUMPT INCRSD", colour: "c"),
var hydGYloPrFmsPredict = warning.new(msg: " FMS PRED UNRELIABLE", colour: "c"), var hydGYloPrFmsPredict = warning.new(msg: " FMS PRED UNRELIABLE", colour: "c"),
# AIR BLEED LEAK
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"),
# DC EMER CONFIG # DC EMER CONFIG
var dcEmerconfig = warning.new(msg: "ELEC DC EMER CONFIG", colour: "a", aural: 1, light: 1, isMainMsg: 1), 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"), var dcEmerconfigManOn = warning.new(msg: " -EMER ELEC PWR...MAN ON", colour: "c"),

View file

@ -2759,6 +2759,21 @@
<switch name="/ECAM/warnings/hyd/blue-green-failure"> <switch name="/ECAM/warnings/hyd/blue-green-failure">
<default value="0"/> <default value="0"/>
<test logic="AND" value="1"> <test logic="AND" value="1">
<test logic="OR">
<test logic="AND"> <!-- inhibit unless engine running -->
<test logic="OR">
/ECAM/warning-phase le 2
/ECAM/warning-phase ge 9
</test>
/engines/engine[0]/state eq 3
</test>
<test logic="AND">
/ECAM/warning-phase gt 2
/ECAM/warning-phase lt 9
/ECAM/warning-phase ne 4
/ECAM/warning-phase ne 5
</test>
</test>
/ECAM/warnings/hyd/blue-abnorm-lo-pr eq 1 /ECAM/warnings/hyd/blue-abnorm-lo-pr eq 1
/ECAM/warnings/hyd/green-abnorm-lo-pr eq 1 /ECAM/warnings/hyd/green-abnorm-lo-pr eq 1
</test> </test>
@ -2767,6 +2782,21 @@
<switch name="/ECAM/warnings/hyd/blue-yellow-failure"> <switch name="/ECAM/warnings/hyd/blue-yellow-failure">
<default value="0"/> <default value="0"/>
<test logic="AND" value="1"> <test logic="AND" value="1">
<test logic="OR">
<test logic="AND"> <!-- inhibit unless engine running -->
<test logic="OR">
/ECAM/warning-phase le 2
/ECAM/warning-phase ge 9
</test>
/engines/engine[1]/state eq 3
</test>
<test logic="AND">
/ECAM/warning-phase gt 2
/ECAM/warning-phase lt 9
/ECAM/warning-phase ne 4
/ECAM/warning-phase ne 5
</test>
</test>
/ECAM/warnings/hyd/blue-abnorm-lo-pr eq 1 /ECAM/warnings/hyd/blue-abnorm-lo-pr eq 1
/ECAM/warnings/hyd/yellow-abnorm-lo-pr eq 1 /ECAM/warnings/hyd/yellow-abnorm-lo-pr eq 1
</test> </test>
@ -2798,16 +2828,21 @@
/engines/engine[0]/state eq 3 /engines/engine[0]/state eq 3
/engines/engine[1]/state eq 3 /engines/engine[1]/state eq 3
<test logic="OR"> <test logic="OR">
fcs/flap-pos-deg ne 0 <test logic="AND">
hydraulics/spoiler-l1/final-deg gt 0 /ECAM/warnings/logic/SFLAPEXT eq 1
hydraulics/spoiler-r1/final-deg gt 0 /systems/electrical/bus/dc-ess lt 25
hydraulics/spoiler-l2/final-deg gt 0 </test>
hydraulics/spoiler-r2/final-deg gt 0 hydraulics/spoiler-l2/final-deg gt 0.01
hydraulics/spoiler-l4/final-deg gt 0 hydraulics/spoiler-r2/final-deg gt 0.01
hydraulics/spoiler-r4/final-deg gt 0 hydraulics/spoiler-l3/final-deg gt 0.01
hydraulics/spoiler-l5/final-deg gt 0 hydraulics/spoiler-r3/final-deg gt 0.01
hydraulics/spoiler-r5/final-deg gt 0 hydraulics/spoiler-l4/final-deg gt 0.01
<!-- aileron servo --> hydraulics/spoiler-r4/final-deg gt 0.01
<test logic="OR">
/systems/fctl/elac1 eq 0
/systems/fctl/elac2 eq 0
/systems/hydraulic/green-psi lt 1500
</test>
</test> </test>
</test> </test>
</switch> </switch>
@ -2818,6 +2853,28 @@
/ECAM/timer/ground-calc eq 0 /ECAM/timer/ground-calc eq 0
/engines/engine[0]/state eq 3 /engines/engine[0]/state eq 3
/engines/engine[1]/state eq 3 /engines/engine[1]/state eq 3
<test logic="OR">
<test logic="AND">
/ECAM/warnings/logic/SFLAPEXT eq 1
/systems/electrical/bus/dc-ess lt 25
</test>
hydraulics/spoiler-l1/final-deg gt 0.01
hydraulics/spoiler-r1/final-deg gt 0.01
hydraulics/spoiler-l2/final-deg gt 0.01
hydraulics/spoiler-r2/final-deg gt 0.01
hydraulics/spoiler-l4/final-deg gt 0.01
hydraulics/spoiler-r4/final-deg gt 0.01
hydraulics/spoiler-l5/final-deg gt 0.01
hydraulics/spoiler-r5/final-deg gt 0.01
<test logic="AND">
<test logic="OR">
/systems/fctl/elac1 eq 0
/systems/fctl/elac2 eq 0
/systems/hydraulic/blue-psi lt 1500
</test>
/ECAM/warnings/logic/BLUE-EMER-ELEC ne 1
</test>
</test>
</test> </test>
</switch> </switch>