mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-26 02:35:38 +08:00
refs #289, added methods for time sync in context, plugin
Remark: in the same step added methods for paused simulator
This commit is contained in:
@@ -102,6 +102,12 @@ namespace BlackCore
|
|||||||
//! \remarks not all drivers implement this, e.g. if it is an intrinsic simulator feature
|
//! \remarks not all drivers implement this, e.g. if it is an intrinsic simulator feature
|
||||||
virtual void setTimeSynchronization(bool enable, BlackMisc::PhysicalQuantities::CTime offset) = 0;
|
virtual void setTimeSynchronization(bool enable, BlackMisc::PhysicalQuantities::CTime offset) = 0;
|
||||||
|
|
||||||
|
//! Is time synchronization on?
|
||||||
|
virtual bool isTimeSynchronized() const = 0;
|
||||||
|
|
||||||
|
//! Time synchronization offset
|
||||||
|
virtual BlackMisc::PhysicalQuantities::CTime getTimeSynchronizationOffset() const = 0;
|
||||||
|
|
||||||
//! Load specific simulator plugin
|
//! Load specific simulator plugin
|
||||||
virtual bool loadSimulatorPlugin(const BlackSim::CSimulatorInfo &simulatorInfo) = 0;
|
virtual bool loadSimulatorPlugin(const BlackSim::CSimulatorInfo &simulatorInfo) = 0;
|
||||||
|
|
||||||
@@ -114,6 +120,9 @@ namespace BlackCore
|
|||||||
//! Simulator avialable?
|
//! Simulator avialable?
|
||||||
bool isSimulatorAvailable() const { return BlackMisc::CProject::isCompiledWithFlightSimulatorSupport() && !getSimulatorInfo().isUnspecified(); }
|
bool isSimulatorAvailable() const { return BlackMisc::CProject::isCompiledWithFlightSimulatorSupport() && !getSimulatorInfo().isUnspecified(); }
|
||||||
|
|
||||||
|
//! Simulator paused?
|
||||||
|
virtual bool isSimulatorPaused() const = 0;
|
||||||
|
|
||||||
//! Settings have been changed
|
//! Settings have been changed
|
||||||
virtual void settingsChanged(uint type) = 0;
|
virtual void settingsChanged(uint type) = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -109,7 +109,19 @@ namespace BlackCore
|
|||||||
void CContextSimulator::setTimeSynchronization(bool enable, CTime offset)
|
void CContextSimulator::setTimeSynchronization(bool enable, CTime offset)
|
||||||
{
|
{
|
||||||
if (!m_simulator) return;
|
if (!m_simulator) return;
|
||||||
this->setTimeSynchronization(enable, offset);
|
this->m_simulator->setTimeSynchronization(enable, offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CContextSimulator::isTimeSynchronized() const
|
||||||
|
{
|
||||||
|
if (!m_simulator) return false;
|
||||||
|
return this->m_simulator->isTimeSynchronized();
|
||||||
|
}
|
||||||
|
|
||||||
|
CTime CContextSimulator::getTimeSynchronizationOffset() const
|
||||||
|
{
|
||||||
|
if (!m_simulator) return CTime(0, CTimeUnit::hrmin());
|
||||||
|
return this->m_simulator->getTimeSynchronizationOffset();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CContextSimulator::loadSimulatorPlugin(const CSimulatorInfo &simulatorInfo)
|
bool CContextSimulator::loadSimulatorPlugin(const CSimulatorInfo &simulatorInfo)
|
||||||
@@ -306,6 +318,10 @@ namespace BlackCore
|
|||||||
this->getRuntime()->sendStatusMessage(CStatusMessage::getErrorMessage(m, CStatusMessage::TypeSimulator));
|
this->getRuntime()->sendStatusMessage(CStatusMessage::getErrorMessage(m, CStatusMessage::TypeSimulator));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
bool CContextSimulator::isSimulatorPaused() const
|
||||||
|
{
|
||||||
|
if (!this->m_simulator) return false;
|
||||||
|
return this->m_simulator->isSimPaused();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CContextSimulator::findSimulatorPlugins()
|
void CContextSimulator::findSimulatorPlugins()
|
||||||
|
|||||||
@@ -65,6 +65,12 @@ namespace BlackCore
|
|||||||
//! \copydoc IContextSimulator::setTimeSynchronization
|
//! \copydoc IContextSimulator::setTimeSynchronization
|
||||||
virtual void setTimeSynchronization(bool enable, BlackMisc::PhysicalQuantities::CTime offset) override;
|
virtual void setTimeSynchronization(bool enable, BlackMisc::PhysicalQuantities::CTime offset) override;
|
||||||
|
|
||||||
|
//! \copydoc IContextSimulator::isTimeSynchronized
|
||||||
|
virtual bool isTimeSynchronized() const override;
|
||||||
|
|
||||||
|
//! \copydoc IContextSimulator::getTimeSynchronizationOffset
|
||||||
|
virtual BlackMisc::PhysicalQuantities::CTime getTimeSynchronizationOffset() const override;
|
||||||
|
|
||||||
//! \copydoc IContextSimulator::loadSimulatorPlugin()
|
//! \copydoc IContextSimulator::loadSimulatorPlugin()
|
||||||
virtual bool loadSimulatorPlugin(const BlackSim::CSimulatorInfo &simulatorInfo) override;
|
virtual bool loadSimulatorPlugin(const BlackSim::CSimulatorInfo &simulatorInfo) override;
|
||||||
|
|
||||||
@@ -77,6 +83,9 @@ namespace BlackCore
|
|||||||
//! \copydoc IContextSimulator::settingsChanged
|
//! \copydoc IContextSimulator::settingsChanged
|
||||||
virtual void settingsChanged(uint type) override;
|
virtual void settingsChanged(uint type) override;
|
||||||
|
|
||||||
|
//! \copydoc IContextSimulator::isSimulatorPaused
|
||||||
|
virtual bool isSimulatorPaused() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
//! \brief Constructor
|
//! \brief Constructor
|
||||||
CContextSimulator(CRuntimeConfig::ContextMode, CRuntime *runtime);
|
CContextSimulator(CRuntimeConfig::ContextMode, CRuntime *runtime);
|
||||||
|
|||||||
@@ -78,6 +78,16 @@ namespace BlackCore
|
|||||||
m_dBusInterface->callDBus(QLatin1Literal("setTimeSynchronization"), enable, offset);
|
m_dBusInterface->callDBus(QLatin1Literal("setTimeSynchronization"), enable, offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CContextSimulatorProxy::isTimeSynchronized() const
|
||||||
|
{
|
||||||
|
return m_dBusInterface->callDBusRet<bool>(QLatin1Literal("isTimeSynchronized"));
|
||||||
|
}
|
||||||
|
|
||||||
|
CTime CContextSimulatorProxy::getTimeSynchronizationOffset() const
|
||||||
|
{
|
||||||
|
return m_dBusInterface->callDBusRet<BlackMisc::PhysicalQuantities::CTime>(QLatin1Literal("getTimeSynchronizationOffset"));
|
||||||
|
}
|
||||||
|
|
||||||
bool CContextSimulatorProxy::loadSimulatorPlugin(const BlackSim::CSimulatorInfo &simulatorInfo)
|
bool CContextSimulatorProxy::loadSimulatorPlugin(const BlackSim::CSimulatorInfo &simulatorInfo)
|
||||||
{
|
{
|
||||||
return m_dBusInterface->callDBusRet<bool>(QLatin1Literal("loadSimulatorPlugin"), simulatorInfo);
|
return m_dBusInterface->callDBusRet<bool>(QLatin1Literal("loadSimulatorPlugin"), simulatorInfo);
|
||||||
@@ -98,4 +108,9 @@ namespace BlackCore
|
|||||||
m_dBusInterface->callDBus(QLatin1Literal("settingsChanged"), type);
|
m_dBusInterface->callDBus(QLatin1Literal("settingsChanged"), type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CContextSimulatorProxy::isSimulatorPaused() const
|
||||||
|
{
|
||||||
|
return m_dBusInterface->callDBusRet<bool>(QLatin1Literal("isSimulatorPaused"));
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace BlackCore
|
} // namespace BlackCore
|
||||||
|
|||||||
@@ -67,6 +67,12 @@ namespace BlackCore
|
|||||||
//! \copydoc IContextSimulator::setTimeSynchronization
|
//! \copydoc IContextSimulator::setTimeSynchronization
|
||||||
virtual void setTimeSynchronization(bool enable, BlackMisc::PhysicalQuantities::CTime offset) override;
|
virtual void setTimeSynchronization(bool enable, BlackMisc::PhysicalQuantities::CTime offset) override;
|
||||||
|
|
||||||
|
//! \copydoc IContextSimulator::isTimeSynchronized
|
||||||
|
virtual bool isTimeSynchronized() const override;
|
||||||
|
|
||||||
|
//! \copydoc IContextSimulator::getTimeSynchronizationOffset
|
||||||
|
virtual BlackMisc::PhysicalQuantities::CTime getTimeSynchronizationOffset() const override;
|
||||||
|
|
||||||
//! \copydoc IContextSimulator::loadSimulatorPlugin
|
//! \copydoc IContextSimulator::loadSimulatorPlugin
|
||||||
virtual bool loadSimulatorPlugin(const BlackSim::CSimulatorInfo &simulatorInfo) override;
|
virtual bool loadSimulatorPlugin(const BlackSim::CSimulatorInfo &simulatorInfo) override;
|
||||||
|
|
||||||
@@ -78,6 +84,10 @@ namespace BlackCore
|
|||||||
|
|
||||||
//! \copydoc IContextSimulator::settingsChanged
|
//! \copydoc IContextSimulator::settingsChanged
|
||||||
virtual void settingsChanged(uint type) override;
|
virtual void settingsChanged(uint type) override;
|
||||||
|
|
||||||
|
//! \copydoc IContextSimulator::isSimulatorPaused
|
||||||
|
virtual bool isSimulatorPaused() const override;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace BlackCore
|
} // namespace BlackCore
|
||||||
|
|||||||
@@ -92,6 +92,15 @@ namespace BlackCore
|
|||||||
//! \remarks not all drivers implement this, e.g. if it is an intrinsic simulator feature
|
//! \remarks not all drivers implement this, e.g. if it is an intrinsic simulator feature
|
||||||
virtual void setTimeSynchronization(bool enable, BlackMisc::PhysicalQuantities::CTime offset) = 0;
|
virtual void setTimeSynchronization(bool enable, BlackMisc::PhysicalQuantities::CTime offset) = 0;
|
||||||
|
|
||||||
|
//! Is time synchronization on?
|
||||||
|
virtual bool isTimeSynchronized() const = 0;
|
||||||
|
|
||||||
|
//! Time synchronization offset
|
||||||
|
virtual BlackMisc::PhysicalQuantities::CTime getTimeSynchronizationOffset() const = 0;
|
||||||
|
|
||||||
|
//! Simulator paused?
|
||||||
|
virtual bool isSimPaused() const = 0;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
//! Emitted when the connection status has changed
|
//! Emitted when the connection status has changed
|
||||||
void statusChanged(ISimulator::Status status);
|
void statusChanged(ISimulator::Status status);
|
||||||
|
|||||||
@@ -132,6 +132,15 @@ namespace BlackSimPlugin
|
|||||||
//! \copydoc ISimulator::setTimeSynchronization
|
//! \copydoc ISimulator::setTimeSynchronization
|
||||||
virtual void setTimeSynchronization(bool enable, BlackMisc::PhysicalQuantities::CTime offset) override;
|
virtual void setTimeSynchronization(bool enable, BlackMisc::PhysicalQuantities::CTime offset) override;
|
||||||
|
|
||||||
|
//! \copydoc ISimulator::isTimeSynchronized
|
||||||
|
virtual bool isTimeSynchronized() const override { return m_syncTime; }
|
||||||
|
|
||||||
|
//! \copydoc ISimulator::getTimeSynchronizationOffset
|
||||||
|
virtual BlackMisc::PhysicalQuantities::CTime getTimeSynchronizationOffset() const override { return m_syncTimeOffset; }
|
||||||
|
|
||||||
|
//! \copydoc ISimulator::isSimPaused
|
||||||
|
virtual bool isSimPaused() const override { return m_simPaused; }
|
||||||
|
|
||||||
//! \brief Called when sim has started
|
//! \brief Called when sim has started
|
||||||
void onSimRunning();
|
void onSimRunning();
|
||||||
|
|
||||||
|
|||||||
@@ -80,6 +80,15 @@ namespace BlackSimPlugin
|
|||||||
//! \copydoc ISimulator::setTimeSynchronization
|
//! \copydoc ISimulator::setTimeSynchronization
|
||||||
virtual void setTimeSynchronization(bool enable, BlackMisc::PhysicalQuantities::CTime offset) override;
|
virtual void setTimeSynchronization(bool enable, BlackMisc::PhysicalQuantities::CTime offset) override;
|
||||||
|
|
||||||
|
//! \copydoc ISimulator::isTimeSynchronized
|
||||||
|
virtual bool isTimeSynchronized() const override { return false; } // TODO: Can we query the XP intrinisc feature?
|
||||||
|
|
||||||
|
//! \copydoc ISimulator::getTimeSynchronizationOffset
|
||||||
|
virtual BlackMisc::PhysicalQuantities::CTime getTimeSynchronizationOffset() const override { return BlackMisc::PhysicalQuantities::CTime(0, BlackMisc::PhysicalQuantities::CTimeUnit::hrmin()); }
|
||||||
|
|
||||||
|
//! \copydoc ISimulator::isSimPaused
|
||||||
|
virtual bool isSimPaused() const override { return false; }
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void serviceRegistered(const QString &serviceName);
|
void serviceRegistered(const QString &serviceName);
|
||||||
void serviceUnregistered();
|
void serviceUnregistered();
|
||||||
|
|||||||
Reference in New Issue
Block a user