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

View File

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

View File

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

View File

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