2017-05-13 14:45:26 +00:00
|
|
|
##################################################################
|
2017-05-21 17:20:14 +00:00
|
|
|
# A3XX mCDU by Joshua Davidson (it0uchpods) and Jonathan Redpath #
|
2017-05-13 14:45:26 +00:00
|
|
|
##################################################################
|
|
|
|
|
|
|
|
var MCDU_init = func {
|
|
|
|
setprop("/MCDU[1]/brightness", "1.0");
|
|
|
|
MCDU_reset(); # Reset MCDU, clears data
|
|
|
|
}
|
|
|
|
|
|
|
|
var MCDU_reset = func {
|
2017-05-26 17:50:53 +00:00
|
|
|
setprop("/it-autoflight/settings/togaspd", 157);
|
2017-05-26 17:56:32 +00:00
|
|
|
setprop("/MCDU[1]/last-fmgc-page", "STATUS");
|
2017-05-14 17:26:35 +00:00
|
|
|
setprop("/MCDU[1]/page", "STATUS");
|
2017-05-18 18:41:33 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
2017-05-21 17:20:14 +00:00
|
|
|
setprop("/MCDUC/flight-num", "");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDUC/thracc-set", 0);
|
2017-05-26 17:50:53 +00:00
|
|
|
setprop("/MCDUC/flight-num-set", 0);
|
|
|
|
setprop("/FMGC/internal/flex", 0);
|
2017-05-21 17:20:14 +00:00
|
|
|
setprop("/FMGC/internal/dep-arpt", "");
|
|
|
|
setprop("/FMGC/internal/arr-arpt", "");
|
|
|
|
setprop("/FMGC/internal/cruise-ft", 10000);
|
|
|
|
setprop("/FMGC/internal/cruise-fl", 100);
|
|
|
|
setprop("/FMGC/internal/cost-index", "0");
|
2017-05-26 17:50:53 +00:00
|
|
|
setprop("/FMGC/internal/trans-alt", 18000);
|
|
|
|
setprop("/FMGC/internal/v1", 0);
|
|
|
|
setprop("/FMGC/internal/vr", 0);
|
|
|
|
setprop("/FMGC/internal/v2", 0);
|
|
|
|
setprop("/FMGC/internal/v1-set", 0);
|
|
|
|
setprop("/FMGC/internal/vr-set", 0);
|
|
|
|
setprop("/FMGC/internal/v2-set", 0);
|
|
|
|
setprop("/FMGC/internal/to-flap", 0);
|
|
|
|
setprop("/FMGC/internal/to-ths", "0.0");
|
|
|
|
setprop("/FMGC/internal/tofrom-set", 0);
|
2017-05-18 20:39:14 +00:00
|
|
|
setprop("/FMGC/internal/cost-index-set", 0);
|
2017-05-18 18:41:33 +00:00
|
|
|
setprop("/FMGC/internal/cruise-lvl-set", 0);
|
2017-05-26 17:50:53 +00:00
|
|
|
setprop("/FMGC/internal/flap-ths-set", 0);
|
|
|
|
setprop("/FMGC/internal/flex-set", 0);
|
2017-05-13 17:08:49 +00:00
|
|
|
}
|
|
|
|
|
2017-05-18 18:41:33 +00:00
|
|
|
var lskbutton = func(btn) {
|
2017-05-26 17:50:53 +00:00
|
|
|
if (btn == "1") {
|
2017-05-26 17:56:32 +00:00
|
|
|
if (getprop("/MCDU[1]/page") == "MCDU") {
|
|
|
|
setprop("/MCDU[1]/page", getprop("/MCDU[1]/last-fmgc-page"));
|
|
|
|
} else if (getprop("/MCDU[1]/page") == "TO") {
|
2017-05-26 17:50:53 +00:00
|
|
|
PerfTOInput("L1");
|
|
|
|
}
|
|
|
|
} else if (btn == "2") {
|
2017-05-19 13:36:39 +00:00
|
|
|
if (getprop("/MCDU[1]/page") == "INITA") {
|
|
|
|
PerfInput("L2");
|
2017-05-26 17:50:53 +00:00
|
|
|
} else if (getprop("/MCDU[1]/page") == "TO") {
|
|
|
|
PerfTOInput("L2");
|
2017-05-19 13:36:39 +00:00
|
|
|
}
|
2017-05-21 17:20:14 +00:00
|
|
|
} else if (btn == "3") {
|
|
|
|
if (getprop("/MCDU[1]/page") == "INITA") {
|
|
|
|
initInputA("L3");
|
2017-05-26 17:50:53 +00:00
|
|
|
} else if (getprop("/MCDU[1]/page") == "TO") {
|
|
|
|
PerfTOInput("L3");
|
2017-05-21 17:20:14 +00:00
|
|
|
}
|
2017-05-19 13:36:39 +00:00
|
|
|
} else if (btn == "4") {
|
2017-05-18 13:53:16 +00:00
|
|
|
if (getprop("/MCDU[1]/page") == "DATA") {
|
2017-05-18 22:28:36 +00:00
|
|
|
setprop("/MCDU[1]/page", "STATUS");
|
2017-05-26 17:50:53 +00:00
|
|
|
} else if (getprop("/MCDU[1]/page") == "TO") {
|
|
|
|
PerfTOInput("L4");
|
2017-05-18 13:53:16 +00:00
|
|
|
}
|
2017-05-18 20:39:14 +00:00
|
|
|
} else if (btn == "5") {
|
2017-05-18 22:28:36 +00:00
|
|
|
if (getprop("/MCDU[1]/page") == "INITA") {
|
2017-05-18 20:39:14 +00:00
|
|
|
initInputA("L5");
|
2017-05-26 04:58:04 +00:00
|
|
|
} else if (getprop("/MCDU[1]/page") == "TO") {
|
|
|
|
PerfTOInput("L5");
|
2017-05-19 13:36:39 +00:00
|
|
|
} else if (getprop("/MCDU[1]/page") == "CLB") {
|
2017-05-19 19:20:54 +00:00
|
|
|
perfCLBInput("L5");
|
2017-05-18 20:39:14 +00:00
|
|
|
}
|
2017-05-18 18:41:33 +00:00
|
|
|
} else if (btn == "6") {
|
|
|
|
if (getprop("/MCDU[1]/page") == "INITA") {
|
|
|
|
initInputA("L6");
|
2017-05-19 13:36:39 +00:00
|
|
|
} else if (getprop("/MCDU[1]/page") == "CLB") {
|
2017-05-19 19:20:54 +00:00
|
|
|
perfCLBInput("L6");
|
2017-05-19 16:20:08 +00:00
|
|
|
} else if (getprop("/MCDU[1]/page") == "CRZ") {
|
2017-05-19 19:20:54 +00:00
|
|
|
perfCRZInput("L6");
|
2017-05-18 18:41:33 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-05-21 17:20:14 +00:00
|
|
|
var rskbutton = func(btn) {
|
|
|
|
if (btn == "1") {
|
|
|
|
if (getprop("/MCDU[1]/page") == "INITA") {
|
|
|
|
initInputA("R1");
|
|
|
|
}
|
|
|
|
} else if (btn == "3") {
|
|
|
|
if (getprop("/MCDU[1]/page") == "INITA") {
|
|
|
|
initInputA("R3");
|
2017-05-26 17:50:53 +00:00
|
|
|
} else if (getprop("/MCDU[1]/page") == "TO") {
|
|
|
|
PerfTOInput("R3");
|
|
|
|
}
|
|
|
|
} else if (btn == "4") {
|
|
|
|
if (getprop("/MCDU[1]/page") == "TO") {
|
|
|
|
PerfTOInput("R4");
|
2017-05-21 17:20:14 +00:00
|
|
|
}
|
|
|
|
} else if (btn == "6") {
|
|
|
|
if (getprop("/MCDU[1]/page") == "TO") {
|
|
|
|
PerfTOInput("R6");
|
|
|
|
} else if (getprop("/MCDU[1]/page") == "CLB") {
|
|
|
|
perfCLBInput("R6");
|
|
|
|
} # else if (getprop("/MCDU[1]/page") == "CRZ") {
|
|
|
|
# perfCRZInput("R6");
|
|
|
|
#}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-05-18 18:41:33 +00:00
|
|
|
var initInputA = func(key) {
|
|
|
|
var scratchpad = getprop("/MCDU[1]/scratchpad");
|
2017-05-21 17:20:14 +00:00
|
|
|
if (key == "L3") {
|
|
|
|
if (scratchpad == "CLR") {
|
|
|
|
setprop("/MCDUC/flight-num", "");
|
|
|
|
setprop("/MCDUC/flight-num-set", 0);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
|
|
|
var flts = size(scratchpad);
|
|
|
|
if (flts >= 1 and flts <= 8) {
|
|
|
|
setprop("/MCDUC/flight-num", scratchpad);
|
|
|
|
setprop("/MCDUC/flight-num-set", 1);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
2017-05-21 17:20:14 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (key == "L5") {
|
2017-05-18 20:39:14 +00:00
|
|
|
if (scratchpad == "CLR") {
|
|
|
|
setprop("/FMGC/internal/cost-index", 0);
|
|
|
|
setprop("/FMGC/internal/cost-index-set", 0);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
|
|
|
var ci = int(scratchpad);
|
|
|
|
var cis = size(scratchpad);
|
|
|
|
if (cis >= 1 and cis <= 3) {
|
2017-05-21 17:20:14 +00:00
|
|
|
if (ci == nil) {
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
} else if (ci >= 0 and ci <= 120) {
|
2017-05-18 20:39:14 +00:00
|
|
|
setprop("/FMGC/internal/cost-index", ci);
|
|
|
|
setprop("/FMGC/internal/cost-index-set", 1);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
2017-05-18 20:39:14 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
} else {
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
2017-05-18 20:39:14 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (key == "L6") {
|
2017-05-18 18:41:33 +00:00
|
|
|
if (scratchpad == "CLR") {
|
|
|
|
setprop("/FMGC/internal/cruise-ft", 10000);
|
|
|
|
setprop("/FMGC/internal/cruise-fl", 100);
|
|
|
|
setprop("/FMGC/internal/cruise-lvl-set", 0);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
|
|
|
var crz = int(scratchpad);
|
|
|
|
var crzs = size(scratchpad);
|
|
|
|
if (crzs >= 1 and crzs <= 3) {
|
2017-05-21 17:20:14 +00:00
|
|
|
if (crz == nil) {
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
} else if (crz > 0 and crz <= 430) {
|
2017-05-18 20:04:05 +00:00
|
|
|
setprop("/FMGC/internal/cruise-ft", crz * 100);
|
|
|
|
setprop("/FMGC/internal/cruise-fl", crz);
|
|
|
|
setprop("/FMGC/internal/cruise-lvl-set", 1);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
2017-05-18 20:04:05 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
2017-05-18 18:41:33 +00:00
|
|
|
} else {
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
2017-05-18 18:41:33 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
}
|
2017-05-21 17:20:14 +00:00
|
|
|
} else if (key == "R1") {
|
|
|
|
if (scratchpad == "CLR") {
|
|
|
|
setprop("/FMGC/internal/dep-arpt", "");
|
|
|
|
setprop("/FMGC/internal/arr-arpt", "");
|
|
|
|
setprop("/FMGC/internal/tofrom-set", 0);
|
|
|
|
fmgc.updateARPT();
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
|
|
|
var tfs = size(scratchpad);
|
|
|
|
if (tfs == 9) {
|
|
|
|
var fromto = split("/", scratchpad);
|
2017-05-26 04:58:04 +00:00
|
|
|
var froms = size(fromto[0]);
|
|
|
|
var tos = size(fromto[1]);
|
|
|
|
if (froms == 4 and tos == 4) {
|
|
|
|
setprop("/FMGC/internal/dep-arpt", fromto[0]);
|
|
|
|
setprop("/FMGC/internal/arr-arpt", fromto[1]);
|
|
|
|
setprop("/FMGC/internal/tofrom-set", 1);
|
|
|
|
fmgc.updateARPT();
|
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
|
|
|
setprop("/MCDU[1]/scratchpad", "GPS PRIMARY");
|
|
|
|
} else {
|
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
2017-05-21 17:20:14 +00:00
|
|
|
} else {
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
2017-05-21 17:20:14 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (key == "R3") {
|
|
|
|
if (getprop("/controls/adirs/mcducbtn") == 0) {
|
|
|
|
setprop("/controls/adirs/mcducbtn", 1);
|
|
|
|
}
|
2017-05-18 13:53:16 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-05-26 04:58:04 +00:00
|
|
|
var PerfTOInput = func(key) {
|
|
|
|
var scratchpad = getprop("/MCDU[1]/scratchpad");
|
2017-05-26 17:50:53 +00:00
|
|
|
if (key == "L1") {
|
|
|
|
if (scratchpad == "CLR") {
|
|
|
|
setprop("/FMGC/internal/v1", 0);
|
|
|
|
setprop("/FMGC/internal/v1-set", 0);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
|
|
|
var tfs = size(scratchpad);
|
|
|
|
if (tfs == 3) {
|
|
|
|
if (scratchpad >= 100 and scratchpad <= 200) {
|
|
|
|
setprop("/FMGC/internal/v1", scratchpad);
|
|
|
|
setprop("/FMGC/internal/v1-set", 1);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (key == "L2") {
|
|
|
|
if (scratchpad == "CLR") {
|
|
|
|
setprop("/FMGC/internal/vr", 0);
|
|
|
|
setprop("/FMGC/internal/vr-set", 0);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
|
|
|
var tfs = size(scratchpad);
|
|
|
|
if (tfs == 3) {
|
|
|
|
if (scratchpad >= 100 and scratchpad <= 200) {
|
|
|
|
setprop("/FMGC/internal/vr", scratchpad);
|
|
|
|
setprop("/FMGC/internal/vr-set", 1);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (key == "L3") {
|
|
|
|
if (scratchpad == "CLR") {
|
|
|
|
setprop("/FMGC/internal/v2", 0);
|
|
|
|
setprop("/FMGC/internal/v2-set", 0);
|
|
|
|
setprop("/it-autoflight/settings/togaspd", 157);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
|
|
|
var tfs = size(scratchpad);
|
|
|
|
if (tfs == 3) {
|
|
|
|
if (scratchpad >= 100 and scratchpad <= 200) {
|
|
|
|
setprop("/FMGC/internal/v2", scratchpad);
|
|
|
|
setprop("/FMGC/internal/v2-set", 1);
|
|
|
|
setprop("/it-autoflight/settings/togaspd", scratchpad + 15);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (key == "L4") {
|
|
|
|
if (scratchpad == "CLR") {
|
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
} else {
|
|
|
|
var tfs = size(scratchpad);
|
|
|
|
if (tfs == 4 or tfs == 5) {
|
|
|
|
if (scratchpad >= 1000 and scratchpad <= 18000) {
|
|
|
|
setprop("/FMGC/internal/trans-alt", scratchpad);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (key == "L5") {
|
2017-05-26 04:58:04 +00:00
|
|
|
if (scratchpad == "CLR") {
|
|
|
|
setprop("/systems/thrust/clbreduc-ft", "1500");
|
|
|
|
setprop("/it-autoflight/settings/reduc-agl-ft", "3000");
|
|
|
|
setprop("/MCDUC/thracc-set", 0);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
|
|
|
var tfs = size(scratchpad);
|
|
|
|
if (tfs == 9) {
|
|
|
|
var thracc = split("/", scratchpad);
|
|
|
|
var thrred = size(thracc[0]);
|
|
|
|
var acc = size(thracc[1]);
|
2017-05-26 17:50:53 +00:00
|
|
|
if ((thrred >= 3 and thrred <= 5) and (acc >= 3 and acc <= 5)) {
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/systems/thrust/clbreduc-ft", thracc[0]);
|
|
|
|
setprop("/it-autoflight/settings/reduc-agl-ft", thracc[1]);
|
|
|
|
setprop("/MCDUC/thracc-set", 1);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (key == "R6") {
|
|
|
|
setprop("/MCDU[1]/page", "CLB");
|
2017-05-26 17:50:53 +00:00
|
|
|
} else if (key == "R3") {
|
|
|
|
if (scratchpad == "CLR") {
|
|
|
|
setprop("/FMGC/internal/to-flap", 0);
|
|
|
|
setprop("/FMGC/internal/to-ths", "0.0");
|
|
|
|
setprop("/FMGC/internal/flap-ths-set", 0);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
|
|
|
var tfs = size(scratchpad);
|
|
|
|
if (tfs == 7) {
|
|
|
|
var flapths = split("/UP", scratchpad);
|
|
|
|
if ((flapths[0] >= 1 and flapths[0] <= 4) and (flapths[1] >= 0.0 and flapths[1] <= 2.5)) {
|
|
|
|
setprop("/FMGC/internal/to-flap", flapths[0]);
|
|
|
|
setprop("/FMGC/internal/to-ths", flapths[1]);
|
|
|
|
setprop("/FMGC/internal/flap-ths-set", 1);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (key == "R4") {
|
|
|
|
if (scratchpad == "CLR") {
|
|
|
|
setprop("/FMGC/internal/flex", 0);
|
|
|
|
setprop("/FMGC/internal/flex-set", 0);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
|
|
|
var tfs = size(scratchpad);
|
|
|
|
if (tfs == 1 or tfs == 2) {
|
|
|
|
if (scratchpad >= 0 and scratchpad <= 70) {
|
|
|
|
setprop("/FMGC/internal/flex", scratchpad);
|
|
|
|
setprop("/FMGC/internal/flex-set", 1);
|
2017-05-27 00:37:11 +00:00
|
|
|
var flex_calc = getprop("/FMGC/internal/flex") - getprop("/environment/temperature-degc");
|
|
|
|
setprop("/FMGC/internal/flex-cmd", flex_calc);
|
2017-05-26 17:50:53 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
}
|
2017-05-26 04:58:04 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-05-19 19:20:54 +00:00
|
|
|
var perfCLBInput = func(key) {
|
2017-05-19 13:36:39 +00:00
|
|
|
var scratchpad = getprop("/MCDU[1]/scratchpad");
|
|
|
|
if (key == "L5") {
|
|
|
|
if (scratchpad == "CLR") {
|
|
|
|
setprop("/FMGC/internal/cost-index", 0);
|
|
|
|
setprop("/FMGC/internal/cost-index-set", 0);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
|
|
|
var ci = int(scratchpad);
|
|
|
|
var cis = size(scratchpad);
|
|
|
|
if (cis >= 1 and cis <= 3) {
|
2017-05-21 17:20:14 +00:00
|
|
|
if (ci == nil) {
|
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
} else if (ci >= 0 and ci <= 120) {
|
2017-05-19 13:36:39 +00:00
|
|
|
setprop("/FMGC/internal/cost-index", ci);
|
|
|
|
setprop("/FMGC/internal/cost-index-set", 1);
|
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
|
|
|
} else {
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
2017-05-19 13:36:39 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
} else {
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
2017-05-19 13:36:39 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad", "NOT ALLOWED");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (key == "L6") {
|
|
|
|
setprop("/MCDU[1]/page", "TO");
|
2017-05-19 16:20:08 +00:00
|
|
|
} else if (key == "R6") {
|
|
|
|
setprop("/MCDU[1]/page", "CRZ");
|
2017-05-19 13:36:39 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-05-19 19:20:54 +00:00
|
|
|
var perfCRZInput = func(key) {
|
2017-05-19 16:20:08 +00:00
|
|
|
if (key == "L6") {
|
|
|
|
setprop("/MCDU[1]/page", "CLB");
|
2017-05-19 13:36:39 +00:00
|
|
|
}
|
2017-05-21 17:20:14 +00:00
|
|
|
# if (key == "R6") {
|
|
|
|
# setprop("/MCDU[1]/page", "DES");
|
|
|
|
# }
|
2017-05-18 13:53:16 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
var arrowbutton = func(btn) {
|
|
|
|
if (btn == "left") {
|
|
|
|
if (getprop("/MCDU[1]/page") == "DATA") {
|
2017-05-18 22:28:36 +00:00
|
|
|
setprop("/MCDU[1]/page", "DATA2");
|
2017-05-18 13:53:16 +00:00
|
|
|
} else if (getprop("/MCDU[1]/page") == "DATA2") {
|
2017-05-18 22:28:36 +00:00
|
|
|
setprop("/MCDU[1]/page", "DATA");
|
2017-05-18 13:53:16 +00:00
|
|
|
}
|
2017-05-18 18:52:02 +00:00
|
|
|
if (getprop("/MCDU[1]/page") == "INITA") {
|
2017-05-18 22:28:36 +00:00
|
|
|
setprop("/MCDU[1]/page", "INITB");
|
2017-05-18 18:52:02 +00:00
|
|
|
} else if (getprop("/MCDU[1]/page") == "INITB") {
|
2017-05-18 22:28:36 +00:00
|
|
|
setprop("/MCDU[1]/page", "INITA");
|
2017-05-18 18:52:02 +00:00
|
|
|
}
|
2017-05-18 13:53:16 +00:00
|
|
|
} else if (btn == "right") {
|
|
|
|
if (getprop("/MCDU[1]/page") == "DATA") {
|
2017-05-18 22:28:36 +00:00
|
|
|
setprop("/MCDU[1]/page", "DATA2");
|
2017-05-18 13:53:16 +00:00
|
|
|
} else if (getprop("/MCDU[1]/page") == "DATA2") {
|
2017-05-18 22:28:36 +00:00
|
|
|
setprop("/MCDU[1]/page", "DATA");
|
2017-05-18 13:53:16 +00:00
|
|
|
}
|
2017-05-18 18:52:02 +00:00
|
|
|
if (getprop("/MCDU[1]/page") == "INITA") {
|
2017-05-18 22:28:36 +00:00
|
|
|
setprop("/MCDU[1]/page", "INITB");
|
2017-05-18 18:52:02 +00:00
|
|
|
} else if (getprop("/MCDU[1]/page") == "INITB") {
|
2017-05-18 22:28:36 +00:00
|
|
|
setprop("/MCDU[1]/page", "INITA");
|
2017-05-18 18:52:02 +00:00
|
|
|
}
|
2017-05-18 13:53:16 +00:00
|
|
|
} else if (btn == "up") {
|
|
|
|
# Nothing for now
|
|
|
|
} else if (btn == "down") {
|
|
|
|
# Nothing for now
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-05-15 22:38:20 +00:00
|
|
|
var pagebutton = func(btn) {
|
2017-05-18 13:53:16 +00:00
|
|
|
if (btn == "perf") {
|
|
|
|
if (getprop("/FMGC/status/phase") == 0 or getprop("/FMGC/status/phase") == 1) {
|
2017-05-18 22:28:36 +00:00
|
|
|
setprop("/MCDU[1]/page", "TO");
|
2017-05-26 16:42:19 +00:00
|
|
|
} else if (getprop("/FMGC/status/phase") == 2) {
|
|
|
|
setprop("/MCDU[1]/page", "CLB");
|
|
|
|
} else if (getprop("/FMGC/status/phase") == 3) {
|
|
|
|
setprop("/MCDU[1]/page", "CRZ");
|
2017-05-18 13:53:16 +00:00
|
|
|
}
|
|
|
|
} else if (btn == "init") {
|
2017-05-18 22:28:36 +00:00
|
|
|
setprop("/MCDU[1]/page", "INITA");
|
2017-05-18 13:53:16 +00:00
|
|
|
} else if (btn == "data") {
|
2017-05-18 22:28:36 +00:00
|
|
|
setprop("/MCDU[1]/page", "DATA");
|
2017-05-26 16:42:19 +00:00
|
|
|
} else if (btn == "mcdu") {
|
2017-05-26 17:56:32 +00:00
|
|
|
setprop("/MCDU[1]/last-fmgc-page", getprop("/MCDU[1]/page"));
|
2017-05-26 16:42:19 +00:00
|
|
|
setprop("/MCDU[1]/page", "MCDU");
|
2017-05-15 22:38:20 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-05-13 17:08:49 +00:00
|
|
|
var button = func(btn) {
|
|
|
|
var scratchpad = getprop("/MCDU[1]/scratchpad");
|
|
|
|
if (btn == "A") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "A");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "B") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "B");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "C") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "C");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "D") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "D");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "E") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "E");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "F") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "F");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "G") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "G");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "H") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "H");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "I") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "I");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "J") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "J");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "K") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "K");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "L") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "L");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "M") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "M");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "N") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "N");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "O") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "O");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "P") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "P");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "Q") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "Q");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "R") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "R");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "S") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "S");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "T") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "T");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "U") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "U");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "V") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "V");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "W") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "W");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "X") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "X");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "Y") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "Y");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "Z") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "Z");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "SLASH") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "/");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "SP") {
|
2017-05-18 18:41:33 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ " ");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-15 22:38:20 +00:00
|
|
|
} else if (btn == "CLR") {
|
|
|
|
var scratchpad = getprop("/MCDU[1]/scratchpad");
|
2017-05-18 18:41:33 +00:00
|
|
|
if (size(scratchpad) == 0) {
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "1");
|
2017-05-16 11:35:52 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad", "CLR");
|
2017-05-26 04:58:04 +00:00
|
|
|
} else if (getprop("/MCDU[1]/scratchpad-msg") == 1) {
|
2017-05-18 18:41:33 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad", "");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-16 14:29:05 +00:00
|
|
|
} else if (size(scratchpad) > 0) {
|
|
|
|
setprop("/MCDU[1]/scratchpad", left(scratchpad, size(scratchpad)-1));
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-15 22:38:20 +00:00
|
|
|
}
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "0") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "0");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "1") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "1");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "2") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "2");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "3") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "3");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "4") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "4");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "5") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "5");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "6") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "6");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "7") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "7");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "8") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "8");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "9") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "9");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
} else if (btn == "DOT") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ ".");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-21 17:20:14 +00:00
|
|
|
} else if (btn == "PLUSMINUS") {
|
|
|
|
setprop("/MCDU[1]/scratchpad", scratchpad ~ "-");
|
2017-05-26 04:58:04 +00:00
|
|
|
setprop("/MCDU[1]/scratchpad-msg", "0");
|
2017-05-13 17:08:49 +00:00
|
|
|
}
|
2017-05-18 18:41:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
var screenFlash = func(time) {
|
|
|
|
var page = getprop("/MCDU[1]/page");
|
|
|
|
setprop("/MCDU[1]/page", "NONE");
|
|
|
|
settimer(func {
|
|
|
|
setprop("/MCDU[1]/page", page);
|
|
|
|
}, time);
|
|
|
|
}
|