The automatic runway selection code in startup.nas depends
on a valid metar before /sim/signals/nasal-dir-initialized
is fired. If the METAR arrives after that signal, no automatic
runway selection is performed. This patch waits for a METAR
on the first update() loop of the subsystem.
Signature of Predictor::configure must match AnalogComponent::configure,
otherwise the inherited method isn't overridden.
=> predictor couldn't be configured.
=> speed predictor rules in "generic-autopilot-helper.xml" weren't working.
"nav-loc" and "has_gs" properties were not updated when nav receiver was rebooted.
Shutting down the nav receiver clears all nav outputs (including "nav-loc" and "has_gs").
=> When nav receiver is powered again, all outputs must be updated.
=> "nav-loc" and "has_gs" are only updated when active nav station changes.
=> old nav station must be cleared on shutdown to enforce update on nav reboot...
- Fixed triggering of debug assertion "altitude_callout_voice != NULL" when
altitude callouts were delayed by higher priority warnings.
- Fixed performance bug: MK_VIII::IOHandler::TerrainClearanceFilter::update
sucked CPU time (top #12 in profiler), due to complex "moving average"
calculation on a queue of hundreds/thousands of altitude samples.
Also, pausing the sim caused this queue to grow excessively (by one sample
per update loop) => resuming the sim after pausing it for a long time
resulted in the TerrainClearanceFilter sucking even more CPU time...
=> Number of altitude samples is now limited to 5 samples/sim-time-second
(still more than enough to calculate a stable average).
* Fixed segfault when GPWS finds a matching airport but no suitable runway.
* Fixed several sim deadlocks when GPWS alerts trigger at "strange"
heights (e.g. initial alert height is -5ft or 1e-29...).
* Avoid repitition of GPWS alerts below 30ft, i.e. avoid excessive
repitition when plane becomes airborne at bumpy landings.