Ref T243, Ref T273, added info about elevation (where did we obtain it?)

This commit is contained in:
Klaus Basan
2018-06-03 23:40:03 +02:00
parent f3a7eef458
commit 6ed541b6ab
22 changed files with 165 additions and 63 deletions

View File

@@ -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)

View File

@@ -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()

View File

@@ -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;
//! @}

View File

@@ -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);
}