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:
Klaus Basan
2014-07-11 00:34:52 +02:00
parent fceea61e4c
commit 851bb70a68
8 changed files with 87 additions and 1 deletions

View File

@@ -102,6 +102,12 @@ namespace BlackCore
//! \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;
//! Is time synchronization on?
virtual bool isTimeSynchronized() const = 0;
//! Time synchronization offset
virtual BlackMisc::PhysicalQuantities::CTime getTimeSynchronizationOffset() const = 0;
//! Load specific simulator plugin
virtual bool loadSimulatorPlugin(const BlackSim::CSimulatorInfo &simulatorInfo) = 0;
@@ -114,6 +120,9 @@ namespace BlackCore
//! Simulator avialable?
bool isSimulatorAvailable() const { return BlackMisc::CProject::isCompiledWithFlightSimulatorSupport() && !getSimulatorInfo().isUnspecified(); }
//! Simulator paused?
virtual bool isSimulatorPaused() const = 0;
//! Settings have been changed
virtual void settingsChanged(uint type) = 0;

View File

@@ -109,7 +109,19 @@ namespace BlackCore
void CContextSimulator::setTimeSynchronization(bool enable, CTime offset)
{
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)
@@ -306,6 +318,10 @@ namespace BlackCore
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()

View File

@@ -65,6 +65,12 @@ namespace BlackCore
//! \copydoc IContextSimulator::setTimeSynchronization
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()
virtual bool loadSimulatorPlugin(const BlackSim::CSimulatorInfo &simulatorInfo) override;
@@ -77,6 +83,9 @@ namespace BlackCore
//! \copydoc IContextSimulator::settingsChanged
virtual void settingsChanged(uint type) override;
//! \copydoc IContextSimulator::isSimulatorPaused
virtual bool isSimulatorPaused() const override;
protected:
//! \brief Constructor
CContextSimulator(CRuntimeConfig::ContextMode, CRuntime *runtime);

View File

@@ -78,6 +78,16 @@ namespace BlackCore
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)
{
return m_dBusInterface->callDBusRet<bool>(QLatin1Literal("loadSimulatorPlugin"), simulatorInfo);
@@ -98,4 +108,9 @@ namespace BlackCore
m_dBusInterface->callDBus(QLatin1Literal("settingsChanged"), type);
}
bool CContextSimulatorProxy::isSimulatorPaused() const
{
return m_dBusInterface->callDBusRet<bool>(QLatin1Literal("isSimulatorPaused"));
}
} // namespace BlackCore

View File

@@ -67,6 +67,12 @@ namespace BlackCore
//! \copydoc IContextSimulator::setTimeSynchronization
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
virtual bool loadSimulatorPlugin(const BlackSim::CSimulatorInfo &simulatorInfo) override;
@@ -78,6 +84,10 @@ namespace BlackCore
//! \copydoc IContextSimulator::settingsChanged
virtual void settingsChanged(uint type) override;
//! \copydoc IContextSimulator::isSimulatorPaused
virtual bool isSimulatorPaused() const override;
};
} // namespace BlackCore

View File

@@ -92,6 +92,15 @@ namespace BlackCore
//! \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;
//! 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:
//! Emitted when the connection status has changed
void statusChanged(ISimulator::Status status);

View File

@@ -132,6 +132,15 @@ namespace BlackSimPlugin
//! \copydoc ISimulator::setTimeSynchronization
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
void onSimRunning();

View File

@@ -80,6 +80,15 @@ namespace BlackSimPlugin
//! \copydoc ISimulator::setTimeSynchronization
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:
void serviceRegistered(const QString &serviceName);
void serviceUnregistered();