diff --git a/src/blackcore/simulatorcommon.cpp b/src/blackcore/simulatorcommon.cpp index 5a4633f4e..a15c678b9 100644 --- a/src/blackcore/simulatorcommon.cpp +++ b/src/blackcore/simulatorcommon.cpp @@ -585,9 +585,11 @@ namespace BlackCore m_statsUpdateAircraftRuns = 0; m_statsUpdateAircraftTimeAvgMs = 0; m_statsUpdateAircraftTimeTotalMs = 0; + m_statsMaxUpdateTimeMs = 0; + m_statsCurrentUpdateTimeMs = 0; m_statsPhysicallyAddedAircraft = 0; m_statsPhysicallyRemovedAircraft = 0; - m_statsLastUpdateAircraftRequested = 0; + m_statsLastUpdateAircraftRequestedMs = 0; m_statsUpdateAircraftRequestedDeltaMs = 0; } @@ -642,12 +644,14 @@ namespace BlackCore { const qint64 now = QDateTime::currentMSecsSinceEpoch(); const qint64 dt = now - startTime; + m_statsCurrentUpdateTimeMs = dt; m_statsUpdateAircraftTimeTotalMs += dt; m_statsUpdateAircraftRuns++; m_statsUpdateAircraftTimeAvgMs = static_cast(m_statsUpdateAircraftTimeTotalMs) / static_cast(m_statsUpdateAircraftRuns); m_updateRemoteAircraftInProgress = false; - if (m_statsLastUpdateAircraftRequested > 0) { m_statsUpdateAircraftRequestedDeltaMs = startTime - m_statsLastUpdateAircraftRequested; } - m_statsLastUpdateAircraftRequested = startTime; + if (m_statsMaxUpdateTimeMs < dt) { m_statsMaxUpdateTimeMs = dt; } + if (m_statsLastUpdateAircraftRequestedMs > 0) { m_statsUpdateAircraftRequestedDeltaMs = startTime - m_statsLastUpdateAircraftRequestedMs; } + m_statsLastUpdateAircraftRequestedMs = startTime; } bool CSimulatorCommon::isEqualLastSent(const CAircraftSituation &compare) const diff --git a/src/blackcore/simulatorcommon.h b/src/blackcore/simulatorcommon.h index a7ae46193..58b2a3515 100644 --- a/src/blackcore/simulatorcommon.h +++ b/src/blackcore/simulatorcommon.h @@ -125,12 +125,21 @@ namespace BlackCore //! Counter removed aircraft int getStatisticsPhysicallyRemovedAircraft() const { return m_statsPhysicallyRemovedAircraft; } + //! Current update time in ms + double getStatisticsCurrentUpdateTimeMs() const { return m_statsCurrentUpdateTimeMs; } + //! Average update time in ms double getStatisticsAverageUpdateTimeMs() const { return m_statsUpdateAircraftTimeAvgMs; } //! Total update time in ms qint64 getStatisticsTotalUpdateTimeMs() const { return m_statsUpdateAircraftTimeTotalMs; } + //! Max.update time in ms + qint64 getStatisticsMaxUpdateTimeMs() const { return m_statsMaxUpdateTimeMs; } + + //! Number of update runs + int getStatisticsUpdateRuns() const { return m_statsUpdateAircraftRuns; } + //! Time between two update requests qint64 getStatisticsAircraftUpdatedRequestedDeltaMs() const { return m_statsUpdateAircraftRequestedDeltaMs; } @@ -252,15 +261,17 @@ namespace BlackCore //! Lookup against DB data static BlackMisc::Simulation::CAircraftModel reverseLookupModel(const BlackMisc::Simulation::CAircraftModel &model); - bool m_pausedSimFreezesInterpolation = false; //!< paused simulator will also pause interpolation (so AI aircraft will hold) - bool m_autoCalcAirportDistance = true; //!< automatically calculate airport distance and bearing - bool m_updateRemoteAircraftInProgress = false; //!< currently updating remote aircraft - int m_timerId = -1; //!< dispatch timer id - int m_statsUpdateAircraftRuns = 0; //!< statistics update count - double m_statsUpdateAircraftTimeAvgMs = 0; //!< statistics average update time - qint64 m_statsUpdateAircraftTimeTotalMs = 0; //!< statistics total update time - qint64 m_statsLastUpdateAircraftRequested = 0; //!< when was the last aircraft update requested - qint64 m_statsUpdateAircraftRequestedDeltaMs = 0; //!< delta time between 2 aircrat updates + bool m_pausedSimFreezesInterpolation = false; //!< paused simulator will also pause interpolation (so AI aircraft will hold) + bool m_autoCalcAirportDistance = true; //!< automatically calculate airport distance and bearing + bool m_updateRemoteAircraftInProgress = false; //!< currently updating remote aircraft + int m_timerId = -1; //!< dispatch timer id + int m_statsUpdateAircraftRuns = 0; //!< statistics update count + double m_statsUpdateAircraftTimeAvgMs = 0; //!< statistics average update time + qint64 m_statsUpdateAircraftTimeTotalMs = 0; //!< statistics total update time + qint64 m_statsCurrentUpdateTimeMs = 0; //!< statistics current update time + qint64 m_statsMaxUpdateTimeMs = 0; //!< statistics max.update time + qint64 m_statsLastUpdateAircraftRequestedMs = 0; //!< when was the last aircraft update requested + qint64 m_statsUpdateAircraftRequestedDeltaMs = 0; //!< delta time between 2 aircrat updates BlackMisc::Simulation::CSimulatorInternals m_simulatorInternals; //!< setup object BlackMisc::Simulation::CInterpolationLogger m_interpolationLogger; //!< log.interpolation diff --git a/src/blackgui/components/interpolationlogdisplay.cpp b/src/blackgui/components/interpolationlogdisplay.cpp index 12935673c..6642a9e78 100644 --- a/src/blackgui/components/interpolationlogdisplay.cpp +++ b/src/blackgui/components/interpolationlogdisplay.cpp @@ -112,9 +112,16 @@ namespace BlackGui ui->le_Parts->setText(boolToYesNo(m_airspaceMonitor->isRemoteAircraftSupportingParts(m_callsign))); static const QString msTimeStr("%1ms"); + static const QString updateTimes("%1ms avg: %2ms max: %3ms"); const QString avgUpdateTimeRounded = QString::number(m_simulatorCommon->getStatisticsAverageUpdateTimeMs(), 'f', 2); - ui->le_AvgUpdateTimeMs->setText(msTimeStr.arg(avgUpdateTimeRounded)); - ui->le_UpdateAircraftReqTimeMs->setText(msTimeStr.arg(m_simulatorCommon->getStatisticsAircraftUpdatedRequestedDeltaMs())); + + ui->le_UpdateTimes->setText(updateTimes. + arg(m_simulatorCommon->getStatisticsCurrentUpdateTimeMs()). + arg(avgUpdateTimeRounded). + arg(m_simulatorCommon->getStatisticsMaxUpdateTimeMs())); + ui->le_UpdateTimes->home(false); + ui->le_UpdateCount->setText(QString::number(m_simulatorCommon->getStatisticsUpdateRuns())); + ui->le_UpdateReqTime->setText(msTimeStr.arg(m_simulatorCommon->getStatisticsAircraftUpdatedRequestedDeltaMs())); const CClient client = m_airspaceMonitor->getClientOrDefaultForCallsign(m_callsign); ui->le_GndFlag->setText(boolToYesNo(client.hasGndFlagCapability())); @@ -293,8 +300,8 @@ namespace BlackGui ui->le_ElevationRec->clear(); ui->le_ElevationReq->clear(); ui->le_Parts->clear(); - ui->le_AvgUpdateTimeMs->clear(); - ui->le_UpdateAircraftReqTimeMs->clear(); + ui->le_UpdateTimes->clear(); + ui->le_UpdateTimes->clear(); m_elvReceived = m_elvRequested = 0; } diff --git a/src/blackgui/components/interpolationlogdisplay.ui b/src/blackgui/components/interpolationlogdisplay.ui index 7d85ae5b3..bec11eccd 100644 --- a/src/blackgui/components/interpolationlogdisplay.ui +++ b/src/blackgui/components/interpolationlogdisplay.ui @@ -212,7 +212,7 @@ Misc. - + 3 @@ -226,22 +226,32 @@ 3 - + true - time + req.time ms - + + + + true + + + time min, max, .. + + + + update aircraft req.time - Update req. + Updates: @@ -258,6 +268,30 @@ + + + + true + + + gnd.flag? + + + + + + + Gnd.flag: + + + + + + + CG: + + + @@ -275,27 +309,20 @@ - - + + - CG: + - - + + true - gnd.flag? - - - - - - - Gnd.flag: + CG @@ -319,57 +346,6 @@ - - - - true - - - time - - - - - - - Avg.upd.time: - - - - - - - true - - - CG - - - - - - - Rec.: - - - - - - - true - - - elevation - - - - - - - Elevation: - - - @@ -381,12 +357,60 @@ - + Offset: + + + + Rec.: + + + + + + + Req.time: + + + + + + + true + + + elevation + + + + + + + Elevation: + + + + + + + Upd.#: + + + + + + + true + + + count + + + @@ -555,28 +579,30 @@ + comp_CallsignCompleter + le_UpdateTime + hs_UpdateTime + pb_ResetStats + pb_ShowInSimulator + pb_StartStop tw_LogTabs le_CG le_Parts le_GndFlag - le_UpdateAircraftReqTimeMs - le_AvgUpdateTimeMs + le_UpdateReqTime + le_UpdateTimes le_ElevationReq le_ElevationRec le_SceneryOffset + le_UpdateCount le_Elevation tvp_AircraftSituations - tvp_AircraftParts te_LastInterpolatedSituation - te_SituationChange - te_LastInterpolatedParts te_TextLog - hs_UpdateTime - comp_CallsignCompleter + te_LastInterpolatedParts + te_SituationChange pb_GetLastInterpolation - le_UpdateTime - pb_ResetStats - pb_StartStop + tvp_AircraftParts