/** * Plugin CES Mission Plan * $Id: $ * $HeadURL: svn://slssvn/TDS/branches/product/features/25_03_etb_uas/Lts/Services/CentralEffectSimulation/Plugins/MissionPlan/ces_mission_plan_handler.h $ * $Author: Kemayou_s $ * Created by Steve Kemayou, ESZS, 2025-06-25 */ #pragma once #include #include #include #include #include "ces_mission_plan_object.h" #include #include // AES-Handling for participants namespace CES_MISSIONPLAN { struct EnterLeaveType { ProjectDataManagement::EventType eventType = ProjectDataManagement::EventType_def::Unknown; bool isAlreadySupplied = false; }; class CesMissionPlanHandler : public QObject //, protected TrainingAreaBase::Interface::Ftc::SendCesHitReplyHandler { Q_OBJECT public: explicit CesMissionPlanHandler(const std::shared_ptr &ddsHandler, const std::shared_ptr &participantHandler, QObject *parent = nullptr); ~CesMissionPlanHandler(); /** * Initialize the handler to manage information from player management */ bool init(); void updateMissionPlanList(const ParticipantManagement::MissionPlan &data); protected: void sendNextMissionAction(); private Q_SLOTS: void onUasChanged(const ParticipantManagement::UAS &data, DataModification modType); void onMissionPlanChanged(const ParticipantManagement::MissionPlan &data, DataModification modType); void onSendNextMissionAction(const ParticipantManagement::MissionAction &msa); private: // methoden ProjectDataManagement::EventType leaveEventTypeForAesType(AreaEffectSimulation::AesType aesTypeId); bool isUasInAutoMode(int participantId); bool isUasCombatReady(int participantId); private: // attributes std::shared_ptr m_ddsHandler; ///< Pointer to VOM DDS handler std::shared_ptr m_handlerParticipant; QHash m_missionPlanObjects; // Only: MissionBegin is reached and fulfilled = 0; int m_requestId = 1; NGL::INGLLogger &m_logger; ///< Interface to the Logging-Facility }; } // namespace CES_MISSIONPLAN