mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-07 02:35:33 +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
|
||||
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;
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user