65 lines
2.3 KiB
C++
Executable File
65 lines
2.3 KiB
C++
Executable File
/**
|
|
* 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 <QtCore/QHash>
|
|
|
|
#include <ParticipantManagement/ppm_fts.h>
|
|
#include <ParticipantManagement/ppm_ftc.h>
|
|
#include <CentralEffectSimulation/dds_handler.h>
|
|
#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<int32_t, ObjectMissionPlan *> m_objMissionPlans;
|
|
LOGGER_T m_logger;
|
|
};
|
|
|
|
}
|
|
}// namespace ParticipantManagement
|
|
|