#pragma once #include "logger.h" #include #include #include #include namespace ProjectDataManagement { namespace Interface { class Dtc; } } namespace ParticipantManagement { namespace Interface { class Dtc; } } namespace ProjectDataManagement { namespace Interface { class Ftc; } } namespace ParticipantManagement { namespace Interface { class Ftc; } } namespace UAS { class TmsIfAdapter; class FromTab; class UAVInterfaceAdapterManager; class TmsIfModuleHandle { public: TmsIfModuleHandle(); ~TmsIfModuleHandle(); void *operator()() { return m_handle; } private: NGL::INGLLogger &m_logger; void *m_handle { nullptr }; }; class PluginInstance final : public TrainingAreaBase::Plugin::Interface { Q_OBJECT public: PluginInstance(TrainingAreaBase::Plugin::DataProvider *dataProvider, const std::shared_ptr &recvFromTabCb, const std::shared_ptr &ddsHandler, NGL::Settings *settings); std::shared_ptr sendToTab() override; bool isDebugInterface() const override { return false; } bool canSendData() const override; void exerciseChanged() override {} const char *name() const override { return tr_lts("dds", "UAS"); } public slots: bool init() override; private: int m_exerciseId; std::shared_ptr m_sendToDds; NGL::Settings *m_settings; TmsIfModuleHandle m_tmsIfModuleHandle; TmsIfAdapter &m_tmsIfAdapter; std::shared_ptr m_ddsHandler; std::shared_ptr m_dtcPdm; std::shared_ptr m_dtcPpm; std::shared_ptr m_ftcPpm; UAVInterfaceAdapterManager *m_uavIAManager; std::shared_ptr m_fromTab; }; }