/** * DdsInterface for Aes * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include #include #include #include #include #include #include #include #include #include // For Elevation #include // For Elevation #include #include "logger.h" #include #include namespace Core { class Pacemaker; namespace Interface { class Dts; } } namespace TrainingAreaBase { class EquipmentState; namespace Interface { class Dtc; } } namespace AreaEffectSimulation { class DdsHandler : public QObject { Q_OBJECT public: DdsHandler(int domainId, int exerciseId, QObject *parent = nullptr); ~DdsHandler(); bool init(const QStringList &qosFileList = QStringList()); std::shared_ptr pacemaker() const { return m_pacemaker; } QDateTime currentPartitionTime() const; qint64 currentPartitionTimeMSec() const; std::shared_ptr dts() const { return m_ddsDts; } std::shared_ptr fts() const { return m_ddsFts; } std::shared_ptr tabDtc() const { return m_tabDtc; } std::shared_ptr tabFtc() const { return m_tabFtc; } std::shared_ptr pdmDtc() const { return m_pdmDtc; } std::shared_ptr ppmDtc() const { return m_ppmDtc; } std::shared_ptr cesFtc() const { return m_cesFtc; } std::shared_ptr asmDtc() const { return m_asmDtc; } std::shared_ptr exmDtc() const { return m_exmDtc; } std::shared_ptr ismDtc() const{ return m_ismDtc; } std::shared_ptr ddsConnector() const { return m_ddsConnector; } std::shared_ptr topicLockMaster() const { return m_topicLockMaster; } int exerciseId() const { return ddsConnector()->getPartitionId(); } ProjectDataManagement::ChargeType getChargeType(int chargeTypeId); private slots: void onPartitionTimeChanged(const Core::PartitionTime ¤tTime); private: std::shared_ptr m_ddsConnector; std::shared_ptr m_dtcCore; std::shared_ptr m_pacemaker; std::shared_ptr m_topicLockMaster; std::shared_ptr m_ddsDts; std::shared_ptr m_ddsFts; std::shared_ptr m_tabDtc; std::shared_ptr m_tabFtc; std::shared_ptr m_pdmDtc; std::shared_ptr m_ppmDtc; std::shared_ptr m_cesFtc; std::shared_ptr m_asmDtc; std::shared_ptr m_exmDtc; std::shared_ptr m_ismDtc; QElapsedTimer m_elapsedTimer; qint64 m_currentTimeMSec; NGL::INGLLogger &m_logger; }; }