/** * Instance of the UAS plugin * $Id$ * $HeadURL$ * $Author$ * Created by Mike Wille, ESZS, 2025-04-17 */ #pragma once #include "logger.h" #include #include #include // tr_lts #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: 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; // the implementation / our version if SendToTab, so that TAB can send us telegrams 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; /*void * */ TmsIfModuleHandle m_tmsIfModuleHandle; //{ nullptr }; 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::/*unique_ptr*/shared_ptr m_fromTab; NGL::INGLLogger &m_logger; }; } // namespace UAS