/** * Manages the uav interface instances (for TMS-IF) per uav participant * $Id$ * $HeadURL$ * $Author$ * * Created by Mike Wille, ESZS, 2025-05-22 */ #pragma once #include "uav_ia.h" #include #include #include #include #include #include namespace ParticipantManagement { class UAS; class MissionPlan; namespace Interface { class Dtc; } } namespace TrainingAreaBase { class RecvFromTab; } namespace NGL { class INGLLogger; } namespace UAS { class TmsIfAdapter; using ParticipantId = int; class UAVInterfaceAdapterManager : public QObject { Q_OBJECT public: UAVInterfaceAdapterManager(const std::shared_ptr &ddsHandler, const std::shared_ptr &sendToDds, TmsIfAdapter &tmsIfAdapter, int exerciseId, QObject *parent); void init(); bool kill(int participantId); bool waypoint(int participantId, TrainingAreaBase::TetraIcd::AbsolutePosition absPos, const QString &missionName = {}); bool tryChangeModeToAuto(int participantId); private: void removed(const ParticipantManagement::UAS &uas); void modified(const ParticipantManagement::UAS &uas); void added(const ParticipantManagement::UAS &uas); void start(const ParticipantManagement::UAS &uas, UAVInterfaceAdapterConfig config); void stop(const ParticipantManagement::UAS &uas); void setMissionActionFulfilled(int equipmentNumber); static const int s_domainId; int m_exerciseId; std::map m_uavs; std::shared_ptr m_dtcPpm; std::shared_ptr m_ftcPpm; TmsIfAdapter &m_tmsIfAdapter; std::shared_ptr m_sendToDds; NGL::INGLLogger &m_logger; }; } // namespace UAS