mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-31 21:15:33 +08:00
Ref T609, setting if COM is synced with simulator
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
#include "blackcore/simulator.h"
|
||||
#include "blackcore/blackcoreexport.h"
|
||||
#include "blackmisc/weather/weathergrid.h"
|
||||
#include "blackmisc/simulation/settings/simulatorsettings.h"
|
||||
#include "blackmisc/simulation/aircraftmodellist.h"
|
||||
#include "blackmisc/simulation/aircraftmatchersetup.h"
|
||||
#include "blackmisc/simulation/matchingstatistics.h"
|
||||
@@ -148,6 +149,12 @@ namespace BlackCore
|
||||
//! Return list of available simulator plugins
|
||||
virtual BlackMisc::Simulation::CSimulatorPluginInfoList getAvailableSimulatorPlugins() const = 0;
|
||||
|
||||
//! Get the current simulator settings
|
||||
virtual BlackMisc::Simulation::Settings::CSimulatorSettings getSimulatorSettings() const = 0;
|
||||
|
||||
//! Set settings for give simulator
|
||||
virtual bool setSimulatorSettings(const BlackMisc::Simulation::Settings::CSimulatorSettings &settings, const BlackMisc::Simulation::CSimulatorInfo &simulator) = 0;
|
||||
|
||||
//! Check all listeners enabled if simulator is connected
|
||||
virtual int checkListeners() = 0;
|
||||
|
||||
|
||||
@@ -45,6 +45,22 @@ namespace BlackCore
|
||||
return BlackMisc::Simulation::CSimulatorPluginInfoList();
|
||||
}
|
||||
|
||||
//! \copydoc IContextSimulator::getSimulatorSettings
|
||||
virtual BlackMisc::Simulation::Settings::CSimulatorSettings getSimulatorSettings() const override
|
||||
{
|
||||
logEmptyContextWarning(Q_FUNC_INFO);
|
||||
return BlackMisc::Simulation::Settings::CSimulatorSettings();
|
||||
}
|
||||
|
||||
//! \copydoc IContextSimulator::setSimulatorSettings
|
||||
virtual bool setSimulatorSettings(const BlackMisc::Simulation::Settings::CSimulatorSettings &settings, const BlackMisc::Simulation::CSimulatorInfo &simulatorInfo) override
|
||||
{
|
||||
Q_UNUSED(settings);
|
||||
Q_UNUSED(simulatorInfo);
|
||||
logEmptyContextWarning(Q_FUNC_INFO);
|
||||
return false;
|
||||
}
|
||||
|
||||
//! \copydoc IContextSimulator::startSimulatorPlugin
|
||||
virtual bool startSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override
|
||||
{
|
||||
|
||||
@@ -143,6 +143,25 @@ namespace BlackCore
|
||||
return m_plugins->getAvailableSimulatorPlugins();
|
||||
}
|
||||
|
||||
CSimulatorSettings CContextSimulator::getSimulatorSettings() const
|
||||
{
|
||||
const CSimulatorPluginInfo p = this->getSimulatorPluginInfo();
|
||||
if (!p.isValid()) { return {}; }
|
||||
const CSimulatorInfo sim = p.getSimulatorInfo();
|
||||
if (!sim.isSingleSimulator()) { return {}; }
|
||||
return m_simulatorSettings.getSettings(sim);
|
||||
}
|
||||
|
||||
bool CContextSimulator::setSimulatorSettings(const CSimulatorSettings &settings, const CSimulatorInfo &simulator)
|
||||
{
|
||||
if (!simulator.isSingleSimulator()) { return false; }
|
||||
CSimulatorSettings simSettings = m_simulatorSettings.getSettings(simulator);
|
||||
if (simSettings == settings) { return false; }
|
||||
const CStatusMessage msg = m_simulatorSettings.setSettings(settings, simulator);
|
||||
CLogMessage::preformatted(msg);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CContextSimulator::startSimulatorPlugin(const CSimulatorPluginInfo &simulatorInfo)
|
||||
{
|
||||
return this->listenForSimulator(simulatorInfo);
|
||||
|
||||
@@ -76,6 +76,8 @@ namespace BlackCore
|
||||
//! @{
|
||||
virtual BlackMisc::Simulation::CSimulatorPluginInfo getSimulatorPluginInfo() const override;
|
||||
virtual BlackMisc::Simulation::CSimulatorPluginInfoList getAvailableSimulatorPlugins() const override;
|
||||
virtual BlackMisc::Simulation::Settings::CSimulatorSettings getSimulatorSettings() const override;
|
||||
virtual bool setSimulatorSettings(const BlackMisc::Simulation::Settings::CSimulatorSettings &settings, const BlackMisc::Simulation::CSimulatorInfo &simulator) override;
|
||||
virtual bool startSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override;
|
||||
virtual void stopSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override;
|
||||
virtual int checkListeners() override;
|
||||
|
||||
@@ -23,6 +23,7 @@ using namespace BlackMisc::Aviation;
|
||||
using namespace BlackMisc::Network;
|
||||
using namespace BlackMisc::Geo;
|
||||
using namespace BlackMisc::Simulation;
|
||||
using namespace BlackMisc::Simulation::Settings;
|
||||
|
||||
namespace BlackCore
|
||||
{
|
||||
@@ -46,6 +47,8 @@ namespace BlackCore
|
||||
|
||||
void CContextSimulatorProxy::relaySignals(const QString &serviceName, QDBusConnection &connection)
|
||||
{
|
||||
// the types here have to be fully qualifed
|
||||
|
||||
bool s = connection.connect(serviceName, IContextSimulator::ObjectPath(), IContextSimulator::InterfaceName(),
|
||||
"simulatorStatusChanged", this, SIGNAL(simulatorStatusChanged(int)));
|
||||
Q_ASSERT(s);
|
||||
@@ -107,6 +110,16 @@ namespace BlackCore
|
||||
return m_dBusInterface->callDBusRet<CSimulatorPluginInfoList>(QLatin1String("getAvailableSimulatorPlugins"));
|
||||
}
|
||||
|
||||
CSimulatorSettings CContextSimulatorProxy::getSimulatorSettings() const
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<CSimulatorSettings>(QLatin1String("getSimulatorSettings"));
|
||||
}
|
||||
|
||||
bool CContextSimulatorProxy::setSimulatorSettings(const CSimulatorSettings &settings, const CSimulatorInfo &simulatorInfo)
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<bool>(QLatin1String("setSimulatorSettings"), settings, simulatorInfo);
|
||||
}
|
||||
|
||||
int CContextSimulatorProxy::getSimulatorStatus() const
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<int>(QLatin1String("getSimulatorStatus"));
|
||||
@@ -114,17 +127,17 @@ namespace BlackCore
|
||||
|
||||
CAirportList CContextSimulatorProxy::getAirportsInRange(bool recalculatePosition) const
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<BlackMisc::Aviation::CAirportList>(QLatin1String("getAirportsInRange"), recalculatePosition);
|
||||
return m_dBusInterface->callDBusRet<CAirportList>(QLatin1String("getAirportsInRange"), recalculatePosition);
|
||||
}
|
||||
|
||||
CAircraftModelList CContextSimulatorProxy::getModelSet() const
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<BlackMisc::Simulation::CAircraftModelList>(QLatin1String("getModelSet"));
|
||||
return m_dBusInterface->callDBusRet<CAircraftModelList>(QLatin1String("getModelSet"));
|
||||
}
|
||||
|
||||
CSimulatorInfo CContextSimulatorProxy::simulatorsWithInitializedModelSet() const
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<BlackMisc::Simulation::CSimulatorInfo>(QLatin1String("simulatorsWithInitializedModelSet"));
|
||||
return m_dBusInterface->callDBusRet<CSimulatorInfo>(QLatin1String("simulatorsWithInitializedModelSet"));
|
||||
}
|
||||
|
||||
CStatusMessageList CContextSimulatorProxy::verifyPrerequisites() const
|
||||
@@ -134,7 +147,7 @@ namespace BlackCore
|
||||
|
||||
CSimulatorInfo CContextSimulatorProxy::getModelSetLoaderSimulator() const
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<BlackMisc::Simulation::CSimulatorInfo>(QLatin1String("getModelSetLoaderSimulator"));
|
||||
return m_dBusInterface->callDBusRet<CSimulatorInfo>(QLatin1String("getModelSetLoaderSimulator"));
|
||||
}
|
||||
|
||||
void CContextSimulatorProxy::setModelSetLoaderSimulator(const CSimulatorInfo &simulator)
|
||||
@@ -159,7 +172,7 @@ namespace BlackCore
|
||||
|
||||
CAircraftModelList CContextSimulatorProxy::getModelSetModelsStartingWith(const QString &modelString) const
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<BlackMisc::Simulation::CAircraftModelList>(QLatin1String("getModelSetModelsStartingWith"), modelString);
|
||||
return m_dBusInterface->callDBusRet<CAircraftModelList>(QLatin1String("getModelSetModelsStartingWith"), modelString);
|
||||
}
|
||||
|
||||
int CContextSimulatorProxy::getModelSetCount() const
|
||||
@@ -167,14 +180,14 @@ namespace BlackCore
|
||||
return m_dBusInterface->callDBusRet<int>(QLatin1String("getModelSetCount"));
|
||||
}
|
||||
|
||||
BlackMisc::Simulation::CSimulatorPluginInfo CContextSimulatorProxy::getSimulatorPluginInfo() const
|
||||
CSimulatorPluginInfo CContextSimulatorProxy::getSimulatorPluginInfo() const
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<BlackMisc::Simulation::CSimulatorPluginInfo>(QLatin1String("getSimulatorPluginInfo"));
|
||||
return m_dBusInterface->callDBusRet<CSimulatorPluginInfo>(QLatin1String("getSimulatorPluginInfo"));
|
||||
}
|
||||
|
||||
CSimulatorInternals CContextSimulatorProxy::getSimulatorInternals() const
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<BlackMisc::Simulation::CSimulatorInternals>(QLatin1String("getSimulatorInternals"));
|
||||
return m_dBusInterface->callDBusRet<CSimulatorInternals>(QLatin1String("getSimulatorInternals"));
|
||||
}
|
||||
|
||||
void CContextSimulatorProxy::disableModelsForMatching(const CAircraftModelList &removedModels, bool incremental)
|
||||
@@ -184,7 +197,7 @@ namespace BlackCore
|
||||
|
||||
CAircraftModelList CContextSimulatorProxy::getDisabledModelsForMatching() const
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<BlackMisc::Simulation::CAircraftModelList>(QLatin1String("getDisabledModelsForMatching"));
|
||||
return m_dBusInterface->callDBusRet<CAircraftModelList>(QLatin1String("getDisabledModelsForMatching"));
|
||||
}
|
||||
|
||||
bool CContextSimulatorProxy::triggerModelSetValidation(const CSimulatorInfo &simulator)
|
||||
|
||||
@@ -59,6 +59,8 @@ namespace BlackCore
|
||||
//! @{
|
||||
virtual BlackMisc::Simulation::CSimulatorPluginInfo getSimulatorPluginInfo() const override;
|
||||
virtual BlackMisc::Simulation::CSimulatorPluginInfoList getAvailableSimulatorPlugins() const override;
|
||||
virtual BlackMisc::Simulation::Settings::CSimulatorSettings getSimulatorSettings() const override;
|
||||
virtual bool setSimulatorSettings(const BlackMisc::Simulation::Settings::CSimulatorSettings &settings, const BlackMisc::Simulation::CSimulatorInfo &simulatorInfo) override;
|
||||
virtual bool startSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override;
|
||||
virtual void stopSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override;
|
||||
virtual int checkListeners() override;
|
||||
|
||||
@@ -39,7 +39,8 @@ namespace BlackMisc
|
||||
{
|
||||
IndexSimulatorDirectory = CPropertyIndex::GlobalIndexCSimulatorSettings,
|
||||
IndexModelDirectories,
|
||||
IndexModelExcludeDirectoryPatterns
|
||||
IndexModelExcludeDirectoryPatterns,
|
||||
IndexComIntegration //!< COM unit integration
|
||||
};
|
||||
|
||||
//! Default constructor
|
||||
@@ -84,6 +85,12 @@ namespace BlackMisc
|
||||
//! Having model exclude directoy patterns?
|
||||
bool hasModelExcludeDirectoryPatterns() const { return !this->getModelExcludeDirectoryPatterns().isEmpty(); }
|
||||
|
||||
//! COM unit integration
|
||||
bool isComIntegrated() const { return m_comIntegration; }
|
||||
|
||||
//! COM unit integration
|
||||
void setComIntegrated(bool integrated) { m_comIntegration = integrated; }
|
||||
|
||||
//! Reset the paths
|
||||
void resetPaths();
|
||||
|
||||
@@ -103,12 +110,14 @@ namespace BlackMisc
|
||||
QString m_simulatorDirectory; //!< Simulator directory
|
||||
QStringList m_modelDirectories; //!< Model directory
|
||||
QStringList m_excludeDirectoryPatterns; //!< Exclude model directory
|
||||
bool m_comIntegration = false; //!< COM integration
|
||||
|
||||
BLACK_METACLASS(
|
||||
CSimulatorSettings,
|
||||
BLACK_METAMEMBER(simulatorDirectory),
|
||||
BLACK_METAMEMBER(modelDirectories),
|
||||
BLACK_METAMEMBER(excludeDirectoryPatterns)
|
||||
BLACK_METAMEMBER(excludeDirectoryPatterns),
|
||||
BLACK_METAMEMBER(comIntegration)
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user