Remove aircrafts with time of latest update greater than 15 seks

refs #229
This commit is contained in:
Roland Winklmeier
2014-05-05 00:33:57 +02:00
committed by Klaus Basan
parent 83776c5cc9
commit 8341ef54d2
4 changed files with 17 additions and 0 deletions

View File

@@ -7,6 +7,7 @@
#define BLACKCORE_INTERPOLATOR_H
#include "blackmisc/avaircraftsituation.h"
#include <QDateTime>
namespace BlackCore
{
@@ -40,6 +41,12 @@ namespace BlackCore
* \return
*/
virtual BlackMisc::Aviation::CAircraftSituation getCurrentSituation() = 0;
/*!
* \brief Get timestamp of the last received aircraft situation
* \return
*/
virtual const QDateTime &getTimeOfLastReceivedSituation() const = 0;
};
} // namespace BlackCore

View File

@@ -104,4 +104,9 @@ namespace BlackCore
return currentSituation;
}
const QDateTime &CInterpolatorLinear::getTimeOfLastReceivedSituation() const
{
return m_aircraftSituationList.back().getTimestamp();
}
}

View File

@@ -36,6 +36,9 @@ namespace BlackCore
//! \copydoc IInterpolator::getCurrentSituation()
virtual BlackMisc::Aviation::CAircraftSituation getCurrentSituation() override;
//! \copydoc IInterpolator::getTimeOfLastReceivedSituation()
virtual const QDateTime &getTimeOfLastReceivedSituation() const override;
private:
BlackMisc::Aviation::CAircraftSituationList m_aircraftSituationList;

View File

@@ -388,6 +388,8 @@ namespace BlackSimPlugin
{
foreach(CSimConnectObject simObj, m_simConnectObjects)
{
if (simObj.getInterpolator()->getTimeOfLastReceivedSituation().secsTo(QDateTime::currentDateTimeUtc()) > 15)
removeRemoteAircraft(simObj);
if (simObj.getInterpolator()->hasEnoughAircraftSituations())
{