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 @@ /instrumentation/ddrmi/flag-2 0.64 + + + + Minimums Selector + gain + 1.0 + 0.1 + + + + /FMGC/internal/baro + 99999 + + + /instrumentation/altimeter/indicated-altitude-ft + + /position/gear-agl-ft + /instrumentation/pfd/minimums-ref-alt + + + + 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 + /instrumentation/pfd/minimums-no-gpws-alt +
+ + + Minimums Selector + gain + 1.0 + 0.1 + + + + /FMGC/internal/radio + 99999 + + + /FMGC/internal/radio + + + + + /FMGC/internal/baro + 99999 + + + /FMGC/internal/baro + + 99999 + /instrumentation/pfd/minimums + + + + Minimums Minus 50 + gain + 1.0 + 0.1 + + + + /instrumentation/pfd/minimums + 50 + + + + /instrumentation/pfd/minimums-minus-50 + + + + Minimums Plus 50 + gain + 1.0 + 0.1 + + + + /instrumentation/pfd/minimums + 50 + + + + /instrumentation/pfd/minimums-plus-50 + + + + Minimums Plus 100 + gain + 1.0 + 0.1 + + + + /instrumentation/pfd/minimums + 100 + + + + /instrumentation/pfd/minimums-plus-100 + +