Ref T322, ATC station distance can be recalculated when getting ATC stations from network context

This commit is contained in:
Klaus Basan
2018-09-03 13:40:41 +02:00
committed by Roland Winklmeier
parent cacbe6e996
commit f3f2fa664e
6 changed files with 26 additions and 18 deletions

View File

@@ -172,10 +172,10 @@ namespace BlackCore
virtual void requestAtcBookingsUpdate() const = 0;
//! The ATC list with online ATC controllers
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline() const = 0;
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline(bool recalculateDistance) const = 0;
//! ATC list, with booked controllers
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked() const = 0;
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked(bool recalculateDistance) const = 0;
//! Aircraft list
virtual BlackMisc::Simulation::CSimulatedAircraftList getAircraftInRange() const = 0;

View File

@@ -37,15 +37,17 @@ namespace BlackCore
}
//! \copydoc IContextNetwork::getAtcStationsOnline()
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline() const override
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline(bool recalculateDistance) const override
{
Q_UNUSED(recalculateDistance);
logEmptyContextWarning(Q_FUNC_INFO);
return BlackMisc::Aviation::CAtcStationList();
}
//! \copydoc IContextNetwork::getAtcStationsBooked()
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked() const override
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked(bool recalculateDistance) const override
{
Q_UNUSED(recalculateDistance);
logEmptyContextWarning(Q_FUNC_INFO);
return BlackMisc::Aviation::CAtcStationList();
}

View File

@@ -384,7 +384,7 @@ namespace BlackCore
if (parser.countParts() < 2) { return false; }
const bool watchdog = parser.toBool(1, true);
m_airspace->enableWatchdog(watchdog);
m_airspace->enableAnalyzer(watchdog);
CLogMessage(this).info("Enabled watchdog: %1") << boolToYesNo(watchdog);
}
else if (parser.matchesCommand(".reinit", ".reinitialize"))
@@ -595,16 +595,22 @@ namespace BlackCore
return this->getRuntime()->getCContextOwnAircraft()->getOwnAircraft();
}
CAtcStationList CContextNetwork::getAtcStationsOnline() const
CAtcStationList CContextNetwork::getAtcStationsOnline(bool recalculateDistance) const
{
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
return m_airspace->getAtcStationsOnline();
CAtcStationList stations = m_airspace->getAtcStationsOnline();
if (!recalculateDistance || !this->getIContextOwnAircraft()) { return stations; }
stations.calculcateAndUpdateRelativeDistanceAndBearing(this->getIContextOwnAircraft()->getOwnAircraftSituation());
return stations;
}
CAtcStationList CContextNetwork::getAtcStationsBooked() const
CAtcStationList CContextNetwork::getAtcStationsBooked(bool recalculateDistance) const
{
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
return m_airspace->getAtcStationsBooked();
CAtcStationList stations = m_airspace->getAtcStationsBooked();
if (!recalculateDistance || !this->getIContextOwnAircraft()) { return stations; }
stations.calculcateAndUpdateRelativeDistanceAndBearing(this->getIContextOwnAircraft()->getOwnAircraftSituation());
return stations;
}
CSimulatedAircraftList CContextNetwork::getAircraftInRange() const

View File

@@ -220,9 +220,9 @@ namespace BlackCore
//! \publicsection
//! @{
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked() const override;
virtual void requestAtcBookingsUpdate() const override;
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline() const override;
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked(bool recalculateDistance) const override;
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline(bool recalculateDistance) 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::Network::CServer getConnectedServer() const override;

View File

@@ -108,14 +108,14 @@ namespace BlackCore
m_dBusInterface->callDBus(QLatin1String("requestAtcBookingsUpdate"));
}
BlackMisc::Aviation::CAtcStationList CContextNetworkProxy::getAtcStationsOnline() const
BlackMisc::Aviation::CAtcStationList CContextNetworkProxy::getAtcStationsOnline(bool recalculateDistance) const
{
return m_dBusInterface->callDBusRet<BlackMisc::Aviation::CAtcStationList>(QLatin1String("getAtcStationsOnline"));
return m_dBusInterface->callDBusRet<BlackMisc::Aviation::CAtcStationList>(QLatin1String("getAtcStationsOnline"), recalculateDistance);
}
CAtcStationList CContextNetworkProxy::getAtcStationsBooked() const
CAtcStationList CContextNetworkProxy::getAtcStationsBooked(bool recalculateDistance) const
{
return m_dBusInterface->callDBusRet<BlackMisc::Aviation::CAtcStationList>(QLatin1String("getAtcStationsBooked"));
return m_dBusInterface->callDBusRet<BlackMisc::Aviation::CAtcStationList>(QLatin1String("getAtcStationsBooked"), recalculateDistance);
}
CSimulatedAircraftList CContextNetworkProxy::getAircraftInRange() const

View File

@@ -66,7 +66,7 @@ namespace BlackCore
public:
//! Destructor
virtual ~CContextNetworkProxy() {}
virtual ~CContextNetworkProxy() override {}
//! Unit test relay signals
//! \private
@@ -76,8 +76,8 @@ namespace BlackCore
//! \name Interface overrides
//! @{
virtual void requestAtcBookingsUpdate() const override;
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline() const override;
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked() const override;
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsOnline(bool recalculateDistance) const override;
virtual BlackMisc::Aviation::CAtcStationList getAtcStationsBooked(bool recalculateDistance) const override;
virtual BlackMisc::Simulation::CSimulatedAircraftList getAircraftInRange() const override;
virtual BlackMisc::Aviation::CCallsignSet getAircraftInRangeCallsigns() const override;
virtual int getAircraftInRangeCount() const override;