FCU: 250ms delay on failure during transients
This commit is contained in:
parent
24ceb71f9a
commit
60ea0f62ff
3 changed files with 56 additions and 46 deletions
|
@ -2246,31 +2246,7 @@ var messages_priority_2 = func {
|
||||||
ECAM_controller.warningReset(fac2FaultFacOff);
|
ECAM_controller.warningReset(fac2FaultFacOff);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (yawDamper1Fault.clearFlag == 0 and (phaseVar2 <= 2 or phaseVar2 == 9 or phaseVar2 == 6) and warningNodes.Timers.yawDamper1Fault.getValue() == 1 and !warningNodes.Logic.yawDamper12Fault.getBoolValue()) {
|
if (fcu.FCUController.FCU1.failed and fcu.FCUController.FCU2.failed and systems.ELEC.Bus.dcEss.getValue() >= 25 and systems.ELEC.Bus.dc2.getValue() >= 25 and fcuFault.clearFlag == 0) {
|
||||||
yawDamper1Fault.active = 1;
|
|
||||||
} else {
|
|
||||||
ECAM_controller.warningReset(yawDamper1Fault);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (yawDamper2Fault.clearFlag == 0 and (phaseVar2 <= 2 or phaseVar2 == 9 or phaseVar2 == 6) and warningNodes.Timers.yawDamper2Fault.getValue() == 1 and !warningNodes.Logic.yawDamper12Fault.getBoolValue()) {
|
|
||||||
yawDamper2Fault.active = 1;
|
|
||||||
} else {
|
|
||||||
ECAM_controller.warningReset(yawDamper2Fault);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rudTravLimSys1Fault.clearFlag == 0 and (phaseVar2 <= 2 or phaseVar2 >= 9 or phaseVar2 == 6) and warningNodes.Logic.rtlu1Fault.getBoolValue()) {
|
|
||||||
rudTravLimSys1Fault.active = 1;
|
|
||||||
} else {
|
|
||||||
ECAM_controller.warningReset(rudTravLimSys1Fault);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rudTravLimSys2Fault.clearFlag == 0 and (phaseVar2 <= 2 or phaseVar2 >= 9 or phaseVar2 == 6) and warningNodes.Logic.rtlu2Fault.getBoolValue()) {
|
|
||||||
rudTravLimSys2Fault.active = 1;
|
|
||||||
} else {
|
|
||||||
ECAM_controller.warningReset(rudTravLimSys2Fault);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fcu.FCUController.FCU1.failed and fcu.FCUController.FCU2.failed and systems.ELEC.Bus.dcEss.getValue() >= 25 and systems.ELEC.Bus.dcEss.getValue() >= 25 and fcuFault.clearFlag == 0) {
|
|
||||||
fcuFault.active = 1;
|
fcuFault.active = 1;
|
||||||
fcuFaultBaro.active = 1;
|
fcuFaultBaro.active = 1;
|
||||||
} else {
|
} else {
|
||||||
|
@ -2278,22 +2254,6 @@ var messages_priority_2 = func {
|
||||||
ECAM_controller.warningReset(fcuFaultBaro);
|
ECAM_controller.warningReset(fcuFaultBaro);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fcu.FCUController.FCU1.failed and !fcu.FCUController.FCU2.failed and systems.ELEC.Bus.dcEss.getValue() >= 25 and fcuFault1.clearFlag == 0) {
|
|
||||||
fcuFault1.active = 1;
|
|
||||||
fcuFault1Baro.active = 1;
|
|
||||||
} else {
|
|
||||||
ECAM_controller.warningReset(fcuFault1);
|
|
||||||
ECAM_controller.warningReset(fcuFault1Baro);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fcu.FCUController.FCU2.failed and !fcu.FCUController.FCU1.failed and systems.ELEC.Bus.dc2.getValue() >= 25 and fcuFault2.clearFlag == 0) {
|
|
||||||
fcuFault2.active = 1;
|
|
||||||
fcuFault2Baro.active = 1;
|
|
||||||
} else {
|
|
||||||
ECAM_controller.warningReset(fcuFault2);
|
|
||||||
ECAM_controller.warningReset(fcuFault2Baro);
|
|
||||||
}
|
|
||||||
|
|
||||||
# FUEL
|
# FUEL
|
||||||
if (wingLoLvl.clearFlag == 0 and warningNodes.Timers.lowLevelBoth.getValue() == 1 and (phaseVar2 <= 2 or phaseVar2 == 6 or phaseVar2 >= 9)) {
|
if (wingLoLvl.clearFlag == 0 and warningNodes.Timers.lowLevelBoth.getValue() == 1 and (phaseVar2 <= 2 or phaseVar2 == 6 or phaseVar2 >= 9)) {
|
||||||
wingLoLvl.active = 1;
|
wingLoLvl.active = 1;
|
||||||
|
@ -3027,6 +2987,46 @@ var messages_priority_2 = func {
|
||||||
ECAM_controller.warningReset(wingIceOpenGndShut);
|
ECAM_controller.warningReset(wingIceOpenGndShut);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (yawDamper1Fault.clearFlag == 0 and (phaseVar2 <= 2 or phaseVar2 == 9 or phaseVar2 == 6) and warningNodes.Timers.yawDamper1Fault.getValue() == 1 and !warningNodes.Logic.yawDamper12Fault.getBoolValue()) {
|
||||||
|
yawDamper1Fault.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(yawDamper1Fault);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (yawDamper2Fault.clearFlag == 0 and (phaseVar2 <= 2 or phaseVar2 == 9 or phaseVar2 == 6) and warningNodes.Timers.yawDamper2Fault.getValue() == 1 and !warningNodes.Logic.yawDamper12Fault.getBoolValue()) {
|
||||||
|
yawDamper2Fault.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(yawDamper2Fault);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rudTravLimSys1Fault.clearFlag == 0 and (phaseVar2 <= 2 or phaseVar2 >= 9 or phaseVar2 == 6) and warningNodes.Logic.rtlu1Fault.getBoolValue()) {
|
||||||
|
rudTravLimSys1Fault.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(rudTravLimSys1Fault);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rudTravLimSys2Fault.clearFlag == 0 and (phaseVar2 <= 2 or phaseVar2 >= 9 or phaseVar2 == 6) and warningNodes.Logic.rtlu2Fault.getBoolValue()) {
|
||||||
|
rudTravLimSys2Fault.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(rudTravLimSys2Fault);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fcu.FCUController.FCU1.failed and !fcu.FCUController.FCU2.failed and systems.ELEC.Bus.dcEss.getValue() >= 25 and fcuFault1.clearFlag == 0) {
|
||||||
|
fcuFault1.active = 1;
|
||||||
|
fcuFault1Baro.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(fcuFault1);
|
||||||
|
ECAM_controller.warningReset(fcuFault1Baro);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fcu.FCUController.FCU2.failed and !fcu.FCUController.FCU1.failed and systems.ELEC.Bus.dc2.getValue() >= 25 and fcuFault2.clearFlag == 0) {
|
||||||
|
fcuFault2.active = 1;
|
||||||
|
fcuFault2Baro.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(fcuFault2);
|
||||||
|
ECAM_controller.warningReset(fcuFault2Baro);
|
||||||
|
}
|
||||||
|
|
||||||
if (wingIceLHiPr.clearFlag == 0 and warningNodes.Timers.waiLhiPr.getValue() == 1 and (phaseVar2 <= 2 or phaseVar2 >= 9 or phaseVar2 == 6)) {
|
if (wingIceLHiPr.clearFlag == 0 and warningNodes.Timers.waiLhiPr.getValue() == 1 and (phaseVar2 <= 2 or phaseVar2 >= 9 or phaseVar2 == 6)) {
|
||||||
wingIceLHiPr.active = 1;
|
wingIceLHiPr.active = 1;
|
||||||
wingIceLHiPrThrust.active = 1;
|
wingIceLHiPrThrust.active = 1;
|
||||||
|
|
|
@ -233,7 +233,7 @@ var ECAMRecipient =
|
||||||
if (math.mod(notifications.frameNotification.FrameCount,10) == 0) {
|
if (math.mod(notifications.frameNotification.FrameCount,10) == 0) {
|
||||||
phaseLoop();
|
phaseLoop();
|
||||||
}
|
}
|
||||||
if (math.mod(notifications.frameNotification.FrameCount,10) == 5) {
|
if (isint(notifications.frameNotification.FrameCount / 5)) {
|
||||||
ECAM_controller.loop(notification);
|
ECAM_controller.loop(notification);
|
||||||
}
|
}
|
||||||
return emesary.Transmitter.ReceiptStatus_OK;
|
return emesary.Transmitter.ReceiptStatus_OK;
|
||||||
|
|
|
@ -18,8 +18,18 @@ var FCU = {
|
||||||
f.elecSupply = elecNode;
|
f.elecSupply = elecNode;
|
||||||
return f;
|
return f;
|
||||||
},
|
},
|
||||||
loop: func() {
|
elec: nil,
|
||||||
me.failed = (me.elecSupply.getValue() < 25 or me.condition == 0) ? 1 : 0;
|
powerOffTime: -99,
|
||||||
|
loop: func(notification) {
|
||||||
|
me.elec = me.elecSupply.getValue();
|
||||||
|
if (me.elec < 25) {
|
||||||
|
if (me.powerOffTime == -99) {
|
||||||
|
me.powerOffTime = notification.elapsedTime;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
me.powerOffTime = -99;
|
||||||
|
}
|
||||||
|
me.failed = ((notification.elapsedTime > (me.powerOffTime + 0.25) and me.elec < 25) or me.condition == 0) ? 1 : 0;
|
||||||
},
|
},
|
||||||
setFail: func() {
|
setFail: func() {
|
||||||
me.condition = 0;
|
me.condition = 0;
|
||||||
|
@ -44,8 +54,8 @@ var FCUController = {
|
||||||
if (me._init == 0) { return; }
|
if (me._init == 0) { return; }
|
||||||
|
|
||||||
# Update FCU Power
|
# Update FCU Power
|
||||||
me.FCU1.loop();
|
me.FCU1.loop(notification);
|
||||||
me.FCU2.loop();
|
me.FCU2.loop(notification);
|
||||||
|
|
||||||
if (!me.FCU1.failed or !me.FCU2.failed) {
|
if (!me.FCU1.failed or !me.FCU2.failed) {
|
||||||
me.FCUworking = 1;
|
me.FCUworking = 1;
|
||||||
|
|
Loading…
Reference in a new issue