mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-05 09:15:34 +08:00
Ref T717, simulator ground elevation
This commit is contained in:
committed by
Mat Sutcliffe
parent
e215a9858c
commit
6521b89fdd
@@ -28,6 +28,7 @@
|
||||
#include "blackmisc/simulation/matchingstatistics.h"
|
||||
#include "blackmisc/simulation/interpolationrenderingsetup.h"
|
||||
#include "blackmisc/aviation/airportlist.h"
|
||||
#include "blackmisc/geo/elevationplane.h"
|
||||
#include "blackmisc/pq/length.h"
|
||||
#include "blackmisc/pq/time.h"
|
||||
#include "blackmisc/identifier.h"
|
||||
@@ -301,6 +302,12 @@ namespace BlackCore
|
||||
//! Request weather grid. Argument identifier is past in the signal to identify the requestor
|
||||
virtual void requestWeatherGrid(const BlackMisc::Weather::CWeatherGrid &weatherGrid, const BlackMisc::CIdentifier &identifier) = 0;
|
||||
|
||||
//! \copydoc BlackMisc::Simulation::ISimulationEnvironmentProvider::requestElevationBySituation
|
||||
virtual bool requestElevationBySituation(const BlackMisc::Aviation::CAircraftSituation &situation) = 0;
|
||||
|
||||
//! \copydoc BlackMisc::Simulation::ISimulationEnvironmentProvider::findClosestElevationWithinRange
|
||||
virtual BlackMisc::Geo::CElevationPlane findClosestElevationWithinRange(const BlackMisc::Geo::CCoordinateGeodetic &reference, const BlackMisc::PhysicalQuantities::CLength &range) const = 0;
|
||||
|
||||
//! Repeat all matchings
|
||||
virtual int doMatchingsAgain() = 0;
|
||||
|
||||
|
||||
@@ -364,6 +364,22 @@ namespace BlackCore
|
||||
logEmptyContextWarning(Q_FUNC_INFO);
|
||||
}
|
||||
|
||||
//! \copydoc IContextSimulator::requestWeatherGrid
|
||||
virtual bool requestElevationBySituation(const BlackMisc::Aviation::CAircraftSituation &situation) override
|
||||
{
|
||||
Q_UNUSED(situation);
|
||||
logEmptyContextWarning(Q_FUNC_INFO);
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual BlackMisc::Geo::CElevationPlane findClosestElevationWithinRange(const BlackMisc::Geo::CCoordinateGeodetic &reference, const BlackMisc::PhysicalQuantities::CLength &range) const override
|
||||
{
|
||||
Q_UNUSED(reference);
|
||||
Q_UNUSED(range);
|
||||
logEmptyContextWarning(Q_FUNC_INFO);
|
||||
return BlackMisc::Geo::CElevationPlane::null();
|
||||
}
|
||||
|
||||
//! \copydoc IContextSimulator::getMatchingMessages
|
||||
virtual BlackMisc::CStatusMessageList getMatchingMessages(const BlackMisc::Aviation::CCallsign &callsign) const override
|
||||
{
|
||||
|
||||
@@ -1131,6 +1131,20 @@ namespace BlackCore
|
||||
m_weatherManager.requestWeatherGrid(weatherGrid, identifier);
|
||||
}
|
||||
|
||||
bool CContextSimulator::requestElevationBySituation(const CAircraftSituation &situation)
|
||||
{
|
||||
if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << situation; }
|
||||
if (!m_simulatorPlugin.second || !m_simulatorPlugin.second->isConnected()) { return false; }
|
||||
return m_simulatorPlugin.second->requestElevationBySituation(situation);
|
||||
}
|
||||
|
||||
CElevationPlane CContextSimulator::findClosestElevationWithinRange(const CCoordinateGeodetic &reference, const CLength &range) const
|
||||
{
|
||||
if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << reference.convertToQString(true) << range; }
|
||||
if (!m_simulatorPlugin.second || !m_simulatorPlugin.second->isConnected()) { return CElevationPlane::null(); }
|
||||
return m_simulatorPlugin.second->findClosestElevationWithinRange(reference, range);
|
||||
}
|
||||
|
||||
int CContextSimulator::doMatchingsAgain()
|
||||
{
|
||||
if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
|
||||
|
||||
@@ -118,6 +118,8 @@ namespace BlackCore
|
||||
virtual bool isWeatherActivated() const override;
|
||||
virtual void setWeatherActivated(bool activated) override;
|
||||
virtual void requestWeatherGrid(const BlackMisc::Weather::CWeatherGrid &weatherGrid, const BlackMisc::CIdentifier &identifier) override;
|
||||
virtual bool requestElevationBySituation(const BlackMisc::Aviation::CAircraftSituation &situation) override;
|
||||
virtual BlackMisc::Geo::CElevationPlane findClosestElevationWithinRange(const BlackMisc::Geo::CCoordinateGeodetic &reference, const BlackMisc::PhysicalQuantities::CLength &range) const override;
|
||||
virtual int doMatchingsAgain() override;
|
||||
virtual bool doMatchingAgain(const BlackMisc::Aviation::CCallsign &callsign) override;
|
||||
virtual BlackMisc::CStatusMessageList getMatchingMessages(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
|
||||
@@ -320,6 +320,16 @@ namespace BlackCore
|
||||
m_dBusInterface->callDBus(QLatin1String("requestWeatherGrid"), weatherGrid, identifier);
|
||||
}
|
||||
|
||||
bool CContextSimulatorProxy::requestElevationBySituation(const CAircraftSituation &situation)
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<bool>(QLatin1String("requestElevationBySituation"), situation);
|
||||
}
|
||||
|
||||
CElevationPlane CContextSimulatorProxy::findClosestElevationWithinRange(const CCoordinateGeodetic &reference, const CLength &range) const
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<BlackMisc::Geo::CElevationPlane>(QLatin1String("findClosestElevationWithinRange"), reference, range);
|
||||
}
|
||||
|
||||
CStatusMessageList CContextSimulatorProxy::getMatchingMessages(const BlackMisc::Aviation::CCallsign &callsign) const
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<BlackMisc::CStatusMessageList>(QLatin1String("getMatchingMessages"), callsign);
|
||||
|
||||
@@ -14,13 +14,14 @@
|
||||
#include "blackcore/blackcoreexport.h"
|
||||
#include "blackcore/context/contextsimulator.h"
|
||||
#include "blackcore/corefacadeconfig.h"
|
||||
#include "blackmisc/aviation/airportlist.h"
|
||||
#include "blackmisc/pixmap.h"
|
||||
#include "blackmisc/pq/length.h"
|
||||
#include "blackmisc/pq/time.h"
|
||||
#include "blackmisc/simulation/aircraftmodellist.h"
|
||||
#include "blackmisc/simulation/simulatorplugininfolist.h"
|
||||
#include "blackmisc/simulation/simulatorinternals.h"
|
||||
#include "blackmisc/geo/elevationplane.h"
|
||||
#include "blackmisc/pq/length.h"
|
||||
#include "blackmisc/pq/time.h"
|
||||
#include "blackmisc/aviation/airportlist.h"
|
||||
#include "blackmisc/pixmap.h"
|
||||
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
@@ -100,6 +101,8 @@ namespace BlackCore
|
||||
virtual bool isWeatherActivated() const override;
|
||||
virtual void setWeatherActivated(bool activated) override;
|
||||
virtual void requestWeatherGrid(const BlackMisc::Weather::CWeatherGrid &weatherGrid, const BlackMisc::CIdentifier &identifier) override;
|
||||
virtual bool requestElevationBySituation(const BlackMisc::Aviation::CAircraftSituation &situation) override;
|
||||
virtual BlackMisc::Geo::CElevationPlane findClosestElevationWithinRange(const BlackMisc::Geo::CCoordinateGeodetic &reference, const BlackMisc::PhysicalQuantities::CLength &range) const override;
|
||||
virtual BlackMisc::CStatusMessageList getMatchingMessages(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
virtual BlackMisc::Simulation::MatchingLog isMatchingMessagesEnabled() const override;
|
||||
virtual void enableMatchingMessages(BlackMisc::Simulation::MatchingLog enabled) override;
|
||||
|
||||
Reference in New Issue
Block a user