This commit adds methods to register for live FSD message reception. The
amount of traffic can be quite high, therefore no normal signal is used -
which would be available via DBus. Instead one has to connect manually
by passing a functor. This guarantees that we communicate only in-process.
If someone tries to connect on the proxy side, the connection will fail.
This needs to be handled properly in client code.
This commit also adds a method to write the FSD message to a selected file.
Maniphest Tasks: T222
* Before this commit, only the true altitude was known for an aircraft situation. The pressure altitude was not available anywhere yet.
* This caused a wrong altitude in radar clients.
* We fix this reading the pressure altitude from the simulators and set it in the own aircraft situation.
* MS Flight Simulators have the pressure altitude in the APIs available.
* For X-Plane and emulated simulator, we need to calculate it from the pressure at sea level.
* Finally, we use the new available pressure altitude to send it to the FSD server.
Maniphest Tasks: Ref T223
Non-VATSIM FSD servers send the controller ATIS message as a regular
text message. swift therefore could not recognize it as such and was
handling the reply as any other text message.
This changes adds some checks to detect ATIS replies after a query.
Maniphest Tasks: T216
* CFlightPlanRemarks supports the functionality of utils, but is also a valid value object
* deleted CFlightPlanUtils .h/.cpp
* CFlightPlan uses CFlightPlanRemarks
* changed classes like VATSIM data reader to use CFlightPlanRemarks (instead of utils)
* removed useless if in CNetworkVatlib::onConnectionStatusChanged
* more frequently used pattern "auto *self = cbvar_cast(cbvar)" -> shorter lines
* added const where applicable
* added callsign hint where applicable
* added missing fromFSD where missing
* using QTimer::singleShot as discussed https://swift-project.slack.com/archives/C04J6J76N/p1506729875000004
* in case the internet provider is down, this is not detected
* extended test to detect if access is possible
* in case of downtime this indicated in status component
* Log when VATSIM status file has been read
* fix: read VATSIM status file after initReaders completes
* some private slots -> normal private functions
* removed copy/paste error illegalIcaoCodes
follow up of Ref T105
* use doWorkCheck
* relaxed doWorkCheck in unit tests
* removed isShuttingDown, gracefulShutdown
* set timer object name (in case something is wrong, we might see the name in the log)