Ref T372, always store fast position updates

This commit is contained in:
Klaus Basan
2018-09-30 23:14:37 +02:00
parent ce192fc106
commit 2eb1316f80

View File

@@ -921,7 +921,7 @@ namespace BlackCore
CAircraftSituationList history = this->remoteAircraftSituations(callsign); CAircraftSituationList history = this->remoteAircraftSituations(callsign);
if (history.empty()) { return; } // we need one full situation at least if (history.empty()) { return; } // we need one full situation at least
const CAircraftSituation lastSituation = history.latestObject(); 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 // changed position, continue and copy values
interimSituation.setCurrentUtcTime(); interimSituation.setCurrentUtcTime();
@@ -930,15 +930,16 @@ namespace BlackCore
// store situation history // store situation history
this->storeAircraftSituation(interimSituation); 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 (!this->isAircraftInRange(callsign)) { return; }
if (samePosition) { return; } // nothing to update
// update aircraft // update aircraft
CPropertyIndexVariantMap vm; this->updateAircraftInRangeDistanceBearing(
vm.addValue(CSimulatedAircraft::IndexSituation, interimSituation); callsign, interimSituation,
vm.addValue(CSimulatedAircraft::IndexRelativeDistance, this->calculateDistanceToOwnAircraft(interimSituation)); this->calculateDistanceToOwnAircraft(interimSituation),
vm.addValue(CSimulatedAircraft::IndexRelativeBearing, this->calculateBearingToOwnAircraft(interimSituation)); this->calculateBearingToOwnAircraft(interimSituation)
this->updateAircraftInRange(callsign, vm); );
} }
void CAirspaceMonitor::onConnectionStatusChanged(INetwork::ConnectionStatus oldStatus, INetwork::ConnectionStatus newStatus) void CAirspaceMonitor::onConnectionStatusChanged(INetwork::ConnectionStatus oldStatus, INetwork::ConnectionStatus newStatus)
@@ -1141,7 +1142,7 @@ namespace BlackCore
CAngle CAirspaceMonitor::calculateBearingToOwnAircraft(const CAircraftSituation &situation) const CAngle CAirspaceMonitor::calculateBearingToOwnAircraft(const CAircraftSituation &situation) const
{ {
CAngle angle = getOwnAircraft().calculateBearing(situation); CAngle angle = this->getOwnAircraft().calculateBearing(situation);
angle.switchUnit(CAngleUnit::deg()); angle.switchUnit(CAngleUnit::deg());
return angle; return angle;
} }