1
0
Fork 0

Add baro/radio, improve vapp

This commit is contained in:
Matthew Maring 2020-04-18 09:59:05 -04:00 committed by Jonathan Redpath
parent 5222aeb633
commit df59dc7168
5 changed files with 95 additions and 23 deletions

View file

@ -193,8 +193,8 @@ var dest_mag = props.globals.getNode("FMGC/internal/dest-mag", 1);
var dest_wind = props.globals.getNode("FMGC/internal/dest-wind", 1);
var vapp_speed_set = props.globals.getNode("FMGC/internal/vapp-speed-set", 1);
var final = props.globals.getNode("FMGC/internal/final", 1);
var mda = props.globals.getNode("FMGC/internal/mda", 1);
var dh = props.globals.getNode("FMGC/internal/dh", 1);
var mda = props.globals.getNode("FMGC/internal/radio", 1);
var dh = props.globals.getNode("FMGC/internal/baro", 1);
var ldg_config_3_set = props.globals.getNode("FMGC/internal/ldg-config-3-set", 1);
var ldg_config_f_set = props.globals.getNode("FMGC/internal/ldg-config-f-set", 1);
@ -332,6 +332,8 @@ var canvas_MCDU_base = {
me["ArrowRight"].show();
me["arrowsDepArr"].hide();
me["Simple_L0S"].hide();
me["Simple_L1_Arrow"].hide();
me["Simple_L2_Arrow"].hide();
me["Simple_L3_Arrow"].hide();
@ -2588,7 +2590,7 @@ var canvas_MCDU_base = {
me["Simple_L3S"].setText("MAG WIND");
if (dest_mag.getValue() != -1 and dest_wind.getValue() != -1) {
me["Simple_L3"].setText(sprintf("%3.0fg", dest_mag.getValue()) ~ sprintf("/%3.0f", dest_wind.getValue()));
me["Simple_L3"].setText(sprintf("%3.0fg", dest_mag.getValue()) ~ sprintf("/%.0f", dest_wind.getValue()));
} else {
me["Simple_L3"].setText("---g/---");;
}
@ -2603,11 +2605,31 @@ var canvas_MCDU_base = {
me["Simple_R1"].setText("--- ");
}
me["Simple_R2S"].setText("MDA");
me["Simple_R2"].setText(" [ ]");
me["Simple_R2S"].setText("BARO");
if (getprop("FMGC/internal/baro") != -1) {
me["Simple_R2"].setText(sprintf("%.0f", getprop("FMGC/internal/baro")));
me.fontRight(0, default, 0, 0, 0, 0);
me.fontSizeRight(0, normal, 0, 0, 0, 0);
} else {
me["Simple_R2"].setText(" [ ]");
me.fontRight(0, symbol, 0, 0, 0, 0);
me.fontSizeRight(0, small, 0, 0, 0, 0);
}
me["Simple_R3S"].setText("DH");
me["Simple_R3"].setText(" [ ]");
me["Simple_R3S"].setText("RADIO");
if (getprop("FMGC/internal/radio") != -1) {
me["Simple_R3"].setText(sprintf("%.0f", getprop("FMGC/internal/radio")));
me.fontRight(0, 0, default, 0, 0, 0);
me.fontSizeRight(0, 0, normal, 0, 0, 0);
} else if (getprop("FMGC/internal/radio-no")) {
me["Simple_R3"].setText("NO");
me.fontRight(0, 0, default, 0, 0, 0);
me.fontSizeRight(0, 0, normal, 0, 0, 0);
} else {
me["Simple_R3"].setText(" [ ]");
me.fontRight(0, 0, symbol, 0, 0, 0);
me.fontSizeRight(0, 0, small, 0, 0, 0);
}
me["Simple_R4S"].setText("LDG CONF ");
me["Simple_R4"].setText("CONF3 ");
@ -2636,7 +2658,7 @@ var canvas_MCDU_base = {
me["Simple_C5"].setText(sprintf("%3.0f", getprop("FMGC/internal/computed-speeds/vls_appr")));
me["Simple_L5"].setText(sprintf("%3.0f", getprop("FMGC/internal/computed-speeds/vapp_appr")));
me.fontLeft(0, 0, 0, 0, default, 0);
if (vapp_speed_set.getValue() == 1) {
if (vapp_speed_set.getValue()) {
me.fontSizeLeft(0, 0, 0, 0, normal, 0);
} else {
me.fontSizeLeft(0, 0, 0, 0, small, 0);
@ -2646,8 +2668,15 @@ var canvas_MCDU_base = {
me["Simple_C2"].setText(" ---");
me["Simple_C3"].setText(" ---");
me["Simple_C5"].setText(" ---");
me["Simple_L5"].setText("[ ] ");
me.fontLeft(0, 0, 0, 0, symbol, 0);
if (vapp_speed_set.getValue()) {
me["Simple_L5"].setText(sprintf("%3.0f", getprop("FMGC/internal/computed-speeds/vapp_appr")));
me.fontLeft(0, 0, 0, 0, default, 0);
me.fontSizeLeft(0, 0, 0, 0, normal, 0);
} else {
me["Simple_L5"].setText("[ ] ");
me.fontLeft(0, 0, 0, 0, symbol, 0);
me.fontSizeLeft(0, 0, 0, 0, small, 0);
}
}
me["Simple_C1S"].setText("FLP RETR");
@ -2764,6 +2793,8 @@ var canvas_MCDU_base = {
me["ArrowLeft"].hide();
me["ArrowRight"].hide();
me["Simple_L0S"].hide();
me.fontLeft(default, default, default, default, default, default);
me.fontLeftS(default, default, default, default, default, default);
me.fontRight(default, default, default, default, default, default);
@ -3024,6 +3055,8 @@ var canvas_MCDU_base = {
me["ArrowLeft"].hide();
me["ArrowRight"].hide();
me["Simple_L0S"].hide();
me.fontLeft(default, default, default, default, default, default);
me.fontLeftS(default, default, default, default, default, default);
me.fontRight(default, default, default, default, default, default);
@ -3296,6 +3329,8 @@ var canvas_MCDU_base = {
me["Simple_R5_Arrow"].hide();
me["Simple_R6_Arrow"].hide();
me["Simple_L0S"].hide();
me.fontLeft(default, default, default, default, default, default);
me.fontLeftS(default, default, default, default, default, default);
me.fontRight(default, default, default, default, default, default);
@ -3613,6 +3648,8 @@ var canvas_MCDU_base = {
me["ArrowLeft"].hide();
me["ArrowRight"].hide();
me["Simple_L0S"].hide();
me.fontLeft(default, default, default, default, default, default);
me.fontLeftS(default, default, default, default, default, default);
me.fontRight(default, default, default, default, default, default);
@ -3942,6 +3979,8 @@ var canvas_MCDU_base = {
me["Simple_R5_Arrow"].hide();
me["Simple_R6_Arrow"].hide();
me["Simple_L0S"].hide();
me.fontLeft(default, default, default, default, default, default);
me.fontLeftS(default, default, default, default, default, default);
me.fontRight(default, default, default, default, default, default);
@ -4271,6 +4310,8 @@ var canvas_MCDU_base = {
me["Simple_R5_Arrow"].hide();
me["Simple_R6_Arrow"].hide();
me["Simple_L0S"].hide();
me.fontLeft(default, default, default, default, default, default);
me.fontLeftS(default, default, default, default, default, default);
me.fontRight(default, default, default, default, default, default);
@ -4601,6 +4642,8 @@ var canvas_MCDU_base = {
me["Simple_R5_Arrow"].hide();
me["Simple_R6_Arrow"].hide();
me["Simple_L0S"].hide();
me.fontLeft(default, default, default, default, default, default);
me.fontLeftS(default, default, default, default, default, default);
me.fontRight(default, default, default, default, default, default);

View file

@ -321,6 +321,7 @@ var masterFMGC = maketimer(0.2, func {
} else {
vapp = vls + dest_wind;
}
setprop("FMGC/internal/computed-speeds/vapp", vapp);
}
aoa_prot = 15;
@ -370,6 +371,7 @@ var masterFMGC = maketimer(0.2, func {
} else {
vapp_appr = vls_appr + dest_wind;
}
setprop("FMGC/internal/computed-speeds/vapp_appr", vapp_appr);
}
# set the values globally
@ -384,7 +386,6 @@ var masterFMGC = maketimer(0.2, func {
setprop("FMGC/internal/computed-speeds/flap2", flap2);
setprop("FMGC/internal/computed-speeds/flap3", flap3);
setprop("FMGC/internal/computed-speeds/vls", vls);
setprop("FMGC/internal/computed-speeds/vapp", vapp);
setprop("FMGC/internal/computed-speeds/alpha_prot", alpha_prot);
setprop("FMGC/internal/computed-speeds/alpha_max", alpha_max);
@ -404,7 +405,6 @@ var masterFMGC = maketimer(0.2, func {
setprop("FMGC/internal/computed-speeds/flap2_appr", flap2_appr);
setprop("FMGC/internal/computed-speeds/clean_appr", clean_appr);
setprop("FMGC/internal/computed-speeds/vls_appr", vls_appr);
setprop("FMGC/internal/computed-speeds/vapp_appr", vapp_appr);
# Need info on these, also correct for height at altitude...
# https://www.pprune.org/archive/index.php/t-587639.html
@ -469,7 +469,9 @@ var masterFMGC = maketimer(0.2, func {
#handle radios, runways, v1/vr/v2
if (fmgc.flightPlanController.flightplans[2].approach != nil and phase >= 2) {
var runways = airportinfo(airportinfo(getprop("FMGC/internal/arr-arpt")).id).runways;
var airport = airportinfo(getprop("FMGC/internal/arr-arpt")).id;
setprop("FMGC/internal/ldg-elev", airport.elevation * M2FT);
var runways = airportinfo(airport).runways;
var rwy = string.replace(fmgc.flightPlanController.flightplans[2].approach.id, "ILS", "");
if (runways[rwy] != nil) {
var r = runways[rwy];

View file

@ -465,6 +465,9 @@ var arrivalPage = {
me.makeTmpy();
fmgc.flightPlanController.flightplans[me.computer].destination_runway = me.arrAirport[0].runways[me.selectedApproach.runways[0]];
fmgc.flightPlanController.flightplans[me.computer].approach = me.selectedApproach;
setprop("FMGC/internal/baro", -1);
setprop("FMGC/internal/radio", -1);
setprop("FMGC/internal/radio-no", 0);
me.updateActiveApproach();
me.updateApproaches();
fmgc.flightPlanController.flightPlanChanged(me.computer);

View file

@ -160,8 +160,10 @@ var MCDU_reset = func(i) {
setprop("FMGC/internal/dest-wind", -1);
setprop("FMGC/internal/vapp-speed-set", 0);
setprop("FMGC/internal/final", "");
setprop("FMGC/internal/mda", -1);
setprop("FMGC/internal/dh", -1);
setprop("FMGC/internal/baro", -1);
setprop("FMGC/internal/radio", -1);
setprop("FMGC/internal/radio-no", 0);
setprop("FMGC/internal/ldg-elev", 0);
setprop("FMGC/internal/ldg-config-3-set", 0);
setprop("FMGC/internal/ldg-config-f-set", 1);

View file

@ -1,14 +1,6 @@
# Copyright (c) 2020 Matthew Maring (hayden2000)
# APPR PERF
var dest_qnh = props.globals.getNode("FMGC/internal/dest-qnh", 1);
var dest_temp = props.globals.getNode("FMGC/internal/dest-temp", 1);
var dest_mag = props.globals.getNode("FMGC/internal/dest-mag", 1);
var dest_wind = props.globals.getNode("FMGC/internal/dest-wind", 1);
var transAlt = props.globals.getNode("FMGC/internal/trans-alt", 1);
var final = props.globals.getNode("FMGC/internal/final", 1);
var mda = props.globals.getNode("FMGC/internal/mda", 1);
var dh = props.globals.getNode("FMGC/internal/dh", 1);
var ldg_config_3_set = props.globals.getNode("FMGC/internal/ldg-config-3-set", 1);
var ldg_config_f_set = props.globals.getNode("FMGC/internal/ldg-config-f-set", 1);
@ -97,6 +89,36 @@ var perfAPPRInput = func(key, i) {
} else {
notAllowed(i);
}
} else if (key == "R2") {
if (scratchpad == "CLR") {
setprop("FMGC/internal/baro", -1);
setprop("MCDU[" ~ i ~ "]/scratchpad", "");
} else if (int(scratchpad) != nil and scratchpad >= getprop("FMGC/internal/ldg-elev") and scratchpad <= 5000 + getprop("FMGC/internal/ldg-elev")) {
if (getprop("FMGC/internal/radio-no") == 0) {
setprop("FMGC/internal/radio", -1);
}
setprop("FMGC/internal/baro", scratchpad);
setprop("MCDU[" ~ i ~ "]/scratchpad", "");
} else {
notAllowed(i);
}
} else if (key == "R3") {
if (scratchpad == "CLR") {
setprop("FMGC/internal/radio", -1);
setprop("FMGC/internal/radio-no", 0);
setprop("MCDU[" ~ i ~ "]/scratchpad", "");
} else if (scratchpad == "NO") {
setprop("FMGC/internal/radio", -1);
setprop("FMGC/internal/radio-no", 1);
setprop("MCDU[" ~ i ~ "]/scratchpad", "");
} else if (int(scratchpad) != nil and scratchpad >= 0 and scratchpad <= 700) {
setprop("FMGC/internal/baro", -1);
setprop("FMGC/internal/radio-no", 0);
setprop("FMGC/internal/radio", scratchpad);
setprop("MCDU[" ~ i ~ "]/scratchpad", "");
} else {
notAllowed(i);
}
} else if (key == "R5") {
if (scratchpad == "" and ldg_config_3_set.getValue() == 1 and ldg_config_f_set.getValue() == 0) {
setprop("FMGC/internal/ldg-config-3-set", 0);