mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-14 08:45:36 +08:00
Revert "Interpolate the dynamic offset time for aircraft situations"
This reverts commit efb6a3211d.
This commit is contained in:
@@ -1909,7 +1909,6 @@ namespace BlackCore::Fsd
|
|||||||
|
|
||||||
qint64 CFSDClient::receivedPositionFixTsAndGetOffsetTime(const CCallsign &callsign, qint64 markerTs)
|
qint64 CFSDClient::receivedPositionFixTsAndGetOffsetTime(const CCallsign &callsign, qint64 markerTs)
|
||||||
{
|
{
|
||||||
// \fixme This logic should be in a different class
|
|
||||||
Q_ASSERT_X(!callsign.isEmpty(), Q_FUNC_INFO, "Need callsign");
|
Q_ASSERT_X(!callsign.isEmpty(), Q_FUNC_INFO, "Need callsign");
|
||||||
|
|
||||||
if (markerTs < 0) { markerTs = QDateTime::currentMSecsSinceEpoch(); }
|
if (markerTs < 0) { markerTs = QDateTime::currentMSecsSinceEpoch(); }
|
||||||
@@ -1927,25 +1926,13 @@ namespace BlackCore::Fsd
|
|||||||
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
const qint64 avgTimeMs = this->averageOffsetTimeMs(callsign, count, 3); // latest average
|
const qint64 avgTimeMs = this->averageOffsetTimeMs(callsign, count, 3); // latest average
|
||||||
qint64 targetOffsetTime = CFsdSetup::c_positionTimeOffsetMsec;
|
qint64 offsetTime = CFsdSetup::c_positionTimeOffsetMsec;
|
||||||
|
|
||||||
if (avgTimeMs < CFsdSetup::c_minimumPositionTimeOffsetMsec && count >= 3)
|
if (avgTimeMs < CFsdSetup::c_minimumPositionTimeOffsetMsec && count >= 3)
|
||||||
{
|
{
|
||||||
targetOffsetTime = CFsdSetup::c_minimumPositionTimeOffsetMsec;
|
offsetTime = CFsdSetup::c_minimumPositionTimeOffsetMsec;
|
||||||
}
|
}
|
||||||
|
|
||||||
const qint64 previousInterpolatedOffsetTime = m_interpolatedOffsetTime.value(callsign, 0);
|
|
||||||
qint64 offsetDiff = 0;
|
|
||||||
if (targetOffsetTime < previousInterpolatedOffsetTime)
|
|
||||||
{
|
|
||||||
offsetDiff = std::max(targetOffsetTime - previousInterpolatedOffsetTime, diff / -c_offsetTimeInterpolationInverseRate);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
offsetDiff = std::min(targetOffsetTime - previousInterpolatedOffsetTime, diff / c_offsetTimeInterpolationInverseRate);
|
|
||||||
}
|
|
||||||
qint64 offsetTime = previousInterpolatedOffsetTime + offsetDiff;
|
|
||||||
m_interpolatedOffsetTime.insert(callsign, offsetTime);
|
|
||||||
return m_additionalOffsetTime + offsetTime;
|
return m_additionalOffsetTime + offsetTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -575,8 +575,6 @@ namespace BlackCore::Fsd
|
|||||||
QHash<BlackMisc::Aviation::CCallsign, PendingAtisQuery> m_pendingAtisQueries;
|
QHash<BlackMisc::Aviation::CCallsign, PendingAtisQuery> m_pendingAtisQueries;
|
||||||
QHash<BlackMisc::Aviation::CCallsign, qint64> m_lastPositionUpdate;
|
QHash<BlackMisc::Aviation::CCallsign, qint64> m_lastPositionUpdate;
|
||||||
QHash<BlackMisc::Aviation::CCallsign, QList<qint64>> m_lastOffsetTimes; //!< latest offset first
|
QHash<BlackMisc::Aviation::CCallsign, QList<qint64>> m_lastOffsetTimes; //!< latest offset first
|
||||||
QHash<BlackMisc::Aviation::CCallsign, qint64> m_interpolatedOffsetTime;
|
|
||||||
static const int c_offsetTimeInterpolationInverseRate = 4;
|
|
||||||
|
|
||||||
BlackMisc::Aviation::CAtcStationList m_atcStations;
|
BlackMisc::Aviation::CAtcStationList m_atcStations;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user