1
0
Fork 0

Add ECAM messages for Takeoff Securing Function

This commit is contained in:
Jonathan Redpath 2022-01-25 14:42:05 +00:00
parent 772d920c30
commit 0b05a15bc6
2 changed files with 41 additions and 0 deletions

View file

@ -19,6 +19,7 @@ var engOpt = props.globals.getNode("/options/eng", 1);
var thrustState = [nil, nil];
# local variables
var takeoffConfig = 0;
var transmitFlag1 = 0;
var transmitFlag2 = 0;
var phaseVar3 = nil;
@ -2325,6 +2326,40 @@ var messages_priority_2 = func {
ECAM_controller.warningReset(fctlSpdBrkStillOut);
}
if (fctlPitchTrimDisag.clearFlag == 0 and takeoffConfig and fmgc.FMGCInternal.toFlapThsSet and abs(-getprop("/fdm/jsbsim/hydraulics/elevator-trim/final-deg") - fmgc.FMGCInternal.toThs) >= 1.3) {
fctlPitchTrimDisag.active = 1;
fctlPitchTrimDisag2.active = 1;
} else {
ECAM_controller.warningReset(fctlPitchTrimDisag);
ECAM_controller.warningReset(fctlPitchTrimDisag2);
}
if (fctlFlapsDisag.clearFlag == 0 and takeoffConfig and fmgc.FMGCInternal.toFlapThsSet and (fmgc.FMGCInternal.toFlap + 1 != pts.Controls.Flight.flapsPos.getValue())) {
fctlFlapsDisag.active = 1;
} else {
ECAM_controller.warningReset(fctlFlapsDisag);
}
if (toSpdsDisag.clearFlag == 0 and takeoffConfig and fmgc.FMGCInternal.v1set and fmgc.FMGCInternal.vrset and fmgc.FMGCInternal.v2set and !(fmgc.FMGCInternal.v1 <= fmgc.FMGCInternal.vr and fmgc.FMGCInternal.vr <= fmgc.FMGCInternal.v2)) {
toSpdsDisag.active = 1;
} else {
ECAM_controller.warningReset(toSpdsDisag);
}
if (toSpdsTooLow.clearFlag == 0 and takeoffConfig and
fmgc.FMGCInternal.toFlapThsSet and fmgc.FMGCInternal.zfwSet and fmgc.FMGCInternal.blockSet and fmgc.FMGCInternal.v1set and fmgc.FMGCInternal.vrset and fmgc.FMGCInternal.v2set
and (fmgc.FMGCInternal.v1 < mcdu.VMCG.getValue() or fmgc.FMGCInternal.vr < (mcdu.VMCA.getValue() * 1.05) or fmgc.FMGCInternal.v2 < (mcdu.VMCA.getValue() * 1.10) or fmgc.FMGCInternal.v2 < (1.13 * mcdu.chooseVS1G()))) {
toSpdsTooLow.active = 1;
} else {
ECAM_controller.warningReset(toSpdsTooLow);
}
if (toSpdsNotInserted.clearFlag == 0 and takeoffConfig and (!fmgc.FMGCInternal.v1set or !fmgc.FMGCInternal.vrset or !fmgc.FMGCInternal.v2set)) {
toSpdsNotInserted.active = 1;
} else {
ECAM_controller.warningReset(toSpdsNotInserted);
}
gearPosition = pts.Gear.position[1].getValue();
if (directLaw.clearFlag == 0 and warningNodes.Timers.directLaw.getValue() == 1 and phaseVar2 != 4 and phaseVar2 != 5 and phaseVar2 != 7 and phaseVar2 != 8) {
directLaw.active = 1;

View file

@ -494,6 +494,12 @@ var warnings = std.Vector.new([
# F/CTL SPD BRK STILL OUT
var fctlSpdBrkStillOut = warning.new(msg: "F/CTL SPD BRK STILL OUT ", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var fctlPitchTrimDisag = warning.new(msg: "F/CTL", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var fctlPitchTrimDisag2 = warning.new(msg: "PITCH TRIM/MCDU/CG DISAGREE", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var fctlFlapsDisag = warning.new(msg: "F/CTL FLAPS/MCDU DISAGREE", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var toSpdsDisag = warning.new(msg: "T.O V1/VR/V2 DISAGREE ", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var toSpdsTooLow = warning.new(msg: "T.O SPEEDS TOO LOW ", colour: "a", aural: 1, light: 1, isMainMsg: 1),
var toSpdsNotInserted = warning.new(msg: "T.O SPEEDS NOT INSERTED ", colour: "a", aural: 1, light: 1, isMainMsg: 1),
# DIRECT LAW
var directLaw = warning.new(msg: "F/CTL DIRECT LAW", colour: "a", aural: 1, light: 1, isMainMsg: 1),