mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-19 12:15:29 +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/simulator.h"
|
||||||
#include "blackcore/blackcoreexport.h"
|
#include "blackcore/blackcoreexport.h"
|
||||||
#include "blackmisc/weather/weathergrid.h"
|
#include "blackmisc/weather/weathergrid.h"
|
||||||
|
#include "blackmisc/simulation/settings/simulatorsettings.h"
|
||||||
#include "blackmisc/simulation/aircraftmodellist.h"
|
#include "blackmisc/simulation/aircraftmodellist.h"
|
||||||
#include "blackmisc/simulation/aircraftmatchersetup.h"
|
#include "blackmisc/simulation/aircraftmatchersetup.h"
|
||||||
#include "blackmisc/simulation/matchingstatistics.h"
|
#include "blackmisc/simulation/matchingstatistics.h"
|
||||||
@@ -148,6 +149,12 @@ namespace BlackCore
|
|||||||
//! Return list of available simulator plugins
|
//! Return list of available simulator plugins
|
||||||
virtual BlackMisc::Simulation::CSimulatorPluginInfoList getAvailableSimulatorPlugins() const = 0;
|
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
|
//! Check all listeners enabled if simulator is connected
|
||||||
virtual int checkListeners() = 0;
|
virtual int checkListeners() = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,22 @@ namespace BlackCore
|
|||||||
return BlackMisc::Simulation::CSimulatorPluginInfoList();
|
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
|
//! \copydoc IContextSimulator::startSimulatorPlugin
|
||||||
virtual bool startSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override
|
virtual bool startSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -143,6 +143,25 @@ namespace BlackCore
|
|||||||
return m_plugins->getAvailableSimulatorPlugins();
|
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)
|
bool CContextSimulator::startSimulatorPlugin(const CSimulatorPluginInfo &simulatorInfo)
|
||||||
{
|
{
|
||||||
return this->listenForSimulator(simulatorInfo);
|
return this->listenForSimulator(simulatorInfo);
|
||||||
|
|||||||
@@ -76,6 +76,8 @@ namespace BlackCore
|
|||||||
//! @{
|
//! @{
|
||||||
virtual BlackMisc::Simulation::CSimulatorPluginInfo getSimulatorPluginInfo() const override;
|
virtual BlackMisc::Simulation::CSimulatorPluginInfo getSimulatorPluginInfo() const override;
|
||||||
virtual BlackMisc::Simulation::CSimulatorPluginInfoList getAvailableSimulatorPlugins() 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 bool startSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override;
|
||||||
virtual void stopSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override;
|
virtual void stopSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override;
|
||||||
virtual int checkListeners() override;
|
virtual int checkListeners() override;
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ using namespace BlackMisc::Aviation;
|
|||||||
using namespace BlackMisc::Network;
|
using namespace BlackMisc::Network;
|
||||||
using namespace BlackMisc::Geo;
|
using namespace BlackMisc::Geo;
|
||||||
using namespace BlackMisc::Simulation;
|
using namespace BlackMisc::Simulation;
|
||||||
|
using namespace BlackMisc::Simulation::Settings;
|
||||||
|
|
||||||
namespace BlackCore
|
namespace BlackCore
|
||||||
{
|
{
|
||||||
@@ -46,6 +47,8 @@ namespace BlackCore
|
|||||||
|
|
||||||
void CContextSimulatorProxy::relaySignals(const QString &serviceName, QDBusConnection &connection)
|
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(),
|
bool s = connection.connect(serviceName, IContextSimulator::ObjectPath(), IContextSimulator::InterfaceName(),
|
||||||
"simulatorStatusChanged", this, SIGNAL(simulatorStatusChanged(int)));
|
"simulatorStatusChanged", this, SIGNAL(simulatorStatusChanged(int)));
|
||||||
Q_ASSERT(s);
|
Q_ASSERT(s);
|
||||||
@@ -107,6 +110,16 @@ namespace BlackCore
|
|||||||
return m_dBusInterface->callDBusRet<CSimulatorPluginInfoList>(QLatin1String("getAvailableSimulatorPlugins"));
|
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
|
int CContextSimulatorProxy::getSimulatorStatus() const
|
||||||
{
|
{
|
||||||
return m_dBusInterface->callDBusRet<int>(QLatin1String("getSimulatorStatus"));
|
return m_dBusInterface->callDBusRet<int>(QLatin1String("getSimulatorStatus"));
|
||||||
@@ -114,17 +127,17 @@ namespace BlackCore
|
|||||||
|
|
||||||
CAirportList CContextSimulatorProxy::getAirportsInRange(bool recalculatePosition) const
|
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
|
CAircraftModelList CContextSimulatorProxy::getModelSet() const
|
||||||
{
|
{
|
||||||
return m_dBusInterface->callDBusRet<BlackMisc::Simulation::CAircraftModelList>(QLatin1String("getModelSet"));
|
return m_dBusInterface->callDBusRet<CAircraftModelList>(QLatin1String("getModelSet"));
|
||||||
}
|
}
|
||||||
|
|
||||||
CSimulatorInfo CContextSimulatorProxy::simulatorsWithInitializedModelSet() const
|
CSimulatorInfo CContextSimulatorProxy::simulatorsWithInitializedModelSet() const
|
||||||
{
|
{
|
||||||
return m_dBusInterface->callDBusRet<BlackMisc::Simulation::CSimulatorInfo>(QLatin1String("simulatorsWithInitializedModelSet"));
|
return m_dBusInterface->callDBusRet<CSimulatorInfo>(QLatin1String("simulatorsWithInitializedModelSet"));
|
||||||
}
|
}
|
||||||
|
|
||||||
CStatusMessageList CContextSimulatorProxy::verifyPrerequisites() const
|
CStatusMessageList CContextSimulatorProxy::verifyPrerequisites() const
|
||||||
@@ -134,7 +147,7 @@ namespace BlackCore
|
|||||||
|
|
||||||
CSimulatorInfo CContextSimulatorProxy::getModelSetLoaderSimulator() const
|
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)
|
void CContextSimulatorProxy::setModelSetLoaderSimulator(const CSimulatorInfo &simulator)
|
||||||
@@ -159,7 +172,7 @@ namespace BlackCore
|
|||||||
|
|
||||||
CAircraftModelList CContextSimulatorProxy::getModelSetModelsStartingWith(const QString &modelString) const
|
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
|
int CContextSimulatorProxy::getModelSetCount() const
|
||||||
@@ -167,14 +180,14 @@ namespace BlackCore
|
|||||||
return m_dBusInterface->callDBusRet<int>(QLatin1String("getModelSetCount"));
|
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
|
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)
|
void CContextSimulatorProxy::disableModelsForMatching(const CAircraftModelList &removedModels, bool incremental)
|
||||||
@@ -184,7 +197,7 @@ namespace BlackCore
|
|||||||
|
|
||||||
CAircraftModelList CContextSimulatorProxy::getDisabledModelsForMatching() const
|
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)
|
bool CContextSimulatorProxy::triggerModelSetValidation(const CSimulatorInfo &simulator)
|
||||||
|
|||||||
@@ -59,6 +59,8 @@ namespace BlackCore
|
|||||||
//! @{
|
//! @{
|
||||||
virtual BlackMisc::Simulation::CSimulatorPluginInfo getSimulatorPluginInfo() const override;
|
virtual BlackMisc::Simulation::CSimulatorPluginInfo getSimulatorPluginInfo() const override;
|
||||||
virtual BlackMisc::Simulation::CSimulatorPluginInfoList getAvailableSimulatorPlugins() 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 bool startSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override;
|
||||||
virtual void stopSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override;
|
virtual void stopSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override;
|
||||||
virtual int checkListeners() override;
|
virtual int checkListeners() override;
|
||||||
|
|||||||
@@ -39,7 +39,8 @@ namespace BlackMisc
|
|||||||
{
|
{
|
||||||
IndexSimulatorDirectory = CPropertyIndex::GlobalIndexCSimulatorSettings,
|
IndexSimulatorDirectory = CPropertyIndex::GlobalIndexCSimulatorSettings,
|
||||||
IndexModelDirectories,
|
IndexModelDirectories,
|
||||||
IndexModelExcludeDirectoryPatterns
|
IndexModelExcludeDirectoryPatterns,
|
||||||
|
IndexComIntegration //!< COM unit integration
|
||||||
};
|
};
|
||||||
|
|
||||||
//! Default constructor
|
//! Default constructor
|
||||||
@@ -84,6 +85,12 @@ namespace BlackMisc
|
|||||||
//! Having model exclude directoy patterns?
|
//! Having model exclude directoy patterns?
|
||||||
bool hasModelExcludeDirectoryPatterns() const { return !this->getModelExcludeDirectoryPatterns().isEmpty(); }
|
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
|
//! Reset the paths
|
||||||
void resetPaths();
|
void resetPaths();
|
||||||
|
|
||||||
@@ -103,12 +110,14 @@ namespace BlackMisc
|
|||||||
QString m_simulatorDirectory; //!< Simulator directory
|
QString m_simulatorDirectory; //!< Simulator directory
|
||||||
QStringList m_modelDirectories; //!< Model directory
|
QStringList m_modelDirectories; //!< Model directory
|
||||||
QStringList m_excludeDirectoryPatterns; //!< Exclude model directory
|
QStringList m_excludeDirectoryPatterns; //!< Exclude model directory
|
||||||
|
bool m_comIntegration = false; //!< COM integration
|
||||||
|
|
||||||
BLACK_METACLASS(
|
BLACK_METACLASS(
|
||||||
CSimulatorSettings,
|
CSimulatorSettings,
|
||||||
BLACK_METAMEMBER(simulatorDirectory),
|
BLACK_METAMEMBER(simulatorDirectory),
|
||||||
BLACK_METAMEMBER(modelDirectories),
|
BLACK_METAMEMBER(modelDirectories),
|
||||||
BLACK_METAMEMBER(excludeDirectoryPatterns)
|
BLACK_METAMEMBER(excludeDirectoryPatterns),
|
||||||
|
BLACK_METAMEMBER(comIntegration)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user