/** * The UasHandler class manages all Uas related function topics and holds classes for * further Uas data. * $Id$ * $HeadURL$ * $Author$ * Created by Steve Kemayou, ESZS, 2025-06-02 */ #pragma once #include #include #include #include #include "object_mission_plan.h" #include "logger.h" namespace ParticipantManagement { class ObjectMissionPlan; class MainHandler; namespace UasHandling { class MissionPlanHandler final : protected Interface::Fts::ModifyMissionPlanRequestHandler , protected Interface::Fts::RemoveMissionPlanRequestHandler , protected Interface::Fts::SetMissionActionFulfilledRequestHandler { public: explicit MissionPlanHandler(MainHandler *mainHandler); ~MissionPlanHandler(); bool init(); void onModifyMissionPlanRequest(const rti::core::SampleIdentity &cookie, const ModifyMissionPlanRequest &request) override final; void onRemoveMissionPlanRequest(const rti::core::SampleIdentity &cookie, const RemoveMissionPlanRequest &request) override final; void onSetMissionActionFulfilledRequest(const rti::core::SampleIdentity &cookie, const SetMissionActionFulfilledRequest &request) override final; bool loadMissionPlansFromDb(); bool setCurrentMissionActionFulfilled(int participantId, const QString &nameOfTheMissionThatEnded); private: bool isUasCombatReady(int participantId); bool isUasInAutoMode(int participantId); Core::FunctionReplyObject createMissionPlanRequest(const ModifyMissionPlanRequest &request); Core::FunctionReplyObject modifyMissionPlanRequest(const ModifyMissionPlanRequest &request); Core::FunctionReplyObject removeMissionPlanRequest(int id); Core::FunctionReplyObject setMissionActionFulfilledRequest(const SetMissionActionFulfilledRequest &request); void publishMissionPlan(const MissionPlan &missionplan); bool isUasParticipant(int participantId) const; int getNumberOfActionFulfilled(const MissionItem &msi) const; void setLatestFulfilledItem(MissionPlan &missionPlan); /// update mission plan fulfillment count & fulfillemnt latest time int64_t getLastestFulfilledAction(const MissionItem &msi) const; MainHandler *m_mainHandler; QHash m_objMissionPlans; LOGGER_T m_logger; }; } }// namespace ParticipantManagement