ELEV fault messages + separate ALTN and direct law warning
This commit is contained in:
parent
2bb5ec6578
commit
d803796f6b
5 changed files with 254 additions and 31 deletions
|
@ -513,7 +513,7 @@ var canvas_PFD_base = {
|
||||||
me["FMA_Middle1"].hide();
|
me["FMA_Middle1"].hide();
|
||||||
me["FMA_Middle2"].hide();
|
me["FMA_Middle2"].hide();
|
||||||
|
|
||||||
if (fbw_curlaw == 2 and wow1.getValue() == 0) {
|
if (ecam.directLaw.active) {
|
||||||
me["FMA_ctr_msg"].setText("USE MAN PITCH TRIM");
|
me["FMA_ctr_msg"].setText("USE MAN PITCH TRIM");
|
||||||
me["FMA_ctr_msg"].setColor(0.7333,0.3803,0);
|
me["FMA_ctr_msg"].setColor(0.7333,0.3803,0);
|
||||||
me["FMA_ctr_msg"].show();
|
me["FMA_ctr_msg"].show();
|
||||||
|
@ -534,7 +534,7 @@ var canvas_PFD_base = {
|
||||||
} else {
|
} else {
|
||||||
me["FMA_combined"].hide();
|
me["FMA_combined"].hide();
|
||||||
me["FMA_combined_box"].hide();
|
me["FMA_combined_box"].hide();
|
||||||
if (fbw_curlaw == 2 and wow1.getValue() == 0) {
|
if (ecam.directLaw.active) {
|
||||||
me["FMA_ctr_msg"].setText("USE MAN PITCH TRIM");
|
me["FMA_ctr_msg"].setText("USE MAN PITCH TRIM");
|
||||||
me["FMA_ctr_msg"].setColor(0.7333,0.3803,0);
|
me["FMA_ctr_msg"].setColor(0.7333,0.3803,0);
|
||||||
me["FMA_Middle1"].hide();
|
me["FMA_Middle1"].hide();
|
||||||
|
|
|
@ -74,6 +74,8 @@ var warningNodes = {
|
||||||
blueYellowFuel: props.globals.initNode("/ECAM/warnings/hyd/blue-yellow-fuel-consumpt"),
|
blueYellowFuel: props.globals.initNode("/ECAM/warnings/hyd/blue-yellow-fuel-consumpt"),
|
||||||
greenYellow: props.globals.initNode("/ECAM/warnings/hyd/green-yellow-failure"),
|
greenYellow: props.globals.initNode("/ECAM/warnings/hyd/green-yellow-failure"),
|
||||||
greenYellowFuel: props.globals.initNode("/ECAM/warnings/hyd/green-yellow-fuel-consumpt"),
|
greenYellowFuel: props.globals.initNode("/ECAM/warnings/hyd/green-yellow-fuel-consumpt"),
|
||||||
|
leftElevFail: props.globals.initNode("/ECAM/warnings/fctl/leftElevFault"),
|
||||||
|
rightElevFail: props.globals.initNode("/ECAM/warnings/fctl/rightElevFault"),
|
||||||
},
|
},
|
||||||
Timers: {
|
Timers: {
|
||||||
apuFaultOutput: props.globals.initNode("/ECAM/warnings/timer/apu-fault-output"),
|
apuFaultOutput: props.globals.initNode("/ECAM/warnings/timer/apu-fault-output"),
|
||||||
|
@ -94,6 +96,8 @@ var warningNodes = {
|
||||||
eng1AiceNotOpen: props.globals.initNode("/ECAM/warnings/timer/eng-aice-1-closed-output"),
|
eng1AiceNotOpen: props.globals.initNode("/ECAM/warnings/timer/eng-aice-1-closed-output"),
|
||||||
eng2AiceNotOpen: props.globals.initNode("/ECAM/warnings/timer/eng-aice-2-closed-output"),
|
eng2AiceNotOpen: props.globals.initNode("/ECAM/warnings/timer/eng-aice-2-closed-output"),
|
||||||
LRElevFault: props.globals.initNode("/ECAM/warnings/fctl/lrElevFault-output"),
|
LRElevFault: props.globals.initNode("/ECAM/warnings/fctl/lrElevFault-output"),
|
||||||
|
altnLaw: props.globals.initNode("/ECAM/warnings/fctl/altn-law-output"),
|
||||||
|
directLaw: props.globals.initNode("/ECAM/warnings/fctl/direct-law-output"),
|
||||||
waiLhiPr: props.globals.initNode("/ECAM/warnings/timer/wing-hi-pr-left"),
|
waiLhiPr: props.globals.initNode("/ECAM/warnings/timer/wing-hi-pr-left"),
|
||||||
waiRhiPr: props.globals.initNode("/ECAM/warnings/timer/wing-hi-pr-right"),
|
waiRhiPr: props.globals.initNode("/ECAM/warnings/timer/wing-hi-pr-right"),
|
||||||
pack1Fault: props.globals.initNode("/ECAM/warnings/timer/pack-1-fault-2"),
|
pack1Fault: props.globals.initNode("/ECAM/warnings/timer/pack-1-fault-2"),
|
||||||
|
@ -104,6 +108,8 @@ var warningNodes = {
|
||||||
yawDamper1Fault: props.globals.initNode("/ECAM/warnings/timer/yaw-damper-1-fault"),
|
yawDamper1Fault: props.globals.initNode("/ECAM/warnings/timer/yaw-damper-1-fault"),
|
||||||
yawDamper2Fault: props.globals.initNode("/ECAM/warnings/timer/yaw-damper-2-fault"),
|
yawDamper2Fault: props.globals.initNode("/ECAM/warnings/timer/yaw-damper-2-fault"),
|
||||||
navTerrFault: props.globals.initNode("/ECAM/warnings/timer/nav-gpws-terr-fault"),
|
navTerrFault: props.globals.initNode("/ECAM/warnings/timer/nav-gpws-terr-fault"),
|
||||||
|
leftElevFail: props.globals.initNode("/ECAM/warnings/fctl/leftElevFault-output"),
|
||||||
|
rightElevFail: props.globals.initNode("/ECAM/warnings/fctl/rightElevFault-output"),
|
||||||
},
|
},
|
||||||
Flipflops: {
|
Flipflops: {
|
||||||
apuGenFault: props.globals.initNode("/ECAM/warnings/flipflop/apu-gen-fault"),
|
apuGenFault: props.globals.initNode("/ECAM/warnings/flipflop/apu-gen-fault"),
|
||||||
|
|
|
@ -875,23 +875,6 @@ var messages_priority_3 = func {
|
||||||
ECAM_controller.warningReset(emerconfigVent);
|
ECAM_controller.warningReset(emerconfigVent);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (emerconfigAltn.clearFlag == 0) {
|
|
||||||
emerconfigAltn.active = 1;
|
|
||||||
} else {
|
|
||||||
ECAM_controller.warningReset(emerconfigAltn);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (emerconfigProt.clearFlag == 0) {
|
|
||||||
emerconfigProt.active = 1;
|
|
||||||
} else {
|
|
||||||
ECAM_controller.warningReset(emerconfigProt);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (emerconfigMaxSpeed.clearFlag == 0) {
|
|
||||||
emerconfigMaxSpeed.active = 1;
|
|
||||||
} else {
|
|
||||||
ECAM_controller.warningReset(emerconfigMaxSpeed);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
ECAM_controller.warningReset(emerconfig);
|
ECAM_controller.warningReset(emerconfig);
|
||||||
ECAM_controller.warningReset(emerconfigMinRat);
|
ECAM_controller.warningReset(emerconfigMinRat);
|
||||||
|
@ -909,9 +892,6 @@ var messages_priority_3 = func {
|
||||||
ECAM_controller.warningReset(emerconfigBusTie2);
|
ECAM_controller.warningReset(emerconfigBusTie2);
|
||||||
ECAM_controller.warningReset(emerconfigAPU);
|
ECAM_controller.warningReset(emerconfigAPU);
|
||||||
ECAM_controller.warningReset(emerconfigVent);
|
ECAM_controller.warningReset(emerconfigVent);
|
||||||
ECAM_controller.warningReset(emerconfigAltn);
|
|
||||||
ECAM_controller.warningReset(emerconfigProt);
|
|
||||||
ECAM_controller.warningReset(emerconfigMaxSpeed);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hydBYloPr.clearFlag == 0 and phaseVar3 != 4 and phaseVar3 != 5 and warningNodes.Logic.blueYellow.getValue()) {
|
if (hydBYloPr.clearFlag == 0 and phaseVar3 != 4 and phaseVar3 != 5 and warningNodes.Logic.blueYellow.getValue()) {
|
||||||
|
@ -1290,6 +1270,109 @@ var messages_priority_2 = func {
|
||||||
ECAM_controller.warningReset(apuGenfaultGen3);
|
ECAM_controller.warningReset(apuGenfaultGen3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (lElevFault.clearFlag == 0 and warningNodes.Timers.leftElevFail.getValue() and phaseVar2 != 4 and phaseVar2 != 5) {
|
||||||
|
lElevFault.active = 1;
|
||||||
|
if (lElevFaultCare.clearFlag == 0) {
|
||||||
|
lElevFaultCare.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(lElevFaultCare);
|
||||||
|
}
|
||||||
|
if (lElevFaultPitch.clearFlag == 0) {
|
||||||
|
lElevFaultPitch.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(lElevFaultPitch);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(lElevFault);
|
||||||
|
ECAM_controller.warningReset(lElevFaultCare);
|
||||||
|
ECAM_controller.warningReset(lElevFaultPitch);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rElevFault.clearFlag == 0 and warningNodes.Timers.rightElevFail.getValue() and phaseVar2 != 4 and phaseVar2 != 5) {
|
||||||
|
rElevFault.active = 1;
|
||||||
|
if (rElevFaultCare.clearFlag == 0) {
|
||||||
|
rElevFaultCare.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(rElevFaultCare);
|
||||||
|
}
|
||||||
|
if (rElevFaultPitch.clearFlag == 0) {
|
||||||
|
rElevFaultPitch.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(rElevFaultPitch);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(rElevFault);
|
||||||
|
ECAM_controller.warningReset(rElevFaultCare);
|
||||||
|
ECAM_controller.warningReset(rElevFaultPitch);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (directLaw.clearFlag == 0 and warningNodes.Timers.directLaw.getValue() and phaseVar2 != 4 and phaseVar2 != 5 and phaseVar2 != 7 and phaseVar2 != 8) {
|
||||||
|
directLaw.active = 1;
|
||||||
|
directLawProt.active = 1;
|
||||||
|
if (directLawMaxSpeed.clearFlag == 0 and !fbw.tripleADRFail and pts.Gear.position[1].getValue() == 1) {
|
||||||
|
directLawMaxSpeed.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(directLawMaxSpeed);
|
||||||
|
}
|
||||||
|
if (directLawTrim.clearFlag == 0 and (systems.HYD.Psi.green.getValue() >= 1500 or systems.HYD.Psi.yellow.getValue() >= 1500) and !fbw.FBW.Failures.ths.getValue()) {
|
||||||
|
directLawTrim.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(directLawTrim);
|
||||||
|
}
|
||||||
|
if (directLawCare.clearFlag == 0 and (fbw.tripleADRFail or pts.Gear.position[1].getValue() == 1)) {
|
||||||
|
directLawCare.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(directLawCare);
|
||||||
|
}
|
||||||
|
if (directLawSpdBrk.clearFlag == 0 and !fbw.tripleADRFail and pts.Gear.position[1].getValue() == 1) {
|
||||||
|
directLawSpdBrk.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(directLawSpdBrk);
|
||||||
|
}
|
||||||
|
if (directLawSpdBrk2.clearFlag == 0 and fbw.tripleADRFail) {
|
||||||
|
directLawSpdBrk2.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(directLawSpdBrk2);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(directLaw);
|
||||||
|
ECAM_controller.warningReset(directLawProt);
|
||||||
|
ECAM_controller.warningReset(directLawMaxSpeed);
|
||||||
|
ECAM_controller.warningReset(directLawTrim);
|
||||||
|
ECAM_controller.warningReset(directLawCare);
|
||||||
|
ECAM_controller.warningReset(directLawSpdBrk);
|
||||||
|
ECAM_controller.warningReset(directLawSpdBrk2);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (altnLaw.clearFlag == 0 and warningNodes.Timers.altnLaw.getValue() and phaseVar2 != 4 and phaseVar2 != 5 and phaseVar2 != 7 and phaseVar2 != 8) {
|
||||||
|
altnLaw.active = 1;
|
||||||
|
altnLawProt.active = 1;
|
||||||
|
if (altnLawMaxSpeed.clearFlag == 0 and altnLawMaxSpeed2.clearFlag == 0 and !fbw.tripleADRFail) {
|
||||||
|
if (!(getprop("/ECAM/warnings/hyd/green-abnorm-lo-pr") and (getprop("/ECAM/warnings/hyd/blue-abnorm-lo-pr") or getprop("/ECAM/warnings/hyd/yellow-abnorm-lo-pr")))) {
|
||||||
|
altnLawMaxSpeed.active = 1;
|
||||||
|
ECAM_controller.warningReset(altnLawMaxSpeed2);
|
||||||
|
} else {
|
||||||
|
altnLawMaxSpeed2.active = 1;
|
||||||
|
ECAM_controller.warningReset(altnLawMaxSpeed);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(altnLawMaxSpeed);
|
||||||
|
ECAM_controller.warningReset(altnLawMaxSpeed2);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (altnLawMaxSpdBrk.clearFlag == 0 and (fbw.tripleADRFail or warningNodes.Logic.leftElevFail.getValue() or warningNodes.Logic.rightElevFail.getValue())) {
|
||||||
|
altnLawMaxSpdBrk.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(altnLawMaxSpdBrk);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(altnLaw);
|
||||||
|
ECAM_controller.warningReset(altnLawProt);
|
||||||
|
ECAM_controller.warningReset(altnLawMaxSpeed);
|
||||||
|
ECAM_controller.warningReset(altnLawMaxSpeed2);
|
||||||
|
ECAM_controller.warningReset(altnLawMaxSpdBrk);
|
||||||
|
}
|
||||||
|
|
||||||
if ((athr_offw.clearFlag == 0) and athrWarn.getValue() == 2 and phaseVar2 != 4 and phaseVar2 != 8 and phaseVar2 != 10) {
|
if ((athr_offw.clearFlag == 0) and athrWarn.getValue() == 2 and phaseVar2 != 4 and phaseVar2 != 8 and phaseVar2 != 10) {
|
||||||
athr_offw.active = 1;
|
athr_offw.active = 1;
|
||||||
athr_offw_1.active = 1;
|
athr_offw_1.active = 1;
|
||||||
|
|
|
@ -155,9 +155,6 @@ var warnings = std.Vector.new([
|
||||||
var emerconfigBusTie2 = warning.new(msg: " -BUS TIE...........AUTO", colour: "c"),
|
var emerconfigBusTie2 = warning.new(msg: " -BUS TIE...........AUTO", colour: "c"),
|
||||||
var emerconfigAPU = warning.new(msg: " -APU (IF AVAIL)...START", colour: "c"),
|
var emerconfigAPU = warning.new(msg: " -APU (IF AVAIL)...START", colour: "c"),
|
||||||
var emerconfigVent = warning.new(msg: " -BLOWER + EXTRACT..OVRD", 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
|
# B + Y LO PR
|
||||||
var hydBYloPr = warning.new(msg: "HYD B+Y SYS LO PR", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
var hydBYloPr = warning.new(msg: "HYD B+Y SYS LO PR", colour: "r", aural: 0, light: 0, isMainMsg: 1),
|
||||||
|
@ -260,10 +257,36 @@ var warnings = std.Vector.new([
|
||||||
var gen2faultGen3 = warning.new(msg: "-GEN 2..............OFF", colour: "c"),
|
var gen2faultGen3 = warning.new(msg: "-GEN 2..............OFF", colour: "c"),
|
||||||
|
|
||||||
# APU GEN FAULT
|
# APU GEN FAULT
|
||||||
var apuGenfault = warning.new(msg: "ELEC APU GEN FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
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 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"),
|
||||||
|
|
||||||
|
# L ELEV FAULT
|
||||||
|
var lElevFault = warning.new(msg: "F/CTL L ELEV FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||||
|
var lElevFaultCare = warning.new(msg: " MANEUVER WITH CARE", colour: "c"),
|
||||||
|
var lElevFaultPitch = warning.new(msg: " FOR GA:MAX PITCH 15 DEG", colour: "c"),
|
||||||
|
|
||||||
|
# R ELEV FAULT
|
||||||
|
var rElevFault = warning.new(msg: "F/CTL R ELEV FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||||
|
var rElevFaultCare = warning.new(msg: " MANEUVER WITH CARE", colour: "c"),
|
||||||
|
var rElevFaultPitch = warning.new(msg: " FOR GA:MAX PITCH 15 DEG", colour: "c"),
|
||||||
|
|
||||||
|
# DIRECT LAW
|
||||||
|
var directLaw = warning.new(msg: "F/CTL DIRECT LAW", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||||
|
var directLawProt = warning.new(msg: " (PROT LOST)", colour: "a"),
|
||||||
|
var directLawMaxSpeed = warning.new(msg: " MAX SPEED........320/.77", colour: "c"),
|
||||||
|
var directLawTrim = warning.new(msg: " -MAN PITCH TRIM.....USE", colour: "c"),
|
||||||
|
var directLawCare = warning.new(msg: " MANEUVER WITH CARE", colour: "c"),
|
||||||
|
var directLawSpdBrk = warning.new(msg: " USE SPD BRK WITH CARE", colour: "c"),
|
||||||
|
var directLawSpdBrk2 = warning.new(msg: " SPD BRK.......DO NOT USE", colour: "c"),
|
||||||
|
|
||||||
|
# ALTN LAW
|
||||||
|
var altnLaw = warning.new(msg: "F/CTL ALTN LAW", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||||
|
var altnLawProt = warning.new(msg: " (PROT LOST)", colour: "a"),
|
||||||
|
var altnLawMaxSpeed = warning.new(msg: " MAX SPEED........320 KT", colour: "c"),
|
||||||
|
var altnLawMaxSpeed2 = warning.new(msg: " MAX SPEED........320/.77", colour: "c"),
|
||||||
|
var altnLawMaxSpdBrk = warning.new(msg: " SPD BRK.......DO NOT USE", colour: "c"),
|
||||||
|
|
||||||
# Autothrust
|
# Autothrust
|
||||||
var athr_offw = warning.new(msg: "AUTO FLT A/THR OFF", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
var athr_offw = warning.new(msg: "AUTO FLT A/THR OFF", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||||
|
@ -275,7 +298,7 @@ var warnings = std.Vector.new([
|
||||||
|
|
||||||
# TCAS FAULT
|
# TCAS FAULT
|
||||||
var tcasFault = warning.new(msg: "NAV TCAS FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
var tcasFault = warning.new(msg: "NAV TCAS FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||||
var tcasStby = warning.new(msg: "NAV TCAS STBY", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
var tcasStby = warning.new(msg: "NAV TCAS STBY", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||||
var gpwsFault = warning.new(msg: "NAV GPWS FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
var gpwsFault = warning.new(msg: "NAV GPWS FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||||
var gpwsFaultOff = warning.new(msg: "-GPWS...............OFF", colour: "c"),
|
var gpwsFaultOff = warning.new(msg: "-GPWS...............OFF", colour: "c"),
|
||||||
var gpwsTerrFault = warning.new(msg: "NAV GPWS TERR DET FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
var gpwsTerrFault = warning.new(msg: "NAV GPWS TERR DET FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||||
|
|
|
@ -2048,6 +2048,117 @@
|
||||||
<rate_limit sense="incr">3.33333333333</rate_limit> <!-- 0.3 seconds -->
|
<rate_limit sense="incr">3.33333333333</rate_limit> <!-- 0.3 seconds -->
|
||||||
</actuator>
|
</actuator>
|
||||||
|
|
||||||
|
<switch name="/ECAM/warnings/fctl/leftElevFault-cond">
|
||||||
|
<default value="0"/>
|
||||||
|
<test logic="AND" value="1">
|
||||||
|
<test logic="OR">
|
||||||
|
<test logic="AND">
|
||||||
|
/systems/fctl/elac1 eq 0
|
||||||
|
/systems/fctl/sec1 eq 0
|
||||||
|
</test>
|
||||||
|
/systems/hydraulic/blue-psi lt 1500
|
||||||
|
</test>
|
||||||
|
<test logic="OR">
|
||||||
|
<test logic="AND">
|
||||||
|
/systems/fctl/elac2 eq 0
|
||||||
|
/systems/fctl/sec2 eq 0
|
||||||
|
</test>
|
||||||
|
/systems/hydraulic/green-psi lt 1500
|
||||||
|
</test>
|
||||||
|
</test>
|
||||||
|
</switch>
|
||||||
|
|
||||||
|
<switch name="/ECAM/warnings/fctl/leftElevFault">
|
||||||
|
<default value="0"/>
|
||||||
|
<test logic="AND" value="1">
|
||||||
|
/systems/hydraulic/blue-psi ge 1500
|
||||||
|
/systems/hydraulic/green-psi ge 1500
|
||||||
|
/systems/electrical/bus/dc-2 ge 25
|
||||||
|
/ECAM/warnings/fctl/lrElevFault ne 1
|
||||||
|
<test logic="OR">
|
||||||
|
/controls/fctl/switches/elac1 eq 1
|
||||||
|
/controls/fctl/switches/elac2 eq 1
|
||||||
|
/controls/fctl/switches/sec1 eq 1
|
||||||
|
/controls/fctl/switches/sec2 eq 1
|
||||||
|
</test>
|
||||||
|
/ECAM/warnings/fctl/leftElevFault-cond eq 1
|
||||||
|
</test>
|
||||||
|
</switch>
|
||||||
|
|
||||||
|
<actuator name="/ECAM/warnings/fctl/leftElevFault-output">
|
||||||
|
<input>/ECAM/warnings/fctl/leftElevFault</input>
|
||||||
|
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
|
||||||
|
<rate_limit sense="incr">3.33333333333</rate_limit> <!-- 0.3 seconds -->
|
||||||
|
</actuator>
|
||||||
|
|
||||||
|
<switch name="/ECAM/warnings/fctl/rightElevFault-cond">
|
||||||
|
<default value="0"/>
|
||||||
|
<test logic="AND" value="1">
|
||||||
|
<test logic="OR">
|
||||||
|
<test logic="AND">
|
||||||
|
/systems/fctl/elac1 eq 0
|
||||||
|
/systems/fctl/sec1 eq 0
|
||||||
|
</test>
|
||||||
|
/systems/hydraulic/blue-psi lt 1500
|
||||||
|
</test>
|
||||||
|
<test logic="OR">
|
||||||
|
<test logic="AND">
|
||||||
|
/systems/fctl/elac2 eq 0
|
||||||
|
/systems/fctl/sec2 eq 0
|
||||||
|
</test>
|
||||||
|
/systems/hydraulic/yellow-psi lt 1500
|
||||||
|
</test>
|
||||||
|
</test>
|
||||||
|
</switch>
|
||||||
|
|
||||||
|
<switch name="/ECAM/warnings/fctl/rightElevFault">
|
||||||
|
<default value="0"/>
|
||||||
|
<test logic="AND" value="1">
|
||||||
|
/systems/hydraulic/blue-psi ge 1500
|
||||||
|
/systems/hydraulic/yellow-psi ge 1500
|
||||||
|
/systems/electrical/bus/dc-2 ge 25
|
||||||
|
/ECAM/warnings/fctl/lrElevFault ne 1
|
||||||
|
<test logic="OR">
|
||||||
|
/controls/fctl/switches/elac1 eq 1
|
||||||
|
/controls/fctl/switches/elac2 eq 1
|
||||||
|
/controls/fctl/switches/sec1 eq 1
|
||||||
|
/controls/fctl/switches/sec2 eq 1
|
||||||
|
</test>
|
||||||
|
/ECAM/warnings/fctl/rightElevFault-cond eq 1
|
||||||
|
</test>
|
||||||
|
</switch>
|
||||||
|
|
||||||
|
<actuator name="/ECAM/warnings/fctl/rightElevFault-output">
|
||||||
|
<input>/ECAM/warnings/fctl/rightElevFault</input>
|
||||||
|
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
|
||||||
|
<rate_limit sense="incr">3.33333333333</rate_limit> <!-- 0.3 seconds -->
|
||||||
|
</actuator>
|
||||||
|
|
||||||
|
<switch name="/ECAM/warnings/fctl/altn-law">
|
||||||
|
<default value="0"/>
|
||||||
|
<test logic="AND" value="1">
|
||||||
|
/ECAM/warning-phase ne 1
|
||||||
|
/ECAM/warning-phase ne 10
|
||||||
|
/it-fbw/law eq 1
|
||||||
|
</test>
|
||||||
|
</switch>
|
||||||
|
|
||||||
|
<actuator name="/ECAM/warnings/fctl/altn-law-output">
|
||||||
|
<input>/ECAM/warnings/fctl/altn-law</input>
|
||||||
|
<rate_limit sense="decr">120</rate_limit> <!-- Instant -->
|
||||||
|
<rate_limit sense="incr">3.33333333333</rate_limit> <!-- 0.3 seconds -->
|
||||||
|
</actuator>
|
||||||
|
|
||||||
|
|
||||||
|
<switch name="/ECAM/warnings/fctl/direct-law-output">
|
||||||
|
<default value="0"/>
|
||||||
|
<test logic="AND" value="1">
|
||||||
|
/ECAM/warning-phase ne 1
|
||||||
|
/ECAM/warning-phase ne 10
|
||||||
|
/it-fbw/law eq 2
|
||||||
|
</test>
|
||||||
|
</switch>
|
||||||
|
|
||||||
<switch name="/ECAM/warnings/fctl/gear-not-down-not-cancellable">
|
<switch name="/ECAM/warnings/fctl/gear-not-down-not-cancellable">
|
||||||
<default value="0"/>
|
<default value="0"/>
|
||||||
<test logic="AND" value="1">
|
<test logic="AND" value="1">
|
||||||
|
|
Loading…
Reference in a new issue