2019-05-08 23:27:26 +00:00
|
|
|
# A3XX EFIS controller by Joshua Davidson (Octal450).
|
2016-11-05 03:39:28 +00:00
|
|
|
|
2019-05-08 23:27:26 +00:00
|
|
|
# Copyright (c) 2019 Joshua Davidson (Octal450)
|
2017-07-13 17:30:33 +00:00
|
|
|
|
2016-11-05 03:39:28 +00:00
|
|
|
setlistener("sim/signals/fdm-initialized", func {
|
2018-10-30 23:28:49 +00:00
|
|
|
setprop("/instrumentation/efis[0]/nd/display-mode", "NAV");
|
|
|
|
setprop("/instrumentation/efis[0]/mfd/pnl_mode-num", 2);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/range-nm", 20);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/tfc", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/CSTR", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/wpt", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/VORD", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/DME", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/NDB", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/arpt", 0);
|
2017-06-19 00:14:41 +00:00
|
|
|
setprop("/instrumentation/efis[1]/nd/display-mode", "NAV");
|
|
|
|
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 2);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/range-nm", 20);
|
2018-01-29 15:37:59 +00:00
|
|
|
setprop("/instrumentation/efis[1]/inputs/tfc", 0);
|
2018-10-30 23:28:49 +00:00
|
|
|
setprop("/instrumentation/efis[1]/inputs/CSTR", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/wpt", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/VORD", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/DME", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/NDB", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/arpt", 0);
|
2016-11-05 03:39:28 +00:00
|
|
|
});
|
|
|
|
|
2018-10-30 23:28:49 +00:00
|
|
|
var setCptND = func(d) {
|
|
|
|
var mode = getprop("/instrumentation/efis[0]/nd/display-mode");
|
|
|
|
|
|
|
|
if (d == 1) {
|
|
|
|
if (mode == "ILS") {
|
|
|
|
setprop("/instrumentation/efis[0]/nd/display-mode", "VOR");
|
|
|
|
setprop("/instrumentation/efis[0]/mfd/pnl_mode-num", 1);
|
|
|
|
} else if (mode == "VOR") {
|
|
|
|
setprop("/instrumentation/efis[0]/nd/display-mode", "NAV");
|
|
|
|
setprop("/instrumentation/efis[0]/mfd/pnl_mode-num", 2);
|
|
|
|
} else if (mode == "NAV") {
|
|
|
|
setprop("/instrumentation/efis[0]/nd/display-mode", "ARC");
|
|
|
|
setprop("/instrumentation/efis[0]/mfd/pnl_mode-num", 3);
|
|
|
|
} else if (mode == "ARC") {
|
|
|
|
setprop("/instrumentation/efis[0]/nd/display-mode", "PLAN");
|
|
|
|
setprop("/instrumentation/efis[0]/mfd/pnl_mode-num", 4);
|
|
|
|
}
|
|
|
|
} else if (d == -1) {
|
|
|
|
if (mode == "PLAN") {
|
|
|
|
setprop("/instrumentation/efis[0]/nd/display-mode", "ARC");
|
|
|
|
setprop("/instrumentation/efis[0]/mfd/pnl_mode-num", 3);
|
|
|
|
} else if (mode == "ARC") {
|
|
|
|
setprop("/instrumentation/efis[0]/nd/display-mode", "NAV");
|
|
|
|
setprop("/instrumentation/efis[0]/mfd/pnl_mode-num", 2);
|
|
|
|
} else if (mode == "NAV") {
|
|
|
|
setprop("/instrumentation/efis[0]/nd/display-mode", "VOR");
|
|
|
|
setprop("/instrumentation/efis[0]/mfd/pnl_mode-num", 1);
|
|
|
|
} else if (mode == "VOR") {
|
|
|
|
setprop("/instrumentation/efis[0]/nd/display-mode", "ILS");
|
|
|
|
setprop("/instrumentation/efis[0]/mfd/pnl_mode-num", 0);
|
|
|
|
}
|
|
|
|
}
|
2016-11-05 03:39:28 +00:00
|
|
|
}
|
|
|
|
|
2018-10-30 23:28:49 +00:00
|
|
|
var setFoND = func(d) {
|
|
|
|
var mode = getprop("/instrumentation/efis[1]/nd/display-mode");
|
|
|
|
|
|
|
|
if (d == 1) {
|
|
|
|
if (mode == "ILS") {
|
|
|
|
setprop("/instrumentation/efis[1]/nd/display-mode", "VOR");
|
|
|
|
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 1);
|
|
|
|
} else if (mode == "VOR") {
|
|
|
|
setprop("/instrumentation/efis[1]/nd/display-mode", "NAV");
|
|
|
|
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 2);
|
|
|
|
} else if (mode == "NAV") {
|
|
|
|
setprop("/instrumentation/efis[1]/nd/display-mode", "ARC");
|
|
|
|
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 3);
|
|
|
|
} else if (mode == "ARC") {
|
|
|
|
setprop("/instrumentation/efis[1]/nd/display-mode", "PLAN");
|
|
|
|
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 4);
|
|
|
|
}
|
|
|
|
} else if (d == -1) {
|
|
|
|
if (mode == "PLAN") {
|
|
|
|
setprop("/instrumentation/efis[1]/nd/display-mode", "ARC");
|
|
|
|
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 3);
|
|
|
|
} else if (mode == "ARC") {
|
|
|
|
setprop("/instrumentation/efis[1]/nd/display-mode", "NAV");
|
|
|
|
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 2);
|
|
|
|
} else if (mode == "NAV") {
|
|
|
|
setprop("/instrumentation/efis[1]/nd/display-mode", "VOR");
|
|
|
|
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 1);
|
|
|
|
} else if (mode == "VOR") {
|
|
|
|
setprop("/instrumentation/efis[1]/nd/display-mode", "ILS");
|
|
|
|
setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 0);
|
|
|
|
}
|
2016-11-05 03:39:28 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-10-30 23:28:49 +00:00
|
|
|
var setNDRange = func(n, d) {
|
|
|
|
var rng = getprop("/instrumentation/efis[" ~ n ~ "]/inputs/range-nm");
|
|
|
|
if (d == 1) {
|
|
|
|
rng = rng * 2;
|
|
|
|
if (rng > 320) {
|
|
|
|
rng = 320;
|
|
|
|
}
|
|
|
|
} else if (d == -1){
|
|
|
|
rng = rng / 2;
|
|
|
|
if (rng < 10) {
|
|
|
|
rng = 10;
|
|
|
|
}
|
2016-11-05 03:39:28 +00:00
|
|
|
}
|
2018-10-30 23:28:49 +00:00
|
|
|
setprop("/instrumentation/efis[" ~ n ~ "]/inputs/range-nm", rng);
|
2017-04-06 10:02:17 +00:00
|
|
|
}
|
|
|
|
|
2017-10-23 20:05:09 +00:00
|
|
|
var cpt_efis_btns = func(i) {
|
|
|
|
if (i == "cstr") {
|
2018-10-30 23:28:49 +00:00
|
|
|
setprop("/instrumentation/efis[0]/inputs/CSTR", 1);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/wpt", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/VORD", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/DME", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/NDB", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/arpt", 0);
|
2017-10-23 20:05:09 +00:00
|
|
|
} else if (i == "wpt") {
|
2018-10-30 23:28:49 +00:00
|
|
|
setprop("/instrumentation/efis[0]/inputs/CSTR", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/wpt", 1);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/VORD", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/DME", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/NDB", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/arpt", 0);
|
2017-10-23 20:05:09 +00:00
|
|
|
} else if (i == "vord") {
|
2018-10-30 23:28:49 +00:00
|
|
|
setprop("/instrumentation/efis[0]/inputs/CSTR", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/wpt", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/VORD", 1);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/DME", 1);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/NDB", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/arpt", 0);
|
2017-10-23 20:05:09 +00:00
|
|
|
} else if (i == "ndb") {
|
2018-10-30 23:28:49 +00:00
|
|
|
setprop("/instrumentation/efis[0]/inputs/CSTR", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/wpt", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/VORD", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/DME", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/NDB", 1);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/arpt", 0);
|
2017-10-23 20:05:09 +00:00
|
|
|
} else if (i == "arpt") {
|
2018-10-30 23:28:49 +00:00
|
|
|
setprop("/instrumentation/efis[0]/inputs/CSTR", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/wpt", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/VORD", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/DME", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/NDB", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/arpt", 1);
|
2017-10-23 20:05:09 +00:00
|
|
|
} else if (i == "off") {
|
2018-10-30 23:28:49 +00:00
|
|
|
setprop("/instrumentation/efis[0]/inputs/CSTR", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/wpt", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/VORD", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/DME", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/NDB", 0);
|
|
|
|
setprop("/instrumentation/efis[0]/inputs/arpt", 0);
|
2017-06-19 00:14:41 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-10-23 20:05:09 +00:00
|
|
|
var fo_efis_btns = func(i) {
|
|
|
|
if (i == "cstr") {
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/CSTR", 1);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/wpt", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/VORD", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/DME", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/NDB", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/arpt", 0);
|
|
|
|
} else if (i == "wpt") {
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/CSTR", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/wpt", 1);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/VORD", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/DME", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/NDB", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/arpt", 0);
|
|
|
|
} else if (i == "vord") {
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/CSTR", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/wpt", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/VORD", 1);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/DME", 1);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/NDB", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/arpt", 0);
|
|
|
|
} else if (i == "ndb") {
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/CSTR", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/wpt", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/VORD", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/DME", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/NDB", 1);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/arpt", 0);
|
|
|
|
} else if (i == "arpt") {
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/CSTR", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/wpt", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/VORD", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/DME", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/NDB", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/arpt", 1);
|
|
|
|
} else if (i == "off") {
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/CSTR", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/wpt", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/VORD", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/DME", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/NDB", 0);
|
|
|
|
setprop("/instrumentation/efis[1]/inputs/arpt", 0);
|
|
|
|
}
|
|
|
|
}
|