mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-21 12:55:31 +08:00
Ref T372, always store fast position updates
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user