diff --git a/A320-main.xml b/A320-main.xml index 9a98eeba..a6a5baf8 100644 --- a/A320-main.xml +++ b/A320-main.xml @@ -636,11 +636,11 @@ DEL - REV MSG + Simple Engage/Disengage reversers nasal @@ -650,7 +650,7 @@ nasal @@ -660,7 +660,7 @@ nasal @@ -670,7 +670,7 @@ nasal diff --git a/AircraftConfig/help.xml b/AircraftConfig/help.xml index e7461cbf..cd476c1d 100644 --- a/AircraftConfig/help.xml +++ b/AircraftConfig/help.xml @@ -59,6 +59,10 @@ left + + left + + left diff --git a/Models/FlightDeck/a320.flightdeck.xml b/Models/FlightDeck/a320.flightdeck.xml index 78f4f8f8..20f59829 100644 --- a/Models/FlightDeck/a320.flightdeck.xml +++ b/Models/FlightDeck/a320.flightdeck.xml @@ -2132,13 +2132,7 @@ Engine 1 throttle lever rotate thr_l - - - /controls/engines/engine[0]/reverser - 1 - - - controls/engines/engine[0]/throttle-pos + controls/engines/engine[0]/throttle-lever 0.0000010 0.5999933 @@ -2168,16 +2162,10 @@ Engine 1 throttle lever rev rotate thr_l - - - /controls/engines/engine[0]/reverser - 1 - - - controls/engines/engine[0]/throttle-pos + controls/engines/engine[0]/throttle-rev 0.00 0 - 0.25-10 + 0.50-10 0 @@ -2221,13 +2209,7 @@ Engine 2 throttle lever rotate thr_r - - - /controls/engines/engine[0]/reverser - 1 - - - controls/engines/engine[1]/throttle-pos + controls/engines/engine[1]/throttle-lever 0.0000010 0.5999933 @@ -2257,16 +2239,10 @@ Engine 2 throttle lever rev rotate thr_r - - - /controls/engines/engine[0]/reverser - 1 - - - controls/engines/engine[1]/throttle-pos + controls/engines/engine[1]/throttle-rev 0.00 0 - 0.25-10 + 0.50-10 0 diff --git a/Models/Instruments/Upper-ECAM-EIS2/Upper-ECAM-CFM.xml b/Models/Instruments/Upper-ECAM-EIS2/Upper-ECAM-CFM.xml index f54add32..dbcebeab 100644 --- a/Models/Instruments/Upper-ECAM-EIS2/Upper-ECAM-CFM.xml +++ b/Models/Instruments/Upper-ECAM-EIS2/Upper-ECAM-CFM.xml @@ -931,7 +931,7 @@ rotate thrpos1 - /controls/engines/engine[0]/throttle + /controls/engines/engine[0]/throttle-lever 0.00000-12 0.23350 53 @@ -962,7 +962,7 @@ rotate thrpos2 - /controls/engines/engine[1]/throttle + /controls/engines/engine[1]/throttle-lever 0.00000-12 0.23350 53 diff --git a/Models/Instruments/Upper-ECAM-EIS2/Upper-ECAM-IAE.xml b/Models/Instruments/Upper-ECAM-EIS2/Upper-ECAM-IAE.xml index 7b29ab80..90ce01a0 100644 --- a/Models/Instruments/Upper-ECAM-EIS2/Upper-ECAM-IAE.xml +++ b/Models/Instruments/Upper-ECAM-EIS2/Upper-ECAM-IAE.xml @@ -1137,7 +1137,7 @@ rotate thrpos1 - /controls/engines/engine[0]/throttle + /controls/engines/engine[0]/throttle-lever 0.00000-10 0.19560 28 @@ -1169,7 +1169,7 @@ rotate thrpos2 - /controls/engines/engine[1]/throttle + /controls/engines/engine[1]/throttle-lever 0.00000-10 0.19560 28 diff --git a/Models/Instruments/Upper-ECAM/Upper-ECAM-CFM.xml b/Models/Instruments/Upper-ECAM/Upper-ECAM-CFM.xml index ddde3cb1..16158554 100644 --- a/Models/Instruments/Upper-ECAM/Upper-ECAM-CFM.xml +++ b/Models/Instruments/Upper-ECAM/Upper-ECAM-CFM.xml @@ -935,7 +935,7 @@ rotate thrpos1 - /controls/engines/engine[0]/throttle + /controls/engines/engine[0]/throttle-lever 0.00000 -2 0.23350 72 @@ -966,7 +966,7 @@ rotate thrpos2 - /controls/engines/engine[1]/throttle + /controls/engines/engine[1]/throttle-lever 0.00000 -2 0.23350 72 diff --git a/Models/Instruments/Upper-ECAM/Upper-ECAM-IAE.xml b/Models/Instruments/Upper-ECAM/Upper-ECAM-IAE.xml index 5b167597..a301d6eb 100644 --- a/Models/Instruments/Upper-ECAM/Upper-ECAM-IAE.xml +++ b/Models/Instruments/Upper-ECAM/Upper-ECAM-IAE.xml @@ -1137,7 +1137,7 @@ rotate thrpos1 - /controls/engines/engine[0]/throttle + /controls/engines/engine[0]/throttle-lever 0.0000005 0.1956033 @@ -1169,7 +1169,7 @@ rotate thrpos2 - /controls/engines/engine[1]/throttle + /controls/engines/engine[1]/throttle-lever 0.0000005 0.1956033 diff --git a/Nasal/engines.nas b/Nasal/engines.nas index d1396040..deca43e6 100644 --- a/Nasal/engines.nas +++ b/Nasal/engines.nas @@ -252,7 +252,7 @@ setlistener("/systems/pneumatic/start-psi", func { } }); -var do_idle_thrust = func { +var doIdleThrust = func { setprop("/controls/engines/engine[0]/throttle", 0.0); setprop("/controls/engines/engine[1]/throttle", 0.0); } @@ -260,17 +260,8 @@ var do_idle_thrust = func { ######################### # Reverse Thrust System # ######################### -var do_rev_thrust = func { - if ((getprop("/controls/engines/engine[0]/reverser") == "1") and (getprop("/controls/engines/engine[1]/reverser") == "1") and (getprop("/gear/gear[1]/wow") == 1) and (getprop("/gear/gear[2]/wow") == 1)) { - var pos1 = getprop("/controls/engines/engine[0]/throttle-pos"); - var pos2 = getprop("/controls/engines/engine[1]/throttle-pos"); - if (pos1 < 0.5) { - setprop("/controls/engines/engine[0]/throttle-pos", pos1 + 0.167); - } - if (pos2 < 0.5) { - setprop("/controls/engines/engine[1]/throttle-pos", pos2 + 0.167); - } - } + +var toggleFastRevThrust = func { var state1 = getprop("/systems/thrust/state1"); var state2 = getprop("/systems/thrust/state2"); if ((state1 == "IDLE") and (state2 == "IDLE") and (getprop("/controls/engines/engine[0]/reverser") == "0") and (getprop("/controls/engines/engine[1]/reverser") == "0") and (getprop("/gear/gear[1]/wow") == 1) and (getprop("/gear/gear[2]/wow") == 1)) { @@ -278,35 +269,69 @@ var do_rev_thrust = func { interpolate("/engines/engine[1]/reverser-pos-norm", 1, 1.4); setprop("/controls/engines/engine[0]/reverser", 1); setprop("/controls/engines/engine[1]/reverser", 1); - setprop("/controls/engines/engine[0]/throttle-pos", 0); - setprop("/controls/engines/engine[1]/throttle-pos", 0); + setprop("/controls/engines/engine[0]/throttle-rev", 0.5); + setprop("/controls/engines/engine[1]/throttle-rev", 0.5); + setprop("/fdm/jsbsim/propulsion/engine[0]/reverser-angle-rad", 3.14); + setprop("/fdm/jsbsim/propulsion/engine[1]/reverser-angle-rad", 3.14); + } else if ((getprop("/controls/engines/engine[0]/reverser") == "1") or (getprop("/controls/engines/engine[1]/reverser") == "1") and (getprop("/gear/gear[1]/wow") == 1) and (getprop("/gear/gear[2]/wow") == 1)) { + setprop("/controls/engines/engine[0]/throttle-rev", 0); + setprop("/controls/engines/engine[1]/throttle-rev", 0); + interpolate("/engines/engine[0]/reverser-pos-norm", 0, 1.0); + interpolate("/engines/engine[1]/reverser-pos-norm", 0, 1.0); + setprop("/fdm/jsbsim/propulsion/engine[0]/reverser-angle-rad", 0); + setprop("/fdm/jsbsim/propulsion/engine[1]/reverser-angle-rad", 0); + setprop("/controls/engines/engine[0]/reverser", 0); + setprop("/controls/engines/engine[1]/reverser", 0); + } +} + +var doRevThrust = func { + if ((getprop("/controls/engines/engine[0]/reverser") == "1") and (getprop("/controls/engines/engine[1]/reverser") == "1") and (getprop("/gear/gear[1]/wow") == 1) and (getprop("/gear/gear[2]/wow") == 1)) { + var pos1 = getprop("/controls/engines/engine[0]/throttle-rev"); + var pos2 = getprop("/controls/engines/engine[1]/throttle-rev"); + if (pos1 < 0.5) { + setprop("/controls/engines/engine[0]/throttle-rev", pos1 + 0.167); + } + if (pos2 < 0.5) { + setprop("/controls/engines/engine[1]/throttle-rev", pos2 + 0.167); + } + } + var state1 = getprop("/systems/thrust/state1"); + var state2 = getprop("/systems/thrust/state2"); + if ((state1 == "IDLE") and (state2 == "IDLE") and (getprop("/controls/engines/engine[0]/reverser") == "0") and (getprop("/controls/engines/engine[1]/reverser") == "0") and (getprop("/gear/gear[1]/wow") == 1) and (getprop("/gear/gear[2]/wow") == 1)) { + setprop("/controls/engines/engine[0]/throttle-rev", 0); + setprop("/controls/engines/engine[1]/throttle-rev", 0); + interpolate("/engines/engine[0]/reverser-pos-norm", 1, 1.4); + interpolate("/engines/engine[1]/reverser-pos-norm", 1, 1.4); + setprop("/controls/engines/engine[0]/reverser", 1); + setprop("/controls/engines/engine[1]/reverser", 1); setprop("/fdm/jsbsim/propulsion/engine[0]/reverser-angle-rad", 3.14); setprop("/fdm/jsbsim/propulsion/engine[1]/reverser-angle-rad", 3.14); } } -var un_rev_thrust = func { - if ((getprop("/controls/engines/engine[0]/reverser") == "1") and (getprop("/controls/engines/engine[1]/reverser") == "1")) { - var pos1 = getprop("/controls/engines/engine[0]/throttle-pos"); - var pos2 = getprop("/controls/engines/engine[1]/throttle-pos"); +var unRevThrust = func { + if ((getprop("/controls/engines/engine[0]/reverser") == "1") or (getprop("/controls/engines/engine[1]/reverser") == "1")) { + var pos1 = getprop("/controls/engines/engine[0]/throttle-rev"); + var pos2 = getprop("/controls/engines/engine[1]/throttle-rev"); if (pos1 > 0.0) { - setprop("/controls/engines/engine[0]/throttle-pos", pos1 - 0.167); + setprop("/controls/engines/engine[0]/throttle-rev", pos1 - 0.167); } else { - un_rev_thrust_b(); + unRevThrust_b(); } if (pos2 > 0.0) { - setprop("/controls/engines/engine[1]/throttle-pos", pos2 - 0.167); + setprop("/controls/engines/engine[1]/throttle-rev", pos2 - 0.167); } else { - un_rev_thrust_b(); + unRevThrust_b(); } } } -var un_rev_thrust_b = func { +var unRevThrust_b = func { + setprop("/controls/engines/engine[0]/throttle-rev", 0); + setprop("/controls/engines/engine[1]/throttle-rev", 0); interpolate("/engines/engine[0]/reverser-pos-norm", 0, 1.0); interpolate("/engines/engine[1]/reverser-pos-norm", 0, 1.0); - setprop("/controls/engines/engine[0]/throttle-pos", 0); - setprop("/controls/engines/engine[1]/throttle-pos", 0); setprop("/fdm/jsbsim/propulsion/engine[0]/reverser-angle-rad", 0); setprop("/fdm/jsbsim/propulsion/engine[1]/reverser-angle-rad", 0); setprop("/controls/engines/engine[0]/reverser", 0); diff --git a/Systems/engine-timing.xml b/Systems/engine-timing.xml index 099c9f15..e77f5950 100644 --- a/Systems/engine-timing.xml +++ b/Systems/engine-timing.xml @@ -244,16 +244,77 @@ Throttle L gain 1 - + 0.05 + /controls/engines/engine[0]/reverser 0 - + /controls/engines/engine[0]/throttle + + + + + /controls/engines/engine[0]/reverser + 1 + + + 0 + + /controls/engines/engine[0]/throttle-lever + + + + Throttle R + gain + 1 0.05 - /controls/engines/engine[0]/throttle + + + + /controls/engines/engine[1]/reverser + 0 + + + /controls/engines/engine[1]/throttle + + + + + /controls/engines/engine[1]/reverser + 1 + + + 0 + + /controls/engines/engine[1]/throttle-lever + + + + Throttle L + gain + 1 + 0.05 + + + + /controls/engines/engine[0]/reverser + 0 + + + /controls/engines/engine[0]/throttle + + + + + /controls/engines/engine[0]/reverser + 1 + + + /controls/engines/engine[0]/throttle-rev + /controls/engines/engine[0]/throttle-pos @@ -261,16 +322,25 @@ Throttle R gain 1 - + 0.05 + /controls/engines/engine[1]/reverser 0 - - 0.05 - /controls/engines/engine[1]/throttle + /controls/engines/engine[1]/throttle + + + + + /controls/engines/engine[1]/reverser + 1 + + + /controls/engines/engine[1]/throttle-rev + /controls/engines/engine[1]/throttle-pos