mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-27 11:05:44 +08:00
Ref T229, adjusted renamings because of CInterpolationStatus changes
This commit is contained in:
@@ -71,9 +71,9 @@ namespace BlackMisc
|
|||||||
const auto interpolant = derived()->getInterpolant(currentTimeMsSinceEpoc, setup, hints, status, log);
|
const auto interpolant = derived()->getInterpolant(currentTimeMsSinceEpoc, setup, hints, status, log);
|
||||||
|
|
||||||
// succeeded so far?
|
// succeeded so far?
|
||||||
if (!status.didInterpolationSucceed())
|
if (!status.isInterpolated())
|
||||||
{
|
{
|
||||||
status.setValidSituation(currentSituation);
|
status.checkIfValidSituation(currentSituation);
|
||||||
return currentSituation;
|
return currentSituation;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,16 +114,15 @@ namespace BlackMisc
|
|||||||
CInterpolator::setGroundFlagFromInterpolator(hints, NoGroundFactor, currentSituation);
|
CInterpolator::setGroundFlagFromInterpolator(hints, NoGroundFactor, currentSituation);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (setup.isForcingFullInterpolation() || hints.isVtolAircraft() || status.hasChangedPosition())
|
if (setup.isForcingFullInterpolation() || hints.isVtolAircraft() || status.isInterpolated())
|
||||||
{
|
{
|
||||||
const auto pbh = interpolant.pbh();
|
const auto pbh = interpolant.pbh();
|
||||||
currentSituation.setHeading(pbh.getHeading());
|
currentSituation.setHeading(pbh.getHeading());
|
||||||
currentSituation.setPitch(pbh.getPitch());
|
currentSituation.setPitch(pbh.getPitch());
|
||||||
currentSituation.setBank(pbh.getBank());
|
currentSituation.setBank(pbh.getBank());
|
||||||
currentSituation.setGroundSpeed(pbh.getGroundSpeed());
|
currentSituation.setGroundSpeed(pbh.getGroundSpeed());
|
||||||
status.setChangedPosition(true);
|
status.setInterpolatedAndCheckSituation(true, currentSituation);
|
||||||
}
|
}
|
||||||
status.setInterpolationSucceeded(true, currentSituation);
|
|
||||||
m_isFirstInterpolation = false;
|
m_isFirstInterpolation = false;
|
||||||
|
|
||||||
if (m_logger && hints.isLoggingInterpolation())
|
if (m_logger && hints.isLoggingInterpolation())
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ namespace BlackMisc
|
|||||||
if (situationsOlder.isEmpty())
|
if (situationsOlder.isEmpty())
|
||||||
{
|
{
|
||||||
const CAircraftSituation currentSituation(*(situationsNewer.end() - 1)); // oldest newest
|
const CAircraftSituation currentSituation(*(situationsNewer.end() - 1)); // oldest newest
|
||||||
status.setInterpolationSucceeded(false, currentSituation);
|
status.setInterpolatedAndCheckSituation(false, currentSituation);
|
||||||
return currentSituation;
|
return currentSituation;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,7 +81,7 @@ namespace BlackMisc
|
|||||||
if (situationsOlder.size() < 2)
|
if (situationsOlder.size() < 2)
|
||||||
{
|
{
|
||||||
const CAircraftSituation currentSituation(situationsOlder.front()); // latest oldest
|
const CAircraftSituation currentSituation(situationsOlder.front()); // latest oldest
|
||||||
status.setInterpolationSucceeded(false, currentSituation);
|
status.setInterpolatedAndCheckSituation(false, currentSituation);
|
||||||
return currentSituation;
|
return currentSituation;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,9 +124,7 @@ namespace BlackMisc
|
|||||||
|
|
||||||
currentSituation.setTimeOffsetMs(oldSituation.getTimeOffsetMs() + (newSituation.getTimeOffsetMs() - oldSituation.getTimeOffsetMs()) * simulationTimeFraction);
|
currentSituation.setTimeOffsetMs(oldSituation.getTimeOffsetMs() + (newSituation.getTimeOffsetMs() - oldSituation.getTimeOffsetMs()) * simulationTimeFraction);
|
||||||
currentSituation.setMSecsSinceEpoch(oldSituation.getMSecsSinceEpoch() + deltaTimeFractionMs);
|
currentSituation.setMSecsSinceEpoch(oldSituation.getMSecsSinceEpoch() + deltaTimeFractionMs);
|
||||||
|
status.setInterpolatedAndCheckSituation(true, currentSituation);
|
||||||
status.setChangedPosition(m_isFirstInterpolation || oldSituation.getPosition() != newSituation.getPosition() || oldSituation.getAltitude() != newSituation.getAltitude());
|
|
||||||
status.setInterpolationSucceeded(true, currentSituation);
|
|
||||||
|
|
||||||
log.oldSituation = oldSituation;
|
log.oldSituation = oldSituation;
|
||||||
log.newSituation = newSituation;
|
log.newSituation = newSituation;
|
||||||
|
|||||||
@@ -135,8 +135,7 @@ namespace BlackMisc
|
|||||||
log.oldSituation = m_pbh.getOldSituation();
|
log.oldSituation = m_pbh.getOldSituation();
|
||||||
log.newSituation = m_pbh.getNewSituation();
|
log.newSituation = m_pbh.getNewSituation();
|
||||||
|
|
||||||
status.setInterpolationSucceeded(true);
|
status.setInterpolated(true);
|
||||||
status.setChangedPosition(true);
|
|
||||||
const double dt1 = static_cast<double>(currentTimeMsSinceEpoc - m_prevSampleTime);
|
const double dt1 = static_cast<double>(currentTimeMsSinceEpoc - m_prevSampleTime);
|
||||||
const double dt2 = static_cast<double>(m_nextSampleTime - m_prevSampleTime);
|
const double dt2 = static_cast<double>(m_nextSampleTime - m_prevSampleTime);
|
||||||
const double timeFraction = dt1 / dt2;
|
const double timeFraction = dt1 / dt2;
|
||||||
|
|||||||
@@ -1157,7 +1157,7 @@ namespace BlackSimPlugin
|
|||||||
bool CSimulatorFsxCommon::guessAndUpdateRemoteAircraftParts(const CSimConnectObject &simObj, const CAircraftSituation &interpolatedSituation, const CInterpolationStatus &interpolationStatus)
|
bool CSimulatorFsxCommon::guessAndUpdateRemoteAircraftParts(const CSimConnectObject &simObj, const CAircraftSituation &interpolatedSituation, const CInterpolationStatus &interpolationStatus)
|
||||||
{
|
{
|
||||||
if (!simObj.hasValidRequestAndObjectId()) { return false; }
|
if (!simObj.hasValidRequestAndObjectId()) { return false; }
|
||||||
if (!interpolationStatus.didInterpolationSucceed()) { return false; }
|
if (!interpolationStatus.isInterpolated()) { return false; }
|
||||||
|
|
||||||
CAircraftLights lights;
|
CAircraftLights lights;
|
||||||
DataDefinitionRemoteAircraftPartsWithoutLights ddRemoteAircraftPartsWintoutLights = {}; // init members
|
DataDefinitionRemoteAircraftPartsWithoutLights ddRemoteAircraftPartsWintoutLights = {}; // init members
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ using namespace BlackMisc::Simulation;
|
|||||||
|
|
||||||
namespace BlackMiscTest
|
namespace BlackMiscTest
|
||||||
{
|
{
|
||||||
|
|
||||||
void CTestInterpolator::linearInterpolator()
|
void CTestInterpolator::linearInterpolator()
|
||||||
{
|
{
|
||||||
CCallsign cs("SWIFT");
|
CCallsign cs("SWIFT");
|
||||||
@@ -97,10 +96,9 @@ namespace BlackMiscTest
|
|||||||
CAircraftSituation currentSituation(interpolator.getInterpolatedSituation
|
CAircraftSituation currentSituation(interpolator.getInterpolatedSituation
|
||||||
(currentTime, setup, hints, status)
|
(currentTime, setup, hints, status)
|
||||||
);
|
);
|
||||||
QVERIFY2(status.didInterpolationSucceed(), "Interpolation was not succesful");
|
QVERIFY2(status.isInterpolated(), "Value was not interpolated");
|
||||||
QVERIFY2(status.hasChangedPosition(), "Interpolation did not changed");
|
const double latDeg = currentSituation.getPosition().latitude().valueRounded(CAngleUnit::deg(), 5);
|
||||||
double latDeg = currentSituation.getPosition().latitude().valueRounded(CAngleUnit::deg(), 5);
|
const double lngDeg = currentSituation.getPosition().longitude().valueRounded(CAngleUnit::deg(), 5);
|
||||||
double lngDeg = currentSituation.getPosition().longitude().valueRounded(CAngleUnit::deg(), 5);
|
|
||||||
QVERIFY2(latDeg < latOld && lngDeg < lngOld, "Values shall decrease");
|
QVERIFY2(latDeg < latOld && lngDeg < lngOld, "Values shall decrease");
|
||||||
QVERIFY2(latDeg >= 0 && latDeg <= IRemoteAircraftProvider::MaxSituationsPerCallsign, "Values shall be in range");
|
QVERIFY2(latDeg >= 0 && latDeg <= IRemoteAircraftProvider::MaxSituationsPerCallsign, "Values shall be in range");
|
||||||
latOld = latDeg;
|
latOld = latDeg;
|
||||||
@@ -127,7 +125,7 @@ namespace BlackMiscTest
|
|||||||
CAircraftSituation currentSituation(interpolator.getInterpolatedSituation
|
CAircraftSituation currentSituation(interpolator.getInterpolatedSituation
|
||||||
(currentTime, setup, hints, status)
|
(currentTime, setup, hints, status)
|
||||||
);
|
);
|
||||||
QVERIFY2(status.validAndChangedInterpolatedSituation(), "Failed interpolation");
|
QVERIFY2(status.isInterpolated(), "Not interpolated");
|
||||||
QVERIFY2(currentSituation.getCallsign() == cs, "Wrong callsign");
|
QVERIFY2(currentSituation.getCallsign() == cs, "Wrong callsign");
|
||||||
double latDeg = currentSituation.getPosition().latitude().valueRounded(CAngleUnit::deg(), 5);
|
double latDeg = currentSituation.getPosition().latitude().valueRounded(CAngleUnit::deg(), 5);
|
||||||
double lngDeg = currentSituation.getPosition().longitude().valueRounded(CAngleUnit::deg(), 5);
|
double lngDeg = currentSituation.getPosition().longitude().valueRounded(CAngleUnit::deg(), 5);
|
||||||
@@ -178,7 +176,6 @@ namespace BlackMiscTest
|
|||||||
p.setMSecsSinceEpoch(ts - deltaT * number); // values in past
|
p.setMSecsSinceEpoch(ts - deltaT * number); // values in past
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
//! \endcond
|
//! \endcond
|
||||||
|
|||||||
@@ -24,7 +24,6 @@
|
|||||||
#include <QtGlobal>
|
#include <QtGlobal>
|
||||||
|
|
||||||
namespace BlackMisc { namespace Aviation { class CCallsign; } }
|
namespace BlackMisc { namespace Aviation { class CCallsign; } }
|
||||||
|
|
||||||
namespace BlackMiscTest
|
namespace BlackMiscTest
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user