diff --git a/src/blackmisc/simulation/ownaircraftprovider.cpp b/src/blackmisc/simulation/ownaircraftprovider.cpp index 636d0703f..2af0dc048 100644 --- a/src/blackmisc/simulation/ownaircraftprovider.cpp +++ b/src/blackmisc/simulation/ownaircraftprovider.cpp @@ -8,9 +8,9 @@ */ #include "ownaircraftprovider.h" -#include "blackmisc/aviation/aircraft.h" using namespace BlackMisc::Aviation; +using namespace BlackMisc::Geo; using namespace BlackMisc::PhysicalQuantities; namespace BlackMisc @@ -24,7 +24,7 @@ namespace BlackMisc return this->m_ownAircraftProvider->getOwnAircraft(); } - Geo::CCoordinateGeodetic COwnAircraftAware::getOwnAircraftPosition() const + CCoordinateGeodetic COwnAircraftAware::getOwnAircraftPosition() const { Q_ASSERT_X(this->m_ownAircraftProvider, Q_FUNC_INFO, "No object available"); return this->m_ownAircraftProvider->getOwnAircraftPosition(); @@ -90,10 +90,10 @@ namespace BlackMisc return this->m_ownAircraftProvider->updateOwnCallsign(callsign); } - bool COwnAircraftAware::updateOwnIcaoData(const CAircraftIcaoData &icaoData) + bool COwnAircraftAware::updateOwnIcaoCodes(const CAircraftIcaoCode &aircraftIcaoData, const CAirlineIcaoCode &airlineIcaoCode) { Q_ASSERT_X(this->m_ownAircraftProvider, Q_FUNC_INFO, "No object available"); - return this->m_ownAircraftProvider->updateOwnIcaoData(icaoData); + return this->m_ownAircraftProvider->updateOwnIcaoCodes(aircraftIcaoData, airlineIcaoCode); } } // namespace diff --git a/src/blackmisc/simulation/ownaircraftprovider.h b/src/blackmisc/simulation/ownaircraftprovider.h index c44cee2ee..7a677d9ab 100644 --- a/src/blackmisc/simulation/ownaircraftprovider.h +++ b/src/blackmisc/simulation/ownaircraftprovider.h @@ -20,7 +20,6 @@ namespace BlackMisc { namespace Simulation { - //! Direct threadsafe in memory access to own aircraft class BLACKMISC_EXPORT IOwnAircraftProvider { @@ -52,7 +51,7 @@ namespace BlackMisc //! Update ICAO data //! \threadsafe - virtual bool updateOwnIcaoData(const BlackMisc::Aviation::CAircraftIcaoData &icaoData) = 0; + virtual bool updateOwnIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode, const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcaoCode) = 0; //! Update model //! \threadsafe @@ -114,8 +113,8 @@ namespace BlackMisc //! \copydoc IOwnAircraftProvider::updateOwnCallsign virtual bool updateOwnCallsign(const BlackMisc::Aviation::CCallsign &callsign); - //! \copydoc IOwnAircraftProvider::updateOwnIcaoData - virtual bool updateOwnIcaoData(const BlackMisc::Aviation::CAircraftIcaoData &icaoData); + //! \copydoc IOwnAircraftProvider::updateOwnIcaoCodes + virtual bool updateOwnIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoData, const Aviation::CAirlineIcaoCode &airlineIcaoCode); //! \copydoc IOwnAircraftProvider::updateOwnModel virtual bool updateOwnModel(const BlackMisc::Simulation::CAircraftModel &model); @@ -135,4 +134,6 @@ namespace BlackMisc } // namespace } // namespace +Q_DECLARE_INTERFACE(BlackMisc::Simulation::IOwnAircraftProvider, "BlackMisc::Simulation::IOwnAircraftProvider") + #endif // guard diff --git a/src/blackmisc/simulation/ownaircraftproviderdummy.cpp b/src/blackmisc/simulation/ownaircraftproviderdummy.cpp index c7cad8f46..0dddaad7d 100644 --- a/src/blackmisc/simulation/ownaircraftproviderdummy.cpp +++ b/src/blackmisc/simulation/ownaircraftproviderdummy.cpp @@ -88,9 +88,9 @@ namespace BlackMisc return true; } - bool COwnAircraftProviderDummy::updateOwnIcaoData(const CAircraftIcaoData &icaoData) + bool COwnAircraftProviderDummy::updateOwnIcaoCodes(const CAircraftIcaoCode &aircraftIcaoCode, const CAirlineIcaoCode &airlineIcaoCode) { - m_ownAircraft.setIcaoInfo(icaoData); + m_ownAircraft.setIcaoCodes(aircraftIcaoCode, airlineIcaoCode); return true; } diff --git a/src/blackmisc/simulation/ownaircraftproviderdummy.h b/src/blackmisc/simulation/ownaircraftproviderdummy.h index c9b61ff6d..0e0456c10 100644 --- a/src/blackmisc/simulation/ownaircraftproviderdummy.h +++ b/src/blackmisc/simulation/ownaircraftproviderdummy.h @@ -64,8 +64,8 @@ namespace BlackMisc //! \copydoc IOwnAircraftProvider::updateOwnModel virtual bool updateOwnModel(const BlackMisc::Simulation::CAircraftModel &model) override; - //! \copydoc IOwnAircraftProvider::updateOwnIcaoData - virtual bool updateOwnIcaoData(const BlackMisc::Aviation::CAircraftIcaoData &icaoData) override; + //! \copydoc IOwnAircraftProvider::updateOwnIcaoCodes + virtual bool updateOwnIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode, const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcaoCode) override; //! \copydoc IOwnAircraftProvider::updateOwnSituation virtual bool updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation) override; diff --git a/src/blackmisc/simulation/remoteaircraftprovider.cpp b/src/blackmisc/simulation/remoteaircraftprovider.cpp index d0056bd47..6fe8b3bb4 100644 --- a/src/blackmisc/simulation/remoteaircraftprovider.cpp +++ b/src/blackmisc/simulation/remoteaircraftprovider.cpp @@ -34,6 +34,12 @@ namespace BlackMisc return this->m_remoteAircraftProvider->getAircraftInRangeForCallsign(callsign); } + CAircraftModel CRemoteAircraftAware::getAircraftinRangeModelForCallsign(const CCallsign &callsign) const + { + Q_ASSERT_X(this->m_remoteAircraftProvider, Q_FUNC_INFO, "No object available"); + return this->m_remoteAircraftProvider->getAircraftInRangeModelForCallsign(callsign); + } + CAirspaceAircraftSnapshot CRemoteAircraftAware::getLatestAirspaceAircraftSnapshot() const { Q_ASSERT_X(this->m_remoteAircraftProvider, Q_FUNC_INFO, "No object available"); diff --git a/src/blackmisc/simulation/remoteaircraftprovider.h b/src/blackmisc/simulation/remoteaircraftprovider.h index d13f86efe..9dd6d9e43 100644 --- a/src/blackmisc/simulation/remoteaircraftprovider.h +++ b/src/blackmisc/simulation/remoteaircraftprovider.h @@ -57,6 +57,10 @@ namespace BlackMisc //! \threadsafe virtual BlackMisc::Simulation::CSimulatedAircraft getAircraftInRangeForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const = 0; + //! Aircraft model for callsign + //! \threadsafe + virtual BlackMisc::Simulation::CAircraftModel getAircraftInRangeModelForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const = 0; + //! Rendered aircraft situations (per callsign, time history) //! \threadsafe virtual BlackMisc::Aviation::CAircraftSituationList remoteAircraftSituations(const BlackMisc::Aviation::CCallsign &callsign) const = 0; @@ -102,7 +106,7 @@ namespace BlackMisc //! Connect signals to slot receiver. As the interface is no QObject, slots can not be connected directly. //! In order to disconnect a list of connections is provided, which have to be disconnected manually. - //! \note connections are direct as functors have no parameter for connection type + //! \note receiver is required for connection type virtual QList connectRemoteAircraftProviderSignals( QObject *receiver, std::function addedSituationSlot, @@ -126,6 +130,9 @@ namespace BlackMisc //! \copydoc IRemoteAircraftProvider::getAircraftInRangeForCallsign virtual BlackMisc::Simulation::CSimulatedAircraft getAircraftInRangeForCallsign(const Aviation::CCallsign &callsign) const; + //! \copydoc IRemoteAircraftProvider::getAircraftinRangeModelForCallsign + virtual BlackMisc::Simulation::CAircraftModel getAircraftinRangeModelForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const; + //! \copydoc IRemoteAircraftProvider::getLatestAirspaceAircraftSnapshot virtual BlackMisc::Simulation::CAirspaceAircraftSnapshot getLatestAirspaceAircraftSnapshot() const; @@ -168,6 +175,6 @@ namespace BlackMisc } // namespace } // namespace -Q_DECLARE_INTERFACE(BlackMisc::Simulation::IRemoteAircraftProvider, "BlackMisc::Simulation::IRemoteAircraftProvider:IRemoteAircraftProvider") +Q_DECLARE_INTERFACE(BlackMisc::Simulation::IRemoteAircraftProvider, "BlackMisc::Simulation::IRemoteAircraftProvider") #endif // guard diff --git a/src/blackmisc/simulation/remoteaircraftproviderdummy.cpp b/src/blackmisc/simulation/remoteaircraftproviderdummy.cpp index 9809f82c7..b40357522 100644 --- a/src/blackmisc/simulation/remoteaircraftproviderdummy.cpp +++ b/src/blackmisc/simulation/remoteaircraftproviderdummy.cpp @@ -34,6 +34,11 @@ namespace BlackMisc return m_aircraft.findFirstByCallsign(callsign); } + CAircraftModel CRemoteAircraftProviderDummy::getAircraftInRangeModelForCallsign(const CCallsign &callsign) const + { + return getAircraftInRangeForCallsign(callsign).getModel(); + } + CAirspaceAircraftSnapshot CRemoteAircraftProviderDummy::getLatestAirspaceAircraftSnapshot() const { return CAirspaceAircraftSnapshot(m_aircraft); diff --git a/src/blackmisc/simulation/remoteaircraftproviderdummy.h b/src/blackmisc/simulation/remoteaircraftproviderdummy.h index 9f2a62d5f..43a0a385a 100644 --- a/src/blackmisc/simulation/remoteaircraftproviderdummy.h +++ b/src/blackmisc/simulation/remoteaircraftproviderdummy.h @@ -41,6 +41,9 @@ namespace BlackMisc //! IRemoteAircraftProvider::getAircraftInRangeForCallsign virtual BlackMisc::Simulation::CSimulatedAircraft getAircraftInRangeForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override; + //! IRemoteAircraftProvider::getAircraftInRangeModelForCallsign + virtual BlackMisc::Simulation::CAircraftModel getAircraftInRangeModelForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override; + //! \copydoc IRemoteAircraftProvider::getLatestAirspaceAircraftSnapshot virtual BlackMisc::Simulation::CAirspaceAircraftSnapshot getLatestAirspaceAircraftSnapshot() const override;