1
0
Fork 0

ADR 1+2+3 FAULT

This commit is contained in:
Jonathan Redpath 2022-01-06 19:08:12 +00:00
parent fd5d4676ff
commit d7a8bcdf27
3 changed files with 149 additions and 6 deletions

View file

@ -574,6 +574,61 @@ var messages_priority_3 = func {
ECAM_controller.warningReset(apuFireMaster); ECAM_controller.warningReset(apuFireMaster);
} }
if (ADR123Fault.clearFlag == 0 and warningNodes.Logic.adr123Fault.getValue() and phaseVar3 != 4 and phaseVar3 != 8) {
ADR123Fault.active = 1;
if (ADR123FaultAP.clearFlag == 0 and (fmgc.Output.ap1.getBoolValue() or fmgc.Output.ap2.getBoolValue() or fmgc.Output.fd1.getBoolValue() or fmgc.Output.fd2.getBoolValue())) {
ADR123FaultAP.active = 1;
} else {
ECAM_controller.warningReset(ADR123FaultAP);
}
if (ADR123FaultATHR.clearFlag == 0 and fmgc.Output.athr.getBoolValue()) {
ADR123FaultATHR.active = 1;
} else {
ECAM_controller.warningReset(ADR123FaultATHR);
}
if (ADR123FaultPRBW.clearFlag == 0) {
ADR123FaultPRBW.active = 1;
} else {
ECAM_controller.warningReset(ADR123FaultPRBW);
}
if (ADR123FaultADRPB.clearFlag == 0 and (systems.ADIRS.Switches.adrSw[0].getBoolValue() or systems.ADIRS.Switches.adrSw[1].getBoolValue() or systems.ADIRS.Switches.adrSw[2].getBoolValue())) {
ADR123FaultADRPB.active = 1;
} else {
ECAM_controller.warningReset(ADR123FaultADRPB);
}
if (ADR123FaultSPD.clearFlag == 0) {
ADR123FaultSPD.active = 1;
} else {
ECAM_controller.warningReset(ADR123FaultSPD);
}
if (ADR123FaultSTBY.clearFlag == 0) {
ADR123FaultSTBY.active = 1;
} else {
ECAM_controller.warningReset(ADR123FaultSTBY);
}
if (ADR123FaultPROC.clearFlag == 0) {
ADR123FaultPROC.active = 1;
} else {
ECAM_controller.warningReset(ADR123FaultPROC);
}
} else {
ECAM_controller.warningReset(ADR123Fault);
ECAM_controller.warningReset(ADR123FaultAP);
ECAM_controller.warningReset(ADR123FaultATHR);
ECAM_controller.warningReset(ADR123FaultPRBW);
ECAM_controller.warningReset(ADR123FaultADRPB);
ECAM_controller.warningReset(ADR123FaultSPD);
ECAM_controller.warningReset(ADR123FaultSTBY);
ECAM_controller.warningReset(ADR123FaultPROC);
}
if ((ecamConfigTest.getValue() and (phaseVar3 == 1 or phaseVar3 == 2 or phaseVar3 == 9)) or phaseVar3 == 3 or phaseVar3 == 4) { if ((ecamConfigTest.getValue() and (phaseVar3 == 1 or phaseVar3 == 2 or phaseVar3 == 9)) or phaseVar3 == 3 or phaseVar3 == 4) {
takeoffConfig = 1; takeoffConfig = 1;
} else { } else {
@ -659,7 +714,7 @@ var messages_priority_3 = func {
} }
if (warningNodes.Flipflops.cabPressExcessFlipflop.getValue()) { 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) { if (excessCabAltTHRLVR.clearFlag == 0 and !fmgc.Output.athr.getBoolValue() and warningNodes.Logic.JE1TLAI.getValue() == 0 and warningNodes.Logic.JE2TLAI.getValue() == 0) {
excessCabAltTHRLVR.active = 1; excessCabAltTHRLVR.active = 1;
} else { } else {
ECAM_controller.warningReset(excessCabAltTHRLVR); ECAM_controller.warningReset(excessCabAltTHRLVR);
@ -759,6 +814,60 @@ var messages_priority_3 = func {
ECAM_controller.warningReset(excessCabAltMasks); ECAM_controller.warningReset(excessCabAltMasks);
} }
if (eng1OilLoPr.clearFlag == 0 and warningNodes.Logic.eng1OilLoPr.getBoolValue() and phaseVar3 != 1 and phaseVar3 != 10) {
eng1OilLoPr.active = 1;
if (eng1OilLoPrIf.clearFlag == 0 and pts.Controls.Engines.Engine.cutoffSw[0].getValue() == 0) {
eng1OilLoPrIf.active = 1;
} else {
ECAM_controller.warningReset(eng1OilLoPrIf);
}
if (eng1OilLoPrThrot.clearFlag == 0 and !warningNodes.Logic.JE1TLAI.getValue()) {
eng1OilLoPrThrot.active = 1;
} else {
ECAM_controller.warningReset(eng1OilLoPrThrot);
}
if (eng1OilLoPrMaster.clearFlag == 0 and pts.Controls.Engines.Engine.cutoffSw[0].getValue() == 0) {
eng1OilLoPrMaster.active = 1;
} else {
ECAM_controller.warningReset(eng1OilLoPrMaster);
}
} else {
ECAM_controller.warningReset(eng1OilLoPr);
ECAM_controller.warningReset(eng1OilLoPrIf);
ECAM_controller.warningReset(eng1OilLoPrThrot);
ECAM_controller.warningReset(eng1OilLoPrMaster);
}
if (eng2OilLoPr.clearFlag == 0 and warningNodes.Logic.eng2OilLoPr.getBoolValue() and phaseVar3 != 1 and phaseVar3 != 10) {
eng2OilLoPr.active = 1;
if (eng2OilLoPrIf.clearFlag == 0 and pts.Controls.Engines.Engine.cutoffSw[1].getValue() == 0) {
eng2OilLoPrIf.active = 1;
} else {
ECAM_controller.warningReset(eng2OilLoPrIf);
}
if (eng2OilLoPrThrot.clearFlag == 0 and !warningNodes.Logic.JE2TLAI.getValue()) {
eng2OilLoPrThrot.active = 1;
} else {
ECAM_controller.warningReset(eng2OilLoPrThrot);
}
if (eng2OilLoPrMaster.clearFlag == 0 and pts.Controls.Engines.Engine.cutoffSw[1].getValue() == 0) {
eng2OilLoPrMaster.active = 1;
} else {
ECAM_controller.warningReset(eng2OilLoPrMaster);
}
} else {
ECAM_controller.warningReset(eng2OilLoPr);
ECAM_controller.warningReset(eng2OilLoPrIf);
ECAM_controller.warningReset(eng2OilLoPrThrot);
ECAM_controller.warningReset(eng2OilLoPrMaster);
}
if (lrElevFault.clearFlag == 0 and warningNodes.Timers.LRElevFault.getValue() == 1) { if (lrElevFault.clearFlag == 0 and warningNodes.Timers.LRElevFault.getValue() == 1) {
lrElevFault.active = 1; lrElevFault.active = 1;
if (lrElevFaultSpeed.clearFlag == 0) { if (lrElevFaultSpeed.clearFlag == 0) {

View file

@ -76,6 +76,9 @@ var warningNodes = {
Logic: { Logic: {
JE1TLAI: props.globals.initNode("/ECAM/warnings/logic/eng/eng-1-tla-idle"), JE1TLAI: props.globals.initNode("/ECAM/warnings/logic/eng/eng-1-tla-idle"),
JE2TLAI: props.globals.initNode("/ECAM/warnings/logic/eng/eng-1-tla-idle"), JE2TLAI: props.globals.initNode("/ECAM/warnings/logic/eng/eng-1-tla-idle"),
adr123Fault: props.globals.initNode("/ECAM/warnings/navigation/ADR123-fault"),
eng1OilLoPr: props.globals.initNode("/ECAM/warnings/logic/eng/eng-1-oil-lo-pr"),
eng2OilLoPr: props.globals.initNode("/ECAM/warnings/logic/eng/eng-2-oil-lo-pr"),
altitudeAlert: props.globals.initNode("/ECAM/warnings/altitude-alert/c-chord"), altitudeAlert: props.globals.initNode("/ECAM/warnings/altitude-alert/c-chord"),
altitudeAlertSteady: props.globals.initNode("/ECAM/warnings/altitude-alert/altitude-alert-steady"), altitudeAlertSteady: props.globals.initNode("/ECAM/warnings/altitude-alert/altitude-alert-steady"),
altitudeAlertFlash: props.globals.initNode("/ECAM/warnings/altitude-alert/altitude-alert-flash"), altitudeAlertFlash: props.globals.initNode("/ECAM/warnings/altitude-alert/altitude-alert-flash"),

View file

@ -3124,6 +3124,36 @@
</test> </test>
</switch> </switch>
<actuator name="/ECAM/warnings/logic/eng/eng-1-oil-lo-pr-cutoff-delay">
<input>/controls/engines/engine[0]/cutoff-switch</input>
<rate_limit sense="decr">0.03333333333</rate_limit>
<rate_limit sense="incr">100</rate_limit>
</actuator>
<switch name="/ECAM/warnings/logic/eng/eng-1-oil-lo-pr">
<default value="0"/>
<test logic="AND" value="1">
/ECAM/warnings/logic/eng/eng-1-oil-lo-pr-cutoff-delay eq 0 <!-- sense inverted -->
/ECAM/warnings/logic/eng/JE1NORUN eq 0
/engines/engine[0]/oil-psi-actual lt 13
</test>
</switch>
<actuator name="/ECAM/warnings/logic/eng/eng-2-oil-lo-pr-cutoff-delay">
<input>/controls/engines/engine[1]/cutoff-switch</input>
<rate_limit sense="decr">0.03333333333</rate_limit>
<rate_limit sense="incr">100</rate_limit>
</actuator>
<switch name="/ECAM/warnings/logic/eng/eng-2-oil-lo-pr">
<default value="0"/>
<test logic="AND" value="1">
/ECAM/warnings/logic/eng/eng-2-oil-lo-pr-cutoff-delay eq 0 <!-- sense inverted -->
/ECAM/warnings/logic/eng/JE2NORUN eq 0
/engines/engine[1]/oil-psi-actual lt 13
</test>
</switch>
</channel> </channel>
<channel name="Config" execrate="16"> <channel name="Config" execrate="16">
@ -4222,7 +4252,7 @@
</channel> </channel>
<!--<channel name="NAV" execrate="16"> <channel name="NAV" execrate="16">
<switch name="/ECAM/warnings/navigation/ADR123-fault"> <switch name="/ECAM/warnings/navigation/ADR123-fault">
<default value="0"/> <default value="0"/>
@ -4231,12 +4261,13 @@
/systems/electrical/bus/ac-2 ge 110 /systems/electrical/bus/ac-2 ge 110
/systems/electrical/bus/ac-ess ge 110 /systems/electrical/bus/ac-ess ge 110
/ECAM/warning-phase ne 1 /ECAM/warning-phase ne 1
/ECAM/warning-phase ne 4
/ECAM/warning-phase ne 8
/ECAM/warning-phase ne 10 /ECAM/warning-phase ne 10
/systems/navigation/adr/operating-1 eq 0
/systems/navigation/adr/operating-2 eq 0
/systems/navigation/adr/operating-3 eq 0
</test> </test>
</switch> </switch>
</channel>--> </channel>
</system> </system>