Ref T646 Directly getting pressure altitude from FG

This commit is contained in:
Lars Toenning
2019-04-29 17:53:28 +02:00
committed by Klaus Basan
parent 4267b004c8
commit 6eeba19f37
4 changed files with 10 additions and 14 deletions

View File

@@ -54,7 +54,7 @@ namespace BlackSimPlugin
o_flightgearData->pitchDeg = reply.argumentAt<4>(); o_flightgearData->pitchDeg = reply.argumentAt<4>();
o_flightgearData->rollDeg = reply.argumentAt<5>(); o_flightgearData->rollDeg = reply.argumentAt<5>();
o_flightgearData->trueHeadingDeg = reply.argumentAt<6>(); o_flightgearData->trueHeadingDeg = reply.argumentAt<6>();
o_flightgearData->seaLevelPressureInHg = reply.argumentAt<7>(); o_flightgearData->pressureAltitudeFt = reply.argumentAt<7>();
} }
watcher->deleteLater(); watcher->deleteLater();
}; };
@@ -324,15 +324,14 @@ namespace BlackSimPlugin
m_dbusInterface->callDBusAsync(QLatin1String("getTaxiLightsOn"), setterCallback(o_taxiLightsOn)); m_dbusInterface->callDBusAsync(QLatin1String("getTaxiLightsOn"), setterCallback(o_taxiLightsOn));
} }
double CFGSwiftBusServiceProxy::getPressureAltitudeFt() const
double CFGSwiftBusServiceProxy::getQNHInHg() const
{ {
return m_dbusInterface->callDBusRet<double>(QLatin1String("getQNHInHg")); return m_dbusInterface->callDBusRet<double>(QLatin1String("getPressureAltitudeFt"));
} }
void CFGSwiftBusServiceProxy::getQNHInHgAsync(double *o_qnh) void CFGSwiftBusServiceProxy::getPressureAltitudeFtAsync(double *o_qnh)
{ {
m_dbusInterface->callDBusAsync(QLatin1String("getQNHInHg"), setterCallback(o_qnh)); m_dbusInterface->callDBusAsync(QLatin1String("getPressureAltitudeFt"), setterCallback(o_qnh));
} }

View File

@@ -271,10 +271,10 @@ namespace BlackSimPlugin
void getTaxiLightsOnAsync(bool *o_taxiLightsOn); void getTaxiLightsOnAsync(bool *o_taxiLightsOn);
//! @} //! @}
//! Get barometric pressure at sea level in inches of mercury. //! Get pressure altitude in feet.
//! @{ //! @{
double getQNHInHg() const; double getPressureAltitudeFt() const;
void getQNHInHgAsync(double *o_qnh); void getPressureAltitudeFtAsync(double *o_qnh);
//! @} //! @}
//! Set the current COM1 active frequency in kHz //! Set the current COM1 active frequency in kHz

View File

@@ -185,11 +185,8 @@ namespace BlackSimPlugin
CAircraftSituation situation; CAircraftSituation situation;
situation.setPosition({ m_flightgearData.latitudeDeg, m_flightgearData.longitudeDeg, 0 }); situation.setPosition({ m_flightgearData.latitudeDeg, m_flightgearData.longitudeDeg, 0 });
CAltitude altitude { m_flightgearData.altitudeM, CAltitude::MeanSeaLevel, CLengthUnit::ft() };
situation.setAltitude({ m_flightgearData.altitudeM, CAltitude::MeanSeaLevel, CLengthUnit::ft() }); situation.setAltitude({ m_flightgearData.altitudeM, CAltitude::MeanSeaLevel, CLengthUnit::ft() });
CPressure seaLevelPressure({ m_flightgearData.seaLevelPressureInHg, CPressureUnit::inHg() }); situation.setPressureAltitude({m_flightgearData.pressureAltitudeFt, CAltitude::MeanSeaLevel, CAltitude::PressureAltitude, CLengthUnit::ft()});
CAltitude pressureAltitude(altitude.toPressureAltitude(seaLevelPressure));
situation.setPressureAltitude(pressureAltitude);
situation.setHeading({ m_flightgearData.trueHeadingDeg, CHeading::True, CAngleUnit::deg() }); situation.setHeading({ m_flightgearData.trueHeadingDeg, CHeading::True, CAngleUnit::deg() });
situation.setPitch({ m_flightgearData.pitchDeg, CAngleUnit::deg() }); situation.setPitch({ m_flightgearData.pitchDeg, CAngleUnit::deg() });
situation.setBank({ m_flightgearData.rollDeg, CAngleUnit::deg() }); situation.setBank({ m_flightgearData.rollDeg, CAngleUnit::deg() });

View File

@@ -97,7 +97,7 @@ namespace BlackSimPlugin
double gearReployRatio; //!< Gear deployment ratio [%] double gearReployRatio; //!< Gear deployment ratio [%]
QList<double> enginesN1Percentage; //!< N1 per engine [%] QList<double> enginesN1Percentage; //!< N1 per engine [%]
double speedBrakeRatio; //!< Speed break ratio [%] double speedBrakeRatio; //!< Speed break ratio [%]
double seaLevelPressureInHg; //!< Sea level pressure [inhg] double pressureAltitudeFt; //!< Pressure altitude [inhg]
}; };
//! Flightgear ISimulator implementation //! Flightgear ISimulator implementation