From dac6a2ca1abba887b1d80f1309abaddd5e6944a1 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Thu, 15 Nov 2018 22:10:47 +0100 Subject: [PATCH] Ref T432, context functions to get ATC stations by COM frequency --- src/blackcore/context/contextnetwork.h | 14 +++++++++----- src/blackcore/context/contextnetworkempty.h | 9 +++++++++ src/blackcore/context/contextnetworkimpl.cpp | 6 ++++++ src/blackcore/context/contextnetworkimpl.h | 1 + src/blackcore/context/contextnetworkproxy.cpp | 6 ++++++ src/blackcore/context/contextnetworkproxy.h | 1 + 6 files changed, 32 insertions(+), 5 deletions(-) diff --git a/src/blackcore/context/contextnetwork.h b/src/blackcore/context/contextnetwork.h index 1196ac014..b73de42c6 100644 --- a/src/blackcore/context/contextnetwork.h +++ b/src/blackcore/context/contextnetwork.h @@ -20,23 +20,24 @@ #include "blackcore/corefacade.h" #include "blackcore/corefacadeconfig.h" #include "blackcore/network.h" -#include "blackmisc/audio/voiceroomlist.h" +#include "blackmisc/simulation/simulatedaircraft.h" +#include "blackmisc/simulation/simulatedaircraftlist.h" #include "blackmisc/aviation/aircraftpartslist.h" #include "blackmisc/aviation/airporticaocode.h" #include "blackmisc/aviation/atcstation.h" #include "blackmisc/aviation/atcstationlist.h" #include "blackmisc/aviation/callsignset.h" +#include "blackmisc/aviation/comsystem.h" #include "blackmisc/aviation/flightplan.h" -#include "blackmisc/identifiable.h" -#include "blackmisc/identifier.h" #include "blackmisc/network/clientlist.h" #include "blackmisc/network/server.h" #include "blackmisc/network/serverlist.h" #include "blackmisc/network/textmessagelist.h" #include "blackmisc/network/user.h" #include "blackmisc/network/userlist.h" -#include "blackmisc/simulation/simulatedaircraft.h" -#include "blackmisc/simulation/simulatedaircraftlist.h" +#include "blackmisc/audio/voiceroomlist.h" +#include "blackmisc/identifiable.h" +#include "blackmisc/identifier.h" #include "blackmisc/statusmessage.h" #include "blackmisc/weather/metar.h" @@ -203,6 +204,9 @@ namespace BlackCore //! Online station for callsign virtual BlackMisc::Aviation::CAtcStation getOnlineStationForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const = 0; + //! Online stations for frequency + virtual BlackMisc::Aviation::CAtcStationList getOnlineStationsForFrequency(const BlackMisc::PhysicalQuantities::CFrequency &frequency, BlackMisc::Aviation::CComSystem::ChannelSpacing channelSpacing) const = 0; + //! Online station for callsign? virtual bool isOnlineStation(const BlackMisc::Aviation::CCallsign &callsign) const = 0; diff --git a/src/blackcore/context/contextnetworkempty.h b/src/blackcore/context/contextnetworkempty.h index 7f188637c..de283c372 100644 --- a/src/blackcore/context/contextnetworkempty.h +++ b/src/blackcore/context/contextnetworkempty.h @@ -75,6 +75,15 @@ namespace BlackCore return BlackMisc::Simulation::CSimulatedAircraft(); } + //! \copydoc IContextNetwork::getOnlineStationsForFrequency + virtual BlackMisc::Aviation::CAtcStationList getOnlineStationsForFrequency(const BlackMisc::PhysicalQuantities::CFrequency &frequency, BlackMisc::Aviation::CComSystem::ChannelSpacing channelSpacing) const override + { + Q_UNUSED(frequency); + Q_UNUSED(channelSpacing); + logEmptyContextWarning(Q_FUNC_INFO); + return BlackMisc::Aviation::CAtcStationList(); + } + //! \copydoc IContextNetwork::getAircraftInRangeCallsigns() virtual BlackMisc::Aviation::CCallsignSet getAircraftInRangeCallsigns() const override { diff --git a/src/blackcore/context/contextnetworkimpl.cpp b/src/blackcore/context/contextnetworkimpl.cpp index 7ae2d2296..9bd5df833 100644 --- a/src/blackcore/context/contextnetworkimpl.cpp +++ b/src/blackcore/context/contextnetworkimpl.cpp @@ -769,6 +769,12 @@ namespace BlackCore return m_airspace->getAtcStationsOnline().findFirstByCallsign(callsign); } + CAtcStationList CContextNetwork::getOnlineStationsForFrequency(const CFrequency &frequency, CComSystem::ChannelSpacing channelSpacing) const + { + if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; } + return m_airspace->getAtcStationsOnline().findIfFrequencyIsWithinSpacing(frequency, channelSpacing); + } + bool CContextNetwork::isOnlineStation(const CCallsign &callsign) const { if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << callsign; } diff --git a/src/blackcore/context/contextnetworkimpl.h b/src/blackcore/context/contextnetworkimpl.h index d97d66ed9..d7625f687 100644 --- a/src/blackcore/context/contextnetworkimpl.h +++ b/src/blackcore/context/contextnetworkimpl.h @@ -236,6 +236,7 @@ namespace BlackCore 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::CAtcStationList getOnlineStationsForFrequency(const BlackMisc::PhysicalQuantities::CFrequency &frequency, BlackMisc::Aviation::CComSystem::ChannelSpacing channelSpacing) const override; virtual bool isOnlineStation(const BlackMisc::Aviation::CCallsign &callsign) const override; virtual BlackMisc::CStatusMessage connectToNetwork(const BlackMisc::Network::CServer &server, BlackCore::INetwork::LoginMode mode) override; virtual BlackMisc::Network::CServer getConnectedServer() const override; diff --git a/src/blackcore/context/contextnetworkproxy.cpp b/src/blackcore/context/contextnetworkproxy.cpp index b75b9db49..237da4b64 100644 --- a/src/blackcore/context/contextnetworkproxy.cpp +++ b/src/blackcore/context/contextnetworkproxy.cpp @@ -22,6 +22,7 @@ using namespace BlackMisc; using namespace BlackMisc::Network; using namespace BlackMisc::Aviation; +using namespace BlackMisc::PhysicalQuantities; using namespace BlackMisc::Audio; using namespace BlackMisc::Weather; using namespace BlackMisc::Simulation; @@ -148,6 +149,11 @@ namespace BlackCore return m_dBusInterface->callDBusRet(QLatin1String("getAircraftInRangeForCallsign"), callsign); } + CAtcStationList CContextNetworkProxy::getOnlineStationsForFrequency(const CFrequency &frequency, CComSystem::ChannelSpacing channelSpacing) const + { + return m_dBusInterface->callDBusRet(QLatin1String("getOnlineStationsForFrequency"), frequency, channelSpacing); + } + CAtcStation CContextNetworkProxy::getOnlineStationForCallsign(const CCallsign &callsign) const { return m_dBusInterface->callDBusRet(QLatin1String("getOnlineStationForCallsign"), callsign); diff --git a/src/blackcore/context/contextnetworkproxy.h b/src/blackcore/context/contextnetworkproxy.h index 525d76346..447f95314 100644 --- a/src/blackcore/context/contextnetworkproxy.h +++ b/src/blackcore/context/contextnetworkproxy.h @@ -84,6 +84,7 @@ namespace BlackCore virtual int getAircraftInRangeCount() const override; virtual bool isAircraftInRange(const BlackMisc::Aviation::CCallsign &callsign) const override; virtual BlackMisc::Simulation::CSimulatedAircraft getAircraftInRangeForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override; + virtual BlackMisc::Aviation::CAtcStationList getOnlineStationsForFrequency(const BlackMisc::PhysicalQuantities::CFrequency &frequency, BlackMisc::Aviation::CComSystem::ChannelSpacing channelSpacing) const override; virtual BlackMisc::Aviation::CAtcStation getOnlineStationForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override; virtual bool isOnlineStation(const BlackMisc::Aviation::CCallsign &callsign) const override; virtual BlackMisc::CStatusMessage connectToNetwork(const BlackMisc::Network::CServer &server, BlackCore::INetwork::LoginMode mode) override;