diff --git a/aerotow.nas b/aerotow.nas index b48a3ea..4ae163b 100644 --- a/aerotow.nas +++ b/aerotow.nas @@ -20,8 +20,7 @@ var PATH_FLIGHTPLAN = addon.storagePath ~ "/AI/FlightPlans/" ~ FILENAME_FLIGHTPL var SCENARIO_ID = "aerotow_addon"; var SCENARIO_NAME = "Aerotow Add-on"; var SCENARIO_DESC = "This scenario starts the towing plane at the airport where the pilot with the glider is located. Use Ctrl-o to hook the plane."; -var METER_TO_FEET = 3.2808399; -var MAX_RWY_LENGTH = 200; # Sum of distance in Rolling waypoints in meters +var MAX_RWY_LENGTH = 225; # Sum of distance in Rolling waypoints in meters # # Global variables @@ -202,31 +201,32 @@ var generateFlightPlanXml = func () { initAircraftVariable(airport, runway, 1); - # Start at 2 o'clock from the glider and line up with the runway + # Start at 2 o'clock from the glider... # Inital ktas must be >= 1.0 addWptGround({"hdgChange": 60, "dist": 25}, {"altChange": 0, "ktas": 5}); # Reset coord and heading initAircraftVariable(airport, runway, 0); - var gliderOffsetM = getGliderOffsetRunwayThreshold(runway); + var gliderOffsetM = getGliderOffsetFromRunwayThreshold(runway); + + # ... and line up with the runway + addWptGround({"hdgChange": 0, "dist": 30 + gliderOffsetM}, {"altChange": 0, "ktas": 2.5}); # Rolling - addWptGround({"hdgChange": 0, "dist": 30 + gliderOffsetM}, {"altChange": 0, "ktas": 2.5}); addWptGround({"hdgChange": 0, "dist": 5}, {"altChange": 0, "ktas": 5}); addWptGround({"hdgChange": 0, "dist": 50}, {"altChange": 0, "ktas": perf.speed / 4}); addWptGround({"hdgChange": 0, "dist": 50}, {"altChange": 0, "ktas": perf.speed / 1.8}); addWptGround({"hdgChange": 0, "dist": 50}, {"altChange": 0, "ktas": perf.speed}); # Takeof - addWptAir({"hdgChange": 0, "dist": 20}, {"altChange": 2, "ktas": perf.speed * 1.05}); - addWptAir({"hdgChange": 0, "dist": 20}, {"altChange": 20, "ktas": perf.speed * 1.075}); - addWptAir({"hdgChange": 0, "dist": 100}, {"altChange": 240, "ktas": perf.speed * 1.1}); + addWptAir({"hdgChange": 0, "dist": 70}, {"altChange": 3, "ktas": perf.speed * 1.05}); + addWptAir({"hdgChange": 0, "dist": 100}, {"altChange": perf.vs / 10, "ktas": perf.speed * 1.025}); # Circle around airport - addWptAir({"hdgChange": 0, "dist": 500}, {"altChange": perf.vs * 1.2, "ktas": perf.speed}); - addWptAir({"hdgChange": 0, "dist": 500}, {"altChange": perf.vs * 1.2, "ktas": perf.speed}); - addWptAir({"hdgChange": 0, "dist": 1000}, {"altChange": perf.vs * 1.5, "ktas": perf.speed * 1.025}); + addWptAir({"hdgChange": 0, "dist": 500}, {"altChange": perf.vs / 1.5, "ktas": perf.speed}); + addWptAir({"hdgChange": 0, "dist": 500}, {"altChange": perf.vs / 1.7, "ktas": perf.speed}); + addWptAir({"hdgChange": 0, "dist": 1000}, {"altChange": perf.vs, "ktas": perf.speed * 1.025}); addWptAir({"hdgChange": 0, "dist": 1000}, {"altChange": perf.vs, "ktas": perf.speed * 1.05}); addWptAir({"hdgChange": 0, "dist": 1000}, {"altChange": perf.vs, "ktas": perf.speed * 1.075}); addWptAir({"hdgChange": 0, "dist": 1000}, {"altChange": perf.vs, "ktas": perf.speed * 1.1}); @@ -311,16 +311,18 @@ var getAircraftPerformance = func () { # runway - Object of runway from which the glider start. # var initAircraftVariable = func (airport, runway, isGliderPos = 1) { + var gliderCood = geo.aircraft_position(); + # Set coordinates as glider position or runway threshold g_coord = isGliderPos - ? geo.aircraft_position() + ? gliderCood : geo.Coord.new().set_latlon(runway.lat, runway.lon); # Set airplane heading as runway heading g_heading = runway.heading; # Set airplane altitude as airport elevation - g_altitude = airport.elevation * METER_TO_FEET; + g_altitude = gliderCood.alt() * M2FT; } # @@ -329,7 +331,7 @@ var initAircraftVariable = func (airport, runway, isGliderPos = 1) { # runway - Object of runway from which the glider start # Return the distance in metres, of the glider's displacement from the runway threshold. # -var getGliderOffsetRunwayThreshold = func (runway) { +var getGliderOffsetFromRunwayThreshold = func (runway) { var gliderCoord = geo.aircraft_position(); var rwyThreshold = geo.Coord.new().set_latlon(runway.lat, runway.lon); @@ -452,8 +454,8 @@ var getWptString = func (name, coord = nil, alt = nil, ktas = nil, groundAir = n } if (alt != nil) { - str = str ~ " " ~ alt ~ "\n"; - # str = str ~ " " ~ alt ~ "\n"; + # str = str ~ " " ~ alt ~ "\n"; + str = str ~ " " ~ alt ~ "\n"; } if (ktas != nil) {