commit
d5a0a9b2c1
7 changed files with 613 additions and 345 deletions
|
@ -1584,7 +1584,7 @@
|
|||
</condition>
|
||||
</animation>
|
||||
|
||||
<!--<animation>
|
||||
<animation>
|
||||
<type>pick</type>
|
||||
<object-name>ecam_rcl</object-name>
|
||||
<action>
|
||||
|
@ -1598,10 +1598,10 @@
|
|||
</greater-than-equals>
|
||||
</condition>
|
||||
<command>nasal</command>
|
||||
<script>ecam.rclBTN();</script>
|
||||
<script>ecam.ECAM_controller.recall();</script>
|
||||
</binding>
|
||||
</action>
|
||||
</animation>-->
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>pick</type>
|
||||
|
@ -5029,6 +5029,10 @@
|
|||
if (getprop("/it-autoflight/output/athr-warning") == 1) {
|
||||
setprop("/it-autoflight/output/athr-warning", 0);
|
||||
}
|
||||
|
||||
if (getprop("/sim/sound/warnings/chime") == 1) {
|
||||
setprop("/sim/sound/warnings/chime", 0);
|
||||
}
|
||||
</script>
|
||||
</binding>
|
||||
</action>
|
||||
|
|
|
@ -237,7 +237,7 @@ var canvas_upperECAM_base = {
|
|||
|
||||
if (line1c == "w") {
|
||||
me["ECAML1"].setColor(0.8078,0.8039,0.8078);
|
||||
} else if (line1c == "b") {
|
||||
} else if (line1c == "c") {
|
||||
me["ECAML1"].setColor(0.0901,0.6039,0.7176);
|
||||
} else if (line1c == "g") {
|
||||
me["ECAML1"].setColor(0.0509,0.7529,0.2941);
|
||||
|
@ -249,7 +249,7 @@ var canvas_upperECAM_base = {
|
|||
|
||||
if (line2c == "w") {
|
||||
me["ECAML2"].setColor(0.8078,0.8039,0.8078);
|
||||
} else if (line2c == "b") {
|
||||
} else if (line2c == "c") {
|
||||
me["ECAML2"].setColor(0.0901,0.6039,0.7176);
|
||||
} else if (line2c == "g") {
|
||||
me["ECAML2"].setColor(0.0509,0.7529,0.2941);
|
||||
|
@ -261,7 +261,7 @@ var canvas_upperECAM_base = {
|
|||
|
||||
if (line3c == "w") {
|
||||
me["ECAML3"].setColor(0.8078,0.8039,0.8078);
|
||||
} else if (line3c == "b") {
|
||||
} else if (line3c == "c") {
|
||||
me["ECAML3"].setColor(0.0901,0.6039,0.7176);
|
||||
} else if (line3c == "g") {
|
||||
me["ECAML3"].setColor(0.0509,0.7529,0.2941);
|
||||
|
@ -273,7 +273,7 @@ var canvas_upperECAM_base = {
|
|||
|
||||
if (line4c == "w") {
|
||||
me["ECAML4"].setColor(0.8078,0.8039,0.8078);
|
||||
} else if (line4c == "b") {
|
||||
} else if (line4c == "c") {
|
||||
me["ECAML4"].setColor(0.0901,0.6039,0.7176);
|
||||
} else if (line4c == "g") {
|
||||
me["ECAML4"].setColor(0.0509,0.7529,0.2941);
|
||||
|
@ -285,7 +285,7 @@ var canvas_upperECAM_base = {
|
|||
|
||||
if (line5c == "w") {
|
||||
me["ECAML5"].setColor(0.8078,0.8039,0.8078);
|
||||
} else if (line5c == "b") {
|
||||
} else if (line5c == "c") {
|
||||
me["ECAML5"].setColor(0.0901,0.6039,0.7176);
|
||||
} else if (line5c == "g") {
|
||||
me["ECAML5"].setColor(0.0509,0.7529,0.2941);
|
||||
|
@ -297,7 +297,7 @@ var canvas_upperECAM_base = {
|
|||
|
||||
if (line6c == "w") {
|
||||
me["ECAML6"].setColor(0.8078,0.8039,0.8078);
|
||||
} else if (line6c == "b") {
|
||||
} else if (line6c == "c") {
|
||||
me["ECAML6"].setColor(0.0901,0.6039,0.7176);
|
||||
} else if (line6c == "g") {
|
||||
me["ECAML6"].setColor(0.0509,0.7529,0.2941);
|
||||
|
@ -309,7 +309,7 @@ var canvas_upperECAM_base = {
|
|||
|
||||
if (line7c == "w") {
|
||||
me["ECAML7"].setColor(0.8078,0.8039,0.8078);
|
||||
} else if (line7c == "b") {
|
||||
} else if (line7c == "c") {
|
||||
me["ECAML7"].setColor(0.0901,0.6039,0.7176);
|
||||
} else if (line7c == "g") {
|
||||
me["ECAML7"].setColor(0.0509,0.7529,0.2941);
|
||||
|
@ -321,7 +321,7 @@ var canvas_upperECAM_base = {
|
|||
|
||||
if (line8c == "w") {
|
||||
me["ECAML8"].setColor(0.8078,0.8039,0.8078);
|
||||
} else if (line8c == "b") {
|
||||
} else if (line8c == "c") {
|
||||
me["ECAML8"].setColor(0.0901,0.6039,0.7176);
|
||||
} else if (line8c == "g") {
|
||||
me["ECAML8"].setColor(0.0509,0.7529,0.2941);
|
||||
|
@ -447,7 +447,7 @@ var canvas_upperECAM_base = {
|
|||
|
||||
if (getprop("/ECAM/rightmsg/linec1") == "w") {
|
||||
me["ECAMR1"].setColor(0.8078,0.8039,0.8078);
|
||||
} else if (getprop("/ECAM/rightmsg/linec1") == "b") {
|
||||
} else if (getprop("/ECAM/rightmsg/linec1") == "c") {
|
||||
me["ECAMR1"].setColor(0.0901,0.6039,0.7176);
|
||||
} else if (getprop("/ECAM/rightmsg/linec1") == "g") {
|
||||
me["ECAMR1"].setColor(0.0509,0.7529,0.2941);
|
||||
|
@ -461,7 +461,7 @@ var canvas_upperECAM_base = {
|
|||
|
||||
if (getprop("/ECAM/rightmsg/linec2") == "w") {
|
||||
me["ECAMR2"].setColor(0.8078,0.8039,0.8078);
|
||||
} else if (getprop("/ECAM/rightmsg/linec2") == "b") {
|
||||
} else if (getprop("/ECAM/rightmsg/linec2") == "c") {
|
||||
me["ECAMR2"].setColor(0.0901,0.6039,0.7176);
|
||||
} else if (getprop("/ECAM/rightmsg/linec2") == "g") {
|
||||
me["ECAMR2"].setColor(0.0509,0.7529,0.2941);
|
||||
|
@ -475,7 +475,7 @@ var canvas_upperECAM_base = {
|
|||
|
||||
if (getprop("/ECAM/rightmsg/linec3") == "w") {
|
||||
me["ECAMR3"].setColor(0.8078,0.8039,0.8078);
|
||||
} else if (getprop("/ECAM/rightmsg/linec3") == "b") {
|
||||
} else if (getprop("/ECAM/rightmsg/linec3") == "c") {
|
||||
me["ECAMR3"].setColor(0.0901,0.6039,0.7176);
|
||||
} else if (getprop("/ECAM/rightmsg/linec3") == "g") {
|
||||
me["ECAMR3"].setColor(0.0509,0.7529,0.2941);
|
||||
|
@ -489,7 +489,7 @@ var canvas_upperECAM_base = {
|
|||
|
||||
if (getprop("/ECAM/rightmsg/linec4") == "w") {
|
||||
me["ECAMR4"].setColor(0.8078,0.8039,0.8078);
|
||||
} else if (getprop("/ECAM/rightmsg/linec4") == "b") {
|
||||
} else if (getprop("/ECAM/rightmsg/linec4") == "c") {
|
||||
me["ECAMR4"].setColor(0.0901,0.6039,0.7176);
|
||||
} else if (getprop("/ECAM/rightmsg/linec4") == "g") {
|
||||
me["ECAMR4"].setColor(0.0509,0.7529,0.2941);
|
||||
|
@ -503,7 +503,7 @@ var canvas_upperECAM_base = {
|
|||
|
||||
if (getprop("/ECAM/rightmsg/linec5") == "w") {
|
||||
me["ECAMR5"].setColor(0.8078,0.8039,0.8078);
|
||||
} else if (getprop("/ECAM/rightmsg/linec5") == "b") {
|
||||
} else if (getprop("/ECAM/rightmsg/linec5") == "c") {
|
||||
me["ECAMR5"].setColor(0.0901,0.6039,0.7176);
|
||||
} else if (getprop("/ECAM/rightmsg/linec5") == "g") {
|
||||
me["ECAMR5"].setColor(0.0509,0.7529,0.2941);
|
||||
|
@ -517,7 +517,7 @@ var canvas_upperECAM_base = {
|
|||
|
||||
if (getprop("/ECAM/rightmsg/linec6") == "w") {
|
||||
me["ECAMR6"].setColor(0.8078,0.8039,0.8078);
|
||||
} else if (getprop("/ECAM/rightmsg/linec6") == "b") {
|
||||
} else if (getprop("/ECAM/rightmsg/linec6") == "c") {
|
||||
me["ECAMR6"].setColor(0.0901,0.6039,0.7176);
|
||||
} else if (getprop("/ECAM/rightmsg/linec6") == "g") {
|
||||
me["ECAMR6"].setColor(0.0509,0.7529,0.2941);
|
||||
|
@ -531,7 +531,7 @@ var canvas_upperECAM_base = {
|
|||
|
||||
if (getprop("/ECAM/rightmsg/linec7") == "w") {
|
||||
me["ECAMR7"].setColor(0.8078,0.8039,0.8078);
|
||||
} else if (getprop("/ECAM/rightmsg/linec7") == "b") {
|
||||
} else if (getprop("/ECAM/rightmsg/linec7") == "c") {
|
||||
me["ECAMR7"].setColor(0.0901,0.6039,0.7176);
|
||||
} else if (getprop("/ECAM/rightmsg/linec7") == "g") {
|
||||
me["ECAMR7"].setColor(0.0509,0.7529,0.2941);
|
||||
|
@ -545,7 +545,7 @@ var canvas_upperECAM_base = {
|
|||
|
||||
if (getprop("/ECAM/rightmsg/linec8") == "w") {
|
||||
me["ECAMR8"].setColor(0.8078,0.8039,0.8078);
|
||||
} else if (getprop("/ECAM/rightmsg/linec8") == "b") {
|
||||
} else if (getprop("/ECAM/rightmsg/linec8") == "c") {
|
||||
me["ECAMR8"].setColor(0.0901,0.6039,0.7176);
|
||||
} else if (getprop("/ECAM/rightmsg/linec8") == "g") {
|
||||
me["ECAMR8"].setColor(0.0509,0.7529,0.2941);
|
||||
|
|
|
@ -313,6 +313,10 @@ var LowerECAM = {
|
|||
return;
|
||||
}
|
||||
|
||||
if (b == "clr" and getprop("/ECAM/Lower/man-select") == 0 and getprop("/ECAM/Lower/fault-select") == 0) {
|
||||
ecam.ECAM_controller.clear();
|
||||
}
|
||||
|
||||
if (getprop("/ECAM/Lower/fault-select") == 0) {
|
||||
if (b != "clr") {
|
||||
if (!man_sel) {
|
||||
|
|
|
@ -1,131 +1,131 @@
|
|||
# A3XX Electronic Centralised Aircraft Monitoring System
|
||||
|
||||
# Copyright (c) 2019 Jonathan Redpath (legoboyvdlp)
|
||||
|
||||
var num_lines = 6;
|
||||
var msg = nil;
|
||||
var spacer = nil;
|
||||
var line = nil;
|
||||
var right_line = nil;
|
||||
var wow = getprop("/gear/gear[1]/wow");
|
||||
var light = 0;
|
||||
var flash = 0;
|
||||
setprop("/ECAM/show-left-msg", 1);
|
||||
setprop("/ECAM/show-right-msg", 1);
|
||||
setprop("/ECAM/warnings/master-warning-light", 0);
|
||||
setprop("/ECAM/warnings/master-warning-flash", 0);
|
||||
setprop("/ECAM/warnings/master-caution-light", 0);
|
||||
setprop("/ECAM/warnings/overflow", 0);
|
||||
setprop("/ECAM/warnings/overflow-left", 0);
|
||||
setprop("/ECAM/warnings/overflow-right", 0);
|
||||
var leftmsgEnable = props.globals.initNode("/ECAM/show-left-msg", 1, "BOOL");
|
||||
var rightmsgEnable = props.globals.initNode("/ECAM/show-right-msg", 1, "BOOL");
|
||||
|
||||
var lines = [props.globals.getNode("/ECAM/msg/line1", 1), props.globals.getNode("/ECAM/msg/line2", 1), props.globals.getNode("/ECAM/msg/line3", 1), props.globals.getNode("/ECAM/msg/line4", 1), props.globals.getNode("/ECAM/msg/line5", 1), props.globals.getNode("/ECAM/msg/line6", 1), props.globals.getNode("/ECAM/msg/line7", 1), props.globals.getNode("/ECAM/msg/line8", 1)];
|
||||
var linesCol = [props.globals.getNode("/ECAM/msg/linec1", 1), props.globals.getNode("/ECAM/msg/linec2", 1), props.globals.getNode("/ECAM/msg/linec3", 1), props.globals.getNode("/ECAM/msg/linec4", 1), props.globals.getNode("/ECAM/msg/linec5", 1), props.globals.getNode("/ECAM/msg/linec6", 1), props.globals.getNode("/ECAM/msg/linec7", 1), props.globals.getNode("/ECAM/msg/linec8", 1)];
|
||||
var rightLines = [props.globals.getNode("/ECAM/rightmsg/line1", 1), props.globals.getNode("/ECAM/rightmsg/line2", 1), props.globals.getNode("/ECAM/rightmsg/line3", 1), props.globals.getNode("/ECAM/rightmsg/line4", 1), props.globals.getNode("/ECAM/rightmsg/line5", 1), props.globals.getNode("/ECAM/rightmsg/line6", 1), props.globals.getNode("/ECAM/rightmsg/line7", 1), props.globals.getNode("/ECAM/rightmsg/line8", 1)];
|
||||
var rightLinesCol = [props.globals.getNode("/ECAM/rightmsg/linec1", 1), props.globals.getNode("/ECAM/rightmsg/linec2", 1), props.globals.getNode("/ECAM/rightmsg/linec3", 1), props.globals.getNode("/ECAM/rightmsg/linec4", 1), props.globals.getNode("/ECAM/rightmsg/linec5", 1), props.globals.getNode("/ECAM/rightmsg/linec6", 1), props.globals.getNode("/ECAM/rightmsg/linec7", 1), props.globals.getNode("/ECAM/rightmsg/linec8", 1)];
|
||||
var statusLines = [props.globals.getNode("/ECAM/status/line1", 1), props.globals.getNode("/ECAM/status/line2", 1), props.globals.getNode("/ECAM/status/line3", 1), props.globals.getNode("/ECAM/status/line4", 1), props.globals.getNode("/ECAM/status/line5", 1), props.globals.getNode("/ECAM/status/line6", 1), props.globals.getNode("/ECAM/status/line7", 1), props.globals.getNode("/ECAM/status/line8", 1)];
|
||||
var statusLinesCol = [props.globals.getNode("/ECAM/status/linec1", 1), props.globals.getNode("/ECAM/status/linec2", 1), props.globals.getNode("/ECAM/status/linec3", 1), props.globals.getNode("/ECAM/status/linec4", 1), props.globals.getNode("/ECAM/status/linec5", 1), props.globals.getNode("/ECAM/status/linec6", 1), props.globals.getNode("/ECAM/status/linec7", 1), props.globals.getNode("/ECAM/status/linec8", 1)];
|
||||
|
||||
var leftOverflow = props.globals.initNode("/ECAM/warnings/overflow-left", 0, "BOOL");
|
||||
var rightOverflow = props.globals.initNode("/ECAM/warnings/overflow-right", 0, "BOOL");
|
||||
var overflow = props.globals.initNode("/ECAM/warnings/overflow", 0, "BOOL");
|
||||
|
||||
var dc_ess = props.globals.getNode("/systems/electrical/bus/dc-ess", 1);
|
||||
|
||||
var lights = [props.globals.initNode("/ECAM/warnings/master-warning-light", 0, "BOOL"), props.globals.initNode("/ECAM/warnings/master-caution-light", 0, "BOOL")];
|
||||
var aural = [props.globals.initNode("/sim/sound/warnings/crc", 0, "BOOL"), props.globals.initNode("/sim/sound/warnings/chime", 0, "BOOL")];
|
||||
var warningFlash = props.globals.initNode("/ECAM/warnings/master-warning-flash", 0, "BOOL");
|
||||
|
||||
var lineIndex = 0;
|
||||
var rightLineIndex = 0;
|
||||
var statusIndex = 0;
|
||||
|
||||
var warning = {
|
||||
msg: "",
|
||||
active: 0,
|
||||
colour: "",
|
||||
aural: "",
|
||||
light: "",
|
||||
noRepeat: 0,
|
||||
new: func(msg,active,colour,aural,light,noRepeat) {
|
||||
new: func(msg,colour,aural,light) {
|
||||
var t = {parents:[warning]};
|
||||
|
||||
t.msg = msg;
|
||||
t.active = active;
|
||||
t.active = 0;
|
||||
t.colour = colour;
|
||||
t.aural = aural;
|
||||
t.light = light;
|
||||
t.noRepeat = noRepeat;
|
||||
t.noRepeat = 0;
|
||||
t.clearFlag = 0;
|
||||
|
||||
return t
|
||||
},
|
||||
write: func() {
|
||||
line = 1;
|
||||
while (getprop("/ECAM/msg/line" ~ line) != "" and line <= 8) {
|
||||
line = line + 1; # go to next line until empty line
|
||||
if (me.active == 0) {return;}
|
||||
lineIndex = 0;
|
||||
while (lineIndex < 7 and lines[lineIndex].getValue() != "") {
|
||||
lineIndex = lineIndex + 1; # go to next line until empty line
|
||||
}
|
||||
|
||||
if (line > 8) {
|
||||
setprop("/ECAM/warnings/overflow-left", 1);
|
||||
} elsif (getprop("/ECAM/warnings/overflow-left") == 1) {
|
||||
setprop("/ECAM/warnings/overflow-left", 0);
|
||||
if (lineIndex == 7) {
|
||||
leftOverflow.setBoolValue(1);
|
||||
} elsif (leftOverflow.getBoolValue()) {
|
||||
leftOverflow.setBoolValue(0);
|
||||
}
|
||||
|
||||
if (getprop("/ECAM/msg/line" ~ line) == "" and me.active == 1 and me.msg != "" and line <= 8) { # at empty line. Also checks if message is not blank to allow for some warnings with no displayed msg, eg stall
|
||||
setprop("/ECAM/msg/line" ~ line, me.msg);
|
||||
setprop("/ECAM/msg/linec" ~ line, me.colour);
|
||||
if (lines[lineIndex].getValue() == "" and me.msg != "" and lineIndex <= 7) { # at empty line. Also checks if message is not blank to allow for some warnings with no displayed msg, eg stall
|
||||
lines[lineIndex].setValue(me.msg);
|
||||
linesCol[lineIndex].setValue(me.colour);
|
||||
}
|
||||
},
|
||||
warnlight: func() {
|
||||
if ((me.light != "none" or me.light != "") and me.noRepeat == 0 and me.active == 1) { # only toggle light once per message, allows canceling
|
||||
setprop("/ECAM/warnings/master-"~me.light~"-light", 1);
|
||||
if (me.light >= 1) {return;}
|
||||
if (me.active == 1 and me.noRepeat == 0) { # only toggle light once per message, allows canceling
|
||||
lights[me.light].setBoolValue(1);
|
||||
me.noRepeat = 1;
|
||||
}
|
||||
},
|
||||
sound: func() {
|
||||
if (me.active and (me.aural != "none" or me.aural != "") and getprop("/sim/sound/warnings/"~me.aural) != 1) {
|
||||
setprop("/sim/sound/warnings/"~me.aural, 1);
|
||||
} else if (!me.active or me.aural == "none") {
|
||||
if (getprop("/sim/sound/warnings/"~me.aural) == 1) {
|
||||
setprop("/sim/sound/warnings/"~me.aural, 0);
|
||||
if (me.aural > 1) {return;}
|
||||
if (me.active == 1) {
|
||||
if (!aural[me.aural].getBoolValue()) {
|
||||
aural[me.aural].setBoolValue(1);
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
var memo = {
|
||||
msg: "",
|
||||
active: 0,
|
||||
colour: "",
|
||||
new: func(msg,active,colour) {
|
||||
new: func(msg,colour) {
|
||||
var t = {parents:[memo]};
|
||||
|
||||
t.msg = msg;
|
||||
t.active = active;
|
||||
t.active = 0;
|
||||
t.colour = colour;
|
||||
|
||||
return t
|
||||
},
|
||||
write: func() {
|
||||
right_line = 1;
|
||||
while (getprop("/ECAM/rightmsg/line" ~ right_line) != "" and right_line <= 8) {
|
||||
right_line = right_line + 1; # go to next line until empty line
|
||||
}
|
||||
|
||||
if (right_line > 8) {
|
||||
setprop("/ECAM/warnings/overflow-right", 1);
|
||||
} elsif (getprop("/ECAM/warnings/overflow-right") == 1) {
|
||||
setprop("/ECAM/warnings/overflow-right", 0);
|
||||
}
|
||||
|
||||
if (getprop("/ECAM/rightmsg/line" ~ right_line) == "" and me.active == 1 and right_line <= 8) { # at empty line
|
||||
setprop("/ECAM/rightmsg/line" ~ right_line, me.msg);
|
||||
setprop("/ECAM/rightmsg/linec" ~ right_line, me.colour);
|
||||
if (me.active == 1) {
|
||||
rightLineIndex = 0;
|
||||
while (rightLines[rightLineIndex].getValue() != "" and rightLineIndex <= 7) {
|
||||
rightLineIndex = rightLineIndex + 1; # go to next line until empty line
|
||||
}
|
||||
|
||||
if (rightLineIndex > 7) {
|
||||
rightOverflow.setBoolValue(1);
|
||||
} elsif (rightOverflow.getBoolValue()) {
|
||||
rightOverflow.setBoolValue(0);
|
||||
}
|
||||
|
||||
if (rightLines[rightLineIndex].getValue() == "" and rightLineIndex <= 7) { # at empty line
|
||||
rightLines[rightLineIndex].setValue(me.msg);
|
||||
rightLinesCol[rightLineIndex].setValue(me.colour);
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
var status = {
|
||||
msg: "",
|
||||
active: 0,
|
||||
colour: "",
|
||||
new: func(msg,active,colour) {
|
||||
new: func(msg,colour) {
|
||||
var t = {parents:[status]};
|
||||
|
||||
t.msg = msg;
|
||||
t.active = active;
|
||||
t.active = 0;
|
||||
t.colour = colour;
|
||||
|
||||
return t
|
||||
},
|
||||
write: func() {
|
||||
status_line = 1;
|
||||
while (getprop("/ECAM/status/line" ~ status_line) != "" and status_line <= 8) {
|
||||
status_line = status_line + 1; # go to next line until empty line
|
||||
}
|
||||
|
||||
if (getprop("/ECAM/status/line" ~ status_line) == "" and me.active == 1 and status_line <= 8) { # at empty line
|
||||
setprop("/ECAM/status/line" ~ status_line, me.msg);
|
||||
setprop("/ECAM/status/linec" ~ status_line, me.colour);
|
||||
if (me.active == 1) {
|
||||
statusIndex = 0;
|
||||
while (statusLines[statusIndex].getValue() != "" and statusIndex <= 7) {
|
||||
statusIndex = statusIndex + 1; # go to next line until empty line
|
||||
}
|
||||
|
||||
if (statusLines[statusIndex].getValue() == "" and statusIndex <= 7) { # at empty line
|
||||
statusLines[rightLineIndex].setValue(me.msg);
|
||||
statusLinesCol[rightLineIndex].setValue(me.colour);
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
|
@ -137,7 +137,6 @@ var ECAM_controller = {
|
|||
},
|
||||
loop: func() {
|
||||
# check active messages
|
||||
# config_warnings();
|
||||
messages_priority_3();
|
||||
messages_priority_2();
|
||||
messages_priority_1();
|
||||
|
@ -148,12 +147,12 @@ var ECAM_controller = {
|
|||
# clear display momentarily
|
||||
|
||||
|
||||
for(var n = 1; n <= 8; n += 1) {
|
||||
setprop("/ECAM/msg/line" ~ n, "");
|
||||
for(var n = 0; n <= 7; n += 1) {
|
||||
lines[n].setValue("");
|
||||
}
|
||||
|
||||
for(var n = 1; n <= 8; n += 1) {
|
||||
setprop("/ECAM/rightmsg/line" ~ n, "");
|
||||
for(var n = 0; n <= 7; n += 1) {
|
||||
rightLines[n].setValue("");
|
||||
}
|
||||
|
||||
# write to ECAM
|
||||
|
@ -164,7 +163,7 @@ var ECAM_controller = {
|
|||
w.sound();
|
||||
}
|
||||
|
||||
if (getprop("/ECAM/msg/line1") == "") { # disable left memos if a warning exists. Warnings are processed first, so this stops leftmemos if line1 is not empty
|
||||
if (lines[0].getValue() == "") { # disable left memos if a warning exists. Warnings are processed first, so this stops leftmemos if line1 is not empty
|
||||
foreach (var l; leftmemos.vector) {
|
||||
l.write();
|
||||
}
|
||||
|
@ -182,10 +181,10 @@ var ECAM_controller = {
|
|||
m.write();
|
||||
}
|
||||
|
||||
if (getprop("/ECAM/warnings/overflow-left") == 1 or getprop("/ECAM/warnings/overflow-right") == 1) {
|
||||
setprop("/ECAM/warnings/overflow", 1);
|
||||
} elsif (getprop("/ECAM/warnings/overflow-left") == 0 and getprop("/ECAM/warnings/overflow-right") == 0) {
|
||||
setprop("/ECAM/warnings/overflow", 0);
|
||||
if (leftOverflow.getBoolValue() == 1 or leftOverflow.getBoolValue() == 1) {
|
||||
overflow.setBoolValue(1);
|
||||
} elsif (leftOverflow.getBoolValue() == 0 and leftOverflow.getBoolValue() == 0) {
|
||||
overflow.setBoolValue(0);
|
||||
}
|
||||
},
|
||||
reset: func() {
|
||||
|
@ -220,12 +219,27 @@ var ECAM_controller = {
|
|||
}
|
||||
},
|
||||
clear: func() {
|
||||
print("Clear!");
|
||||
foreach (var w; warnings.vector) {
|
||||
if (w.active == 1) {
|
||||
# if (w.msg == "ENG DUAL FAILURE") { continue; }
|
||||
w.clearFlag = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
recall: func() {
|
||||
foreach (var w; warnings.vector) {
|
||||
if (w.clearFlag == 1) {
|
||||
w.noRepeat = 0;
|
||||
w.clearFlag = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
setlistener("/systems/electrical/bus/dc-ess", func {
|
||||
if (getprop("/systems/electrical/bus/dc-ess") < 25) {
|
||||
if (dc_ess.getValue() < 25) {
|
||||
ECAM_controller.reset();
|
||||
}
|
||||
}, 0, 0);
|
||||
|
@ -236,25 +250,22 @@ var ECAMloopTimer = maketimer(0.2, func {
|
|||
|
||||
# Flash Master Warning Light
|
||||
var warnTimer = maketimer(0.25, func {
|
||||
flash = getprop("/ECAM/warnings/master-warning-flash");
|
||||
light = getprop("/ECAM/warnings/master-warning-light");
|
||||
if (!light) {
|
||||
if (!lights[0].getBoolValue()) {
|
||||
warnTimer.stop();
|
||||
setprop("/ECAM/warnings/master-warning-flash", 0);
|
||||
} else if (flash != 1) {
|
||||
setprop("/ECAM/warnings/master-warning-flash", 1);
|
||||
warningFlash.setBoolValue(0);
|
||||
} else if (!warningFlash.getBoolValue()) {
|
||||
warningFlash.setBoolValue(1);
|
||||
} else {
|
||||
setprop("/ECAM/warnings/master-warning-flash", 0);
|
||||
warningFlash.setBoolValue(0);
|
||||
}
|
||||
});
|
||||
|
||||
setlistener("/ECAM/warnings/master-warning-light", func {
|
||||
light = getprop("/ECAM/warnings/master-warning-light");
|
||||
if (light == 1) {
|
||||
setprop("/ECAM/warnings/master-warning-flash", 0);
|
||||
if (lights[0].getBoolValue()) {
|
||||
warningFlash.setBoolValue(0);
|
||||
warnTimer.start();
|
||||
} else {
|
||||
warnTimer.stop();
|
||||
setprop("/ECAM/warnings/master-warning-flash", 0);
|
||||
warningFlash.setBoolValue(0);
|
||||
}
|
||||
}, 0, 0);
|
||||
|
|
|
@ -2,24 +2,228 @@
|
|||
|
||||
# Copyright (c) 2019 Jonathan Redpath (legoboyvdlp)
|
||||
|
||||
# props.nas:
|
||||
|
||||
var dualFailNode = props.globals.initNode("/ECAM/dual-failure-enabled", 0 "BOOL");
|
||||
var phaseNode = props.globals.getNode("/ECAM/warning-phase", 1);
|
||||
var leftMsgNode = props.globals.getNode("/ECAM/left-msg", 1);
|
||||
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 fac1Node = props.globals.getNode("/controls/fctl/fac1", 1);
|
||||
|
||||
# local variables
|
||||
var phaseVar = nil;
|
||||
var dualFailFACActive = 1;
|
||||
|
||||
var messages_priority_3 = func {
|
||||
phaseVar = phaseNode.getValue();
|
||||
|
||||
# FCTL
|
||||
if (getprop("/ECAM/warning-phase") == 6 and getprop("/controls/flight/flap-lever") != 0 and getprop("/instrumentation/altimeter/indicated-altitude-ft") > 22000) {
|
||||
if ((flap_not_zero.clearFlag == 0) and phaseVar == 6 and getprop("/controls/flight/flap-lever") != 0 and getprop("/instrumentation/altimeter/indicated-altitude-ft") > 22000) {
|
||||
flap_not_zero.active = 1;
|
||||
} else {
|
||||
flap_not_zero.active = 0;
|
||||
flap_not_zero.noRepeat = 0;
|
||||
flap_not_zero.clearFlag = 0;
|
||||
}
|
||||
|
||||
# ENG DUAL FAIL
|
||||
|
||||
if (phaseVar >= 5 and phaseVar <= 7 and dualFailNode.getBoolValue()) {
|
||||
dualFail.active = 1;
|
||||
} elsif (dualFail.clearFlag == 1) {
|
||||
dualFail.active = 0;
|
||||
dualFail.noRepeat = 0;
|
||||
dualFail.clearFlag = 0;
|
||||
|
||||
dualFailFACActive = 1; # reset FAC local variable
|
||||
}
|
||||
|
||||
if (dualFail.active == 1) {
|
||||
if (getprop("/controls/engines/engine-start-switch") != 2 and dualFailModeSel.clearFlag == 0) {
|
||||
dualFailModeSel.active = 1;
|
||||
} else {
|
||||
dualFailModeSel.active = 0;
|
||||
}
|
||||
|
||||
if (getprop("/fdm/jsbsim/fcs/throttle-lever[0]") > 0.01 and getprop("/fdm/jsbsim/fcs/throttle-lever[1]") > 0.01 and dualFailLevers.clearFlag == 0) {
|
||||
dualFailLevers.active = 1;
|
||||
} else {
|
||||
dualFailLevers.active = 0;
|
||||
}
|
||||
|
||||
if (getprop("/options/eng") == "IAE" and dualFailRelightSPD.clearFlag == 0) {
|
||||
dualFailRelightSPD.active = 1;
|
||||
} else {
|
||||
dualFailRelightSPD.active = 0;
|
||||
}
|
||||
|
||||
if (getprop("/options/eng") != "IAE" and dualFailRelightSPDCFM.clearFlag == 0) {
|
||||
dualFailRelightSPDCFM.active = 1;
|
||||
} else {
|
||||
dualFailRelightSPDCFM.active = 0;
|
||||
}
|
||||
|
||||
if (emerGen.getValue() == 0 and dualFailElec.clearFlag == 0) {
|
||||
dualFailElec.active = 1;
|
||||
} else {
|
||||
dualFailElec.active = 0;
|
||||
}
|
||||
|
||||
if (dualFailRadio.clearFlag == 0) {
|
||||
dualFailRadio.active = 1;
|
||||
} else {
|
||||
dualFailRadio.active = 0;
|
||||
}
|
||||
|
||||
if (dualFailFACActive == 1 and dualFailFAC.clearFlag == 0) {
|
||||
dualFailFAC.active = 1;
|
||||
} else {
|
||||
dualFailFAC.active = 0;
|
||||
}
|
||||
|
||||
if (dualFailAPU.clearFlag == 0) { # assumption - not cleared till you clear APU message
|
||||
dualFailRelight.active = 1;
|
||||
dualFailMasters.active = 1;
|
||||
dualFailSuccess.active = 1;
|
||||
dualFailAPU.active = 1;
|
||||
} else {
|
||||
dualFailRelight.active = 1;
|
||||
dualFailMasters.active = 1;
|
||||
dualFailSuccess.active = 1;
|
||||
dualFailAPU.active = 1;
|
||||
}
|
||||
|
||||
if (dualFailMastersAPU.clearFlag == 0) {
|
||||
dualFailMastersAPU.active = 1;
|
||||
} else {
|
||||
dualFailMastersAPU.active = 0;
|
||||
}
|
||||
|
||||
if (dualFailSPDGD.clearFlag == 0) {
|
||||
dualFailSPDGD.active = 1;
|
||||
} else {
|
||||
dualFailSPDGD.active = 0;
|
||||
}
|
||||
|
||||
if (dualFailflap.clearFlag == 0) {
|
||||
dualFailAPPR.active = 1;
|
||||
} else {
|
||||
dualFailAPPR.active = 0;
|
||||
}
|
||||
|
||||
if (dualFailcabin.clearFlag == 0) {
|
||||
dualFailcabin.active = 1;
|
||||
} else {
|
||||
dualFailcabin.active = 0;
|
||||
}
|
||||
|
||||
if (dualFailrudd.clearFlag == 0) {
|
||||
dualFailrudd.active = 1;
|
||||
} else {
|
||||
dualFailrudd.active = 0;
|
||||
}
|
||||
|
||||
if (dualFailflap.clearFlag == 0) {
|
||||
dualFailflap.active = 1;
|
||||
} else {
|
||||
dualFailflap.active = 0;
|
||||
}
|
||||
|
||||
if (dualFailfinalspeed.clearFlag == 0) {
|
||||
dualFail5000.active = 1;
|
||||
} else {
|
||||
dualFail5000.active = 0;
|
||||
}
|
||||
|
||||
if (dualFailgear.clearFlag == 0) {
|
||||
dualFailgear.active = 1;
|
||||
} else {
|
||||
dualFailgear.active = 0;
|
||||
}
|
||||
|
||||
if (dualFailfinalspeed.clearFlag == 0) {
|
||||
dualFailfinalspeed.active = 1;
|
||||
} else {
|
||||
dualFailfinalspeed.active = 0;
|
||||
}
|
||||
|
||||
dualFailtouch.active = 1;
|
||||
dualFailmasteroff.active = 1;
|
||||
dualFailapuoff.active = 1;
|
||||
dualFailevac.active = 1;
|
||||
dualFailbatt.active = 1;
|
||||
}
|
||||
|
||||
# CONFIG
|
||||
if ((slats_config.clearFlag == 0) and (getprop("/controls/flight/flap-lever") == 0 or getprop("/controls/flight/flap-lever")) == 4 and phaseVar >= 3 and phaseVar <= 4) {
|
||||
slats_config.active = 1;
|
||||
slats_config_1.active = 1;
|
||||
} else {
|
||||
slats_config.active = 0;
|
||||
slats_config.noRepeat = 0;
|
||||
slats_config_1.active = 0;
|
||||
slats_config_1.noRepeat = 0;
|
||||
}
|
||||
|
||||
if ((flaps_config.clearFlag == 0) and (getprop("/controls/flight/flap-lever") == 0 or getprop("/controls/flight/flap-lever") == 4) and phaseVar >= 3 and phaseVar <= 4) {
|
||||
flaps_config.active = 1;
|
||||
flaps_config_1.active = 1;
|
||||
} else {
|
||||
flaps_config.active = 0;
|
||||
flaps_config.noRepeat = 0;
|
||||
flaps_config_1.active = 0;
|
||||
flaps_config_1.noRepeat = 0;
|
||||
}
|
||||
|
||||
if ((spd_brk_config.clearFlag == 0) and getprop("/controls/flight/speedbrake") != 0 and phaseVar >= 3 and phaseVar <= 4) {
|
||||
spd_brk_config.active = 1;
|
||||
spd_brk_config_1.active = 1;
|
||||
} else {
|
||||
spd_brk_config.active = 0;
|
||||
spd_brk_config.noRepeat = 0;
|
||||
spd_brk_config_1.active = 0;
|
||||
spd_brk_config_1.noRepeat = 0;
|
||||
}
|
||||
|
||||
if ((pitch_trim_config.clearFlag == 0) and (getprop("/fdm/jsbsim/hydraulics/elevator-trim/final-deg") > 1.75 or getprop("/fdm/jsbsim/hydraulics/elevator-trim/final-deg") < -3.65) and phaseVar >= 3 and phaseVar <= 4) {
|
||||
pitch_trim_config.active = 1;
|
||||
pitch_trim_config_1.active = 1;
|
||||
} else {
|
||||
pitch_trim_config.active = 0;
|
||||
pitch_trim_config.noRepeat = 0;
|
||||
pitch_trim_config_1.active = 0;
|
||||
pitch_trim_config_1.noRepeat = 0;
|
||||
}
|
||||
|
||||
if ((rud_trim_config.clearFlag == 0) and (getprop("/fdm/jsbsim/hydraulics/rudder/trim-cmd-deg") < -3.55 or getprop("/fdm/jsbsim/hydraulics/rudder/trim-cmd-deg") > 3.55) and phaseVar >= 3 and phaseVar <= 4) {
|
||||
rud_trim_config.active = 1;
|
||||
rud_trim_config_1.active = 1;
|
||||
} else {
|
||||
rud_trim_config.active = 0;
|
||||
rud_trim_config.noRepeat = 0;
|
||||
rud_trim_config_1.active = 0;
|
||||
rud_trim_config_1.noRepeat = 0;
|
||||
}
|
||||
|
||||
if ((park_brk_config.clearFlag == 0) and getprop("/controls/gear/brake-parking") == 1 and phaseVar >= 3 and phaseVar <= 4) {
|
||||
park_brk_config.active = 1;
|
||||
} else {
|
||||
park_brk_config.active = 0;
|
||||
park_brk_config.noRepeat = 0;
|
||||
}
|
||||
|
||||
# AUTOFLT
|
||||
if (getprop("/it-autoflight/output/ap-warning") == 2) {
|
||||
if ((ap_offw.clearFlag == 0) and apWarn.getValue() == 2) {
|
||||
ap_offw.active = 1;
|
||||
} else {
|
||||
ap_offw.active = 0;
|
||||
ap_offw.noRepeat = 0;
|
||||
}
|
||||
|
||||
if (getprop("/ECAM/warning-phase") >= 5 and getprop("/ECAM/warning-phase") <= 7 and getprop("/systems/thrust/thr-locked") == 1) {
|
||||
if ((athr_lock.clearFlag == 0) and phaseVar >= 5 and phaseVar <= 7 and getprop("/systems/thrust/thr-locked") == 1) {
|
||||
athr_lock.active = 1;
|
||||
athr_lock_1.active = 1;
|
||||
} else {
|
||||
|
@ -29,7 +233,7 @@ var messages_priority_3 = func {
|
|||
athr_lock_1.noRepeat = 0;
|
||||
}
|
||||
|
||||
if (getprop("/it-autoflight/output/athr-warning") == 2 and getprop("/ECAM/warning-phase") != 4 and getprop("/ECAM/warning-phase") != 8 and getprop("/ECAM/warning-phase") != 10) {
|
||||
if ((athr_offw.clearFlag == 0) and athrWarn.getValue() == 2 and phaseVar != 4 and phaseVar != 8 and phaseVar != 10) {
|
||||
athr_offw.active = 1;
|
||||
athr_offw_1.active = 1;
|
||||
} else {
|
||||
|
@ -39,7 +243,7 @@ var messages_priority_3 = func {
|
|||
athr_offw_1.noRepeat = 0;
|
||||
}
|
||||
|
||||
if (getprop("/it-autoflight/output/athr") == 1 and ((getprop("/systems/thrust/eng-out") != 1 and (getprop("/systems/thrust/state1") == "MAN" or getprop("/systems/thrust/state2") == "MAN")) or (getprop("/systems/thrust/eng-out") == 1 and (getprop("/systems/thrust/state1") == "MAN" or getprop("/systems/thrust/state2") == "MAN" or (getprop("/systems/thrust/state1") == "MAN THR" and getprop("/controls/engines/engine[0]/throttle-pos") <= 0.83) or (getprop("/systems/thrust/state2") == "MAN THR" and getprop("/controls/engines/engine[0]/throttle-pos") <= 0.83)))) and (getprop("/ECAM/warning-phase") >= 5 and getprop("/ECAM/warning-phase") <= 7)) {
|
||||
if ((athr_lim.clearFlag == 0) and getprop("/it-autoflight/output/athr") == 1 and ((getprop("/systems/thrust/eng-out") != 1 and (getprop("/systems/thrust/state1") == "MAN" or getprop("/systems/thrust/state2") == "MAN")) or (getprop("/systems/thrust/eng-out") == 1 and (getprop("/systems/thrust/state1") == "MAN" or getprop("/systems/thrust/state2") == "MAN" or (getprop("/systems/thrust/state1") == "MAN THR" and getprop("/controls/engines/engine[0]/throttle-pos") <= 0.83) or (getprop("/systems/thrust/state2") == "MAN THR" and getprop("/controls/engines/engine[0]/throttle-pos") <= 0.83)))) and (phaseVar >= 5 and phaseVar <= 7)) {
|
||||
athr_lim.active = 1;
|
||||
athr_lim_1.active = 1;
|
||||
} else {
|
||||
|
@ -55,7 +259,8 @@ var messages_priority_1 = func {}
|
|||
var messages_priority_0 = func {}
|
||||
|
||||
var messages_memo = func {
|
||||
if (getprop("/services/fuel-truck/enable") == 1 and getprop("/ECAM/left-msg") != "TO-MEMO" and getprop("/ECAM/left-msg") != "LDG-MEMO") {
|
||||
phaseVar = phaseNode.getValue();
|
||||
if (getprop("/services/fuel-truck/enable") == 1 and leftMsgNode.getValue() != "TO-MEMO" and leftMsgNode.getValue() != "LDG-MEMO") {
|
||||
refuelg.active = 1;
|
||||
} else {
|
||||
refuelg.active = 0;
|
||||
|
@ -67,25 +272,25 @@ var messages_memo = func {
|
|||
gnd_splrs.active = 0;
|
||||
}
|
||||
|
||||
if (getprop("/controls/lighting/seatbelt-sign") == 1 and getprop("/ECAM/left-msg") != "TO-MEMO" and getprop("/ECAM/left-msg") != "LDG-MEMO") {
|
||||
if (getprop("/controls/lighting/seatbelt-sign") == 1 and leftMsgNode.getValue() != "TO-MEMO" and leftMsgNode.getValue() != "LDG-MEMO") {
|
||||
seatbelts.active = 1;
|
||||
} else {
|
||||
seatbelts.active = 0;
|
||||
}
|
||||
|
||||
if (getprop("/controls/lighting/no-smoking-sign") == 1 and getprop("/ECAM/left-msg") != "TO-MEMO" and getprop("/ECAM/left-msg") != "LDG-MEMO") { # should go off after takeoff assuming switch is in auto due to old logic from the days when smoking was allowed!
|
||||
if (getprop("/controls/lighting/no-smoking-sign") == 1 and leftMsgNode.getValue() != "TO-MEMO" and leftMsgNode.getValue() != "LDG-MEMO") { # should go off after takeoff assuming switch is in auto due to old logic from the days when smoking was allowed!
|
||||
nosmoke.active = 1;
|
||||
} else {
|
||||
nosmoke.active = 0;
|
||||
}
|
||||
|
||||
if (getprop("/controls/lighting/strobe") == 0 and getprop("/gear/gear[1]/wow") == 0 and getprop("/ECAM/left-msg") != "TO-MEMO" and getprop("/ECAM/left-msg") != "LDG-MEMO") { # todo: use gear branch properties
|
||||
if (getprop("/controls/lighting/strobe") == 0 and getprop("/gear/gear[1]/wow") == 0 and leftMsgNode.getValue() != "TO-MEMO" and leftMsgNode.getValue() != "LDG-MEMO") { # todo: use gear branch properties
|
||||
strobe_lt_off.active = 1;
|
||||
} else {
|
||||
strobe_lt_off.active = 0;
|
||||
}
|
||||
|
||||
if (getprop("/consumables/fuel/total-fuel-lbs") < 6000 and getprop("/ECAM/left-msg") != "TO-MEMO" and getprop("/ECAM/left-msg") != "LDG-MEMO") { # assuming US short ton 2000lb
|
||||
if (getprop("/consumables/fuel/total-fuel-lbs") < 6000 and leftMsgNode.getValue() != "TO-MEMO" and leftMsgNode.getValue() != "LDG-MEMO") { # assuming US short ton 2000lb
|
||||
fob_3T.active = 1;
|
||||
} else {
|
||||
fob_3T.active = 0;
|
||||
|
@ -100,67 +305,62 @@ var messages_memo = func {
|
|||
}
|
||||
|
||||
var messages_right_memo = func {
|
||||
if (getprop("/ECAM/warning-phase") >= 3 and getprop("/ECAM/warning-phase") <= 5) {
|
||||
phaseVar = phaseNode.getValue();
|
||||
if (phaseVar >= 3 and phaseVar <= 5) {
|
||||
to_inhibit.active = 1;
|
||||
} else {
|
||||
to_inhibit.active = 0;
|
||||
}
|
||||
|
||||
if (getprop("/ECAM/warning-phase") >= 7 and getprop("/ECAM/warning-phase") <= 7) {
|
||||
if (phaseVar >= 7 and phaseVar <= 7) {
|
||||
ldg_inhibit.active = 1;
|
||||
} else {
|
||||
ldg_inhibit.active = 0;
|
||||
}
|
||||
|
||||
if ((getprop("/gear/gear[1]/wow") == 0) and (getprop("/systems/failures/cargo-aft-fire") == 1 or getprop("/systems/failures/cargo-fwd-fire") == 1) or (((getprop("/systems/hydraulic/green-psi") < 1500 and getprop("/engines/engine[0]/state") == 3) and (getprop("/systems/hydraulic/yellow-psi") < 1500 and getprop("/engines/engine[1]/state") == 3)) or ((getprop("/systems/hydraulic/green-psi") < 1500 or getprop("/systems/hydraulic/yellow-psi") < 1500) and (getprop("/engines/engine[0]/state") == 3) and getprop("/engines/engine[1]/state") == 3) and getprop("/ECAM/warning-phase") >= 3 and getprop("/ECAM/warning-phase") <= 8)) {
|
||||
land_asap_r.active = 1;
|
||||
} else {
|
||||
land_asap_r.active = 0;
|
||||
}
|
||||
|
||||
if ((getprop("/gear/gear[1]/wow") == 0) and (getprop("/systems/failures/cargo-aft-fire") == 1 or getprop("/systems/failures/cargo-fwd-fire") == 1) or (((getprop("/systems/hydraulic/green-psi") < 1500 and getprop("/engines/engine[0]/state") == 3) and (getprop("/systems/hydraulic/yellow-psi") < 1500 and getprop("/engines/engine[1]/state") == 3)) or ((getprop("/systems/hydraulic/green-psi") < 1500 or getprop("/systems/hydraulic/yellow-psi") < 1500) and (getprop("/engines/engine[0]/state") == 3) and getprop("/engines/engine[1]/state") == 3) and getprop("/ECAM/warning-phase") >= 3 and getprop("/ECAM/warning-phase") <= 8)) {
|
||||
if ((getprop("/gear/gear[1]/wow") == 0) and (getprop("/systems/failures/cargo-aft-fire") == 1 or getprop("/systems/failures/cargo-fwd-fire") == 1) or (((getprop("/systems/hydraulic/green-psi") < 1500 and getprop("/engines/engine[0]/state") == 3) and (getprop("/systems/hydraulic/yellow-psi") < 1500 and getprop("/engines/engine[1]/state") == 3)) or ((getprop("/systems/hydraulic/green-psi") < 1500 or getprop("/systems/hydraulic/yellow-psi") < 1500) and getprop("/engines/engine[0]/state") == 3 and getprop("/engines/engine[1]/state") == 3) and phaseVar >= 3 and phaseVar <= 8)) {
|
||||
# todo: emer elec
|
||||
land_asap_r.active = 1;
|
||||
} else {
|
||||
land_asap_r.active = 0;
|
||||
}
|
||||
|
||||
if (land_asap_r.active == 0 and getprop("/gear/gear[1]/wow") == 0 and ((getprop("/fdm/jsbsim/propulsion/tank[0]/contents-lbs") < 1650 and getprop("/fdm/jsbsim/propulsion/tank[1]/contents-lbs") < 1650) or ((getprop("/systems/electrical/bus/dc2") < 25 and (getprop("/systems/failures/elac1") == 1 or getprop("/systems/failures/sec1") == 1)) or (getprop("/systems/hydraulic/green-psi") < 1500 and (getprop("/systems/failures/elac1") == 1 and getprop("/systems/failures/sec1") == 1)) or (getprop("/systems/hydraulic/yellow-psi") < 1500 and (getprop("/systems/failures/elac1") == 1 and getprop("/systems/failures/sec1") == 1)) or (getprop("/systems/hydraulic/blue-psi") < 1500 and (getprop("/systems/failures/elac2") == 1 and getprop("/systems/failures/sec2") == 1))) or (getprop("/ECAM/warning-phase") >= 3 and getprop("/ECAM/warning-phase") <= 8 and (getprop("/engines/engine[0]/state") != 3 or getprop("/engines/engine[1]/state") != 3)))) {
|
||||
if (land_asap_r.active == 0 and getprop("/gear/gear[1]/wow") == 0 and ((getprop("/fdm/jsbsim/propulsion/tank[0]/contents-lbs") < 1650 and getprop("/fdm/jsbsim/propulsion/tank[1]/contents-lbs") < 1650) or ((getprop("/systems/electrical/bus/dc2") < 25 and (getprop("/systems/failures/elac1") == 1 or getprop("/systems/failures/sec1") == 1)) or (getprop("/systems/hydraulic/green-psi") < 1500 and (getprop("/systems/failures/elac1") == 1 and getprop("/systems/failures/sec1") == 1)) or (getprop("/systems/hydraulic/yellow-psi") < 1500 and (getprop("/systems/failures/elac1") == 1 and getprop("/systems/failures/sec1") == 1)) or (getprop("/systems/hydraulic/blue-psi") < 1500 and (getprop("/systems/failures/elac2") == 1 and getprop("/systems/failures/sec2") == 1))) or (phaseVar >= 3 and phaseVar <= 8 and (getprop("/engines/engine[0]/state") != 3 or getprop("/engines/engine[1]/state") != 3)))) {
|
||||
land_asap_a.active = 1;
|
||||
} else {
|
||||
land_asap_a.active = 0;
|
||||
}
|
||||
|
||||
if (libraries.ap_active == 1 and getprop("/it-autoflight/output/ap-warning") == 1) {
|
||||
if (libraries.ap_active == 1 and apWarn.getValue() == 1) {
|
||||
ap_off.active = 1;
|
||||
} else {
|
||||
ap_off.active = 0;
|
||||
}
|
||||
|
||||
if (libraries.athr_active == 1 and getprop("/it-autoflight/output/athr-warning") == 1) {
|
||||
if (libraries.athr_active == 1 and athrWarn.getValue() == 1) {
|
||||
athr_off.active = 1;
|
||||
} else {
|
||||
athr_off.active = 0;
|
||||
}
|
||||
|
||||
if ((getprop("/ECAM/warning-phase") >= 2 and getprop("/ECAM/warning-phase") <= 7) and getprop("controls/flight/speedbrake") != 0) {
|
||||
if ((phaseVar >= 2 and phaseVar <= 7) and getprop("controls/flight/speedbrake") != 0) {
|
||||
spd_brk.active = 1;
|
||||
} else {
|
||||
spd_brk.active = 0;
|
||||
}
|
||||
|
||||
if (getprop("/systems/thrust/state1") == "IDLE" and getprop("/systems/thrust/state2") == "IDLE" and getprop("/ECAM/warning-phase") >= 6 and getprop("/ECAM/warning-phase") <= 7) {
|
||||
if (getprop("/systems/thrust/state1") == "IDLE" and getprop("/systems/thrust/state2") == "IDLE" and phaseVar >= 6 and phaseVar <= 7) {
|
||||
spd_brk.colour = "g";
|
||||
} else if ((getprop("/ECAM/warning-phase") >= 2 and getprop("/ECAM/warning-phase") <= 5) or ((getprop("/systems/thrust/state1") != "IDLE" or getprop("/systems/thrust/state2") != "IDLE") and (getprop("/ECAM/warning-phase") >= 6 and getprop("/ECAM/warning-phase") <= 7))) {
|
||||
} else if ((phaseVar >= 2 and phaseVar <= 5) or ((getprop("/systems/thrust/state1") != "IDLE" or getprop("/systems/thrust/state2") != "IDLE") and (phaseVar >= 6 and phaseVar <= 7))) {
|
||||
spd_brk.colour = "a";
|
||||
}
|
||||
|
||||
if (getprop("/controls/gear/brake-parking") == 1 and getprop("/ECAM/warning-phase") != 3) {
|
||||
if (getprop("/controls/gear/brake-parking") == 1 and phaseVar != 3) {
|
||||
park_brk.active = 1;
|
||||
} else {
|
||||
park_brk.active = 0;
|
||||
}
|
||||
if (getprop("/ECAM/warning-phase") >= 4 and getprop("/ECAM/warning-phase") <= 8) {
|
||||
if (phaseVar >= 4 and phaseVar <= 8) {
|
||||
park_brk.colour = "a";
|
||||
} else {
|
||||
park_brk.colour = "g";
|
||||
|
@ -178,7 +378,7 @@ var messages_right_memo = func {
|
|||
rat.active = 0;
|
||||
}
|
||||
|
||||
if (getprop("/ECAM/warning-phase") >= 1 and getprop("/ECAM/warning-phase") <= 2) {
|
||||
if (phaseVar >= 1 and phaseVar <= 2) {
|
||||
rat.colour = "a";
|
||||
} else {
|
||||
rat.colour = "g";
|
||||
|
@ -196,7 +396,7 @@ var messages_right_memo = func {
|
|||
nw_strg_disc.colour = "g";
|
||||
}
|
||||
|
||||
if (getprop("/controls/electrical/switches/emer-gen") == 1 and getprop("/controls/hydraulic/rat-deployed") == 1 and !wow) {
|
||||
if (getprop("/controls/electrical/switches/emer-gen") == 1 and getprop("/controls/hydraulic/rat-deployed") == 1 and getprop("/gear/gear[1]/wow") == 0) {
|
||||
emer_gen.active = 1;
|
||||
} else {
|
||||
emer_gen.active = 0;
|
||||
|
@ -244,24 +444,24 @@ var messages_right_memo = func {
|
|||
wing_aice.active = 0;
|
||||
}
|
||||
|
||||
if (getprop("/instrumentation/comm[2]/frequencies/selected-mhz") != 0 and (getprop("/ECAM/warning-phase") == 1 or getprop("/ECAM/warning-phase") == 2 or getprop("/ECAM/warning-phase") == 6 or getprop("/ECAM/warning-phase") == 9 or getprop("/ECAM/warning-phase") == 10)) {
|
||||
if (getprop("/instrumentation/comm[2]/frequencies/selected-mhz") != 0 and (phaseVar == 1 or phaseVar == 2 or phaseVar == 6 or phaseVar == 9 or phaseVar == 10)) {
|
||||
vhf3_voice.active = 1;
|
||||
} else {
|
||||
vhf3_voice.active = 0;
|
||||
}
|
||||
if (getprop("/controls/autobrake/mode") == 1 and (getprop("/ECAM/warning-phase") == 7 or getprop("/ECAM/warning-phase") == 8)) {
|
||||
if (getprop("/controls/autobrake/mode") == 1 and (phaseVar == 7 or phaseVar == 8)) {
|
||||
auto_brk_lo.active = 1;
|
||||
} else {
|
||||
auto_brk_lo.active = 0;
|
||||
}
|
||||
|
||||
if (getprop("/controls/autobrake/mode") == 2 and (getprop("/ECAM/warning-phase") == 7 or getprop("/ECAM/warning-phase") == 8)) {
|
||||
if (getprop("/controls/autobrake/mode") == 2 and (phaseVar == 7 or phaseVar == 8)) {
|
||||
auto_brk_med.active = 1;
|
||||
} else {
|
||||
auto_brk_med.active = 0;
|
||||
}
|
||||
|
||||
if (getprop("/controls/autobrake/mode") == 3 and (getprop("/ECAM/warning-phase") == 7 or getprop("/ECAM/warning-phase") == 8)) {
|
||||
if (getprop("/controls/autobrake/mode") == 3 and (phaseVar == 7 or phaseVar == 8)) {
|
||||
auto_brk_max.active = 1;
|
||||
} else {
|
||||
auto_brk_max.active = 0;
|
||||
|
@ -273,7 +473,7 @@ var messages_right_memo = func {
|
|||
fuelx.active = 0;
|
||||
}
|
||||
|
||||
if (getprop("/ECAM/warning-phase") >= 3 and getprop("/ECAM/warning-phase") <= 5) {
|
||||
if (phaseVar >= 3 and phaseVar <= 5) {
|
||||
fuelx.colour = "a";
|
||||
} else {
|
||||
fuelx.colour = "g";
|
||||
|
@ -285,9 +485,20 @@ var messages_right_memo = func {
|
|||
gpws_flap3.active = 0;
|
||||
}
|
||||
|
||||
if (getprop("/ECAM/warning-phase") >= 2 and getprop("/ECAM/warning-phase") <= 9 and getprop("/systems/fuel/only-use-ctr-tank") == 1 and getprop("/systems/electrical/bus/ac1") >= 115 and getprop("/systems/electrical/bus/ac2") >= 115) {
|
||||
if (phaseVar >= 2 and phaseVar <= 9 and getprop("/systems/fuel/only-use-ctr-tank") == 1 and getprop("/systems/electrical/bus/ac1") >= 115 and getprop("/systems/electrical/bus/ac2") >= 115) {
|
||||
ctr_tk_feedg.active = 1;
|
||||
} else {
|
||||
ctr_tk_feedg.active = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Listener
|
||||
setlistener("/controls/fctl/fac1", func() {
|
||||
if (dualFail.active == 0) { return; }
|
||||
|
||||
if (fac1Node.getBoolValue()) {
|
||||
dualFailFACActive = 0;
|
||||
} else {
|
||||
dualFailFACActive = 1;
|
||||
}
|
||||
}, 0, 0);
|
|
@ -4,236 +4,274 @@
|
|||
|
||||
# messages stored in vectors
|
||||
|
||||
# Lights: 0 = red, 1 = yellow, 9 = none
|
||||
# Sounds: 0 = master warn, 1 = chime, 9 = other
|
||||
|
||||
# Left E/WD
|
||||
var warningsOld = std.Vector.new([
|
||||
var lg_not_dn = warning.new(msg: "L/G GEAR NOT DOWN", active: 0, colour: "r", aural: "crc", light: "warning", noRepeat: 0),
|
||||
var pack1_fault = warning.new(msg: "AIR PACK 1 FAULT ", active: 0, colour: "a", aural: "chime", light: "caution", noRepeat: 0),
|
||||
var pack1_fault_subwarn_1 = warning.new(msg: "-PACK 1.............OFF ", active: 0, colour: "b", aural: "none", light: "none", noRepeat: 0),
|
||||
var pack2_fault = warning.new(msg: "AIR PACK 2 FAULT ", active: 0, colour: "a", aural: "chime", light: "caution", noRepeat: 0),
|
||||
var pack2_fault_subwarn_1 = warning.new(msg: "-PACK 2.............OFF ", active: 0, colour: "b", aural: "none", light: "none", noRepeat: 0),
|
||||
var park_brk_on = warning.new(msg: "PARK BRK ON", active: 0, colour: "a", aural: "chime", light: "caution", noRepeat: 0)
|
||||
]);
|
||||
|
||||
var warnings = std.Vector.new([
|
||||
var flap_not_zero = warning.new(msg: "F/CTL FLAP LVR NOT ZERO", active: 0, colour: "r", aural: "crc", light: "warning", noRepeat: 0),
|
||||
var ap_offw = warning.new(msg: "AUTO FLT AP OFF", active: 0, colour: "r", aural: "calv", light: "warning", noRepeat: 0),
|
||||
var athr_offw = warning.new(msg: "AUTO FLT A/THR OFF", active: 0, colour: "a", aural: "chime", light: "caution", noRepeat: 0),
|
||||
var athr_offw_1 = warning.new(msg: "-THR LEVERS........MOVE", active: 0, colour: "b", aural: "none", light: "none", noRepeat: 0),
|
||||
var athr_lock = warning.new(msg: "ENG THRUST LOCKED", active: 0, colour: "a", aural: "chime", light: "caution", noRepeat: 0),
|
||||
var athr_lock_1 = warning.new(msg: "-THR LEVERS........MOVE", active: 0, colour: "b", aural: "none", light: "none", noRepeat: 0),
|
||||
var athr_lim = warning.new(msg: "AUTO FLT A/THR LIMITED", active: 0, colour: "a", aural: "chime", light: "caution", noRepeat: 0),
|
||||
var athr_lim_1 = warning.new(msg: "-THR LEVERS........MOVE", active: 0, colour: "b", aural: "none", light: "none", noRepeat: 0)
|
||||
var flap_not_zero = warning.new(msg: "F/CTL FLAP LVR NOT ZERO", colour: "r", aural: 0, light: 0),
|
||||
|
||||
# DUAL ENG FAIL
|
||||
var dualFail = warning.new(msg: "ENG DUAL FAILURE", colour: "r", aural: 0, light: 0),
|
||||
var dualFailModeSel = warning.new(msg: " -ENG MODE SEL.......IGN", colour: "c", aural: 9, light: 9),
|
||||
var dualFailLevers = warning.new(msg: " -THR LEVERS........IDLE", colour: "c", aural: 9, light: 9),
|
||||
var dualFailRelightSPD = warning.new(msg: " OPTIMUM RELIGHT SPD.280", colour: "c", aural: 9, light: 9),
|
||||
var dualFailRelightSPDCFM = warning.new(msg: " OPTIMUM RELIGHT SPD.300", colour: "c", aural: 9, light: 9),
|
||||
var dualFailElec = warning.new(msg: " -EMER ELEC PWR...MAN ON", colour: "c", aural: 9, light: 9),
|
||||
var dualFailRadio = warning.new(msg: " -VHF1/ATC1..........USE", colour: "c", aural: 9, light: 9),
|
||||
var dualFailFAC = warning.new(msg: " -FAC 1......OFF THEN ON", colour: "c", aural: 9, light: 9),
|
||||
var dualFailRelight = warning.new(msg: "•IF NO RELIGHT AFTER 30S", colour: "w", aural: 9, light: 9),
|
||||
var dualFailMasters = warning.new(msg: " -ENG MASTERS.OFF 30S/ON", colour: "c", aural: 9, light: 9),
|
||||
var dualFailSuccess = warning.new(msg: " •IF UNSUCCESSFUL : ", colour: "w", aural: 9, light: 9),
|
||||
var dualFailAPU = warning.new(msg: " -APU (IF AVAIL)...START", colour: "c", aural: 9, light: 9),
|
||||
var dualFailMastersAPU = warning.new(msg: " -ENG MASTERS.OFF 30S/ON", colour: "c", aural: 9, light: 9),
|
||||
var dualFailSPDGD = warning.new(msg: " OPTIMUM SPEED.....G DOT", colour: "c", aural: 9, light: 9),
|
||||
var dualFailAPPR = warning.new(msg: " •EARLY IN APPR : ", colour: "w", aural: 9, light: 9),
|
||||
var dualFailcabin = warning.new(msg: " -CAB SECURE.......ORDER", colour: "c", aural: 9, light: 9),
|
||||
var dualFailrudd = warning.new(msg: " -USE RUDDER WITH CARE ", colour: "c", aural: 9, light: 9),
|
||||
var dualFailflap = warning.new(msg: " -FOR LDG.....USE FLAP 3", colour: "c", aural: 9, light: 9),
|
||||
var dualFail5000 = warning.new(msg: " •AT 5000 FT AGL : ", colour: "w", aural: 9, light: 9),
|
||||
var dualFailgear = warning.new(msg: " -L/G.........GRVTY EXTN", colour: "c", aural: 9, light: 9),
|
||||
var dualFailfinalspeed = warning.new(msg: " TARGET SPEED.....150 KT", colour: "c", aural: 9, light: 9),
|
||||
var dualFailtouch = warning.new(msg: " •AT TOUCH DOWN : ", colour: "w", aural: 9, light: 9),
|
||||
var dualFailmasteroff = warning.new(msg: " -ENG MASTERS........OFF", colour: "c", aural: 9, light: 9),
|
||||
var dualFailapuoff = warning.new(msg: " -APU MASTER SW......OFF", colour: "c", aural: 9, light: 9),
|
||||
var dualFailevac = warning.new(msg: " -EVAC..........INITIATE", colour: "c", aural: 9, light: 9),
|
||||
var dualFailbatt = warning.new(msg: " -BAT 1+2............OFF", colour: "c", aural: 9, light: 9),
|
||||
|
||||
# Config
|
||||
var slats_config = warning.new(msg: "CONFIG", colour: "r", aural: 0, light: 0),
|
||||
var slats_config_1 = warning.new(msg: "SLATS NOT IN T.O. CONFIG", colour: "r", aural: 0, light: 0),
|
||||
var flaps_config = warning.new(msg: "CONFIG", colour: "r", aural: 0, light: 0),
|
||||
var flaps_config_1 = warning.new(msg: "FLAPS NOT IN T.O. CONFIG", colour: "r", aural: 0, light: 0),
|
||||
var spd_brk_config = warning.new(msg: "CONFIG", colour: "r", aural: 0, light: 0),
|
||||
var spd_brk_config_1 = warning.new(msg: "SPD BRK NOT RETRACTED", colour: "r", aural: 0, light: 0),
|
||||
var pitch_trim_config = warning.new(msg: "CONFIG PITCH TRIM", colour: "r", aural: 0, light: 0),
|
||||
var pitch_trim_config_1 = warning.new(msg: " NOT IN T.O. RANGE", colour: "r", aural: 0, light: 0),
|
||||
var rud_trim_config = warning.new(msg: "CONFIG RUD TRIM", colour: "r", aural: 0, light: 0),
|
||||
var rud_trim_config_1 = warning.new(msg: " NOT IN T.O. RANGE", colour: "r", aural: 0, light: 0),
|
||||
var park_brk_config = warning.new(msg: "CONFIG PARK BRK ON", colour: "r", aural: 0, light: 0),
|
||||
|
||||
# Autopilot
|
||||
var ap_offw = warning.new(msg: "AUTO FLT AP OFF", colour: "r", aural: 9, light: 0),
|
||||
var athr_offw = warning.new(msg: "AUTO FLT A/THR OFF", colour: "a", aural: 1, light: 1),
|
||||
var athr_offw_1 = warning.new(msg: "-THR LEVERS........MOVE", colour: "c", aural: 9, light: 9),
|
||||
var athr_lock = warning.new(msg: "ENG THRUST LOCKED", colour: "a", aural: 1, light: 1),
|
||||
var athr_lock_1 = warning.new(msg: "-THR LEVERS........MOVE", colour: "c", aural: 9, light: 9),
|
||||
var athr_lim = warning.new(msg: "AUTO FLT A/THR LIMITED", colour: "a", aural: 1, light: 1),
|
||||
var athr_lim_1 = warning.new(msg: "-THR LEVERS........MOVE", colour: "c", aural: 9, light: 9)
|
||||
]);
|
||||
|
||||
var leftmemos = std.Vector.new([
|
||||
var company_alert = warning.new(msg: "COMPANY ALERT", active: 0, colour: "g", aural: "buzz", light: "none", noRepeat: 0), # Not yet implemented, buzzer sound
|
||||
var refuelg = warning.new(msg: "REFUELG", active: 0, colour: "g", aural: "none", light: "none", noRepeat: 0),
|
||||
var irs_in_align = warning.new(msg: "IRS IN ALIGN", active: 0, colour: "g", aural: "none", light: "none", noRepeat: 0), # Not yet implemented
|
||||
var gnd_splrs = warning.new(msg: "GND SPLRS ARMED", active: 0, colour: "g", aural: "none", light: "none", noRepeat: 0),
|
||||
var seatbelts = warning.new(msg: "SEAT BELTS", active: 0, colour: "g", aural: "none", light: "none", noRepeat: 0),
|
||||
var nosmoke = warning.new(msg: "NO SMOKING", active: 0, colour: "g", aural: "none", light: "none", noRepeat: 0),
|
||||
var strobe_lt_off = warning.new(msg: "STROBE LT OFF", active: 0, colour: "g", aural: "none", light: "none", noRepeat: 0),
|
||||
var outr_tk_fuel_xfrd = warning.new(msg: "OUTR TK FUEL XFRD", active: 0, colour: "g", aural: "none", light: "none", noRepeat: 0), # Not yet implemented
|
||||
var fob_3T = warning.new(msg: "FOB BELOW 3T", active: 0, colour: "g", aural: "none", light: "none", noRepeat: 0),
|
||||
var gpws_flap_mode_off = warning.new(msg: "GPWS FLAP MODE OFF", active: 0, colour: "g", aural: "none", light: "none", noRepeat: 0),
|
||||
var atc_datalink_stby = warning.new(msg: "ATC DATALINK STBY", active: 0, colour: "g", aural: "none", light: "none", noRepeat: 0), # Not yet implemented
|
||||
var company_datalink_stby = warning.new(msg: "COMPANY DATALINK STBY", active: 0, colour: "g", aural: "none", light: "none", noRepeat: 0) # Not yet implemented
|
||||
var company_alert = warning.new(msg: "COMPANY ALERT", colour: "g", aural: 9, light: 9), # Not yet implemented, buzzer sound
|
||||
var refuelg = warning.new(msg: "REFUELG", colour: "g", aural: 9, light: 9),
|
||||
var irs_in_align = warning.new(msg: "IRS IN ALIGN", colour: "g", aural: 9, light: 9), # Not yet implemented
|
||||
var gnd_splrs = warning.new(msg: "GND SPLRS ARMED", colour: "g", aural: 9, light: 9),
|
||||
var seatbelts = warning.new(msg: "SEAT BELTS", colour: "g", aural: 9, light: 9),
|
||||
var nosmoke = warning.new(msg: "NO SMOKING", colour: "g", aural: 9, light: 9),
|
||||
var strobe_lt_off = warning.new(msg: "STROBE LT OFF", colour: "g", aural: 9, light: 9),
|
||||
var outr_tk_fuel_xfrd = warning.new(msg: "OUTR TK FUEL XFRD", colour: "g", aural: 9, light: 9), # Not yet implemented
|
||||
var fob_3T = warning.new(msg: "FOB BELOW 3T", colour: "g", aural: 9, light: 9),
|
||||
var gpws_flap_mode_off = warning.new(msg: "GPWS FLAP MODE OFF", colour: "g", aural: 9, light: 9),
|
||||
var atc_datalink_stby = warning.new(msg: "ATC DATALINK STBY", colour: "g", aural: 9, light: 9), # Not yet implemented
|
||||
var company_datalink_stby = warning.new(msg: "COMPANY DATALINK STBY", colour: "g", aural: 9, light: 9) # Not yet implemented
|
||||
]);
|
||||
|
||||
# Right E/WD
|
||||
|
||||
var specialLines = std.Vector.new([
|
||||
var to_inhibit = memo.new(msg: "T.O. INHIBIT", active: 0, colour: "m"),
|
||||
var ldg_inhibit = memo.new(msg: "LDG INHIBIT", active: 0, colour: "m"),
|
||||
var land_asap_r = memo.new(msg: "LAND ASAP", active: 0, colour: "r"),
|
||||
var land_asap_a = memo.new(msg: "LAND ASAP", active: 0, colour: "a"),
|
||||
var ap_off = memo.new(msg: "AP OFF", active: 0, colour: "r"),
|
||||
var athr_off = memo.new(msg: "A/THR OFF", active: 0, colour: "a"),
|
||||
var to_inhibit = memo.new(msg: "T.O. INHIBIT", colour: "m"),
|
||||
var ldg_inhibit = memo.new(msg: "LDG INHIBIT", colour: "m"),
|
||||
var land_asap_r = memo.new(msg: "LAND ASAP", colour: "r"),
|
||||
var land_asap_a = memo.new(msg: "LAND ASAP", colour: "a"),
|
||||
var ap_off = memo.new(msg: "AP OFF", colour: "r"),
|
||||
var athr_off = memo.new(msg: "A/THR OFF", colour: "a")
|
||||
]);
|
||||
|
||||
var secondaryFailures = std.Vector.new([
|
||||
var secondary_bleed = memo.new(msg: "•AIR BLEED", active: 0, colour: "a"), # Not yet implemented
|
||||
var secondary_press = memo.new(msg: "•CAB PRESS", active: 0, colour: "a"), # Not yet implemented
|
||||
var secondary_vent = memo.new(msg: "•AVNCS VENT", active: 0, colour: "a"), # Not yet implemented
|
||||
var secondary_elec = memo.new(msg: "•ELEC", active: 0, colour: "a"), # Not yet implemented
|
||||
var secondary_hyd = memo.new(msg: "•HYD", active: 0, colour: "a"), # Not yet implemented
|
||||
var secondary_fuel = memo.new(msg: "•FUEL", active: 0, colour: "a"), # Not yet implemented
|
||||
var secondary_cond = memo.new(msg: "•AIR COND", active: 0, colour: "a"), # Not yet implemented
|
||||
var secondary_brake = memo.new(msg: "•BRAKES", active: 0, colour: "a"), # Not yet implemented
|
||||
var secondary_wheel = memo.new(msg: "•WHEEL", active: 0, colour: "a"), # Not yet implemented
|
||||
var secondary_fctl = memo.new(msg: "•F/CTL", active: 0, colour: "a"), # Not yet implemented
|
||||
var secondary_bleed = memo.new(msg: "•AIR BLEED", colour: "a"), # Not yet implemented
|
||||
var secondary_press = memo.new(msg: "•CAB PRESS", colour: "a"), # Not yet implemented
|
||||
var secondary_vent = memo.new(msg: "•AVNCS VENT", colour: "a"), # Not yet implemented
|
||||
var secondary_elec = memo.new(msg: "•ELEC", colour: "a"), # Not yet implemented
|
||||
var secondary_hyd = memo.new(msg: "•HYD", colour: "a"), # Not yet implemented
|
||||
var secondary_fuel = memo.new(msg: "•FUEL", colour: "a"), # Not yet implemented
|
||||
var secondary_cond = memo.new(msg: "•AIR COND", colour: "a"), # Not yet implemented
|
||||
var secondary_brake = memo.new(msg: "•BRAKES", colour: "a"), # Not yet implemented
|
||||
var secondary_wheel = memo.new(msg: "•WHEEL", colour: "a"), # Not yet implemented
|
||||
var secondary_fctl = memo.new(msg: "•F/CTL", colour: "a") # Not yet implemented
|
||||
]);
|
||||
|
||||
var memos = std.Vector.new([
|
||||
var spd_brk = memo.new(msg: "SPEED BRK", active: 0, colour: "g"),
|
||||
var park_brk = memo.new(msg: "PARK BRK", active: 0, colour: "g"),
|
||||
var ptu = memo.new(msg: "HYD PTU", active: 0, colour: "g"),
|
||||
var rat = memo.new(msg: "RAT OUT", active: 0, colour: "g"),
|
||||
var emer_gen = memo.new(msg: "EMER GEN", active: 0, colour: "g"),
|
||||
var ram_air = memo.new(msg: "RAM AIR ON", active: 0, colour: "g"),
|
||||
var nw_strg_disc = memo.new(msg: "NW STRG DISC", active: 0, colour: "g"),
|
||||
var ignition = memo.new(msg: "IGNITION", active: 0, colour: "g"),
|
||||
var cabin_ready = memo.new(msg: "CABIN READY", active: 0, colour: "g"), # Not yet implemented
|
||||
var pred_ws_off = memo.new(msg: "PRED W/S OFF", active: 0, colour: "g"), # Not yet implemented
|
||||
var terr_stby = memo.new(msg: "TERR STBY", active: 0, colour: "g"), # Not yet implemented
|
||||
var tcas_stby = memo.new(msg: "TCAS STBY", active: 0, colour: "g"), # Not yet implemented
|
||||
var acars_call = memo.new(msg: "ACARS CALL", active: 0, colour: "g"), # Not yet implemented
|
||||
var company_call = memo.new(msg: "COMPANY CALL", active: 0, colour: "g"), # Not yet implemented
|
||||
var satcom_alert = memo.new(msg: "SATCOM ALERT", active: 0, colour: "g"), # Not yet implemented
|
||||
var acars_msg = memo.new(msg: "ACARS MSG", active: 0, colour: "g"), # Not yet implemented
|
||||
var company_msg = memo.new(msg: "COMPANY MSG", active: 0, colour: "g"), # Not yet implemented
|
||||
var eng_aice = memo.new(msg: "ENG A.ICE", active: 0, colour: "g"),
|
||||
var wing_aice = memo.new(msg: "WING A.ICE", active: 0, colour: "g"),
|
||||
var ice_not_det = memo.new(msg: "ICE NOT DET", active: 0, colour: "g"), # Not yet implemented
|
||||
var hi_alt = memo.new(msg: "HI ALT", active: 0, colour: "g"), # Not yet implemented
|
||||
var apu_avail = memo.new(msg: "APU AVAIL", active: 0, colour: "g"),
|
||||
var apu_bleed = memo.new(msg: "APU BLEED", active: 0, colour: "g"),
|
||||
var ldg_lt = memo.new(msg: "LDG LT", active: 0, colour: "g"),
|
||||
var brk_fan = memo.new(msg: "BRK FAN", active: 0, colour: "g"), # Not yet implemented
|
||||
var audio3_xfrd = memo.new(msg: "AUDIO 3 XFRD", active: 0, colour: "g"), # Not yet implemented
|
||||
var switchg_pnl = memo.new(msg: "SWITCHG PNL", active: 0, colour: "g"), # Not yet implemented
|
||||
var gpws_flap3 = memo.new(msg: "GPWS FLAP 3", active: 0, colour: "g"),
|
||||
var hf_data_ovrd = memo.new(msg: "HF DATA OVRD", active: 0, colour: "g"), # Not yet implemented
|
||||
var hf_voice = memo.new(msg: "HF VOICE", active: 0, colour: "g"), # Not yet implemented
|
||||
var acars_stby = memo.new(msg: "ACARS STBY", active: 0, colour: "g"), # Not yet implemented
|
||||
var vhf3_voice = memo.new(msg: "VHF3 VOICE", active: 0, colour: "g"),
|
||||
var auto_brk_lo = memo.new(msg: "AUTO BRK LO", active: 0, colour: "g"),
|
||||
var auto_brk_med = memo.new(msg: "AUTO BRK MED", active: 0, colour: "g"),
|
||||
var auto_brk_max = memo.new(msg: "AUTO BRK MAX", active: 0, colour: "g"),
|
||||
var auto_brk_off = memo.new(msg: "AUTO BRK OFF", active: 0, colour: "g"), # Not yet implemented
|
||||
var man_ldg_elev = memo.new(msg: "MAN LDG ELEV", active: 0, colour: "g"), # Not yet implemented
|
||||
var ctr_tk_feedg = memo.new(msg: "CTR TK FEEDG", active: 0, colour: "g"),
|
||||
var fuelx = memo.new(msg: "FUEL X FEED", active: 0, colour: "g")
|
||||
var spd_brk = memo.new(msg: "SPEED BRK", colour: "g"),
|
||||
var park_brk = memo.new(msg: "PARK BRK", colour: "g"),
|
||||
var ptu = memo.new(msg: "HYD PTU", colour: "g"),
|
||||
var rat = memo.new(msg: "RAT OUT", colour: "g"),
|
||||
var emer_gen = memo.new(msg: "EMER GEN", colour: "g"),
|
||||
var ram_air = memo.new(msg: "RAM AIR ON", colour: "g"),
|
||||
var nw_strg_disc = memo.new(msg: "NW STRG DISC", colour: "g"),
|
||||
var ignition = memo.new(msg: "IGNITION", colour: "g"),
|
||||
var cabin_ready = memo.new(msg: "CABIN READY", colour: "g"), # Not yet implemented
|
||||
var pred_ws_off = memo.new(msg: "PRED W/S OFF", colour: "g"), # Not yet implemented
|
||||
var terr_stby = memo.new(msg: "TERR STBY", colour: "g"), # Not yet implemented
|
||||
var tcas_stby = memo.new(msg: "TCAS STBY", colour: "g"), # Not yet implemented
|
||||
var acars_call = memo.new(msg: "ACARS CALL", colour: "g"), # Not yet implemented
|
||||
var company_call = memo.new(msg: "COMPANY CALL", colour: "g"), # Not yet implemented
|
||||
var satcom_alert = memo.new(msg: "SATCOM ALERT", colour: "g"), # Not yet implemented
|
||||
var acars_msg = memo.new(msg: "ACARS MSG", colour: "g"), # Not yet implemented
|
||||
var company_msg = memo.new(msg: "COMPANY MSG", colour: "g"), # Not yet implemented
|
||||
var eng_aice = memo.new(msg: "ENG A.ICE", colour: "g"),
|
||||
var wing_aice = memo.new(msg: "WING A.ICE", colour: "g"),
|
||||
var ice_not_det = memo.new(msg: "ICE NOT DET", colour: "g"), # Not yet implemented
|
||||
var hi_alt = memo.new(msg: "HI ALT", colour: "g"), # Not yet implemented
|
||||
var apu_avail = memo.new(msg: "APU AVAIL", colour: "g"),
|
||||
var apu_bleed = memo.new(msg: "APU BLEED", colour: "g"),
|
||||
var ldg_lt = memo.new(msg: "LDG LT", colour: "g"),
|
||||
var brk_fan = memo.new(msg: "BRK FAN", colour: "g"), # Not yet implemented
|
||||
var audio3_xfrd = memo.new(msg: "AUDIO 3 XFRD", colour: "g"), # Not yet implemented
|
||||
var switchg_pnl = memo.new(msg: "SWITCHG PNL", colour: "g"), # Not yet implemented
|
||||
var gpws_flap3 = memo.new(msg: "GPWS FLAP 3", colour: "g"),
|
||||
var hf_data_ovrd = memo.new(msg: "HF DATA OVRD", colour: "g"), # Not yet implemented
|
||||
var hf_voice = memo.new(msg: "HF VOICE", colour: "g"), # Not yet implemented
|
||||
var acars_stby = memo.new(msg: "ACARS STBY", colour: "g"), # Not yet implemented
|
||||
var vhf3_voice = memo.new(msg: "VHF3 VOICE", colour: "g"),
|
||||
var auto_brk_lo = memo.new(msg: "AUTO BRK LO", colour: "g"),
|
||||
var auto_brk_med = memo.new(msg: "AUTO BRK MED", colour: "g"),
|
||||
var auto_brk_max = memo.new(msg: "AUTO BRK MAX", colour: "g"),
|
||||
var auto_brk_off = memo.new(msg: "AUTO BRK OFF", colour: "g"), # Not yet implemented
|
||||
var man_ldg_elev = memo.new(msg: "MAN LDG ELEV", colour: "g"), # Not yet implemented
|
||||
var ctr_tk_feedg = memo.new(msg: "CTR TK FEEDG", colour: "g"),
|
||||
var fuelx = memo.new(msg: "FUEL X FEED", colour: "g")
|
||||
]);
|
||||
|
||||
var clearWarnings = std.Vector.new();
|
||||
|
||||
# Status SD page
|
||||
var statusLim = std.Vector.new([
|
||||
var min_rat_spd = status.new(msg: "MIN RAT SPD.....140 KT", active: 0, colour: "c"), # Not yet implemented
|
||||
var max_spd_gear = status.new(msg: "MAX SPD........280/.67", active: 0, colour: "c"), # Not yet implemented
|
||||
var max_spd_rev = status.new(msg: "MAX SPD........300/.78", active: 0, colour: "c"), # Not yet implemented
|
||||
var buffet_rev = status.new(msg: " •IF BUFFET :", active: 0, colour: "w"), # Not yet implemented
|
||||
var max_spd_rev_buf = status.new(msg: "MAX SPD.............240", active: 0, colour: "c"), # Not yet implemented
|
||||
var max_spd_fctl = status.new(msg: "MAX SPD........320/.77", active: 0, colour: "c"), # Not yet implemented
|
||||
var max_spd_fctl2 = status.new(msg: "MAX SPD.........300 KT", active: 0, colour: "c"), # Not yet implemented
|
||||
var max_spd_gr_door = status.new(msg: "MAX SPD 250/.60", active: 0, colour: "c"), # Not yet implemented
|
||||
var max_alt_press = status.new(msg: "MAX FL : 100/MEA", active: 0, colour: "c"), # Not yet implemented
|
||||
var gravity_fuel = status.new(msg: "-PROC:GRAVTY FUEL FEEDING", active: 0, colour: "c"), # Not yet implemented
|
||||
var gear_kp_dn = status.new(msg: "L/G............KEEP DOWN", active: 0, colour: "c"), # Not yet implemented
|
||||
var park_brk_only = status.new(msg: "PARK BRK ONLY", active: 0, colour: "c"), # Not yet implemented
|
||||
var park_brk_only = status.new(msg: "MAX BRK PR........1000PSI", active: 0, colour: "c"), # Not yet implemented
|
||||
var fuel_gravity = status.new(msg: "FUEL GRAVTY FEED", active: 0, colour: "c"), # Not yet implemented
|
||||
var fctl_manvr = status.new(msg: "MANOEUVER WITH CARE", active: 0, colour: "c"), # Not yet implemented
|
||||
var fctl_spdbrk_care = status.new(msg: "USE SPD BRK WITH CARE", active: 0, colour: "c"), # Not yet implemented
|
||||
var fctl_spdbrk_dont = status.new(msg: "SPD BRK......DO NOT USE", active: 0, colour: "c"), # Not yet implemented
|
||||
var fctl_rud_care = status.new(msg: "RUD WITH CARE ABV 160KT", active: 0, colour: "c"), # Not yet implemented
|
||||
var eng_thr_changes = status.new(msg: "AVOID RAPID THR CHANGES", active: 0, colour: "c"), # Not yet implemented
|
||||
var avoid_neg_g_fac = status.new(msg: "AVOID NEGATIVE G FACTOR", active: 0, colour: "c"), # Not yet implemented
|
||||
var avoid_icing = status.new(msg: "AVOID ICING CONDITONS", active: 0, colour: "c"), # Not yet implemented
|
||||
var severe_icing = status.new(msg: " IF A/C ICING SEVERE :", active: 0, colour: "w"), # Not yet implemented, a319 only
|
||||
var severe_icing_2 = status.new(msg: "MIN SPD ALPHA PROT", active: 0, colour: "c"), # Not yet implemented, a319 only
|
||||
var avoid_thr_chg = status.new(msg: "AVOID THR CHANGES", active: 0, colour: "c"), # Not yet implemented, iae only
|
||||
var avoid_thr_chg_2 = status.new(msg: "AVOID RAPID THR CHANGES", active: 0, colour: "c"), # Not yet implemented, iae only
|
||||
var avoid_adv_cond = status.new(msg: "AVOID ADVERSE CONDITIONS", active: 0, colour: "c"), # Not yet implemented, iae only
|
||||
var atc_com_voice = status.new(msg: "ATC COM VOICE ONLY", active: 0, colour: "c") # Not yet implemented, iae only
|
||||
var min_rat_spd = status.new(msg: "MIN RAT SPD.....140 KT", colour: "c"), # Not yet implemented
|
||||
var max_spd_gear = status.new(msg: "MAX SPD........280/.67", colour: "c"), # Not yet implemented
|
||||
var max_spd_rev = status.new(msg: "MAX SPD........300/.78", colour: "c"), # Not yet implemented
|
||||
var buffet_rev = status.new(msg: " •IF BUFFET :", colour: "w"), # Not yet implemented
|
||||
var max_spd_rev_buf = status.new(msg: "MAX SPD.............240", colour: "c"), # Not yet implemented
|
||||
var max_spd_fctl = status.new(msg: "MAX SPD........320/.77", colour: "c"), # Not yet implemented
|
||||
var max_spd_fctl2 = status.new(msg: "MAX SPD.........300 KT", colour: "c"), # Not yet implemented
|
||||
var max_spd_gr_door = status.new(msg: "MAX SPD 250/.60", colour: "c"), # Not yet implemented
|
||||
var max_alt_press = status.new(msg: "MAX FL : 100/MEA", colour: "c"), # Not yet implemented
|
||||
var gravity_fuel = status.new(msg: "-PROC:GRAVTY FUEL FEEDING", colour: "c"), # Not yet implemented
|
||||
var gear_kp_dn = status.new(msg: "L/G............KEEP DOWN", colour: "c"), # Not yet implemented
|
||||
var park_brk_only = status.new(msg: "PARK BRK ONLY", colour: "c"), # Not yet implemented
|
||||
var park_brk_only = status.new(msg: "MAX BRK PR........1000PSI", colour: "c"), # Not yet implemented
|
||||
var fuel_gravity = status.new(msg: "FUEL GRAVTY FEED", colour: "c"), # Not yet implemented
|
||||
var fctl_manvr = status.new(msg: "MANOEUVER WITH CARE", colour: "c"), # Not yet implemented
|
||||
var fctl_spdbrk_care = status.new(msg: "USE SPD BRK WITH CARE", colour: "c"), # Not yet implemented
|
||||
var fctl_spdbrk_dont = status.new(msg: "SPD BRK......DO NOT USE", colour: "c"), # Not yet implemented
|
||||
var fctl_rud_care = status.new(msg: "RUD WITH CARE ABV 160KT", colour: "c"), # Not yet implemented
|
||||
var eng_thr_changes = status.new(msg: "AVOID RAPID THR CHANGES", colour: "c"), # Not yet implemented
|
||||
var avoid_neg_g_fac = status.new(msg: "AVOID NEGATIVE G FACTOR", colour: "c"), # Not yet implemented
|
||||
var avoid_icing = status.new(msg: "AVOID ICING CONDITONS", colour: "c"), # Not yet implemented
|
||||
var severe_icing = status.new(msg: " IF A/C ICING SEVERE :", colour: "w"), # Not yet implemented, a319 only
|
||||
var severe_icing_2 = status.new(msg: "MIN SPD ALPHA PROT", colour: "c"), # Not yet implemented, a319 only
|
||||
var avoid_thr_chg = status.new(msg: "AVOID THR CHANGES", colour: "c"), # Not yet implemented, iae only
|
||||
var avoid_thr_chg_2 = status.new(msg: "AVOID RAPID THR CHANGES", colour: "c"), # Not yet implemented, iae only
|
||||
var avoid_adv_cond = status.new(msg: "AVOID ADVERSE CONDITIONS", colour: "c"), # Not yet implemented, iae only
|
||||
var atc_com_voice = status.new(msg: "ATC COM VOICE ONLY", colour: "c") # Not yet implemented, iae only
|
||||
]);
|
||||
|
||||
var statusApprProc = std.Vector.new([
|
||||
var dual_hyd_b_g = status.new(msg: "APPR PROC DUAL HYD LO PR", active: 0, colour: "r"), # Not yet implemented
|
||||
var dual_hyd_b_g_2 = status.new(msg: " •IF BLUE OVHT OUT:", active: 0, colour: "w"), # Not yet implemented
|
||||
var dual_hyd_b_g_3 = status.new(msg: "-BLUE ELEC PUMP.....AUTO", active: 0, colour: "c"), # Not yet implemented
|
||||
var dual_hyd_b_g_4 = status.new(msg: " •IF GREEN OVHT OUT:", active: 0, colour: "w"), # Not yet implemented
|
||||
var dual_hyd_b_g_5 = status.new(msg: "-GREEN ENG 1 PUMP.....ON", active: 0, colour: "c"), # Not yet implemented
|
||||
var dual_hyd_b_g_6 = status.new(msg: "-PTU................AUTO", active: 0, colour: "c"), # Not yet implemented
|
||||
var dual_hyd_b_g = status.new(msg: "APPR PROC DUAL HYD LO PR", colour: "r"), # Not yet implemented
|
||||
var dual_hyd_b_g_2 = status.new(msg: " •IF BLUE OVHT OUT:", colour: "w"), # Not yet implemented
|
||||
var dual_hyd_b_g_3 = status.new(msg: "-BLUE ELEC PUMP.....AUTO", colour: "c"), # Not yet implemented
|
||||
var dual_hyd_b_g_4 = status.new(msg: " •IF GREEN OVHT OUT:", colour: "w"), # Not yet implemented
|
||||
var dual_hyd_b_g_5 = status.new(msg: "-GREEN ENG 1 PUMP.....ON", colour: "c"), # Not yet implemented
|
||||
var dual_hyd_b_g_6 = status.new(msg: "-PTU................AUTO", colour: "c"), # Not yet implemented
|
||||
|
||||
var dual_hyd_b_y = status.new(msg: "APPR PROC DUAL HYD LO PR", active: 0, colour: "r"), # Not yet implemented
|
||||
var dual_hyd_b_y_2 = status.new(msg: " •IF BLUE OVHT OUT:", active: 0, colour: "w"), # Not yet implemented
|
||||
var dual_hyd_b_y_3 = status.new(msg: "-BLUE ELEC PUMP.....AUTO", active: 0, colour: "c"), # Not yet implemented
|
||||
var dual_hyd_b_y_4 = status.new(msg: " •IF YELLOW OVHT OUT:", active: 0, colour: "w"), # Not yet implemented
|
||||
var dual_hyd_b_y_5 = status.new(msg: "-YELLOW ENG 2 PUMP....ON", active: 0, colour: "c"), # Not yet implemented
|
||||
var dual_hyd_b_y_6 = status.new(msg: "-PTU................AUTO", active: 0, colour: "c"), # Not yet implemented
|
||||
var dual_hyd_b_y = status.new(msg: "APPR PROC DUAL HYD LO PR", colour: "r"), # Not yet implemented
|
||||
var dual_hyd_b_y_2 = status.new(msg: " •IF BLUE OVHT OUT:", colour: "w"), # Not yet implemented
|
||||
var dual_hyd_b_y_3 = status.new(msg: "-BLUE ELEC PUMP.....AUTO", colour: "c"), # Not yet implemented
|
||||
var dual_hyd_b_y_4 = status.new(msg: " •IF YELLOW OVHT OUT:", colour: "w"), # Not yet implemented
|
||||
var dual_hyd_b_y_5 = status.new(msg: "-YELLOW ENG 2 PUMP....ON", colour: "c"), # Not yet implemented
|
||||
var dual_hyd_b_y_6 = status.new(msg: "-PTU................AUTO", colour: "c"), # Not yet implemented
|
||||
|
||||
var dual_hyd_g_y = status.new(msg: "APPR PROC DUAL HYD LO PR", active: 0, colour: "r"), # Not yet implemented
|
||||
var dual_hyd_g_y_2 = status.new(msg: " •IF GREEN OVHT OUT:", active: 0, colour: "w"), # Not yet implemented
|
||||
var dual_hyd_b_y_3 = status.new(msg: "-GREEN ENG 1 PUMP.....ON", active: 0, colour: "c"), # Not yet implemented
|
||||
var dual_hyd_g_y_4 = status.new(msg: " •IF YELLOW OVHT OUT:", active: 0, colour: "w"), # Not yet implemented
|
||||
var dual_hyd_g_y_5 = status.new(msg: "-YELLOW ENG 2 PUMP....ON", active: 0, colour: "c"), # Not yet implemented
|
||||
var dual_hyd_g_y_6 = status.new(msg: "-PTU................AUTO", active: 0, colour: "c"), # Not yet implemented
|
||||
var dual_hyd_g_y = status.new(msg: "APPR PROC DUAL HYD LO PR", colour: "r"), # Not yet implemented
|
||||
var dual_hyd_g_y_2 = status.new(msg: " •IF GREEN OVHT OUT:", colour: "w"), # Not yet implemented
|
||||
var dual_hyd_b_y_3 = status.new(msg: "-GREEN ENG 1 PUMP.....ON", colour: "c"), # Not yet implemented
|
||||
var dual_hyd_g_y_4 = status.new(msg: " •IF YELLOW OVHT OUT:", colour: "w"), # Not yet implemented
|
||||
var dual_hyd_g_y_5 = status.new(msg: "-YELLOW ENG 2 PUMP....ON", colour: "c"), # Not yet implemented
|
||||
var dual_hyd_g_y_6 = status.new(msg: "-PTU................AUTO", colour: "c"), # Not yet implemented
|
||||
|
||||
var single_hyd_b = status.new(msg: "APPR PROC HYD LO PR", active: 0, colour: "a"), # Not yet implemented
|
||||
var single_hyd_b_2 = status.new(msg: " •IF BLUE OVHT OUT:", active: 0, colour: "w"), # Not yet implemented
|
||||
var single_hyd_b_3 = status.new(msg: "-BLUE ELEC PUMP.....AUTO", active: 0, colour: "c"), # Not yet implemented
|
||||
var single_hyd_b = status.new(msg: "APPR PROC HYD LO PR", colour: "a"), # Not yet implemented
|
||||
var single_hyd_b_2 = status.new(msg: " •IF BLUE OVHT OUT:", colour: "w"), # Not yet implemented
|
||||
var single_hyd_b_3 = status.new(msg: "-BLUE ELEC PUMP.....AUTO", colour: "c"), # Not yet implemented
|
||||
|
||||
var single_hyd_g = status.new(msg: "APPR PROC HYD LO PR", active: 0, colour: "a"), # Not yet implemented
|
||||
var single_hyd_g_2 = status.new(msg: " •IF GREEN OVHT OUT:", active: 0, colour: "w"), # Not yet implemented
|
||||
var single_hyd_g_3 = status.new(msg: "-GREEN ENG 1 PUMP.....ON", active: 0, colour: "c"), # Not yet implemented
|
||||
var single_hyd_g_4 = status.new(msg: "-PTU................AUTO", active: 0, colour: "c"), # Not yet implemented
|
||||
var single_hyd_g = status.new(msg: "APPR PROC HYD LO PR", colour: "a"), # Not yet implemented
|
||||
var single_hyd_g_2 = status.new(msg: " •IF GREEN OVHT OUT:", colour: "w"), # Not yet implemented
|
||||
var single_hyd_g_3 = status.new(msg: "-GREEN ENG 1 PUMP.....ON", colour: "c"), # Not yet implemented
|
||||
var single_hyd_g_4 = status.new(msg: "-PTU................AUTO", colour: "c"), # Not yet implemented
|
||||
|
||||
var single_hyd_y = status.new(msg: "APPR PROC HYD LO PR", active: 0, colour: "a"), # Not yet implemented
|
||||
var single_hyd_y_2 = status.new(msg: " •IF YELLOW OVHT OUT:", active: 0, colour: "w"), # Not yet implemented
|
||||
var single_hyd_y_3 = status.new(msg: "-YELLOW ENG 1 PUMP....ON", active: 0, colour: "c"), # Not yet implemented
|
||||
var single_hyd_y_4 = status.new(msg: "-PTU................AUTO", active: 0, colour: "c"), # Not yet implemented
|
||||
var single_hyd_y = status.new(msg: "APPR PROC HYD LO PR", colour: "a"), # Not yet implemented
|
||||
var single_hyd_y_2 = status.new(msg: " •IF YELLOW OVHT OUT:", colour: "w"), # Not yet implemented
|
||||
var single_hyd_y_3 = status.new(msg: "-YELLOW ENG 1 PUMP....ON", colour: "c"), # Not yet implemented
|
||||
var single_hyd_y_4 = status.new(msg: "-PTU................AUTO", colour: "c"), # Not yet implemented
|
||||
|
||||
var avionics_smk = status.new(msg: "APPR PROC:", active: 0, colour: "w"), # Not yet implemented
|
||||
var avionics_smk_2 = status.new(msg: " •BEFORE L/G EXTENSION :", active: 0, colour: "w"), # Not yet implemented
|
||||
var avionics_smk_2 = status.new(msg: "-GEN 2...............ON", active: 0, colour: "c"), # Not yet implemented
|
||||
var avionics_smk_4 = status.new(msg: "-EMER ELEC GEN1 LINE ON", active: 0, colour: "c"), # Not yet implemented
|
||||
var avionics_smk = status.new(msg: "APPR PROC:", colour: "w"), # Not yet implemented
|
||||
var avionics_smk_2 = status.new(msg: " •BEFORE L/G EXTENSION :", colour: "w"), # Not yet implemented
|
||||
var avionics_smk_2 = status.new(msg: "-GEN 2...............ON", colour: "c"), # Not yet implemented
|
||||
var avionics_smk_4 = status.new(msg: "-EMER ELEC GEN1 LINE ON", colour: "c"), # Not yet implemented
|
||||
|
||||
var ths_stuck = status.new(msg: "APPR PROC:", active: 0, colour: "w"), # Not yet implemented
|
||||
var ths_stuck_2 = status.new(msg: "-FOR LDG.....USE FLAP 3", active: 0, colour: "c"), # Not yet implemented
|
||||
var ths_stuck_3 = status.new(msg: "-GPWS LDG FLAP 3.....ON", active: 0, colour: "c"), # Not yet implemented
|
||||
var ths_stuck_4 = status.new(msg: " •IF MAN TRIM NOT AVAIL:", active: 0, colour: "w"), # Not yet implemented
|
||||
var ths_stuck_5 = status.new(msg: " •WHEN CONF3 AND VAPP :", active: 0, colour: "w"), # Not yet implemented
|
||||
var ths_stuck_6 = status.new(msg: "-L/G.................DN", active: 0, colour: "c"), # Not yet implemented
|
||||
var ths_stuck = status.new(msg: "APPR PROC:", colour: "w"), # Not yet implemented
|
||||
var ths_stuck_2 = status.new(msg: "-FOR LDG.....USE FLAP 3", colour: "c"), # Not yet implemented
|
||||
var ths_stuck_3 = status.new(msg: "-GPWS LDG FLAP 3.....ON", colour: "c"), # Not yet implemented
|
||||
var ths_stuck_4 = status.new(msg: " •IF MAN TRIM NOT AVAIL:", colour: "w"), # Not yet implemented
|
||||
var ths_stuck_5 = status.new(msg: " •WHEN CONF3 AND VAPP :", colour: "w"), # Not yet implemented
|
||||
var ths_stuck_6 = status.new(msg: "-L/G.................DN", colour: "c"), # Not yet implemented
|
||||
|
||||
var flap_stuck = status.new(msg: "APPR PROC:", active: 0, colour: "w"), # Not yet implemented
|
||||
var flap_stuck_2 = status.new(msg: "-FOR LDG.....USE FLAP 3", active: 0, colour: "c"), # Not yet implemented
|
||||
var flap_stuck_3 = status.new(msg: "-FLAPS...KEEP CONF FULL", active: 0, colour: "c"), # Not yet implemented
|
||||
var flap_stuck_4 = status.new(msg: "-GPWS FLAP MODE.....OFF", active: 0, colour: "c"), # Not yet implemented
|
||||
var flap_stuck_5 = status.new(msg: "-GPWS LDG FLAP 3.....ON", active: 0, colour: "c"), # Not yet implemented
|
||||
var flap_stuck = status.new(msg: "APPR PROC:", colour: "w"), # Not yet implemented
|
||||
var flap_stuck_2 = status.new(msg: "-FOR LDG.....USE FLAP 3", colour: "c"), # Not yet implemented
|
||||
var flap_stuck_3 = status.new(msg: "-FLAPS...KEEP CONF FULL", colour: "c"), # Not yet implemented
|
||||
var flap_stuck_4 = status.new(msg: "-GPWS FLAP MODE.....OFF", colour: "c"), # Not yet implemented
|
||||
var flap_stuck_5 = status.new(msg: "-GPWS LDG FLAP 3.....ON", colour: "c"), # Not yet implemented
|
||||
|
||||
var slat_stuck = status.new(msg: "APPR PROC:", active: 0, colour: "w"), # Not yet implemented
|
||||
var slat_stuck_2 = status.new(msg: "-FOR LDG.....USE FLAP 1", active: 0, colour: "c"), # Not yet implemented
|
||||
var slat_stuck_3 = status.new(msg: "-FOR LDG.....USE FLAP 3", active: 0, colour: "c"), # Not yet implemented
|
||||
var slat_stuck_4 = status.new(msg: "-CTR TK PUMPS.......OFF", active: 0, colour: "c"), # Not yet implemented
|
||||
var slat_stuck_5 = status.new(msg: "-GPWS LDG FLAP 3.....ON", active: 0, colour: "c"), # Not yet implemented
|
||||
var slat_stuck_6 = status.new(msg: "-GPWS FLAP MODE.....OFF", active: 0, colour: "c"), # Not yet implemented
|
||||
var slat_stuck = status.new(msg: "APPR PROC:", colour: "w"), # Not yet implemented
|
||||
var slat_stuck_2 = status.new(msg: "-FOR LDG.....USE FLAP 1", colour: "c"), # Not yet implemented
|
||||
var slat_stuck_3 = status.new(msg: "-FOR LDG.....USE FLAP 3", colour: "c"), # Not yet implemented
|
||||
var slat_stuck_4 = status.new(msg: "-CTR TK PUMPS.......OFF", colour: "c"), # Not yet implemented
|
||||
var slat_stuck_5 = status.new(msg: "-GPWS LDG FLAP 3.....ON", colour: "c"), # Not yet implemented
|
||||
var slat_stuck_6 = status.new(msg: "-GPWS FLAP MODE.....OFF", colour: "c"), # Not yet implemented
|
||||
|
||||
var fctl_proc = status.new(msg: "APPR PROC:", active: 0, colour: "w"), # Not yet implemented
|
||||
var fctl_proc_2 = status.new(msg: " •IF BUFFET:", active: 0, colour: "w"), # Not yet implemented
|
||||
var fctl_proc_3 = status.new(msg: "-FOR LDG.....USE FLAP 3", active: 0, colour: "c"), # Not yet implemented
|
||||
var fctl_proc_4 = status.new(msg: "-GPWS LDG FLAP 3.....ON", active: 0, colour: "c"), # Not yet implemented
|
||||
var fctl_proc_5 = status.new(msg: "-AT 1000FT AGL:L/G...DN", active: 0, colour: "c"), # Not yet implemented
|
||||
var fctl_proc = status.new(msg: "APPR PROC:", colour: "w"), # Not yet implemented
|
||||
var fctl_proc_2 = status.new(msg: " •IF BUFFET:", colour: "w"), # Not yet implemented
|
||||
var fctl_proc_3 = status.new(msg: "-FOR LDG.....USE FLAP 3", colour: "c"), # Not yet implemented
|
||||
var fctl_proc_4 = status.new(msg: "-GPWS LDG FLAP 3.....ON", colour: "c"), # Not yet implemented
|
||||
var fctl_proc_5 = status.new(msg: "-AT 1000FT AGL:L/G...DN", colour: "c"), # Not yet implemented
|
||||
|
||||
var rev_unlc_proc = status.new(msg: "APPR PROC:", active: 0, colour: "w"), # Not yet implemented
|
||||
var rev_unlc_proc_2 = status.new(msg: " •IF BUFFET:", active: 0, colour: "w"), # Not yet implemented
|
||||
var rev_unlc_proc_3 = status.new(msg: "-FOR LDG.....USE FLAP 3", active: 0, colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc_4 = status.new(msg: "-APPR SPD : VREF + 55KT", active: 0, colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc_5 = status.new(msg: "-APPR SPD : VREF + 60KT", active: 0, colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc_6 = status.new(msg: "-RUD TRIM.......5 DEG R", active: 0, colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc_7 = status.new(msg: "-RUD TRIM.......5 DEG L", active: 0, colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc_8 = status.new(msg: "-ATHR...............OFF", active: 0, colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc_9 = status.new(msg: "-GPWS FLAP MODE.....OFF", active: 0, colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc_10 = status.new(msg: " •WHEN LDG ASSURED:", active: 0, colour: "w"), # Not yet implemented
|
||||
var rev_unlc_proc_11 = status.new(msg: "-L/G...............DOWN", active: 0, colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc_12 = status.new(msg: " •AT 800FT AGL:", active: 0, colour: "w"), # Not yet implemented
|
||||
var rev_unlc_proc_13 = status.new(msg: "-TARGET SPD : VREF+40KT", active: 0, colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc_14 = status.new(msg: "-TARGET SPD : VREF+45KT", active: 0, colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc = status.new(msg: "APPR PROC:", colour: "w"), # Not yet implemented
|
||||
var rev_unlc_proc_2 = status.new(msg: " •IF BUFFET:", colour: "w"), # Not yet implemented
|
||||
var rev_unlc_proc_3 = status.new(msg: "-FOR LDG.....USE FLAP 3", colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc_4 = status.new(msg: "-APPR SPD : VREF + 55KT", colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc_5 = status.new(msg: "-APPR SPD : VREF + 60KT", colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc_6 = status.new(msg: "-RUD TRIM.......5 DEG R", colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc_7 = status.new(msg: "-RUD TRIM.......5 DEG L", colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc_8 = status.new(msg: "-ATHR...............OFF", colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc_9 = status.new(msg: "-GPWS FLAP MODE.....OFF", colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc_10 = status.new(msg: " •WHEN LDG ASSURED:", colour: "w"), # Not yet implemented
|
||||
var rev_unlc_proc_11 = status.new(msg: "-L/G...............DOWN", colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc_12 = status.new(msg: " •AT 800FT AGL:", colour: "w"), # Not yet implemented
|
||||
var rev_unlc_proc_13 = status.new(msg: "-TARGET SPD : VREF+40KT", colour: "c"), # Not yet implemented
|
||||
var rev_unlc_proc_14 = status.new(msg: "-TARGET SPD : VREF+45KT", colour: "c"), # Not yet implemented
|
||||
|
||||
var thr_lvr_flt = status.new(msg: "APPR PROC THR LEVER", active: 0, colour: "a"), # Not yet implemented
|
||||
var thr_lvr_flt_2 = status.new(msg: "-AUTOLAND...........USE", active: 0, colour: "c"), # Not yet implemented
|
||||
var thr_lvr_flt_3 = status.new(msg: " •IF AUTOLAND NOT USED:", active: 0, colour: "w"), # Not yet implemented
|
||||
var thr_lvr_flt_4 = status.new(msg: " •AT 500FT AGL :", active: 0, colour: "w"), # Not yet implemented
|
||||
var thr_lvr_flt_5 = status.new(msg: "-ENG MASTER 1.......OFF", active: 0, colour: "c"), # Not yet implemented
|
||||
var thr_lvr_flt_6 = status.new(msg: "-ENG MASTER 2.......OFF", active: 0, colour: "c"), # Not yet implemented
|
||||
var thr_lvr_flt = status.new(msg: "APPR PROC THR LEVER", colour: "a"), # Not yet implemented
|
||||
var thr_lvr_flt_2 = status.new(msg: "-AUTOLAND...........USE", colour: "c"), # Not yet implemented
|
||||
var thr_lvr_flt_3 = status.new(msg: " •IF AUTOLAND NOT USED:", colour: "w"), # Not yet implemented
|
||||
var thr_lvr_flt_4 = status.new(msg: " •AT 500FT AGL :", colour: "w"), # Not yet implemented
|
||||
var thr_lvr_flt_5 = status.new(msg: "-ENG MASTER 1.......OFF", colour: "c"), # Not yet implemented
|
||||
var thr_lvr_flt_6 = status.new(msg: "-ENG MASTER 2.......OFF", colour: "c"), # Not yet implemented
|
||||
|
||||
var fuel_ctl_flt = status.new(msg: "APPR PROC FUEL CTL FAULT", active: 0, colour: "a"), # Not yet implemented
|
||||
var fuel_ctl_flt_2 = status.new(msg: "REV 1........DO NOT USE", active: 0, colour: "w"), # Not yet implemented
|
||||
var fuel_ctl_flt_3 = status.new(msg: "REV 2........DO NOT USE", active: 0, colour: "w"), # Not yet implemented
|
||||
var fuel_ctl_flt_4 = status.new(msg: " •AFTER TOUCHDOWN:", active: 0, colour: "w"), # Not yet implemented
|
||||
var fuel_ctl_flt_5 = status.new(msg: "-ENG MASTER 1.......OFF", active: 0, colour: "c"), # Not yet implemented
|
||||
var fuel_ctl_flt_6 = status.new(msg: "-ENG MASTER 2.......OFF", active: 0, colour: "c"), # Not yet implemented
|
||||
var fuel_ctl_flt = status.new(msg: "APPR PROC FUEL CTL FAULT", colour: "a"), # Not yet implemented
|
||||
var fuel_ctl_flt_2 = status.new(msg: "REV 1........DO NOT USE", colour: "w"), # Not yet implemented
|
||||
var fuel_ctl_flt_3 = status.new(msg: "REV 2........DO NOT USE", colour: "w"), # Not yet implemented
|
||||
var fuel_ctl_flt_4 = status.new(msg: " •AFTER TOUCHDOWN:", colour: "w"), # Not yet implemented
|
||||
var fuel_ctl_flt_5 = status.new(msg: "-ENG MASTER 1.......OFF", colour: "c"), # Not yet implemented
|
||||
var fuel_ctl_flt_6 = status.new(msg: "-ENG MASTER 2.......OFF", colour: "c") # Not yet implemented
|
||||
]);
|
||||
|
||||
var statusProc = std.Vector.new();
|
||||
|
|
|
@ -1 +1 @@
|
|||
4776
|
||||
4777
|
Reference in a new issue