diff --git a/A320-main.xml b/A320-main.xml
index e4f2c943..3fd60fa9 100644
--- a/A320-main.xml
+++ b/A320-main.xml
@@ -1367,6 +1367,11 @@
+
+ 99999
+ 99999
+
+
-1
diff --git a/Models/Instruments/PFD/PFD.nas b/Models/Instruments/PFD/PFD.nas
index d4d6fdf8..ab970570 100644
--- a/Models/Instruments/PFD/PFD.nas
+++ b/Models/Instruments/PFD/PFD.nas
@@ -136,6 +136,8 @@ var vr_set = props.globals.getNode("FMGC/internal/vr-set", 1);
var v2 = props.globals.getNode("FMGC/internal/v2", 1);
var v2_set = props.globals.getNode("FMGC/internal/v2-set", 1);
var flap_config = props.globals.getNode("controls/flight/flap-lever", 1);
+var hundredAbove = props.globals.getNode("/instrumentation/pfd/hundred-above", 1);
+var minimum = props.globals.getNode("/instrumentation/pfd/minimums", 1);
# Create Nodes:
var vs_needle = props.globals.initNode("/instrumentation/pfd/vs-needle", 0.0, "DOUBLE");
@@ -172,8 +174,6 @@ var altFlash2 = props.globals.initNode("/instrumentation/pfd/flash-indicators/al
var amberFlash1 = props.globals.initNode("/instrumentation/pfd/flash-indicators/amber-flash-1", 0, "BOOL");
var amberFlash2 = props.globals.initNode("/instrumentation/pfd/flash-indicators/amber-flash-2", 0, "BOOL");
var dhFlash = props.globals.initNode("/instrumentation/pfd/flash-indicators/dh-flash", 0, "BOOL");
-var hundredAbove = props.globals.initNode("/instrumentation/pfd/hundred-above", 99999, "INT");
-var minimum = props.globals.initNode("/instrumentation/pfd/minimum", 99999, "INT");
var canvas_PFD_base = {
init: func(canvas_group, file) {
diff --git a/Nasal/MCDU/PERFAPPR.nas b/Nasal/MCDU/PERFAPPR.nas
index db9bdc4d..e4f7de04 100644
--- a/Nasal/MCDU/PERFAPPR.nas
+++ b/Nasal/MCDU/PERFAPPR.nas
@@ -1,41 +1,41 @@
# Copyright (c) 2020 Matthew Maring (hayden2000)
# APPR PERF
-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);
+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);
var perfAPPRInput = func(key, i) {
- var scratchpad = getprop("MCDU[" ~ i ~ "]/scratchpad");
+ var scratchpad = getprop("/MCDU[" ~ i ~ "]/scratchpad");
if (key == "L1") {
if (scratchpad == "CLR") {
- setprop("FMGC/internal/dest-qnh", -1);
- setprop("MCDU[" ~ i ~ "]/scratchpad-msg", 0);
- setprop("MCDU[" ~ i ~ "]/scratchpad", "");
+ setprop("/FMGC/internal/dest-qnh", -1);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad-msg", 0);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad", "");
} else if (num(scratchpad) != nil and (scratchpad >= 28.06 and scratchpad <= 31.01) or (scratchpad >= 745 and scratchpad <= 1050)) {
# doesn't support accidental temp input yet
- setprop("FMGC/internal/dest-qnh", scratchpad);
- setprop("MCDU[" ~ i ~ "]/scratchpad", "");
+ setprop("/FMGC/internal/dest-qnh", scratchpad);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad", "");
} else {
notAllowed(i);
}
} else if (key == "L2") {
if (scratchpad == "CLR") {
- setprop("FMGC/internal/dest-temp", -999);
- setprop("MCDU[" ~ i ~ "]/scratchpad-msg", 0);
- setprop("MCDU[" ~ i ~ "]/scratchpad", "");
+ setprop("/FMGC/internal/dest-temp", -999);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad-msg", 0);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad", "");
} else if (num(scratchpad) != nil and scratchpad >= -99 and scratchpad < 99) {
- setprop("FMGC/internal/dest-temp", scratchpad);
- setprop("MCDU[" ~ i ~ "]/scratchpad", "");
+ setprop("/FMGC/internal/dest-temp", scratchpad);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad", "");
} else {
notAllowed(i);
}
} else if (key == "L3") {
var tfs = size(scratchpad);
if (scratchpad == "CLR") {
- setprop("FMGC/internal/dest-mag", -1);
- setprop("FMGC/internal/dest-wind", -1);
- setprop("MCDU[" ~ i ~ "]/scratchpad-msg", 0);
- setprop("MCDU[" ~ i ~ "]/scratchpad", "");
+ setprop("/FMGC/internal/dest-mag", -1);
+ setprop("/FMGC/internal/dest-wind", -1);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad-msg", 0);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad", "");
} else if (tfs >= 3 and tfs <= 7 and find("/", scratchpad) != -1) {
var weather = split("/", scratchpad);
var mag = int(weather[0]);
@@ -44,9 +44,9 @@ var perfAPPRInput = func(key, i) {
var winds = size(weather[1]);
if (mags >= 1 and mags <= 3 and winds >= 1 and winds <= 3) {
if (mag != nil and wind != nil and mag >= 0 and mag <= 360 and wind >= 0 and wind <= 200) {
- setprop("FMGC/internal/dest-mag", weather[0]);
- setprop("FMGC/internal/dest-wind", weather[1]);
- setprop("MCDU[" ~ i ~ "]/scratchpad", "");
+ setprop("/FMGC/internal/dest-mag", weather[0]);
+ setprop("/FMGC/internal/dest-wind", weather[1]);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad", "");
fmgc.updateARPT();
} else {
notAllowed(i);
@@ -59,77 +59,77 @@ var perfAPPRInput = func(key, i) {
}
} else if (key == "L4") {
if (scratchpad == "CLR") {
- setprop("FMGC/internal/trans-alt", 18000);
- setprop("MCDU[" ~ i ~ "]/scratchpad-msg", 0);
- setprop("MCDU[" ~ i ~ "]/scratchpad", "");
+ setprop("/FMGC/internal/trans-alt", 18000);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad-msg", 0);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad", "");
} else if (int(scratchpad) != nil and scratchpad >= 0 and scratchpad <= 50000) {
- setprop("FMGC/internal/trans-alt", scratchpad);
- setprop("MCDU[" ~ i ~ "]/scratchpad", "");
+ setprop("/FMGC/internal/trans-alt", scratchpad);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad", "");
} else {
notAllowed(i);
}
} else if (key == "L5") {
if (scratchpad == "CLR") {
- setprop("FMGC/internal/vapp-speed-set", 0);
- setprop("MCDU[" ~ i ~ "]/scratchpad-msg", 0);
- setprop("MCDU[" ~ i ~ "]/scratchpad", "");
+ setprop("/FMGC/internal/vapp-speed-set", 0);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad-msg", 0);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad", "");
} else if (int(scratchpad) != nil and scratchpad >= 0 and scratchpad <= 200) {
- setprop("FMGC/internal/vapp-speed-set", 1);
- setprop("FMGC/internal/computed-speeds/vapp_appr", scratchpad);
- setprop("MCDU[" ~ i ~ "]/scratchpad", "");
+ setprop("/FMGC/internal/vapp-speed-set", 1);
+ setprop("/FMGC/internal/computed-speeds/vapp_appr", scratchpad);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad", "");
} else {
notAllowed(i);
}
} else if (key == "L6") {
- setprop("MCDU[" ~ i ~ "]/page", "PERFDES");
+ setprop("/MCDU[" ~ i ~ "]/page", "PERFDES");
} else if (key == "R2") {
if (scratchpad == "CLR") {
- setprop("FMGC/internal/baro", 99999);
- setprop("MCDU[" ~ i ~ "]/scratchpad-msg", 0);
- 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", 99999);
+ setprop("/FMGC/internal/baro", 99999);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad-msg", 0);
+ 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", 99999);
}
- setprop("FMGC/internal/baro", scratchpad);
- setprop("MCDU[" ~ i ~ "]/scratchpad", "");
+ setprop("/FMGC/internal/baro", scratchpad);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad", "");
} else {
notAllowed(i);
}
} else if (key == "R3") {
if (scratchpad == "CLR") {
- setprop("FMGC/internal/radio", 99999);
- setprop("FMGC/internal/radio-no", 0);
- setprop("MCDU[" ~ i ~ "]/scratchpad-msg", 0);
- setprop("MCDU[" ~ i ~ "]/scratchpad", "");
+ setprop("/FMGC/internal/radio", 99999);
+ setprop("/FMGC/internal/radio-no", 0);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad-msg", 0);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad", "");
} else if (scratchpad == "NO") {
- setprop("FMGC/internal/radio", 99999);
- setprop("FMGC/internal/radio-no", 1);
- setprop("MCDU[" ~ i ~ "]/scratchpad", "");
+ setprop("/FMGC/internal/radio", 99999);
+ 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", 99999);
- setprop("FMGC/internal/radio-no", 0);
- setprop("FMGC/internal/radio", scratchpad);
- setprop("MCDU[" ~ i ~ "]/scratchpad", "");
+ setprop("/FMGC/internal/baro", 99999);
+ setprop("/FMGC/internal/radio-no", 0);
+ setprop("/FMGC/internal/radio", scratchpad);
+ setprop("/MCDU[" ~ i ~ "]/scratchpad", "");
} else {
notAllowed(i);
}
} else if (key == "R4") {
if (scratchpad == "" and ldg_config_f_set.getValue() == 1 and ldg_config_3_set.getValue() == 0) {
- setprop("FMGC/internal/ldg-config-3-set", 1);
- setprop("FMGC/internal/ldg-config-f-set", 0);
+ setprop("/FMGC/internal/ldg-config-3-set", 1);
+ setprop("/FMGC/internal/ldg-config-f-set", 0);
} 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);
- setprop("FMGC/internal/ldg-config-f-set", 1);
+ setprop("/FMGC/internal/ldg-config-3-set", 0);
+ setprop("/FMGC/internal/ldg-config-f-set", 1);
} else {
notAllowed(i);
}
} else if (key == "R6") {
- setprop("MCDU[" ~ i ~ "]/page", "PERFGA");
+ setprop("/MCDU[" ~ i ~ "]/page", "PERFGA");
}
}
\ No newline at end of file
diff --git a/Nasal/Sim/libraries.nas b/Nasal/Sim/libraries.nas
index dd275063..7c4c0b8f 100644
--- a/Nasal/Sim/libraries.nas
+++ b/Nasal/Sim/libraries.nas
@@ -3,9 +3,9 @@
# Copyright (c) 2020 Josh Davidson (Octal450)
-print("-----------------------------------------------------------------------------");
-print("Copyright (c) 2016-2019 Joshua Davidson (Octal450)");
-print("-----------------------------------------------------------------------------");
+print("--------------------------------------------------");
+print("Copyright (c) 2016-2020 Joshua Davidson (Octal450)");
+print("--------------------------------------------------");
setprop("sim/replay/was-active", 0);
diff --git a/Sounds/A320-common-sound.xml b/Sounds/A320-common-sound.xml
index 53f191d9..271dee4e 100644
--- a/Sounds/A320-common-sound.xml
+++ b/Sounds/A320-common-sound.xml
@@ -169,6 +169,14 @@
/instrumentation/mk-viii/inputs/discretes/gpws-inhibit
0
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 2500
+
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 2400
+
/position/gear-agl-ft
2500
@@ -203,6 +211,14 @@
/instrumentation/mk-viii/inputs/discretes/gpws-inhibit
0
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 2000
+
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 1900
+
/position/gear-agl-ft
2000
@@ -237,6 +253,14 @@
/instrumentation/mk-viii/inputs/discretes/gpws-inhibit
0
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 1000
+
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 900
+
/position/gear-agl-ft
1000
@@ -271,6 +295,14 @@
/instrumentation/mk-viii/inputs/discretes/gpws-inhibit
0
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 500
+
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 400
+
/position/gear-agl-ft
500
@@ -305,6 +337,14 @@
/instrumentation/mk-viii/inputs/discretes/gpws-inhibit
0
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 400
+
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 300
+
/position/gear-agl-ft
400
@@ -339,6 +379,14 @@
/instrumentation/mk-viii/inputs/discretes/gpws-inhibit
0
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 300
+
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 200
+
/position/gear-agl-ft
300
@@ -373,6 +421,14 @@
/instrumentation/mk-viii/inputs/discretes/gpws-inhibit
0
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 200
+
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 100
+
/position/gear-agl-ft
200
@@ -407,6 +463,14 @@
/instrumentation/mk-viii/inputs/discretes/gpws-inhibit
0
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 100
+
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 0
+
/position/gear-agl-ft
100
@@ -441,6 +505,10 @@
/instrumentation/mk-viii/inputs/discretes/gpws-inhibit
0
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 50
+
/position/gear-agl-ft
50
@@ -475,6 +543,10 @@
/instrumentation/mk-viii/inputs/discretes/gpws-inhibit
0
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 40
+
/position/gear-agl-ft
40
@@ -509,6 +581,10 @@
/instrumentation/mk-viii/inputs/discretes/gpws-inhibit
0
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 30
+
/position/gear-agl-ft
30
@@ -543,6 +619,10 @@
/instrumentation/mk-viii/inputs/discretes/gpws-inhibit
0
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 20
+
/position/gear-agl-ft
20
@@ -581,6 +661,10 @@
/controls/flight/flaps
0.640
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 10
+
/position/gear-agl-ft
10
@@ -629,6 +713,10 @@
/controls/flight/flaps
0.640
+
+ /instrumentation/pfd/minimums-no-gpws-alt
+ 5
+
/position/gear-agl-ft
5
@@ -672,17 +760,12 @@
0
- /position/gear-agl-ft
- /instrumentation/pfd/hundred-above
+ /instrumentation/pfd/minimums-ref-alt
+ /instrumentation/pfd/minimums-plus-100
- /position/gear-agl-ft
-
-
- /instrumentation/pfd/hundred-above
- 50
-
-
+ /instrumentation/pfd/minimums-ref-alt
+ /instrumentation/pfd/minimums-plus-50
/position/gear-agl-ft-2-sec
@@ -711,17 +794,12 @@
0
- /position/gear-agl-ft
- /instrumentation/pfd/minimum
+ /instrumentation/pfd/minimums-ref-alt
+ /instrumentation/pfd/minimums
- /position/gear-agl-ft
-
-
- /instrumentation/pfd/minimum
- 50
-
-
+ /instrumentation/pfd/minimums-ref-alt
+ /instrumentation/pfd/minimums-minus-50
/position/gear-agl-ft-2-sec
diff --git a/Systems/libraries.xml b/Systems/libraries.xml
index b83459ce..8acf59b5 100644
--- a/Systems/libraries.xml
+++ b/Systems/libraries.xml
@@ -1212,4 +1212,145 @@
0.64
+
+
+
+ Minimums Selector
+ gain
+ 1.0
+ 0.1
+
+
+
+ /FMGC/internal/baro
+ 99999
+
+
+ /instrumentation/altimeter/indicated-altitude-ft
+
+ /position/gear-agl-ft
+
+
+
+
+ Minimums Selector
+ gain
+ 1.0
+ 0.1
+
+
+
+ /FMGC/internal/radio
+ 99999
+
+
+ /FMGC/internal/radio
+
+
+
+
+ /FMGC/internal/baro
+ 99999
+
+
+
+
+
+
+
+
+
+ /position/gear-agl-ft
+ /instrumentation/altimeter/indicated-altitude-ft
+
+ /FMGC/internal/baro
+
+
25
+
+ 0.5
+
+
+ 25
+
+
+
+ 99999
+
+
+
+
+ Minimums Selector
+ gain
+ 1.0
+ 0.1
+
+
+
+ /FMGC/internal/radio
+ 99999
+
+
+ /FMGC/internal/radio
+
+
+
+
+ /FMGC/internal/baro
+ 99999
+
+
+ /FMGC/internal/baro
+
+ 99999
+
+
+
+
+ Minimums Minus 50
+ gain
+ 1.0
+ 0.1
+
+
+
+ /instrumentation/pfd/minimums
+ 50
+
+
+
+
+
+
+
+ Minimums Plus 50
+ gain
+ 1.0
+ 0.1
+
+
+
+ /instrumentation/pfd/minimums
+ 50
+
+
+
+
+
+
+
+ Minimums Plus 100
+ gain
+ 1.0
+ 0.1
+
+
+
+ /instrumentation/pfd/minimums
+ 100
+
+
+
+
+
+