Fix sending the correct pressure altitude for a pilot position

* 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
This commit is contained in:
Roland Winklmeier
2018-01-12 13:30:30 +01:00
committed by Klaus Basan
parent 51a90a9a71
commit de4fe44156
30 changed files with 298 additions and 43 deletions

View File

@@ -28,17 +28,18 @@ namespace BlackSimPlugin
//! \sa SimConnect events http://msdn.microsoft.com/en-us/library/cc526980.aspx
struct DataDefinitionOwnAircraft
{
double latitude; //!< Latitude (deg)
double longitude; //!< Longitude (deg)
double altitude; //!< Altitude (ft)
double altitudeAGL; //!< Altitude above ground (ft)
double cgToGround; //!< Static CG to ground (ft)
double trueHeading; //!< True heading (deg)
double pitch; //!< Pitch (deg)
double bank; //!< Bank (deg)
double velocity; //!< Ground velocity
double elevation; //!< Elevation (ft)
double simOnGround; //!< Is aircraft on ground?
double latitude; //!< Latitude (deg)
double longitude; //!< Longitude (deg)
double altitude; //!< Altitude (ft)
double altitudeAGL; //!< Altitude above ground (ft)
double pressureAltitude; //!< Pressure altitude (m)
double cgToGround; //!< Static CG to ground (ft)
double trueHeading; //!< True heading (deg)
double pitch; //!< Pitch (deg)
double bank; //!< Bank (deg)
double velocity; //!< Ground velocity
double elevation; //!< Elevation (ft)
double simOnGround; //!< Is aircraft on ground?
double lightStrobe; //!< Is strobe light on?
double lightLanding; //!< Is landing light on?