1
0
Fork 0

Merge branch 'mcdukgs' into dev

This commit is contained in:
legoboyvdlp R 2020-10-03 16:50:42 +01:00
commit 8000651176
6 changed files with 259 additions and 60 deletions

View file

@ -243,7 +243,7 @@
</checkbox>
<!-- TODO Comment back in, when fully implemented -->
<!-- checkbox>
<checkbox>
<label>Weight in KG</label>
<halign>left</halign>
<property>/options/system/weight-kgs</property>
@ -261,7 +261,7 @@
</script>
</binding>
<live>true</live>
</checkbox -->
</checkbox>
<checkbox>
<label>ADIRS Aligns Instantly</label>

View file

@ -72,6 +72,7 @@ var MAGENTA = [0.6902,0.3333,0.7541];
# Fetch nodes:
var mcdu_keyboard_left = props.globals.getNode("/FMGC/keyboard-left", 0);
var mcdu_keyboard_right = props.globals.getNode("/FMGC/keyboard-right", 0);
var acconfig_weight_kgs = props.globals.getNode("/systems/acconfig/options/weight-kgs", 1);
#ACCONFIG
var mcdu1_lgt = props.globals.getNode("/controls/lighting/DU/mcdu1", 1);
@ -153,6 +154,10 @@ var pageProp = [props.globals.getNode("/MCDU[0]/page", 1), props.globals.getNode
var active = [props.globals.getNode("/MCDU[0]/active", 1), props.globals.getNode("/MCDU[1]/active", 1)];
var activeAtsu = [props.globals.getNode("/MCDU[0]/atsu-active", 1), props.globals.getNode("/MCDU[1]/atsu-active", 1)];
# Conversion factor pounds to kilogram
var LBS2KGS = 0.4535924;
# Create Nodes:
var pageSwitch = [props.globals.initNode("/MCDU[0]/internal/switch", 0, "BOOL"), props.globals.initNode("/MCDU[1]/internal/switch", 0, "BOOL")];
@ -1450,7 +1455,7 @@ var canvas_MCDU_base = {
me["Simple_L5"].setText("[ ]");
me["Simple_L6"].setText("+4.0/+0.0");
me["Simple_L6"].setText("+0.0/+1.0");
me["Simple_L1S"].setText(" ENG");
me["Simple_L2S"].setText(" ACTIVE NAV DATA BASE");
me["Simple_L3S"].setText(" SECOND NAV DATA BASE");
@ -2248,7 +2253,11 @@ var canvas_MCDU_base = {
}
me["Simple_L1S"].setText("TAXI");
me["Simple_L1"].setText(sprintf("%2.1f", fmgc.FMGCInternal.taxiFuel));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_L1"].setText(sprintf("%2.1f", fmgc.FMGCInternal.taxiFuel * LBS2KGS));
} else {
me["Simple_L1"].setText(sprintf("%2.1f", fmgc.FMGCInternal.taxiFuel));
}
me["Simple_L2S"].setText("TRIP/TIME");
me["Simple_L3S"].setText("RTE RSV/PCT");
me["Simple_L4S"].setText("ALTN/TIME");
@ -2274,7 +2283,11 @@ var canvas_MCDU_base = {
if (fmgc.FMGCInternal.blockSet) {
me["Simple_R2"].show();
me["INITB_Block"].hide();
me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block * LBS2KGS));
} else {
me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block));
}
} else {
me["Simple_R2"].hide();
me["INITB_Block"].show();
@ -2342,7 +2355,11 @@ var canvas_MCDU_base = {
me["Simple_L6"].setText("---.-");
me["Simple_R2"].show();
me["INITB_Block"].hide();
me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block * LBS2KGS));
} else {
me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block));
}
me["Simple_R3S"].show();
me["Simple_R3"].show();
me["Simple_R3S"].setText("BLOCK");
@ -2351,9 +2368,17 @@ var canvas_MCDU_base = {
me["Simple_R3_Arrow"].setColor(AMBER);
me["Simple_C4B"].show();
if (num(fmgc.FMGCInternal.tow) >= 100.0) {
me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow * LBS2KGS));
} else {
me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow));
}
} else {
me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow * LBS2KGS));
} else {
me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow));
}
}
me["Simple_R4"].setText("---.-");
me["Simple_R6"].setText("---.-/----");
@ -2387,15 +2412,27 @@ var canvas_MCDU_base = {
me["Simple_L6"].setText("---.-");
me["Simple_R2"].show();
me["INITB_Block"].hide();
me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block * LBS2KGS));
} else {
me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block));
}
me["Simple_R3S"].hide();
me["Simple_R3"].hide();
me["Simple_R3_Arrow"].hide();
me["Simple_C4B"].show();
if (num(fmgc.FMGCInternal.tow) >= 100.0) {
me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow * LBS2KGS));
} else {
me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow));
}
} else {
me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow * LBS2KGS));
} else {
me["Simple_C4B"].setText(sprintf(" %4.1f/", fmgc.FMGCInternal.tow));
}
}
me["Simple_R4"].setText("---.-");
me["Simple_R6"].setText("---.-/----");
@ -2403,8 +2440,16 @@ var canvas_MCDU_base = {
me.colorLeft("ack", "wht", "wht", "wht", "wht", "wht");
me.colorRight("ack", "blu", "ack", "wht", "ack", "wht");
} else {
me["Simple_L2"].setText(sprintf("%.1f/" ~ fmgc.FMGCInternal.tripTime, fmgc.FMGCInternal.tripFuel));
me["Simple_L3"].setText(sprintf("%.1f", fmgc.FMGCInternal.rteRsv));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_L2"].setText(sprintf("%.1f/" ~ fmgc.FMGCInternal.tripTime, fmgc.FMGCInternal.tripFuel * LBS2KGS));
} else {
me["Simple_L2"].setText(sprintf("%.1f/" ~ fmgc.FMGCInternal.tripTime, fmgc.FMGCInternal.tripFuel));
}
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_L3"].setText(sprintf("%.1f", fmgc.FMGCInternal.rteRsv * LBS2KGS));
} else {
me["Simple_L3"].setText(sprintf("%.1f", fmgc.FMGCInternal.rteRsv));
}
if (fmgc.FMGCInternal.rteRsvSet) {
if (num(fmgc.FMGCInternal.rteRsv) > 9.9 and num(fmgc.FMGCInternal.rtePercent) > 9.9) {
me["Simple_C3"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent));
@ -2437,7 +2482,11 @@ var canvas_MCDU_base = {
}
}
if (fmgc.FMGCInternal.altAirportSet) {
me["Simple_L4"].setText(sprintf("%.1f", fmgc.FMGCInternal.altFuel));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_L4"].setText(sprintf("%.1f", fmgc.FMGCInternal.altFuel * LBS2KGS));
} else {
me["Simple_L4"].setText(sprintf("%.1f", fmgc.FMGCInternal.altFuel));
}
me["Simple_L4"].setColor(BLUE);
me["Simple_C4"].show();
if (fmgc.FMGCInternal.altFuelSet) {
@ -2458,7 +2507,11 @@ var canvas_MCDU_base = {
me["Simple_L4"].setColor(WHITE);
me["Simple_C4"].hide();
}
me["Simple_L5"].setText(sprintf("%.1f", fmgc.FMGCInternal.finalFuel));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_L5"].setText(sprintf("%.1f", fmgc.FMGCInternal.finalFuel * LBS2KGS));
} else {
me["Simple_L5"].setText(sprintf("%.1f", fmgc.FMGCInternal.finalFuel));
}
if (fmgc.FMGCInternal.finalTimeSet and fmgc.FMGCInternal.finalFuelSet) {
if (num(fmgc.FMGCInternal.finalFuel) > 9.9) {
me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime));
@ -2484,16 +2537,30 @@ var canvas_MCDU_base = {
me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime));
}
}
me["Simple_L6"].setText(sprintf("%.1f", fmgc.FMGCInternal.minDestFob));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_L6"].setText(sprintf("%.1f", fmgc.FMGCInternal.minDestFob * LBS2KGS));
} else {
me["Simple_L6"].setText(sprintf("%.1f", fmgc.FMGCInternal.minDestFob));
}
me["Simple_R2"].show();
me["INITB_Block"].hide();
me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block * LBS2KGS));
} else {
me["Simple_R2"].setText(sprintf("%3.1f", fmgc.FMGCInternal.block));
}
me["Simple_R3S"].hide();
me["Simple_R3"].hide();
me["Simple_R3_Arrow"].hide();
me["Simple_C4B"].hide();
me["Simple_R4"].setText(sprintf("%4.1f/", fmgc.FMGCInternal.tow) ~ sprintf("%4.1f", fmgc.FMGCInternal.lw));
me["Simple_R6"].setText(sprintf("%.1f/" ~ fmgc.FMGCInternal.extraTime, fmgc.FMGCInternal.extraFuel));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_R4"].setText(sprintf("%4.1f/", fmgc.FMGCInternal.tow * LBS2KGS) ~ sprintf("%4.1f", fmgc.FMGCInternal.lw * LBS2KGS));
me["Simple_R6"].setText(sprintf("%.1f/" ~ fmgc.FMGCInternal.extraTime, fmgc.FMGCInternal.extraFuel * LBS2KGS));
} else {
me["Simple_R4"].setText(sprintf("%4.1f/", fmgc.FMGCInternal.tow) ~ sprintf("%4.1f", fmgc.FMGCInternal.lw));
me["Simple_R6"].setText(sprintf("%.1f/" ~ fmgc.FMGCInternal.extraTime, fmgc.FMGCInternal.extraFuel));
}
me.colorLeft("ack", "grn", "blu", "ack", "blu", "blu");
me.colorRight("ack", "blu", "ack", "grn", "ack", "grn");
@ -2515,9 +2582,17 @@ var canvas_MCDU_base = {
if (fmgc.FMGCInternal.zfwSet) {
if (fmgc.FMGCInternal.zfw < 100) {
me["Simple_C1"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_C1"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw * LBS2KGS));
} else {
me["Simple_C1"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw));
}
} else {
me["Simple_C1"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_C1"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw * LBS2KGS));
} else {
me["Simple_C1"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw));
}
}
me["Simple_C1"].show();
me["INITB_ZFW"].hide();
@ -2684,7 +2759,11 @@ var canvas_MCDU_base = {
me.colorLeft("ack", "ack", "wht", "wht", "wht", "wht");
me.colorRight("ack", "ack", "ack", "wht", "wht", "wht");
} else {
me["Simple_L3"].setText(sprintf("%.1f", fmgc.FMGCInternal.rteRsv));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_L3"].setText(sprintf("%.1f", fmgc.FMGCInternal.rteRsv * LBS2KGS));
} else {
me["Simple_L3"].setText(sprintf("%.1f", fmgc.FMGCInternal.rteRsv));
}
if (fmgc.FMGCInternal.rteRsvSet) {
if (num(fmgc.FMGCInternal.rteRsv) > 9.9 and num(fmgc.FMGCInternal.rtePercent) > 9.9) {
me["Simple_C3B"].setText(sprintf("/%.1f ", fmgc.FMGCInternal.rtePercent));
@ -2717,7 +2796,11 @@ var canvas_MCDU_base = {
}
}
if (fmgc.FMGCInternal.altAirportSet) {
me["Simple_L4"].setText(sprintf("%.1f", fmgc.FMGCInternal.altFuel));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_L4"].setText(sprintf("%.1f", fmgc.FMGCInternal.altFuel * LBS2KGS));
} else {
me["Simple_L4"].setText(sprintf("%.1f", fmgc.FMGCInternal.altFuel));
}
me["Simple_L4"].setColor(BLUE);
me["Simple_C4"].show();
if (fmgc.FMGCInternal.altFuelSet) {
@ -2738,7 +2821,11 @@ var canvas_MCDU_base = {
me["Simple_L4"].setColor(WHITE);
me["Simple_C4"].hide();
}
me["Simple_L5"].setText(sprintf("%.1f", fmgc.FMGCInternal.finalFuel));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_L5"].setText(sprintf("%.1f", fmgc.FMGCInternal.finalFuel * LBS2KGS));
} else {
me["Simple_L5"].setText(sprintf("%.1f", fmgc.FMGCInternal.finalFuel));
}
if (fmgc.FMGCInternal.finalTimeSet and fmgc.FMGCInternal.finalFuelSet) {
if (num(fmgc.FMGCInternal.finalFuel) > 9.9) {
me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime));
@ -2764,10 +2851,17 @@ var canvas_MCDU_base = {
me["Simple_C5"].setText(sprintf("/%s ", fmgc.FMGCInternal.finalTime));
}
}
me["Simple_L6"].setText(sprintf("%.1f", fmgc.FMGCInternal.minDestFob));
me["Simple_R4"].setText(sprintf("%4.1f/" ~ fmgc.FMGCInternal.fffqSensor, fmgc.FMGCInternal.fob));
me["Simple_R5"].setText(sprintf("%4.1f/", fmgc.FMGCInternal.fuelPredGw) ~ sprintf("%4.1f", fmgc.FMGCInternal.cg));
me["Simple_R6"].setText(sprintf("%4.1f/" ~ fmgc.FMGCInternal.extraTime, fmgc.FMGCInternal.extraFuel));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_L6"].setText(sprintf("%.1f", fmgc.FMGCInternal.minDestFob * LBS2KGS));
me["Simple_R4"].setText(sprintf("%4.1f/" ~ fmgc.FMGCInternal.fffqSensor, fmgc.FMGCInternal.fob * LBS2KGS));
me["Simple_R5"].setText(sprintf("%4.1f/", fmgc.FMGCInternal.fuelPredGw * LBS2KGS) ~ sprintf("%4.1f", fmgc.FMGCInternal.cg));
me["Simple_R6"].setText(sprintf("%4.1f/" ~ fmgc.FMGCInternal.extraTime, fmgc.FMGCInternal.extraFuel * LBS2KGS));
} else {
me["Simple_L6"].setText(sprintf("%.1f", fmgc.FMGCInternal.minDestFob));
me["Simple_R4"].setText(sprintf("%4.1f/" ~ fmgc.FMGCInternal.fffqSensor, fmgc.FMGCInternal.fob));
me["Simple_R5"].setText(sprintf("%4.1f/", fmgc.FMGCInternal.fuelPredGw) ~ sprintf("%4.1f", fmgc.FMGCInternal.cg));
me["Simple_R6"].setText(sprintf("%4.1f/" ~ fmgc.FMGCInternal.extraTime, fmgc.FMGCInternal.extraFuel));
}
me.colorLeft("ack", "ack", "blu", "ack", "blu", "blu");
me.colorRight("ack", "ack", "blu", "grn", "grn", "grn");
@ -2786,9 +2880,17 @@ var canvas_MCDU_base = {
if (fmgc.FMGCInternal.zfwSet) {
if (fmgc.FMGCInternal.zfw < 100) {
me["Simple_C3"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_C3"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw * LBS2KGS));
} else {
me["Simple_C3"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw));
}
} else {
me["Simple_C3"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw));
if (acconfig_weight_kgs.getValue() == 1) {
me["Simple_C3"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw * LBS2KGS));
} else {
me["Simple_C3"].setText(" " ~ sprintf("%3.1f", fmgc.FMGCInternal.zfw));
}
}
me["Simple_C3"].show();
me["FUELPRED_ZFW"].hide();

View file

@ -1,6 +1,8 @@
# A3XX Simbrief Parser
# Copyright (c) 2020 Jonathan Redpath (legoboyvdlp)
var LBS2KGS = 0.4535924;
var SimbriefParser = {
node: nil,
OFP: nil,
@ -37,6 +39,9 @@ var SimbriefParser = {
me.store1 = nil;
me.store2 = nil;
me.store1 = me.OFP.getChild("params");
var units = me.store1.getChild("units").getValue();
me.store1 = me.OFP.getChild("general");
me.store2 = me.OFP.getChild("alternate");
fmgc.FMGCInternal.flightNum = (me.store1.getChild("icao_airline").getValue() or "") ~ (me.store1.getChild("flight_number").getValue() or "");
@ -154,31 +159,52 @@ var SimbriefParser = {
# INITB
me.store1 = me.OFP.getChild("fuel");
me.store2 = me.OFP.getChild("weights");
fmgc.FMGCInternal.taxiFuel = me.store1.getChild("taxi").getValue() / 1000;
fmgc.FMGCInternal.taxiFuelSet = 1;
fmgc.FMGCInternal.altFuel = me.store1.getChild("alternate_burn").getValue() / 1000;
fmgc.FMGCInternal.altFuelSet = 1;
fmgc.FMGCInternal.finalFuel = me.store1.getChild("reserve").getValue() / 1000;
fmgc.FMGCInternal.finalFuelSet = 1;
fmgc.FMGCInternal.rteRsv = me.store1.getChild("contingency").getValue() / 1000;
fmgc.FMGCInternal.rteRsvSet = 1;
if ((me.store1.getChild("contingency").getValue() / 1000) / num(fmgc.FMGCInternal.tripFuel) * 100 <= 15.0) {
fmgc.FMGCInternal.rtePercent = (me.store1.getChild("contingency").getValue() / 1000) / num(fmgc.FMGCInternal.tripFuel) * 100;
if (units == "lbs") {
fmgc.FMGCInternal.taxiFuel = me.store1.getChild("taxi").getValue() / 1000;
fmgc.FMGCInternal.taxiFuelSet = 1;
fmgc.FMGCInternal.altFuel = me.store1.getChild("alternate_burn").getValue() / 1000;
fmgc.FMGCInternal.altFuelSet = 1;
fmgc.FMGCInternal.finalFuel = me.store1.getChild("reserve").getValue() / 1000;
fmgc.FMGCInternal.finalFuelSet = 1;
fmgc.FMGCInternal.rteRsv = me.store1.getChild("contingency").getValue() / 1000;
fmgc.FMGCInternal.rteRsvSet = 1;
if ((me.store1.getChild("contingency").getValue() / 1000) / num(fmgc.FMGCInternal.tripFuel) * 100 <= 15.0) {
fmgc.FMGCInternal.rtePercent = (me.store1.getChild("contingency").getValue() / 1000) / num(fmgc.FMGCInternal.tripFuel) * 100;
} else {
fmgc.FMGCInternal.rtePercent = 15.0
}
fmgc.FMGCInternal.rtePercentSet = 0;
fmgc.FMGCInternal.block = me.store1.getChild("plan_ramp").getValue() / 1000;
fmgc.FMGCInternal.blockSet = 1;
fmgc.FMGCInternal.zfw = me.store2.getChild("est_zfw").getValue() / 1000;
fmgc.FMGCInternal.zfwSet = 1;
fmgc.FMGCInternal.tow = fmgc.FMGCInternal.zfw + fmgc.FMGCInternal.block - fmgc.FMGCInternal.taxiFuel;
} else {
fmgc.FMGCInternal.rtePercent = 15.0
fmgc.FMGCInternal.taxiFuel = (me.store1.getChild("taxi").getValue() / LBS2KGS) / 1000;
fmgc.FMGCInternal.taxiFuelSet = 1;
fmgc.FMGCInternal.altFuel = (me.store1.getChild("alternate_burn").getValue() / LBS2KGS) / 1000;
fmgc.FMGCInternal.altFuelSet = 1;
fmgc.FMGCInternal.finalFuel = (me.store1.getChild("reserve").getValue() / LBS2KGS) / 1000;
fmgc.FMGCInternal.finalFuelSet = 1;
fmgc.FMGCInternal.rteRsv = (me.store1.getChild("contingency").getValue() / LBS2KGS) / 1000;
fmgc.FMGCInternal.rteRsvSet = 1;
if (((me.store1.getChild("contingency").getValue() / LBS2KGS) / 1000) / num(fmgc.FMGCInternal.tripFuel) * 100 <= 15.0) {
fmgc.FMGCInternal.rtePercent = ((me.store1.getChild("contingency").getValue() / LBS2KGS) / 1000) / num(fmgc.FMGCInternal.tripFuel) * 100;
} else {
fmgc.FMGCInternal.rtePercent = 15.0
}
fmgc.FMGCInternal.rtePercentSet = 0;
fmgc.FMGCInternal.block = (me.store1.getChild("plan_ramp").getValue() / LBS2KGS) / 1000;
fmgc.FMGCInternal.blockSet = 1;
fmgc.FMGCInternal.zfw = (me.store2.getChild("est_zfw").getValue() / LBS2KGS) / 1000;
fmgc.FMGCInternal.zfwSet = 1;
fmgc.FMGCInternal.tow = fmgc.FMGCInternal.zfw + fmgc.FMGCInternal.block - fmgc.FMGCInternal.taxiFuel;
}
fmgc.FMGCInternal.rtePercentSet = 0;
fmgc.FMGCInternal.block = me.store1.getChild("plan_ramp").getValue() / 1000;
fmgc.FMGCInternal.blockSet = 1;
fmgc.FMGCInternal.zfw = me.store2.getChild("est_zfw").getValue() / 1000;
fmgc.FMGCInternal.zfwSet = 1;
fmgc.FMGCInternal.tow = fmgc.FMGCInternal.zfw + fmgc.FMGCInternal.block - fmgc.FMGCInternal.taxiFuel;
fmgc.FMGCInternal.fuelRequest = 1;
fmgc.FMGCInternal.fuelCalculating = 1;
fmgc.fuelCalculating.setValue(1);
fmgc.FMGCInternal.blockCalculating = 0;
fmgc.blockCalculating.setValue(0);
fmgc.FMGCInternal.blockConfirmed = 1;
},
};

View file

@ -16,6 +16,9 @@ var fuelPredInput = func(key, i) {
mcdu_scratchpad.scratchpads[i].empty();
} else if (fmgc.FMGCInternal.tripFuel != 0) {
var tf = num(scratchpad);
if (acconfig_weight_kgs.getValue() == 1) {
tf = tf / LBS2KGS;
}
var tfs = size(scratchpad);
if (tfs >= 2 and tfs <= 5 and find("/", scratchpad) == 0) {
var perc = num(split("/", scratchpad)[1]);
@ -56,6 +59,9 @@ var fuelPredInput = func(key, i) {
mcdu_scratchpad.scratchpads[i].empty();
} else if (find(".", scratchpad) != -1) {
var tf = num(scratchpad);
if (acconfig_weight_kgs.getValue() == 1) {
tf = tf / LBS2KGS;
}
var tfs = size(scratchpad);
if (tfs >= 3 and tfs <= 4 and tf != nil and tf >= 0 and tf <= 10.0) {
fmgc.FMGCInternal.altFuel = tf;
@ -81,6 +87,9 @@ var fuelPredInput = func(key, i) {
mcdu_scratchpad.scratchpads[i].empty();
} else if (find(".", scratchpad) != -1) {
var tf = num(scratchpad);
if (acconfig_weight_kgs.getValue() == 1) {
tf = tf / LBS2KGS;
}
var tfs = size(scratchpad);
if (tfs >= 3 and tfs <= 4 and tf != nil and tf >= 0 and tf <= 10.0) {
fmgc.FMGCInternal.finalFuel = tf;
@ -93,6 +102,9 @@ var fuelPredInput = func(key, i) {
}
} else {
var tf = num(scratchpad);
if (acconfig_weight_kgs.getValue() == 1) {
tf = tf / LBS2KGS;
}
var tfs = size(scratchpad);
if (tfs == 4 and tf != nil and ((tf >= 0 and tf <= 59) or (tf >= 100 and tf <= 130))) {
fmgc.FMGCInternal.finalTime = scratchpad;
@ -113,6 +125,9 @@ var fuelPredInput = func(key, i) {
mcdu_scratchpad.scratchpads[i].empty();
} else if (find(".", scratchpad) != -1) {
var tf = num(scratchpad);
if (acconfig_weight_kgs.getValue() == 1) {
tf = tf / LBS2KGS;
}
var tfs = size(scratchpad);
if (tfs >= 3 and tfs <= 5 and tf != nil and tf >= 0 and tf <= 80.0) {
fmgc.FMGCInternal.minDestFob = tf;
@ -155,6 +170,9 @@ var fuelPredInput = func(key, i) {
}
mcdu_scratchpad.scratchpads[i].empty();
} else if (find("/", scratchpad) != -1) {
if (acconfig_weight_kgs.getValue() == 1) {
scratchpad = scratchpad / LBS2KGS;
}
var zfwi = split("/", scratchpad);
var zfw = num(zfwi[0]);
var zfwcg = num(zfwi[1]);
@ -196,6 +214,9 @@ var fuelPredInput = func(key, i) {
mcdu_message(i, "NOT ALLOWED");
}
} else if (num(scratchpad) != nil and size(scratchpad) > 0 and size(scratchpad) <= 5 and (find(".", scratchpad) == -1 or size(split(".", scratchpad)[1]) <= 1)) {
if (acconfig_weight_kgs.getValue() == 1) {
scratchpad = scratchpad / LBS2KGS;
}
if (scratchpad >= zfw_min and scratchpad <= zfw_max) {
fmgc.FMGCInternal.zfw = scratchpad;
fmgc.FMGCInternal.zfwSet = 1;

View file

@ -2,6 +2,10 @@
# Copyright (c) 2020 Matthew Maring (mattmaring)
var acconfig_weight_kgs = props.globals.getNode("/systems/acconfig/options/weight-kgs", 1);
# Conversion factor pounds to kilogram
var LBS2KGS = 0.4535924;
var initInputB = func(key, i) {
var scratchpad = mcdu_scratchpad.scratchpads[i].scratchpad;
if (key == "L1" and !fmgc.FMGCInternal.fuelCalculating) {
@ -16,8 +20,11 @@ var initInputB = func(key, i) {
fmgc.blockCalculating.setValue(1);
}
mcdu_scratchpad.scratchpads[i].empty();
} else {
} else {
var tfs = size(scratchpad);
if (acconfig_weight_kgs.getValue() == 1) {
scratchpad = scratchpad / LBS2KGS;
}
if (tfs >= 1 and tfs <= 4) {
if (num(scratchpad) != nil and scratchpad >= 0.0 and scratchpad <= 9.9) {
fmgc.FMGCInternal.taxiFuel = scratchpad;
@ -48,6 +55,9 @@ var initInputB = func(key, i) {
mcdu_scratchpad.scratchpads[i].empty();
} else if (fmgc.FMGCInternal.tripFuel != 0) {
var tf = num(scratchpad);
if (acconfig_weight_kgs.getValue() == 1) {
tf = tf / LBS2KGS;
}
var tfs = size(scratchpad);
if (tfs >= 2 and tfs <= 5 and find("/", scratchpad) == 0) {
var perc = num(split("/", scratchpad)[1]);
@ -88,6 +98,9 @@ var initInputB = func(key, i) {
mcdu_scratchpad.scratchpads[i].empty();
} else if (find(".", scratchpad) != -1) {
var tf = num(scratchpad);
if (acconfig_weight_kgs.getValue() == 1) {
tf = tf / LBS2KGS;
}
var tfs = size(scratchpad);
if (tfs >= 3 and tfs <= 4 and tf != nil and tf >= 0 and tf <= 10.0) {
fmgc.FMGCInternal.altFuel = tf;
@ -113,6 +126,9 @@ var initInputB = func(key, i) {
mcdu_scratchpad.scratchpads[i].empty();
} else if (find(".", scratchpad) != -1) {
var tf = num(scratchpad);
if (acconfig_weight_kgs.getValue() == 1) {
tf = tf / LBS2KGS;
}
var tfs = size(scratchpad);
if (tfs >= 3 and tfs <= 4 and tf != nil and tf >= 0 and tf <= 10.0) {
fmgc.FMGCInternal.finalFuel = tf;
@ -145,6 +161,9 @@ var initInputB = func(key, i) {
mcdu_scratchpad.scratchpads[i].empty();
} else if (find(".", scratchpad) != -1) {
var tf = num(scratchpad);
if (acconfig_weight_kgs.getValue() == 1) {
tf = tf / LBS2KGS;
}
var tfs = size(scratchpad);
if (tfs >= 3 and tfs <= 5 and tf != nil and tf >= 0 and tf <= 80.0) {
fmgc.FMGCInternal.minDestFob = tf;
@ -167,6 +186,7 @@ var initInputB = func(key, i) {
} else {
var zfw_min = 80.6; #make based on performance
var zfw_max = 134.5; #61,000 kg, make based on performance
if (size(scratchpad) == 0) {
var zfw = pts.Fdm.JSBsim.Inertia.weightLbs.getValue() - pts.Consumables.Fuel.totalFuelLbs.getValue();
fmgc.FMGCInternal.zfw = sprintf("%3.1f", math.round(zfw / 1000, 0.1));
@ -188,6 +208,9 @@ var initInputB = func(key, i) {
}
mcdu_scratchpad.scratchpads[i].empty();
} else if (find("/", scratchpad) != -1) {
if (acconfig_weight_kgs.getValue() == 1) {
scratchpad = scratchpad / LBS2KGS;
}
var zfwi = split("/", scratchpad);
var zfw = num(zfwi[0]);
var zfwcg = num(zfwi[1]);
@ -230,6 +253,9 @@ var initInputB = func(key, i) {
mcdu_message(i, "NOT ALLOWED");
}
} else if (num(scratchpad) != nil and size(scratchpad) > 0 and size(scratchpad) <= 5 and (find(".", scratchpad) == -1 or size(split(".", scratchpad)[1]) <= 1)) {
if (acconfig_weight_kgs.getValue() == 1) {
scratchpad = scratchpad / LBS2KGS;
}
if (scratchpad >= zfw_min and scratchpad <= zfw_max) {
fmgc.FMGCInternal.zfw = scratchpad;
fmgc.FMGCInternal.zfwSet = 1;
@ -314,6 +340,10 @@ var initInputB = func(key, i) {
fmgc.FMGCInternal.blockConfirmed = 1;
}
} else if (tfs >= 1 and tfs <= 5) {
if (acconfig_weight_kgs.getValue() == 1) {
scratchpad = scratchpad / LBS2KGS;
}
if (num(scratchpad) != nil and scratchpad >= 1.0 and scratchpad <= maxblock) {
fmgc.FMGCInternal.block = scratchpad;
fmgc.FMGCInternal.blockSet = 1;

View file

@ -6,7 +6,7 @@
# Distribute under the terms of GPLv2.
# Conversion factor pounds to kilogram
LBS2KGS = 0.4535924;
var LBS2KGS = 0.4535924;
if (pts.Sim.aero.getValue() == "A320-200-CFM") {
max_fuel = 42.8;
@ -590,25 +590,45 @@ var refuelClass = {
_fuelAdjustDn: func() {
target = amount.getValue();
if (target > 0) {
amount.setValue(target - 0.1);
if (target - 0.1 >= 10.0) {
me._FQI_pre.setText(sprintf("%2.1f", target - 0.1));
if (acconfig_weight_kgs.getValue() == 1) {
amount.setValue(target - 0.1 * LBS2KGS);
if ((target - 0.1) * LBS2KGS >= 10.0) {
me._FQI_pre.setText(sprintf("%2.1f", (target - 0.1) * LBS2KGS));
} else {
me._FQI_pre.setText(sprintf("%2.2f", (target - 0.1) * LBS2KGS));
}
systems.fuelSvc.Nodes.requestLbs.setValue((((target - 0.1) * LBS2KGS) - math.round(pts.Consumables.Fuel.totalFuelLbs.getValue() / 1000, 0.1)) * 1000);
} else {
me._FQI_pre.setText(sprintf("%2.2f", target - 0.1));
amount.setValue(target - 0.1);
if (target - 0.1 >= 10.0) {
me._FQI_pre.setText(sprintf("%2.1f", target - 0.1));
} else {
me._FQI_pre.setText(sprintf("%2.2f", target - 0.1));
}
systems.fuelSvc.Nodes.requestLbs.setValue(((target - 0.1) - math.round(pts.Consumables.Fuel.totalFuelLbs.getValue() / 1000, 0.1)) * 1000);
}
systems.fuelSvc.Nodes.requestLbs.setValue(((target - 0.1) - math.round(pts.Consumables.Fuel.totalFuelLbs.getValue() / 1000, 0.1)) * 1000);
}
},
_fuelAdjustUp: func() {
target = amount.getValue();
if (target < max_fuel) {
amount.setValue(target + 0.1);
if (target + 0.1 >= 10.0) {
me._FQI_pre.setText(sprintf("%2.1f", target + 0.1));
if (acconfig_weight_kgs.getValue() == 1) {
amount.setValue(target + 0.1);
if ((target + 0.1) * LBS2KGS >= 10.0) {
me._FQI_pre.setText(sprintf("%2.1f", (target + 0.1) * LBS2KGS));
} else {
me._FQI_pre.setText(sprintf("%2.2f", (target + 0.1) * LBS2KGS));
}
systems.fuelSvc.Nodes.requestLbs.setValue((((target + 0.1) * LBS2KGS) - math.round(pts.Consumables.Fuel.totalFuelLbs.getValue() / 1000, 0.1)) * 1000);
} else {
me._FQI_pre.setText(sprintf("%2.2f", target + 0.1));
amount.setValue(target + 0.1);
if (target + 0.1 >= 10.0) {
me._FQI_pre.setText(sprintf("%2.1f", target + 0.1));
} else {
me._FQI_pre.setText(sprintf("%2.2f", target + 0.1));
}
systems.fuelSvc.Nodes.requestLbs.setValue(((target + 0.1) - math.round(pts.Consumables.Fuel.totalFuelLbs.getValue() / 1000, 0.1)) * 1000);
}
systems.fuelSvc.Nodes.requestLbs.setValue(((target + 0.1) - math.round(pts.Consumables.Fuel.totalFuelLbs.getValue() / 1000, 0.1)) * 1000);
}
},
_onClose: func() {