mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-15 17:55:34 +08:00
Ref T384, get closest ATC stations online
This commit is contained in:
@@ -174,6 +174,11 @@ namespace BlackCore
|
|||||||
//! The ATC list with online ATC controllers
|
//! The ATC list with online ATC controllers
|
||||||
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline(bool recalculateDistance) const = 0;
|
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline(bool recalculateDistance) const = 0;
|
||||||
|
|
||||||
|
//! The ATC list with online ATC controllers
|
||||||
|
//! \remark recalculates distance and picks closest elements
|
||||||
|
//! \remark sorted by distance, nearest first
|
||||||
|
virtual BlackMisc::Aviation::CAtcStationList getClosestAtcStationsOnline(int number) const = 0;
|
||||||
|
|
||||||
//! ATC list, with booked controllers
|
//! ATC list, with booked controllers
|
||||||
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked(bool recalculateDistance) const = 0;
|
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked(bool recalculateDistance) const = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -44,6 +44,14 @@ namespace BlackCore
|
|||||||
return BlackMisc::Aviation::CAtcStationList();
|
return BlackMisc::Aviation::CAtcStationList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//! \copydoc IContextNetwork::getClosestAtcStationsOnline()
|
||||||
|
virtual BlackMisc::Aviation::CAtcStationList getClosestAtcStationsOnline(int number) const override
|
||||||
|
{
|
||||||
|
Q_UNUSED(number);
|
||||||
|
logEmptyContextWarning(Q_FUNC_INFO);
|
||||||
|
return BlackMisc::Aviation::CAtcStationList();
|
||||||
|
}
|
||||||
|
|
||||||
//! \copydoc IContextNetwork::getAtcStationsBooked()
|
//! \copydoc IContextNetwork::getAtcStationsBooked()
|
||||||
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked(bool recalculateDistance) const override
|
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked(bool recalculateDistance) const override
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -618,6 +618,14 @@ namespace BlackCore
|
|||||||
return stations;
|
return stations;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CAtcStationList CContextNetwork::getClosestAtcStationsOnline(int number) const
|
||||||
|
{
|
||||||
|
if (!this->getIContextOwnAircraft()) { return CAtcStationList(); }
|
||||||
|
const CAircraftSituation ownSituation = this->getIContextOwnAircraft()->getOwnAircraftSituation();
|
||||||
|
const CAtcStationList stations = m_airspace->getAtcStationsOnline().findClosest(number, ownSituation);
|
||||||
|
return stations;
|
||||||
|
}
|
||||||
|
|
||||||
CAtcStationList CContextNetwork::getAtcStationsBooked(bool recalculateDistance) const
|
CAtcStationList CContextNetwork::getAtcStationsBooked(bool recalculateDistance) const
|
||||||
{
|
{
|
||||||
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
|
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
|
||||||
|
|||||||
@@ -233,6 +233,7 @@ namespace BlackCore
|
|||||||
virtual void requestAtcBookingsUpdate() const override;
|
virtual void requestAtcBookingsUpdate() const override;
|
||||||
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked(bool recalculateDistance) const override;
|
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked(bool recalculateDistance) const override;
|
||||||
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline(bool recalculateDistance) const override;
|
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline(bool recalculateDistance) const override;
|
||||||
|
virtual BlackMisc::Aviation::CAtcStationList getClosestAtcStationsOnline(int number) const override;
|
||||||
virtual BlackMisc::Aviation::CAtcStation getOnlineStationForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
virtual BlackMisc::Aviation::CAtcStation getOnlineStationForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||||
virtual BlackMisc::CStatusMessage connectToNetwork(const BlackMisc::Network::CServer &server, BlackCore::INetwork::LoginMode mode) override;
|
virtual BlackMisc::CStatusMessage connectToNetwork(const BlackMisc::Network::CServer &server, BlackCore::INetwork::LoginMode mode) override;
|
||||||
virtual BlackMisc::Network::CServer getConnectedServer() const override;
|
virtual BlackMisc::Network::CServer getConnectedServer() const override;
|
||||||
|
|||||||
@@ -108,11 +108,16 @@ namespace BlackCore
|
|||||||
m_dBusInterface->callDBus(QLatin1String("requestAtcBookingsUpdate"));
|
m_dBusInterface->callDBus(QLatin1String("requestAtcBookingsUpdate"));
|
||||||
}
|
}
|
||||||
|
|
||||||
BlackMisc::Aviation::CAtcStationList CContextNetworkProxy::getAtcStationsOnline(bool recalculateDistance) const
|
CAtcStationList CContextNetworkProxy::getAtcStationsOnline(bool recalculateDistance) const
|
||||||
{
|
{
|
||||||
return m_dBusInterface->callDBusRet<BlackMisc::Aviation::CAtcStationList>(QLatin1String("getAtcStationsOnline"), recalculateDistance);
|
return m_dBusInterface->callDBusRet<BlackMisc::Aviation::CAtcStationList>(QLatin1String("getAtcStationsOnline"), recalculateDistance);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CAtcStationList CContextNetworkProxy::getClosestAtcStationsOnline(int number) const
|
||||||
|
{
|
||||||
|
return m_dBusInterface->callDBusRet<BlackMisc::Aviation::CAtcStationList>(QLatin1String("getClosestAtcStationsOnline"), number);
|
||||||
|
}
|
||||||
|
|
||||||
CAtcStationList CContextNetworkProxy::getAtcStationsBooked(bool recalculateDistance) const
|
CAtcStationList CContextNetworkProxy::getAtcStationsBooked(bool recalculateDistance) const
|
||||||
{
|
{
|
||||||
return m_dBusInterface->callDBusRet<BlackMisc::Aviation::CAtcStationList>(QLatin1String("getAtcStationsBooked"), recalculateDistance);
|
return m_dBusInterface->callDBusRet<BlackMisc::Aviation::CAtcStationList>(QLatin1String("getAtcStationsBooked"), recalculateDistance);
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ namespace BlackCore
|
|||||||
//! @{
|
//! @{
|
||||||
virtual void requestAtcBookingsUpdate() const override;
|
virtual void requestAtcBookingsUpdate() const override;
|
||||||
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline(bool recalculateDistance) const override;
|
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline(bool recalculateDistance) const override;
|
||||||
|
virtual BlackMisc::Aviation::CAtcStationList getClosestAtcStationsOnline(int number) const override;
|
||||||
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked(bool recalculateDistance) const override;
|
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked(bool recalculateDistance) const override;
|
||||||
virtual BlackMisc::Simulation::CSimulatedAircraftList getAircraftInRange() const override;
|
virtual BlackMisc::Simulation::CSimulatedAircraftList getAircraftInRange() const override;
|
||||||
virtual BlackMisc::Aviation::CCallsignSet getAircraftInRangeCallsigns() const override;
|
virtual BlackMisc::Aviation::CCallsignSet getAircraftInRangeCallsigns() const override;
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ namespace BlackMisc
|
|||||||
{
|
{
|
||||||
return calculateEuclideanDistanceSquared(a, coordinate) < calculateEuclideanDistanceSquared(b, coordinate);
|
return calculateEuclideanDistanceSquared(a, coordinate) < calculateEuclideanDistanceSquared(b, coordinate);
|
||||||
});
|
});
|
||||||
Q_ASSERT_X(closest.size() > number, Q_FUNC_INFO, "size exceeded");
|
closest.truncate(number);
|
||||||
return closest;
|
return closest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user