1
0
Fork 0

Add GEN 1 / 2 OFF warnings, WING TK LO LVL warnings, and fix warning for lbs / kgs, add CTR TK OFF warning

This commit is contained in:
legoboyvdlp R 2021-02-02 19:46:20 +00:00
parent c8e186321c
commit 34f949f937
4 changed files with 341 additions and 36 deletions

View file

@ -99,6 +99,8 @@ var warningNodes = {
eng1Shutdown: props.globals.initNode("/ECAM/warnings/logic/eng/eng-1-shutdown"),
eng2Shutdown: props.globals.initNode("/ECAM/warnings/logic/eng/eng-2-shutdown"),
acEssBusAltn: props.globals.initNode("/ECAM/warnings/logic/ac-ess-bus-altn-feed"),
gen1Off: props.globals.initNode("/ECAM/warnings/logic/elec/gen-1-off"),
gen2Off: props.globals.initNode("/ECAM/warnings/logic/elec/gen-2-off"),
spdBrkOut: props.globals.initNode("/ECAM/warnings/fctl/spd-brk-still-out"),
},
Timers: {
@ -146,6 +148,8 @@ var warningNodes = {
acEssFault: props.globals.initNode("/ECAM/warnings/logic/ac-ess-output"),
dcEssShed: props.globals.initNode("/ECAM/warnings/logic/dc-ess-shed-output"),
acEssShed: props.globals.initNode("/ECAM/warnings/logic/ac-ess-shed-output"),
centerPumpsOff: props.globals.initNode("/ECAM/warnings/fuel/center-pumps-off-output"),
lowLevelBoth: props.globals.initNode("/ECAM/warnings/fuel/lo-level-l-r-output"),
},
Flipflops: {
apuGenFault: props.globals.initNode("/ECAM/warnings/flipflop/apu-gen-fault"),

View file

@ -10,6 +10,7 @@ var apWarn = props.globals.getNode("/it-autoflight/output/ap-warning", 1);
var athrWarn = props.globals.getNode("/it-autoflight/output/athr-warning", 1);
var emerGen = props.globals.getNode("/controls/electrical/switches/emer-gen", 1);
var acconfig_weight_kgs = props.globals.getNode("/systems/acconfig/options/weight-kgs", 1);
var state1Node = props.globals.getNode("/engines/engine[0]/state", 1);
var state2Node = props.globals.getNode("/engines/engine[1]/state", 1);
var wing_pb = props.globals.getNode("/controls/ice-protection/wing", 1);
@ -1938,6 +1939,14 @@ var messages_priority_2 = func {
ECAM_controller.warningReset(gen1faultGen3);
}
# ESS TR FAULT
if (essTRFault.clearFlag == 0 and systems.ELEC.Fail.essTrFault.getValue() and (phaseVar2 == 6 or phaseVar2 >= 9 or phaseVar2 <= 2)) {
essTRFault.active = 1;
} else {
ECAM_controller.warningReset(essTRFault);
}
# GEN 2 FAULT
if (gen2fault.clearFlag == 0 and warningNodes.Flipflops.gen2Fault.getValue() and (phaseVar2 == 2 or phaseVar2 == 3 or phaseVar2 == 6 or phaseVar2 == 9)) {
gen2fault.active = 1;
if (!warningNodes.Flipflops.gen2FaultOnOff.getValue()) {
@ -1982,6 +1991,19 @@ var messages_priority_2 = func {
ECAM_controller.warningReset(apuGenfaultGen3);
}
# GEN OFF
if (gen1Off.clearFlag == 0 and warningNodes.Logic.gen1Off.getValue() and (phaseVar2 == 2 or phaseVar2 == 3 or phaseVar2 == 6 or phaseVar2 == 9)) {
gen1Off.active = 1;
} else {
ECAM_controller.warningReset(gen1Off);
}
if (gen2Off.clearFlag == 0 and warningNodes.Logic.gen2Off.getValue() and (phaseVar2 == 2 or phaseVar2 == 3 or phaseVar2 == 6 or phaseVar2 == 9)) {
gen2Off.active = 1;
} else {
ECAM_controller.warningReset(gen2Off);
}
# ELEC AC ESS BUS ALTN
if (acEssBusAltn.clearFlag == 0 and warningNodes.Logic.acEssBusAltn.getValue() and (phaseVar2 >= 9 or phaseVar2 <= 2)) {
acEssBusAltn.active = 1;
@ -2260,6 +2282,119 @@ var messages_priority_2 = func {
ECAM_controller.warningReset(fcuFault2Baro);
}
# FUEL
if (wingLoLvl.clearFlag == 0 and warningNodes.Timers.lowLevelBoth.getValue() == 1 and (phaseVar2 <= 2 or phaseVar2 == 6 or phaseVar2 >= 9)) {
wingLoLvl.active = 1;
if (wingLoLvlManMode.clearFlag == 0 and systems.FUEL.Switches.centerTkMode.getValue() == 0 and systems.FUEL.Quantity.center.getValue() >= 550) {
wingLoLvlManMode.active = 1;
} else {
ECAM_controller.warningReset(wingLoLvlManMode);
}
if (wingLoLvlPumpL1.clearFlag == 0 and !systems.FUEL.Switches.pumpLeft1.getValue()) {
wingLoLvlPumpL1.active = 1;
} else {
ECAM_controller.warningReset(wingLoLvlPumpL1);
}
if (wingLoLvlPumpL2.clearFlag == 0 and !systems.FUEL.Switches.pumpLeft2.getValue()) {
wingLoLvlPumpL2.active = 1;
} else {
ECAM_controller.warningReset(wingLoLvlPumpL2);
}
if (wingLoLvlPumpC1.clearFlag == 0 and !systems.FUEL.Switches.pumpCenter1.getValue()) {
wingLoLvlPumpC1.active = 1;
} else {
ECAM_controller.warningReset(wingLoLvlPumpC1);
}
if (wingLoLvlPumpR1.clearFlag == 0 and !systems.FUEL.Switches.pumpRight1.getValue()) {
wingLoLvlPumpR1.active = 1;
} else {
ECAM_controller.warningReset(wingLoLvlPumpR1);
}
if (wingLoLvlPumpR2.clearFlag == 0 and !systems.FUEL.Switches.pumpRight2.getValue()) {
wingLoLvlPumpR2.active = 1;
} else {
ECAM_controller.warningReset(wingLoLvlPumpR2);
}
if (wingLoLvlPumpC2.clearFlag == 0 and !systems.FUEL.Switches.pumpCenter2.getValue()) {
wingLoLvlPumpC2.active = 1;
} else {
ECAM_controller.warningReset(wingLoLvlPumpC2);
}
if (systems.FUEL.Switches.crossfeed.getValue() == 0) {
if (wingLoLvlLeak.clearFlag == 0) {
wingLoLvlLeak.active = 1;
} else {
ECAM_controller.warningReset(wingLoLvlLeak);
}
if (wingLoLvlXFeed.clearFlag == 0) {
wingLoLvlXFeed.active = 1;
} else {
ECAM_controller.warningReset(wingLoLvlXFeed);
}
} else {
ECAM_controller.warningReset(wingLoLvlLeak);
ECAM_controller.warningReset(wingLoLvlXFeed);
}
if (systems.FUEL.Switches.crossfeed.getValue() == 1) {
if (wingLoLvlGrav.clearFlag == 0) {
wingLoLvlGrav.active = 1;
} else {
ECAM_controller.warningReset(wingLoLvlGrav);
}
if (wingLoLvlXFeedOff.clearFlag == 0) {
wingLoLvlXFeedOff.active = 1;
} else {
ECAM_controller.warningReset(wingLoLvlXFeedOff);
}
} else {
ECAM_controller.warningReset(wingLoLvlGrav);
ECAM_controller.warningReset(wingLoLvlXFeedOff);
}
} else {
ECAM_controller.warningReset(wingLoLvl);
ECAM_controller.warningReset(wingLoLvlManMode);
ECAM_controller.warningReset(wingLoLvlPumpL1);
ECAM_controller.warningReset(wingLoLvlPumpL2);
ECAM_controller.warningReset(wingLoLvlPumpC1);
ECAM_controller.warningReset(wingLoLvlPumpR1);
ECAM_controller.warningReset(wingLoLvlPumpR2);
ECAM_controller.warningReset(wingLoLvlPumpC2);
ECAM_controller.warningReset(wingLoLvlLeak);
ECAM_controller.warningReset(wingLoLvlXFeed);
ECAM_controller.warningReset(wingLoLvlGrav);
ECAM_controller.warningReset(wingLoLvlXFeedOff);
}
if (ctrPumpsOff.clearFlag == 0 and warningNodes.Timers.centerPumpsOff.getValue() == 1 and (phaseVar2 == 2 or phaseVar2 == 6)) {
ctrPumpsOff.active = 1;
if (ctrPumpsOffPump1.clearFlag == 0 and !systems.FUEL.Switches.pumpCenter1.getValue()) {
ctrPumpsOffPump1.active = 1;
} else {
ECAM_controller.warningReset(ctrPumpsOffPump1);
}
if (ctrPumpsOffPump2.clearFlag == 0 and !systems.FUEL.Switches.pumpCenter2.getValue()) {
ctrPumpsOffPump2.active = 1;
} else {
ECAM_controller.warningReset(ctrPumpsOffPump2);
}
} else {
ECAM_controller.warningReset(ctrPumpsOff);
ECAM_controller.warningReset(ctrPumpsOffPump1);
ECAM_controller.warningReset(ctrPumpsOffPump2);
}
# APU EMER SHUT DOWN
if (apuEmerShutdown.clearFlag == 0 and systems.APUController.APU.signals.autoshutdown and systems.APUController.APU.signals.emer and !getprop("/systems/fire/apu/warning-active") and (phaseVar2 == 6 or phaseVar2 >= 9 or phaseVar2 <= 2)) {
apuEmerShutdown.active = 1;
@ -3234,10 +3369,17 @@ var messages_memo = func {
outr_tk_fuel_xfrd.active = 0;
}
if (pts.Consumables.Fuel.totalFuelLbs.getValue() < 6000 and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) { # assuming US short ton 2000lb
fob_3T.active = 1;
if (pts.Consumables.Fuel.totalFuelLbs.getValue() < 6613 and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) { # assuming US short ton 2000lb
if (acconfig_weight_kgs.getValue()) {
fob_3T.active = 1;
fob_66L.active = 0;
} else {
fob_3T.active = 0;
fob_66L.active = 1;
}
} else {
fob_3T.active = 0;
fob_66L.active = 0;
}
if (getprop("instrumentation/mk-viii/inputs/discretes/momentary-flap-all-override") == 1 and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) {

View file

@ -449,21 +449,28 @@ var warnings = std.Vector.new([
# GEN 1 FAULT
var gen1fault = warning.new(msg: "ELEC GEN 1 FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var gen1faultGen = warning.new(msg: "-GEN 1......OFF THEN ON", colour: "c"),
var gen1faultGen = warning.new(msg: " -GEN 1......OFF THEN ON", colour: "c"),
var gen1faultGen2 = warning.new(msg: " •IF UNSUCCESSFUL :", colour: "w"),
var gen1faultGen3 = warning.new(msg: "-GEN 1..............OFF", colour: "c"),
var gen1faultGen3 = warning.new(msg: " -GEN 1..............OFF", colour: "c"),
# ESS TR FAULT
var essTRFault = warning.new(msg: "ELEC ESS TR FAULT ", colour: "a", aural: 1, light: 1, isMainMsg: 1),
# GEN 2 FAULT
var gen2fault = warning.new(msg: "ELEC GEN 2 FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var gen2faultGen = warning.new(msg: "-GEN 2......OFF THEN ON", colour: "c"),
var gen2faultGen = warning.new(msg: " -GEN 2......OFF THEN ON", colour: "c"),
var gen2faultGen2 = warning.new(msg: " •IF UNSUCCESSFUL :", colour: "w"),
var gen2faultGen3 = warning.new(msg: "-GEN 2..............OFF", colour: "c"),
var gen2faultGen3 = warning.new(msg: " -GEN 2..............OFF", colour: "c"),
# APU GEN FAULT
var apuGenfault = warning.new(msg: "ELEC APU GEN FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var apuGenfaultGen = warning.new(msg: "-APU GEN....OFF THEN ON", colour: "c"),
var apuGenfaultGen = warning.new(msg: " -APU GEN....OFF THEN ON", colour: "c"),
var apuGenfaultGen2 = warning.new(msg: " •IF UNSUCCESSFUL :", colour: "w"),
var apuGenfaultGen3 = warning.new(msg: "-APU GEN............OFF", colour: "c"),
var apuGenfaultGen3 = warning.new(msg: " -APU GEN............OFF", colour: "c"),
# GEN OFF
var gen1Off = warning.new(msg: "ELEC GEN 1 OFF ", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var gen2Off = warning.new(msg: "ELEC GEN 2 OFF ", colour: "a", aural: 1, light: 1, isMainMsg: 1),
# APU GEN FAULT
var acEssBusAltn = warning.new(msg: "ELEC AC ESS BUS ALTN", colour: "a", aural: 1, light: 1, isMainMsg: 1),
@ -551,6 +558,24 @@ var warnings = std.Vector.new([
var fcuFault2 = warning.new(msg: "AUTO FLT FCU 2 FAULT", colour: "a", isMainMsg: 1),
var fcuFault2Baro = warning.new(msg: " -BARO REF.......X CHECK", colour: "c"),
# FUEL
var wingLoLvl = warning.new(msg: "FUEL L+R WING TK LO LVL", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var wingLoLvlManMode = warning.new(msg: " -FUEL MODE SEL......MAN", colour: "c"),
var wingLoLvlPumpL1 = warning.new(msg: " -L TK PUMP 1.........ON", colour: "c"),
var wingLoLvlPumpL2 = warning.new(msg: " -L TK PUMP 2.........ON", colour: "c"),
var wingLoLvlPumpC1 = warning.new(msg: " -CTR TK PUMP 1.......ON", colour: "c"),
var wingLoLvlPumpR1 = warning.new(msg: " -R TK PUMP 1.........ON", colour: "c"),
var wingLoLvlPumpR2 = warning.new(msg: " -R TK PUMP 2.........ON", colour: "c"),
var wingLoLvlPumpC2 = warning.new(msg: " -CTR TK PUMP 2.......ON", colour: "c"),
var wingLoLvlLeak = warning.new(msg: " •IF NO FUEL LEAK: ", colour: "w"),
var wingLoLvlXFeed = warning.new(msg: " -FUEL X FEED.........ON", colour: "c"),
var wingLoLvlGrav = warning.new(msg: " •IF GRVTY FEED: ", colour: "w"),
var wingLoLvlXFeedOff = warning.new(msg: " -FUEL X FEED........OFF", colour: "c"),
var ctrPumpsOff = warning.new(msg: "FUEL CTR TK PUMPS OFF ", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var ctrPumpsOffPump1 = warning.new(msg: " -CTR TK PUMP 1.......ON", colour: "c"),
var ctrPumpsOffPump2 = warning.new(msg: " -CTR TK PUMP 2.......ON", colour: "c"),
# APU shutdown
var apuEmerShutdown = warning.new(msg: "APU EMER SHUT DOWN", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var apuEmerShutdownMast = warning.new(msg: " -MASTER SW..........OFF", colour: "c"),
@ -734,9 +759,11 @@ var leftmemos = std.Vector.new([
var strobe_lt_off = warning.new(msg: "STROBE LT OFF" ),
var outr_tk_fuel_xfrd = warning.new(msg: "OUTR TK FUEL XFRD" ),
var fob_3T = warning.new(msg: "FOB BELOW 3T" ),
var fob_66L = warning.new(msg: "FOB BELOW 6600LBS" ),
var gpws_flap_mode_off = warning.new(msg: "GPWS FLAP MODE OFF" ),
var atc_datalink_stby = warning.new(msg: "ATC DATALINK STBY" ), # Not yet implemented
var company_datalink_stby = warning.new(msg: "COMPANY DATALINK STBY"), # Not yet implemented
var acars_stby = warning.new(msg: "ACARS STBY" ), # Not yet implemented
]);
# Right E/WD

View file

@ -348,27 +348,6 @@
<rate_limit sense="incr">1.0</rate_limit> <!-- 1 second -->
</actuator>
<actuator name="/ECAM/warnings/timer/gen-1-fault-set">
<description>Timer for the ECAM system</description>
<input>/ECAM/warnings/logic/gen-1-fault-set</input>
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
<rate_limit sense="incr">0.1818</rate_limit> <!-- 5.5 seconds -->
</actuator>
<actuator name="/ECAM/warnings/timer/gen-2-fault-set">
<description>Timer for the ECAM system</description>
<input>/ECAM/warnings/logic/gen-2-fault-set</input>
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
<rate_limit sense="incr">0.1818</rate_limit> <!-- 5.5 seconds -->
</actuator>
<actuator name="/ECAM/warnings/timer/apu-gen-fault-set">
<description>Timer for the ECAM system</description>
<input>/ECAM/warnings/logic/apu-gen-fault-set</input>
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
<rate_limit sense="incr">0.2</rate_limit> <!-- 5 seconds -->
</actuator>
<actuator name="/ECAM/warnings/timer/apu-gen-fault-reset">
<description>Timer for the ECAM system</description>
<input>/ECAM/warnings/logic/apu-gen-fault-reset</input>
@ -1531,6 +1510,13 @@
</test>
</switch>
<actuator name="/ECAM/warnings/timer/gen-1-fault-set">
<description>Timer for the ECAM system</description>
<input>/ECAM/warnings/logic/gen-1-fault-set</input>
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
<rate_limit sense="incr">0.1818</rate_limit> <!-- 5.5 seconds -->
</actuator>
<switch name="/ECAM/warnings/logic/gen-1-fault-set-output">
<default value="0"/>
<test logic="AND" value="1">
@ -1592,6 +1578,13 @@
</test>
</switch>
<actuator name="/ECAM/warnings/timer/gen-2-fault-set">
<description>Timer for the ECAM system</description>
<input>/ECAM/warnings/logic/gen-2-fault-set</input>
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
<rate_limit sense="incr">0.1818</rate_limit> <!-- 5.5 seconds -->
</actuator>
<switch name="/ECAM/warnings/logic/gen-2-fault-set-output">
<default value="0"/>
<test logic="AND" value="1">
@ -1652,6 +1645,13 @@
</test>
</switch>
<actuator name="/ECAM/warnings/timer/apu-gen-fault-set">
<description>Timer for the ECAM system</description>
<input>/ECAM/warnings/logic/apu-gen-fault-set</input>
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
<rate_limit sense="incr">0.2</rate_limit> <!-- 5 seconds -->
</actuator>
<switch name="/ECAM/warnings/logic/apu-gen-fault-reset">
<default value="0"/>
<test logic="OR" value="1">
@ -1693,6 +1693,93 @@
</test>
</switch>
<actuator name="/ECAM/warnings/logic/elec/gen-1-pb">
<input>/controls/electrical/switches/gen-1</input>
<rate_limit sense="decr">0.2</rate_limit> <!-- 5 seconds -->
<rate_limit sense="incr">120</rate_limit>
</actuator>
<actuator name="/ECAM/warnings/logic/elec/gen-2-pb">
<input>/controls/electrical/switches/gen-2</input>
<rate_limit sense="decr">0.2</rate_limit> <!-- 5 seconds -->
<rate_limit sense="incr">120</rate_limit>
</actuator>
<switch name="/ECAM/warnings/logic/elec/gen-off-60-sec">
<default value="0"/>
<test logic="AND" value="1">
/ECAM/warning-phase eq 6
</test>
</switch>
<actuator name="/ECAM/warnings/logic/elec/gen-off-60-sec-output">
<input>/ECAM/warnings/logic/elec/gen-off-60-sec</input>
<rate_limit sense="incr">0.01666666666</rate_limit> <!-- 60 seconds -->
<rate_limit sense="decr">120</rate_limit>
</actuator>
<switch name="/ECAM/warnings/logic/elec/gen-1-off-60-sec-2">
<default value="0"/>
<test logic="AND" value="1">
/ECAM/warning-phase ne 6
/engines/engine[0]/state eq 3
</test>
</switch>
<actuator name="/ECAM/warnings/logic/elec/gen-1-off-60-sec-2-output">
<input>/ECAM/warnings/logic/elec/gen-1-off-60-sec-2</input>
<rate_limit sense="incr">0.01666666666</rate_limit> <!-- 60 seconds -->
<rate_limit sense="decr">120</rate_limit>
</actuator>
<switch name="/ECAM/warnings/logic/elec/gen-2-off-60-sec-2">
<default value="0"/>
<test logic="AND" value="1">
/ECAM/warning-phase ne 6
/engines/engine[1]/state eq 3
</test>
</switch>
<actuator name="/ECAM/warnings/logic/elec/gen-2-off-60-sec-2-output">
<input>/ECAM/warnings/logic/elec/gen-2-off-60-sec-2</input>
<rate_limit sense="incr">0.01666666666</rate_limit> <!-- 60 seconds -->
<rate_limit sense="decr">120</rate_limit>
</actuator>
<switch name="/ECAM/warnings/logic/elec/gen-1-off">
<default value="0"/>
<test logic="AND" value="1">
/ECAM/warnings/logic/elec/gen-1-pb eq 0
/ECAM/warnings/flipflop/gen-1-fault eq 0
/controls/electrical/switches/idg-1-disc eq 1
<test logic="OR">
/ECAM/warnings/logic/elec/gen-off-60-sec-output eq 1
/ECAM/warnings/logic/elec/gen-1-off-60-sec-2-output eq 1
<test logic="AND">
/ECAM/warning-phase eq 6
/ECAM/warnings/logic/gen-1-2-no-oper eq 1
</test>
</test>
</test>
</switch>
<switch name="/ECAM/warnings/logic/elec/gen-2-off">
<default value="0"/>
<test logic="AND" value="1">
/ECAM/warnings/logic/elec/gen-2-pb eq 0
/ECAM/warnings/flipflop/gen-2-fault eq 0
/controls/electrical/switches/idg-2-disc eq 1
<test logic="OR">
/ECAM/warnings/logic/elec/gen-off-60-sec-output eq 1
/ECAM/warnings/logic/elec/gen-2-off-60-sec-2-output eq 1
<test logic="AND">
/ECAM/warning-phase eq 6
/ECAM/warnings/logic/gen-1-2-no-oper eq 1
</test>
</test>
</test>
</switch>
<switch name="/ECAM/warnings/logic/SSLATEXT">
<default value="0"/>
<test logic="AND" value="1">
@ -1710,6 +1797,22 @@
</test>
</switch>
<switch name="/ECAM/warnings/logic/gen-1-2-no-oper">
<default value="0"/>
<test logic="AND" value="1">
<test logic="OR">
/ECAM/warnings/flipflop/gen-1-fault eq 1
/controls/electrical/switches/idg-1-disc eq 0
/ECAM/warnings/logic/elec/gen-1-off eq 1
</test>
<test logic="OR">
/ECAM/warnings/flipflop/gen-2-fault eq 1
/controls/electrical/switches/idg-2-disc eq 0
/ECAM/warnings/logic/elec/gen-2-off eq 1
</test>
</test>
</switch>
<switch name="/ECAM/warnings/logic/dc-2-fuel-consumption-increased">
<default value="0"/>
<test logic="AND" value="1">
@ -2109,13 +2212,6 @@
</test>
</switch>
<actuator name="/ECAM/phases/timer/eng1idle-output">
<description>Timer for the ECAM system</description>
<input>/ECAM/phases/timer/eng1idle</input>
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
<rate_limit sense="incr">0.033</rate_limit> <!-- 30 seconds -->
</actuator>
<switch name="/ECAM/warnings/logic/stall/stall-warn">
<default value="0"/>
<test logic="AND" value="1">
@ -3717,6 +3813,42 @@
</channel>
<channel name="FUEL" execrate="16">
<switch name="/ECAM/warnings/fuel/center-pumps-off">
<default value="0"/>
<test logic="AND" value="1">
/controls/fuel/switches/pump-center-1 eq 0
/controls/fuel/switches/pump-center-2 eq 0
/controls/fuel/switches/center-mode eq 1
/systems/fuel/quantity/center-low eq 0
/ECAM/warning-phase eq 6
<!-- TODO NOT DUAL CENTER PUMP FAULT -->
</test>
</switch>
<actuator name="/ECAM/warnings/fuel/center-pumps-off-output">
<input>/ECAM/warnings/fuel/center-pumps-off</input>
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
<rate_limit sense="incr">0.1</rate_limit> <!-- 10 seconds -->
</actuator>
<switch name="/ECAM/warnings/fuel/lo-level-l-r">
<default value="0"/>
<test logic="AND" value="1">
/systems/fuel/quantity/left-wing-inner-low eq 1
/systems/fuel/quantity/right-wing-inner-low eq 1
</test>
</switch>
<actuator name="/ECAM/warnings/fuel/lo-level-l-r-output">
<input>/ECAM/warnings/fuel/lo-level-l-r</input>
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
<rate_limit sense="incr">0.03333333333</rate_limit> <!-- 30 seconds -->
</actuator>
</channel>
<!--<channel name="NAV" execrate="16">
<switch name="/ECAM/warnings/navigation/ADR123-fault">