diff --git a/A320-main.xml b/A320-main.xml index a0aaf4b9..f8426474 100644 --- a/A320-main.xml +++ b/A320-main.xml @@ -337,6 +337,11 @@ + + 0 + 1.0 + + 0 0 diff --git a/Models/FlightDeck/a320.flightdeck.xml b/Models/FlightDeck/a320.flightdeck.xml index 4dc64d17..78f4f8f8 100644 --- a/Models/FlightDeck/a320.flightdeck.xml +++ b/Models/FlightDeck/a320.flightdeck.xml @@ -2574,7 +2574,7 @@ - + diff --git a/Models/Instruments/PFD/PFD1.xml b/Models/Instruments/PFD/PFD1.xml index 189582ed..7feecc34 100644 --- a/Models/Instruments/PFD/PFD1.xml +++ b/Models/Instruments/PFD/PFD1.xml @@ -152,7 +152,7 @@ translate fd_roll /it-autoflight/fd/roll-bar - 0.0001 + 0.0002 0 1 @@ -1123,43 +1123,6 @@ - - select - thrust-mode-fma - - - - /it-autoflight/output/athr - 1 - - - /systems/thrust/state1 - MAN THR - - - /systems/thrust/state2 - MAN THR - - - /systems/thrust/state1 - MCT - - - /systems/thrust/state2 - MCT - - - /systems/thrust/state1 - TOGA - - - /systems/thrust/state2 - TOGA - - - - - pitch-mode-fma @@ -1413,14 +1376,68 @@ 1 - - /systems/thrust/state1 - CL - - - /systems/thrust/state2 - CL - + + + /it-autoflight/output/thr-mode + 2 + + + + /it-autoflight/output/fd1 + 1 + + + /it-autoflight/output/fd2 + 1 + + + + + /systems/thrust/state1 + CL + + + /systems/thrust/state2 + CL + + + + + + + /it-autoflight/output/thr-mode + 2 + + + + /it-autoflight/output/fd1 + 0 + + + /it-autoflight/output/fd2 + 0 + + + + + + /systems/thrust/state1 + MAN + + + /systems/thrust/state2 + MAN + + + /systems/thrust/state1 + CL + + + /systems/thrust/state2 + CL + + + @@ -1431,6 +1448,14 @@ athr-active-fma + + /systems/thrust/alpha-floor + 0 + + + /systems/thrust/toga-lk + 0 + /it-autoflight/output/athr 1 @@ -1491,6 +1516,14 @@ 1 + + /systems/thrust/alpha-floor + 1 + + + /systems/thrust/toga-lk + 1 + /systems/thrust/state1 MAN THR @@ -1529,6 +1562,20 @@ /it-autoflight/output/athr 1 + + /it-autoflight/output/thr-mode + 2 + + + + /it-autoflight/output/fd1 + 1 + + + /it-autoflight/output/fd2 + 1 + + /controls/engines/engine[0]/throttle 0.60 @@ -1537,14 +1584,6 @@ /controls/engines/engine[1]/throttle 0.60 - - /controls/engines/engine[2]/throttle - 0.60 - - - /controls/engines/engine[3]/throttle - 0.60 - @@ -1834,6 +1873,118 @@ /systems/thrust/lvrclb 1 + + /systems/thrust/alpha-floor + 0 + + + /systems/thrust/toga-lk + 0 + + + + + + + select + thrust-mode-fma + athr-lvrclb-fma + athr-thrlvr-fma + athr-thr-fma + athr-mct-fma + athr-toga-fma + athr-man-fma + athr-box-fma + + + + /systems/thrust/alpha-floor + 0 + + + /systems/thrust/toga-lk + 0 + + + + + + + athr-afloor-fma + + 0.00091828 + -0.0546226 + 0.0710781 + + center-center + yz-plane + text-value + A.FLOOR + autopilot/serviceable + helvetica_medium.txf + true + false + true + 0.0055 + + 32 + 32 + + + + + athr-togalk-fma + + 0.00091828 + -0.0546226 + 0.0710781 + + center-center + yz-plane + text-value + TOGA LK + autopilot/serviceable + helvetica_medium.txf + true + false + true + 0.0055 + + 32 + 32 + + + + + select + athr-afloor-fma + + + + /systems/thrust/alpha-floor + 1 + + + /systems/thrust/toga-lk + 0 + + + + + + + select + athr-togalk-fma + + + + /systems/thrust/alpha-floor + 0 + + + /systems/thrust/toga-lk + 1 + @@ -2220,4 +2371,30 @@ + + material + athr-afloor-fma + athr-togalk-fma + + 1 + 0.45 + 0 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + 1 + 0.45 + 0 + + + diff --git a/Models/Instruments/PFD/PFD2.xml b/Models/Instruments/PFD/PFD2.xml index 845e56f3..50eda2b5 100644 --- a/Models/Instruments/PFD/PFD2.xml +++ b/Models/Instruments/PFD/PFD2.xml @@ -152,7 +152,7 @@ translate fd_roll /it-autoflight/fd/roll-bar - 0.0001 + 0.0002 0 1 @@ -1123,43 +1123,6 @@ - - select - thrust-mode-fma - - - - /it-autoflight/output/athr - 1 - - - /systems/thrust/state1 - MAN THR - - - /systems/thrust/state2 - MAN THR - - - /systems/thrust/state1 - MCT - - - /systems/thrust/state2 - MCT - - - /systems/thrust/state1 - TOGA - - - /systems/thrust/state2 - TOGA - - - - - pitch-mode-fma @@ -1413,14 +1376,68 @@ 1 - - /systems/thrust/state1 - CL - - - /systems/thrust/state2 - CL - + + + /it-autoflight/output/thr-mode + 2 + + + + /it-autoflight/output/fd1 + 1 + + + /it-autoflight/output/fd2 + 1 + + + + + /systems/thrust/state1 + CL + + + /systems/thrust/state2 + CL + + + + + + + /it-autoflight/output/thr-mode + 2 + + + + /it-autoflight/output/fd1 + 0 + + + /it-autoflight/output/fd2 + 0 + + + + + + /systems/thrust/state1 + MAN + + + /systems/thrust/state2 + MAN + + + /systems/thrust/state1 + CL + + + /systems/thrust/state2 + CL + + + @@ -1431,6 +1448,14 @@ athr-active-fma + + /systems/thrust/alpha-floor + 0 + + + /systems/thrust/toga-lk + 0 + /it-autoflight/output/athr 1 @@ -1491,6 +1516,14 @@ 1 + + /systems/thrust/alpha-floor + 1 + + + /systems/thrust/toga-lk + 1 + /systems/thrust/state1 MAN THR @@ -1529,6 +1562,20 @@ /it-autoflight/output/athr 1 + + /it-autoflight/output/thr-mode + 2 + + + + /it-autoflight/output/fd1 + 1 + + + /it-autoflight/output/fd2 + 1 + + /controls/engines/engine[0]/throttle 0.60 @@ -1537,14 +1584,6 @@ /controls/engines/engine[1]/throttle 0.60 - - /controls/engines/engine[2]/throttle - 0.60 - - - /controls/engines/engine[3]/throttle - 0.60 - @@ -1834,6 +1873,118 @@ /systems/thrust/lvrclb 1 + + /systems/thrust/alpha-floor + 0 + + + /systems/thrust/toga-lk + 0 + + + + + + + select + thrust-mode-fma + athr-lvrclb-fma + athr-thrlvr-fma + athr-thr-fma + athr-mct-fma + athr-toga-fma + athr-man-fma + athr-box-fma + + + + /systems/thrust/alpha-floor + 0 + + + /systems/thrust/toga-lk + 0 + + + + + + + athr-afloor-fma + + 0.00091828 + -0.0546226 + 0.0710781 + + center-center + yz-plane + text-value + A.FLOOR + autopilot/serviceable + helvetica_medium.txf + true + false + true + 0.0055 + + 32 + 32 + + + + + athr-togalk-fma + + 0.00091828 + -0.0546226 + 0.0710781 + + center-center + yz-plane + text-value + TOGA LK + autopilot/serviceable + helvetica_medium.txf + true + false + true + 0.0055 + + 32 + 32 + + + + + select + athr-afloor-fma + + + + /systems/thrust/alpha-floor + 1 + + + /systems/thrust/toga-lk + 0 + + + + + + + select + athr-togalk-fma + + + + /systems/thrust/alpha-floor + 0 + + + /systems/thrust/toga-lk + 1 + @@ -2220,4 +2371,30 @@ + + material + athr-afloor-fma + athr-togalk-fma + + 1 + 0.45 + 0 + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + 1 + 0.45 + 0 + + + diff --git a/Nasal/it-fbw.nas b/Nasal/it-fbw.nas index 80d89a84..2052ade4 100644 --- a/Nasal/it-fbw.nas +++ b/Nasal/it-fbw.nas @@ -1,5 +1,5 @@ # Airbus A3XX FBW System by Joshua Davidson (it0uchpods) -# V0.9.7.1 +# V0.9.8 ################### # Update Function # @@ -37,6 +37,9 @@ var update_loop = func { if (getprop("/position/gear-agl-ft") <= 2) { setprop("/it-fbw/pitch-lim-max", "15"); setprop("/it-fbw/pitch-lim-min", "-5"); + } else if (getprop("/controls/flight/flap-lever") == 4) { + setprop("/it-fbw/pitch-lim-max", "25"); + setprop("/it-fbw/pitch-lim-min", "-15"); } else { setprop("/it-fbw/pitch-lim-max", "30"); setprop("/it-fbw/pitch-lim-min", "-15"); diff --git a/Nasal/thrust.nas b/Nasal/thrust.nas index 524e4e51..fa58d4c0 100644 --- a/Nasal/thrust.nas +++ b/Nasal/thrust.nas @@ -1,7 +1,10 @@ # A3XX Throttle Control System by Joshua Davidson (it0uchpods) # Set A/THR modes to Custom IT-AUTOTHRUST, and other thrust modes like MCT, TOGA and eventually TO FLEX. # Also handles FADEC -# V1.9.1 +# V1.9.5 + +setprop("/systems/thrust/alpha-floor", 0); +setprop("/systems/thrust/toga-lk", 0); setlistener("/sim/signals/fdm-initialized", func { setprop("/controls/engines/thrust-limit", "TOGA"); @@ -16,51 +19,98 @@ setlistener("/sim/signals/fdm-initialized", func { setlistener("/controls/engines/engine[0]/throttle-pos", func { var thrr = getprop("/controls/engines/engine[0]/throttle-pos"); - if (thrr < 0.01) { - setprop("/systems/thrust/state1", "IDLE"); - atoff_request(); - } else if (thrr >= 0.01 and thrr < 0.60) { - setprop("/systems/thrust/state1", "MAN"); - } else if (thrr >= 0.60 and thrr < 0.65) { - setprop("/systems/thrust/state1", "CL"); - } else if (thrr >= 0.65 and thrr < 0.78) { - setprop("/systems/thrust/state1", "MAN THR"); - } else if (thrr >= 0.78 and thrr < 0.83) { - setprop("/it-autoflight/input/athr", 1); - setprop("/controls/engines/engine[0]/throttle-fdm", 0.90); - setprop("/systems/thrust/state1", "MCT"); - } else if (thrr >= 0.83 and thrr < 0.95) { - setprop("/it-autoflight/input/athr", 1); - setprop("/systems/thrust/state1", "MAN THR"); - } else if (thrr >= 0.95) { - setprop("/it-autoflight/input/athr", 1); + if (getprop("/systems/thrust/alpha-floor") == 0 and getprop("/systems/thrust/toga-lk") == 0) { + if (thrr < 0.01) { + setprop("/systems/thrust/state1", "IDLE"); + atoff_request(); + } else if (thrr >= 0.01 and thrr < 0.60) { + setprop("/systems/thrust/state1", "MAN"); + } else if (thrr >= 0.60 and thrr < 0.65) { + setprop("/systems/thrust/state1", "CL"); + } else if (thrr >= 0.65 and thrr < 0.78) { + setprop("/systems/thrust/state1", "MAN THR"); + } else if (thrr >= 0.78 and thrr < 0.83) { + setprop("/it-autoflight/input/athr", 1); + setprop("/controls/engines/engine[0]/throttle-fdm", 0.90); + setprop("/systems/thrust/state1", "MCT"); + } else if (thrr >= 0.83 and thrr < 0.95) { + setprop("/it-autoflight/input/athr", 1); + setprop("/systems/thrust/state1", "MAN THR"); + } else if (thrr >= 0.95) { + setprop("/it-autoflight/input/athr", 1); + setprop("/controls/engines/engine[0]/throttle-fdm", 0.95); + setprop("/systems/thrust/state1", "TOGA"); + } + } else { + if (thrr < 0.01) { + setprop("/systems/thrust/state1", "IDLE"); + } else if (thrr >= 0.01 and thrr < 0.60) { + setprop("/systems/thrust/state1", "MAN"); + } else if (thrr >= 0.60 and thrr < 0.65) { + setprop("/systems/thrust/state1", "CL"); + } else if (thrr >= 0.65 and thrr < 0.78) { + setprop("/systems/thrust/state1", "MAN THR"); + } else if (thrr >= 0.78 and thrr < 0.83) { + setprop("/systems/thrust/state1", "MCT"); + } else if (thrr >= 0.83 and thrr < 0.95) { + setprop("/systems/thrust/state1", "MAN THR"); + } else if (thrr >= 0.95) { + setprop("/systems/thrust/state1", "TOGA"); + } setprop("/controls/engines/engine[0]/throttle-fdm", 0.95); - setprop("/systems/thrust/state1", "TOGA"); } }); setlistener("/controls/engines/engine[1]/throttle-pos", func { var thrr = getprop("/controls/engines/engine[1]/throttle-pos"); - if (thrr < 0.01) { - setprop("/systems/thrust/state2", "IDLE"); - atoff_request(); - } else if (thrr >= 0.01 and thrr < 0.60) { - setprop("/systems/thrust/state2", "MAN"); - } else if (thrr >= 0.60 and thrr < 0.65) { - setprop("/systems/thrust/state2", "CL"); - } else if (thrr >= 0.65 and thrr < 0.78) { - setprop("/systems/thrust/state2", "MAN THR"); - } else if (thrr >= 0.78 and thrr < 0.83) { - setprop("/it-autoflight/input/athr", 1); - setprop("/controls/engines/engine[1]/throttle-fdm", 0.90); - setprop("/systems/thrust/state2", "MCT"); - } else if (thrr >= 0.83 and thrr < 0.95) { - setprop("/it-autoflight/input/athr", 1); - setprop("/systems/thrust/state2", "MAN THR"); - } else if (thrr >= 0.95) { - setprop("/it-autoflight/input/athr", 1); + if (getprop("/systems/thrust/alpha-floor") == 0 and getprop("/systems/thrust/toga-lk") == 0) { + if (thrr < 0.01) { + setprop("/systems/thrust/state2", "IDLE"); + atoff_request(); + } else if (thrr >= 0.01 and thrr < 0.60) { + setprop("/systems/thrust/state2", "MAN"); + } else if (thrr >= 0.60 and thrr < 0.65) { + setprop("/systems/thrust/state2", "CL"); + } else if (thrr >= 0.65 and thrr < 0.78) { + setprop("/systems/thrust/state2", "MAN THR"); + } else if (thrr >= 0.78 and thrr < 0.83) { + setprop("/it-autoflight/input/athr", 1); + setprop("/controls/engines/engine[1]/throttle-fdm", 0.90); + setprop("/systems/thrust/state2", "MCT"); + } else if (thrr >= 0.83 and thrr < 0.95) { + setprop("/it-autoflight/input/athr", 1); + setprop("/systems/thrust/state2", "MAN THR"); + } else if (thrr >= 0.95) { + setprop("/it-autoflight/input/athr", 1); + setprop("/controls/engines/engine[1]/throttle-fdm", 0.95); + setprop("/systems/thrust/state2", "TOGA"); + } + } else { + if (thrr < 0.01) { + setprop("/systems/thrust/state2", "IDLE"); + } else if (thrr >= 0.01 and thrr < 0.60) { + setprop("/systems/thrust/state2", "MAN"); + } else if (thrr >= 0.60 and thrr < 0.65) { + setprop("/systems/thrust/state2", "CL"); + } else if (thrr >= 0.65 and thrr < 0.78) { + setprop("/systems/thrust/state2", "MAN THR"); + } else if (thrr >= 0.78 and thrr < 0.83) { + setprop("/systems/thrust/state2", "MCT"); + } else if (thrr >= 0.83 and thrr < 0.95) { + setprop("/systems/thrust/state2", "MAN THR"); + } else if (thrr >= 0.95) { + setprop("/systems/thrust/state2", "TOGA"); + } setprop("/controls/engines/engine[1]/throttle-fdm", 0.95); - setprop("/systems/thrust/state2", "TOGA"); + } +}); + +# Alpha Floor and Toga Lock +setlistener("/it-autoflight/input/athr", func { + if (getprop("/systems/thrust/alpha-floor") == 1) { + setprop("/it-autoflight/input/athr", 1); + } else { + setprop("/systems/thrust/toga-lk", 0); } }); @@ -68,7 +118,7 @@ setlistener("/controls/engines/engine[1]/throttle-pos", func { var atoff_request = func { var state1 = getprop("/systems/thrust/state1"); var state2 = getprop("/systems/thrust/state2"); - if ((state1 == "IDLE") and (state2 == "IDLE")) { + if ((state1 == "IDLE") and (state2 == "IDLE") and (getprop("/systems/thrust/alpha-floor") == 0) and (getprop("/systems/thrust/toga-lk") == 0)) { setprop("/it-autoflight/input/athr", 0); } } @@ -87,7 +137,7 @@ var thrust_lim = func { var thr1 = getprop("/controls/engines/engine[0]/throttle-pos"); var thr2 = getprop("/controls/engines/engine[0]/throttle-pos"); if (getprop("/gear/gear[1]/wow") == 0 and getprop("/gear/gear[2]/wow") == 0) { - if (state1 == "TOGA" or state2 == "TOGA" or (state1 == "MAN THR" and thr1 >= 0.83) or (state2 == "MAN THR" and thr2 >= 0.83)) { + if ((state1 == "TOGA" or state2 == "TOGA" or (state1 == "MAN THR" and thr1 >= 0.83) or (state2 == "MAN THR" and thr2 >= 0.83)) or getprop("/systems/thrust/alpha-floor") == 1 or getprop("/systems/thrust/toga-lk") == 1) { setprop("/controls/engines/thrust-limit", "TOGA"); setprop("/controls/engines/epr-limit", 1.308); setprop("/controls/engines/n1-limit", 101.8); @@ -128,6 +178,35 @@ var thrust_loop = func { setprop("/systems/thrust/lvrclb", "0"); } } + +# var AoA = getprop("/fdm/jsbsim/aero/alpha-deg"); +# var flaps = getprop("/controls/flight/flap-lever"); +# if (getprop("/gear/gear[1]/wow") == 0 and getprop("/gear/gear[2]/wow") == 0 and getprop("/it-fbw/law") == 0) { +# if (AoA >= 6.0 and flaps == 0) { +# setprop("/systems/thrust/alpha-floor", 1); +# setprop("/systems/thrust/toga-lk", 0); +# setprop("/it-autoflight/input/athr", 1); +# } else if (AoA >= 8.0 and (flaps == 1 or flaps == 2)) { +# setprop("/systems/thrust/alpha-floor", 1); +# setprop("/systems/thrust/toga-lk", 0); +# setprop("/it-autoflight/input/athr", 1); +# } else if (AoA >= 8.0 and flaps == 3) { +# setprop("/systems/thrust/alpha-floor", 1); +# setprop("/systems/thrust/toga-lk", 0); +# setprop("/it-autoflight/input/athr", 1); +# } else if (AoA >= 7.5 and flaps == 4) { +# setprop("/systems/thrust/alpha-floor", 1); +# setprop("/systems/thrust/toga-lk", 0); +# setprop("/it-autoflight/input/athr", 1); +# } else if (getprop("/systems/thrust/alpha-floor") == 1) { +# setprop("/systems/thrust/alpha-floor", 0); +# setprop("/it-autoflight/input/athr", 1); +# setprop("/systems/thrust/toga-lk", 1); +# } +# } else { +# setprop("/systems/thrust/alpha-floor", 0); +# setprop("/systems/thrust/toga-lk", 0); +# } } # Timers diff --git a/Systems/engine-timing.xml b/Systems/engine-timing.xml index 9c5e0ccd..099c9f15 100644 --- a/Systems/engine-timing.xml +++ b/Systems/engine-timing.xml @@ -209,7 +209,7 @@ /it-autoflight/internal/vert-speed-fpm-pfd - 5 + 10 @@ -220,7 +220,7 @@ /it-autoflight/internal/vert-speed-fpm /it-autoflight/internal/vert-speed-fpm-filtered - 500 + 1000 diff --git a/Systems/hydraulics.xml b/Systems/hydraulics.xml index 9cbdb66b..05b14996 100644 --- a/Systems/hydraulics.xml +++ b/Systems/hydraulics.xml @@ -542,8 +542,7 @@ - /controls/flight/rudder - 0.5 + 0 diff --git a/Systems/it-fbw-b.xml b/Systems/it-fbw-b.xml index 2bf03777..f1e88b28 100644 --- a/Systems/it-fbw-b.xml +++ b/Systems/it-fbw-b.xml @@ -220,6 +220,10 @@ /gear/gear[2]/wow 0 + + /it-fbw/alpha-hld + 0 + /it-fbw/law diff --git a/Systems/it-fbw.xml b/Systems/it-fbw.xml index b0e8615f..9c37d04d 100644 --- a/Systems/it-fbw.xml +++ b/Systems/it-fbw.xml @@ -8,6 +8,8 @@ /it-fbw/roll-lim-min /it-fbw/pitch-lim-max /it-fbw/pitch-lim-min + /it-fbw/alpha-max + /it-fbw/alpha-min @@ -61,6 +63,7 @@ + diff --git a/Systems/thrust.xml b/Systems/thrust.xml index b257b5df..ace2163b 100644 --- a/Systems/thrust.xml +++ b/Systems/thrust.xml @@ -54,24 +54,34 @@ output - + - /systems/thrust/state1 - MAN THR + /systems/thrust/alpha-floor + 0 - /systems/thrust/state1 - CL + /systems/thrust/toga-lk + 0 - - /systems/thrust/state1 - MAN - - - /systems/thrust/state1 - IDLE - - + + + /systems/thrust/state1 + MAN THR + + + /systems/thrust/state1 + CL + + + /systems/thrust/state1 + MAN + + + /systems/thrust/state1 + IDLE + + + @@ -215,24 +225,34 @@ output - + - /systems/thrust/state2 - MAN THR + /systems/thrust/alpha-floor + 0 - /systems/thrust/state2 - CL + /systems/thrust/toga-lk + 0 - - /systems/thrust/state2 - MAN - - - /systems/thrust/state2 - IDLE - - + + + /systems/thrust/state2 + MAN THR + + + /systems/thrust/state2 + CL + + + /systems/thrust/state2 + MAN + + + /systems/thrust/state2 + IDLE + + +