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->rollDeg = reply.argumentAt<5>();
o_flightgearData->trueHeadingDeg = reply.argumentAt<6>();
o_flightgearData->seaLevelPressureInHg = reply.argumentAt<7>();
o_flightgearData->pressureAltitudeFt = reply.argumentAt<7>();
}
watcher->deleteLater();
};
@@ -324,15 +324,14 @@ namespace BlackSimPlugin
m_dbusInterface->callDBusAsync(QLatin1String("getTaxiLightsOn"), setterCallback(o_taxiLightsOn));
}
double CFGSwiftBusServiceProxy::getQNHInHg() const
double CFGSwiftBusServiceProxy::getPressureAltitudeFt() 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);
//! @}
//! Get barometric pressure at sea level in inches of mercury.
//! Get pressure altitude in feet.
//! @{
double getQNHInHg() const;
void getQNHInHgAsync(double *o_qnh);
double getPressureAltitudeFt() const;
void getPressureAltitudeFtAsync(double *o_qnh);
//! @}
//! Set the current COM1 active frequency in kHz

View File

@@ -185,11 +185,8 @@ namespace BlackSimPlugin
CAircraftSituation situation;
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() });
CPressure seaLevelPressure({ m_flightgearData.seaLevelPressureInHg, CPressureUnit::inHg() });
CAltitude pressureAltitude(altitude.toPressureAltitude(seaLevelPressure));
situation.setPressureAltitude(pressureAltitude);
situation.setPressureAltitude({m_flightgearData.pressureAltitudeFt, CAltitude::MeanSeaLevel, CAltitude::PressureAltitude, CLengthUnit::ft()});
situation.setHeading({ m_flightgearData.trueHeadingDeg, CHeading::True, CAngleUnit::deg() });
situation.setPitch({ m_flightgearData.pitchDeg, CAngleUnit::deg() });
situation.setBank({ m_flightgearData.rollDeg, CAngleUnit::deg() });

View File

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