Files
qt5-legatus-legacy/Lts/Services/CentralEffectSimulation/Plugins/MissionPlan/ces_mission_plan_object.h
T
2026-08-13 18:33:10 +02:00

70 lines
2.3 KiB
C++
Executable File

/**
* Plugin CES Mission Plan
* $Id: $
* $HeadURL: svn://slssvn/TDS/branches/product/features/25_03_etb_uas/Lts/Services/CentralEffectSimulation/Plugins/MissionPlan/ces_mission_plan_object.h $
* $Author: Kemayou_s $
* Created by Steve Kemayou, ESZS, 2025-06-25
*/
#pragma once
#include <ParticipantManagement/ppm_db.h>
#include <ParticipantManagement/ppm_dtc.h>
#include <ParticipantManagement/logger.h>
#include <CentralEffectSimulation/dds_handler.h>
#include <CentralEffectSimulation/logger.h>
#include <QTimer>
#include <QObject>
namespace CES_MISSIONPLAN
{
class CesMissionPlanHandler;
class CesMissionPlanObject : public QObject
{
Q_OBJECT
public:
explicit CesMissionPlanObject(const ParticipantManagement::MissionPlan &missionPlan,
const std::shared_ptr<CentralEffectSimulation::DdsHandler> &ddsHandler,
QObject *parent = nullptr);
friend class CesMissionPlanHandler;
void setMissionActionFulfilled(const ParticipantManagement::MissionAction &msa);
int planId() const;
int participantId() const; /// uas participantId
bool isMissionFulfilled(const ParticipantManagement::MissionPlan &mission);
protected:
void sendActionAttact();
AreaEffectSimulation::ExplosionClusterSingleEffectOnlyRequest getExplosionCluster();
ParticipantManagement::MissionPlan &missionPlan();
const ParticipantManagement::MissionAction getNextAction() ;
public slots:
void sendNextMissionAction();
void setMissionPlan(const ParticipantManagement::MissionPlan &plan);
void setMissionCompleted();
void abortMission();
signals:
void ready2SendNextAction(const ParticipantManagement::MissionAction & msa);
void missionPlanCompleted(const int planId);
void missionPlanCompleted(const ParticipantManagement::MissionPlan &missionPlan);
void missionActionFulfilled(const ParticipantManagement::MissionAction &missionAction);
// void missionAction
private: // private methods
void deleteMissionPlanObject();
private:
QTimer *m_missionStartimer{nullptr};
QTimer *m_loiterTimer{nullptr};
std::shared_ptr<CentralEffectSimulation::DdsHandler> m_ddsHandler;
ParticipantManagement::MissionPlan m_missionPlan;
NGL::INGLLogger &m_logger; ///< Interface to the Logging-Facility
};
}