From 0eec523d5414123f1567f54e742f50cf79e8ba77 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Thu, 10 Dec 2015 03:13:20 +0100 Subject: [PATCH] refs #551, formatting and minor changes found during searching for the issue --- src/blackcore/airspaceanalyzer.cpp | 3 ++- src/blackcore/interpolatorlinear.cpp | 5 +++-- src/blackcore/simulatorcommon.cpp | 4 ++-- src/blackcore/simulatorcommon.h | 2 +- src/blackmisc/simulation/airspaceaircraftsnapshot.cpp | 8 ++++++++ src/blackmisc/simulation/airspaceaircraftsnapshot.h | 6 ++---- 6 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/blackcore/airspaceanalyzer.cpp b/src/blackcore/airspaceanalyzer.cpp index 7574b12a1..746f9bf20 100644 --- a/src/blackcore/airspaceanalyzer.cpp +++ b/src/blackcore/airspaceanalyzer.cpp @@ -189,7 +189,8 @@ namespace BlackCore maxRenderedBoundary = this->m_simulatorMaxRenderedBoundary; } - //! \fixme Analyzer: generate only when restricted? + // remark for simulation snapshot is used when there are restrictions + // nevertheless we calculate all the time as the snapshot could be used in other scenarios CSimulatedAircraftList aircraftInRange(getAircraftInRange()); // thread safe copy from provider CAirspaceAircraftSnapshot snapshot( diff --git a/src/blackcore/interpolatorlinear.cpp b/src/blackcore/interpolatorlinear.cpp index 1afdc2470..814850eab 100644 --- a/src/blackcore/interpolatorlinear.cpp +++ b/src/blackcore/interpolatorlinear.cpp @@ -33,7 +33,7 @@ namespace BlackCore // data, split situations by time if (currentTimeMsSinceEpoc < 0) { currentTimeMsSinceEpoc = QDateTime::currentMSecsSinceEpoch(); } - qint64 splitTimeMsSinceEpoch = currentTimeMsSinceEpoc - TimeOffsetMs; + qint64 splitTimeMsSinceEpoch = currentTimeMsSinceEpoc - TimeOffsetMs; // \todo needs to be variable in the future with interim positions QList splitSituations(remoteAircraftSituations(callsign).splitByTime(splitTimeMsSinceEpoch, true)); CAircraftSituationList &situationsNewer = splitSituations[0]; // newer part @@ -87,7 +87,8 @@ namespace BlackCore // < 0 should not happen due to the split, > 1 can happen if new values are delayed beyond split time // 1) values > 1 mean extrapolation // 2) values > 2 mean no new situations coming in - double simulationTimeFraction = 1 - ((newSituation.getMSecsSinceEpoch() - splitTimeMsSinceEpoch) / deltaTime); + double distanceToSplitTime = newSituation.getMSecsSinceEpoch() - splitTimeMsSinceEpoch; + double simulationTimeFraction = 1 - (distanceToSplitTime / deltaTime); if (simulationTimeFraction > 2.0) { if (this->m_withDebugMsg) diff --git a/src/blackcore/simulatorcommon.cpp b/src/blackcore/simulatorcommon.cpp index e61f2c085..76b2f79cb 100644 --- a/src/blackcore/simulatorcommon.cpp +++ b/src/blackcore/simulatorcommon.cpp @@ -35,7 +35,7 @@ namespace BlackCore { this->setObjectName("Simulator: " + info.getIdentifier()); - // provider signals + // provider signals, hook up with remote aircraft provider m_remoteAircraftProviderConnections.append( this->m_remoteAircraftProvider->connectRemoteAircraftProviderSignals( this, // receiver must match object in bind @@ -339,7 +339,7 @@ namespace BlackCore changed = r > 0; } - // we handled snapshot + // we have handled snapshot if (changed) { emit airspaceSnapshotHandled(); diff --git a/src/blackcore/simulatorcommon.h b/src/blackcore/simulatorcommon.h index b17e785b1..5e67d1a63 100644 --- a/src/blackcore/simulatorcommon.h +++ b/src/blackcore/simulatorcommon.h @@ -100,7 +100,7 @@ namespace BlackCore //! Slow timer used to highlight aircraft, can be used for other things too virtual void ps_oneSecondTimer(); - //! Recalculate the rendered aircraft + //! Recalculate the rendered aircraft, this happens when restrictions are applied (max. aircraft, range) virtual void ps_recalculateRenderedAircraft(const BlackMisc::Simulation::CAirspaceAircraftSnapshot &snapshot); //! Provider added situation diff --git a/src/blackmisc/simulation/airspaceaircraftsnapshot.cpp b/src/blackmisc/simulation/airspaceaircraftsnapshot.cpp index 79aee9905..31cf43425 100644 --- a/src/blackmisc/simulation/airspaceaircraftsnapshot.cpp +++ b/src/blackmisc/simulation/airspaceaircraftsnapshot.cpp @@ -33,15 +33,23 @@ namespace BlackMisc CSimulatedAircraftList aircraft(allAircraft); aircraft.sortByDistanceToOwnAircraft(); + int numberAll = aircraft.size(); + Q_ASSERT_X(numberAll == allAircraft.size(), Q_FUNC_INFO, "aircraft got lost"); CSimulatedAircraftList vtolAircraft(aircraft.findByVtol(true)); + int numberVtol = vtolAircraft.size(); m_aircraftCallsignsByDistance = aircraft.getCallsigns(); + Q_ASSERT_X(m_aircraftCallsignsByDistance.size() == allAircraft.size(), Q_FUNC_INFO, "redundant or missing callsigns"); m_vtolAircraftCallsignsByDistance = vtolAircraft.getCallsigns(); + Q_ASSERT_X(m_vtolAircraftCallsignsByDistance.size() == numberVtol, Q_FUNC_INFO, "redundant or missing callsigns"); // no restrictions, just find by attributes if (!restricted) { m_enabledAircraftCallsignsByDistance = aircraft.findByEnabled(true).getCallsigns(); m_disabledAircraftCallsignsByDistance = aircraft.findByEnabled(false).getCallsigns(); + int numberEnabled = m_enabledAircraftCallsignsByDistance.size(); + int numberDisabled = m_disabledAircraftCallsignsByDistance.size(); + Q_ASSERT_X(numberEnabled + numberDisabled == numberAll, Q_FUNC_INFO, "Mismatch in enabled/disabled/all"); m_enabledVtolAircraftCallsignsByDistance = vtolAircraft.findByEnabled(true).getCallsigns(); return; } diff --git a/src/blackmisc/simulation/airspaceaircraftsnapshot.h b/src/blackmisc/simulation/airspaceaircraftsnapshot.h index 988fd9eb1..976dbd5c0 100644 --- a/src/blackmisc/simulation/airspaceaircraftsnapshot.h +++ b/src/blackmisc/simulation/airspaceaircraftsnapshot.h @@ -32,9 +32,9 @@ namespace BlackMisc //! Constructor CAirspaceAircraftSnapshot( const BlackMisc::Simulation::CSimulatedAircraftList &allAircraft, - bool restricted = false, + bool restricted = false, bool renderingEnabled = true, - int maxAircraft = 100, + int maxAircraft = 100, const BlackMisc::PhysicalQuantities::CLength &maxRenderedDistance = BlackMisc::PhysicalQuantities::CLength(0, BlackMisc::PhysicalQuantities::CLengthUnit::nullUnit()), const BlackMisc::PhysicalQuantities::CLength &maxRenderedBoundary = BlackMisc::PhysicalQuantities::CLength(0, BlackMisc::PhysicalQuantities::CLengthUnit::nullUnit()) ); @@ -103,9 +103,7 @@ namespace BlackMisc BlackMisc::Aviation::CCallsignSet m_vtolAircraftCallsignsByDistance; BlackMisc::Aviation::CCallsignSet m_enabledVtolAircraftCallsignsByDistance; - }; - } // namespace } // namespace