From 2eb1316f80a0d9ea7f49327fedb8616d21a10e3d Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sun, 30 Sep 2018 23:14:37 +0200 Subject: [PATCH] Ref T372, always store fast position updates --- src/blackcore/airspacemonitor.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/blackcore/airspacemonitor.cpp b/src/blackcore/airspacemonitor.cpp index 6360b1994..9f4368876 100644 --- a/src/blackcore/airspacemonitor.cpp +++ b/src/blackcore/airspacemonitor.cpp @@ -921,7 +921,7 @@ namespace BlackCore CAircraftSituationList history = this->remoteAircraftSituations(callsign); if (history.empty()) { return; } // we need one full situation at least const CAircraftSituation lastSituation = history.latestObject(); - if (lastSituation.getPosition() == interimSituation.getPosition()) { return; } // same position, ignore + const bool samePosition = (lastSituation.getPosition() == interimSituation.getPosition()); // changed position, continue and copy values interimSituation.setCurrentUtcTime(); @@ -930,15 +930,16 @@ namespace BlackCore // store situation history this->storeAircraftSituation(interimSituation); - // if we have not aircraft in range yer, we stop here + // if we have no aircraft in range yet, we stop here if (!this->isAircraftInRange(callsign)) { return; } + if (samePosition) { return; } // nothing to update // update aircraft - CPropertyIndexVariantMap vm; - vm.addValue(CSimulatedAircraft::IndexSituation, interimSituation); - vm.addValue(CSimulatedAircraft::IndexRelativeDistance, this->calculateDistanceToOwnAircraft(interimSituation)); - vm.addValue(CSimulatedAircraft::IndexRelativeBearing, this->calculateBearingToOwnAircraft(interimSituation)); - this->updateAircraftInRange(callsign, vm); + this->updateAircraftInRangeDistanceBearing( + callsign, interimSituation, + this->calculateDistanceToOwnAircraft(interimSituation), + this->calculateBearingToOwnAircraft(interimSituation) + ); } void CAirspaceMonitor::onConnectionStatusChanged(INetwork::ConnectionStatus oldStatus, INetwork::ConnectionStatus newStatus) @@ -1141,7 +1142,7 @@ namespace BlackCore CAngle CAirspaceMonitor::calculateBearingToOwnAircraft(const CAircraftSituation &situation) const { - CAngle angle = getOwnAircraft().calculateBearing(situation); + CAngle angle = this->getOwnAircraft().calculateBearing(situation); angle.switchUnit(CAngleUnit::deg()); return angle; }