From a7a1578775e8cd25091aa9cb55fbadb138a71465 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 6 Nov 2018 01:40:44 +0100 Subject: [PATCH] Ref T423, aligned "emulated driver" * renamed to "updateRemoteAircraft" * use new force update functions --- .../simulator/emulated/simulatoremulated.cpp | 14 ++++++++------ src/plugins/simulator/emulated/simulatoremulated.h | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/plugins/simulator/emulated/simulatoremulated.cpp b/src/plugins/simulator/emulated/simulatoremulated.cpp index 8da32fc1a..ecbe6907b 100644 --- a/src/plugins/simulator/emulated/simulatoremulated.cpp +++ b/src/plugins/simulator/emulated/simulatoremulated.cpp @@ -48,7 +48,7 @@ namespace BlackSimPlugin connect(qApp, &QApplication::aboutToQuit, this, &CSimulatorEmulated::closeMonitor); connect(sGui, &CGuiApplication::aboutToShutdown, this, &CSimulatorEmulated::closeMonitor, Qt::QueuedConnection); - connect(&m_interpolatorFetchTimer, &QTimer::timeout, this, &CSimulatorEmulated::fetchFromInterpolator); + connect(&m_interpolatorFetchTimer, &QTimer::timeout, this, &CSimulatorEmulated::updateRemoteAircraft); // connect own signals for monitoring this->connectOwnSignals(); @@ -431,16 +431,18 @@ namespace BlackSimPlugin Qt::QueuedConnection)); } - void CSimulatorEmulated::fetchFromInterpolator() + void CSimulatorEmulated::updateRemoteAircraft() { const qint64 now = QDateTime::currentMSecsSinceEpoch(); + const bool updateAllAircraft = this->isUpdateAllRemoteAircraft(now); int aircraftNumber = 0; + for (const CSimulatedAircraft &aircraft : m_renderedAircraft) { - const CCallsign cs = aircraft.getCallsign(); - if (!m_interpolators.contains(cs)) { continue; } - const CInterpolationAndRenderingSetupPerCallsign setup = this->getInterpolationSetupPerCallsignOrDefault(cs); // threadsafe copy - CInterpolatorMulti *im = m_interpolators[cs]; + const CCallsign callsign = aircraft.getCallsign(); + if (!m_interpolators.contains(callsign)) { continue; } + const CInterpolationAndRenderingSetupPerCallsign setup = this->getInterpolationSetupConsolidated(callsign, updateAllAircraft); + CInterpolatorMulti *im = m_interpolators[callsign]; Q_ASSERT_X(im, Q_FUNC_INFO, "interpolator missing"); const CInterpolationResult result = im->getInterpolation(now, setup, aircraftNumber++); const CAircraftSituation s = result; diff --git a/src/plugins/simulator/emulated/simulatoremulated.h b/src/plugins/simulator/emulated/simulatoremulated.h index 64ae9dd84..8ea5572e7 100644 --- a/src/plugins/simulator/emulated/simulatoremulated.h +++ b/src/plugins/simulator/emulated/simulatoremulated.h @@ -152,7 +152,7 @@ namespace BlackSimPlugin //! Fetch data from interpolator //! \remarks basically does the same as a real driver, obtains data from the interpolator - void fetchFromInterpolator(); + void updateRemoteAircraft(); bool m_log = false; //!< from settings bool m_paused = false;