34 lines
1.3 KiB
Text
34 lines
1.3 KiB
Text
|
var metar_runway = func {
|
||
|
# select runway according to wind direction reported by METAR
|
||
|
|
||
|
if (!getprop("/environment/metar/real-metar"))
|
||
|
return printlog("info", "metar-rwy: no live weather");
|
||
|
if (getprop("/environment/metar/base-wind-speed-kt") < 1)
|
||
|
return; # windspeed pointless for runway choice
|
||
|
if (!getprop("/sim/startup/options/airport"))
|
||
|
return printlog("info", "metar-rwy: no airport requested");
|
||
|
if (getprop("/sim/startup/options/runway"))
|
||
|
return printlog("info", "metar-rwy: won't override explicit runway");
|
||
|
if (getprop("/sim/startup/options/heading-deg") < 9990.0)
|
||
|
return printlog("info", "metar-rwy: won't override explicit heading");
|
||
|
if (!getprop("/sim/presets/onground"))
|
||
|
return printlog("info", "metar-rwy: we aren't on ground");
|
||
|
|
||
|
var from = getprop("/environment/metar/base-wind-range-from");
|
||
|
var to = getprop("/environment/metar/base-wind-range-to");
|
||
|
var wind_from = (from + to) * 0.5;
|
||
|
|
||
|
printlog("info", "metar-rwy: setting new target heading ", wind_from);
|
||
|
setprop("/sim/presets/heading-deg", wind_from);
|
||
|
setprop("/sim/presets/longitude-deg", -9999);
|
||
|
setprop("/sim/presets/latitude-deg", -9999);
|
||
|
fgcommand("presets-commit");
|
||
|
printlog("info", "metar-rwy: selected runway: ", getprop("/sim/atc/runway"));
|
||
|
}
|
||
|
|
||
|
|
||
|
_setlistener("/sim/signals/nasal-dir-initialized", func {
|
||
|
metar_runway();
|
||
|
delete(globals, "startup");
|
||
|
});
|