From 8053504acb1e3c4e03fb0edcdb851ebf753acd33 Mon Sep 17 00:00:00 2001 From: Lars Toenning Date: Sun, 19 Jan 2020 19:29:46 +0100 Subject: [PATCH] [FG] Getting ground elevation --- .../simulator/flightgear/fgswiftbusserviceproxy.cpp | 10 ++++++++++ .../simulator/flightgear/fgswiftbusserviceproxy.h | 6 ++++++ .../simulator/flightgear/simulatorflightgear.cpp | 2 ++ src/plugins/simulator/flightgear/simulatorflightgear.h | 1 + 4 files changed, 19 insertions(+) diff --git a/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.cpp b/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.cpp index 0cc491e2a..424022b59 100644 --- a/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.cpp +++ b/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.cpp @@ -407,5 +407,15 @@ namespace BlackSimPlugin { m_dbusInterface->callDBusAsync(QLatin1String("getSpeedBrakeRatio"), setterCallback(o_speedBrakeRatio)); } + + double CFGSwiftBusServiceProxy::getGroundElevation() const + { + return m_dbusInterface->callDBusRet(QLatin1String("getGroundElevation")); + } + + void CFGSwiftBusServiceProxy::getGroundElevationAsync(double *o_groundElevation) + { + m_dbusInterface->callDBusAsync(QLatin1String("getGroundElevation"),setterCallback(o_groundElevation)); + } } // ns } // ns diff --git a/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.h b/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.h index a787d22b4..f9db38b0a 100644 --- a/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.h +++ b/src/plugins/simulator/flightgear/fgswiftbusserviceproxy.h @@ -321,6 +321,12 @@ namespace BlackSimPlugin double getSpeedBrakeRatio() const; void getSpeedBrakeRatioAsync(double *o_speedBrakeRatio); //! @} + + //! Get ground elevation [m] for current airplane position + //! @{ + double getGroundElevation() const; + void getGroundElevationAsync(double *o_groundElevation); + //! @} }; } } diff --git a/src/plugins/simulator/flightgear/simulatorflightgear.cpp b/src/plugins/simulator/flightgear/simulatorflightgear.cpp index edae22e0e..f6d5fcc9d 100644 --- a/src/plugins/simulator/flightgear/simulatorflightgear.cpp +++ b/src/plugins/simulator/flightgear/simulatorflightgear.cpp @@ -208,6 +208,7 @@ namespace BlackSimPlugin m_serviceProxy->getTransponderModeAsync(&m_flightgearData.xpdrMode); m_serviceProxy->getTransponderIdentAsync(&m_flightgearData.xpdrIdent); m_serviceProxy->getAllWheelsOnGroundAsync(&m_flightgearData.onGroundAll); + m_serviceProxy->getGroundElevationAsync(&m_flightgearData.groundElevation); CAircraftSituation situation; situation.setPosition({ m_flightgearData.latitudeDeg, m_flightgearData.longitudeDeg, 0 }); @@ -217,6 +218,7 @@ namespace BlackSimPlugin situation.setPitch({ m_flightgearData.pitchDeg, CAngleUnit::deg() }); situation.setBank({ m_flightgearData.rollDeg, CAngleUnit::deg() }); situation.setGroundSpeed({ m_flightgearData.groundspeedKts, CSpeedUnit::kts() }); + situation.setGroundElevation(CAltitude(m_flightgearData.groundElevation,CAltitude::MeanSeaLevel,CLengthUnit::m()),CAircraftSituation::FromProvider); // Updates // Do not update ICAO codes, as this overrides reverse lookups diff --git a/src/plugins/simulator/flightgear/simulatorflightgear.h b/src/plugins/simulator/flightgear/simulatorflightgear.h index cbbea92d6..d19ad1390 100644 --- a/src/plugins/simulator/flightgear/simulatorflightgear.h +++ b/src/plugins/simulator/flightgear/simulatorflightgear.h @@ -98,6 +98,7 @@ namespace BlackSimPlugin QList enginesN1Percentage; //!< N1 per engine [%] double speedBrakeRatio; //!< Speed break ratio [%] double pressureAltitudeFt; //!< Pressure altitude [inhg] + double groundElevation; //!< Ground Elevation [m] }; //! Flightgear ISimulator implementation