mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-12 23:35:33 +08:00
Ref T243, Ref T273, added info about elevation (where did we obtain it?)
This commit is contained in:
@@ -932,12 +932,12 @@ namespace BlackCore
|
||||
BLACK_VERIFY_X(!callsign.isEmpty(), Q_FUNC_INFO, "empty callsign");
|
||||
if (callsign.isEmpty()) { return; }
|
||||
|
||||
CAircraftSituation correctedSituation(situation);
|
||||
CAircraftSituation correctedSituation(this->testAddAltitudeOffsetToSituation(situation));
|
||||
if (!correctedSituation.hasGroundElevation() && !correctedSituation.canLikelySkipNearGroundInterpolation())
|
||||
{
|
||||
const CLength distance(correctedSituation.getDistancePerTime(1000));
|
||||
const CLength distance(correctedSituation.getDistancePerTime(250));
|
||||
const CElevationPlane ep = this->findClosestElevationWithinRangeOrRequest(correctedSituation, distance, callsign);
|
||||
correctedSituation.setGroundElevation(ep);
|
||||
correctedSituation.setGroundElevation(ep, CAircraftSituation::FromCache);
|
||||
}
|
||||
|
||||
// do we already have ground details?
|
||||
@@ -957,7 +957,7 @@ namespace BlackCore
|
||||
}
|
||||
|
||||
this->guessOnGroundAndUpdateModelCG(correctedSituation); // does nothing if situation is not appropriate for guessing
|
||||
CRemoteAircraftProvider::storeAircraftSituation(correctedSituation);
|
||||
CRemoteAircraftProvider::storeAircraftSituation(correctedSituation, false); // we already added offset if any
|
||||
}
|
||||
|
||||
bool CAirspaceMonitor::guessOnGroundAndUpdateModelCG(CAircraftSituation &situation)
|
||||
|
||||
@@ -384,8 +384,8 @@ namespace BlackCore
|
||||
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
|
||||
CCallsignSet callsigns;
|
||||
callsigns.push_back(callsign);
|
||||
CUserList users = this->getUsersForCallsigns(callsigns);
|
||||
if (users.size() < 1) return CUser();
|
||||
const CUserList users = this->getUsersForCallsigns(callsigns);
|
||||
if (users.size() < 1) { return CUser(); }
|
||||
return users[0];
|
||||
}
|
||||
|
||||
@@ -786,9 +786,9 @@ namespace BlackCore
|
||||
return c;
|
||||
}
|
||||
|
||||
int CContextNetwork::updateAircraftGroundElevation(const CCallsign &callsign, const CElevationPlane &elevation)
|
||||
int CContextNetwork::updateAircraftGroundElevation(const CCallsign &callsign, const CElevationPlane &elevation, CAircraftSituation::GndElevationInfo info)
|
||||
{
|
||||
return m_airspace->updateAircraftGroundElevation(callsign, elevation);
|
||||
return m_airspace->updateAircraftGroundElevation(callsign, elevation, info);
|
||||
}
|
||||
|
||||
void CContextNetwork::updateMarkAllAsNotRendered()
|
||||
|
||||
@@ -105,7 +105,7 @@ namespace BlackCore
|
||||
std::function<void(const BlackMisc::Simulation::CAirspaceAircraftSnapshot &)> aircraftSnapshotSlot
|
||||
) override;
|
||||
virtual bool updateAircraftRendered(const BlackMisc::Aviation::CCallsign &callsign, bool rendered) override;
|
||||
virtual int updateAircraftGroundElevation(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Geo::CElevationPlane &elevation) override;
|
||||
virtual int updateAircraftGroundElevation(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Geo::CElevationPlane &elevation, BlackMisc::Aviation::CAircraftSituation::GndElevationInfo info) override;
|
||||
virtual void updateMarkAllAsNotRendered() override;
|
||||
virtual BlackMisc::Simulation::CAirspaceAircraftSnapshot getLatestAirspaceAircraftSnapshot() const override;
|
||||
//! @}
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace BlackCore
|
||||
|
||||
// CLogMessage(this).info("'%1' Received req. elevation") << callsign.asString();
|
||||
this->rememberGroundElevation(plane);
|
||||
const int updated = this->updateAircraftGroundElevation(callsign, plane);
|
||||
const int updated = this->updateAircraftGroundElevation(callsign, plane, CAircraftSituation::FromProvider);
|
||||
if (updated < 1) { return; }
|
||||
emit this->receivedRequestedElevation(plane, callsign);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user