61 lines
2.5 KiB
C++
Executable File
61 lines
2.5 KiB
C++
Executable File
/**
|
|
* The ObjectMissionPlan class represents a ObjectMissionPlan. It holds the data and offers some conversion methods.
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
* Created by Steve Kemayou, ESZS, 2025-04-08
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
|
|
#include <ParticipantManagement/ppm_db.h>
|
|
#include <ParticipantManagement/ppm_dtc.h>
|
|
#include <ParticipantManagement/logger.h>
|
|
#include <ParticipantManagement/dds_handler.h>
|
|
#include "logger.h"
|
|
|
|
#include <QObject>
|
|
namespace ParticipantManagement
|
|
{
|
|
namespace UasHandling
|
|
{
|
|
class ObjectMissionPlan : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit ObjectMissionPlan(const std::shared_ptr<ParticipantManagement::DdsHandler> &ddsHandler,
|
|
const std::shared_ptr<ParticipantManagement::DatabaseInterface> &db,
|
|
const ParticipantManagement::MissionPlan &missionPlan,
|
|
QObject *parent = nullptr);
|
|
|
|
|
|
int32_t id() const;
|
|
int32_t participantId() const;
|
|
static Database::PpmMissionPlan toDbMissionPlan(const ParticipantManagement::ModifyMissionPlanRequest &mp);
|
|
static MissionPlan fillMissionPlanData(const ModifyMissionPlanRequest &in);
|
|
MissionPlan getMissionPlanData() const;
|
|
void setDbMissionItems( const QMap <int, ParticipantManagement::Database::PpmMissionItem> &dbItems,
|
|
const QMap <int, ParticipantManagement::Database::PpmMissionAction> &dbActions);
|
|
const ParticipantManagement::MissionPlan &missionPlan() const;
|
|
Core::FunctionReplyObject createMissionPlan(Database::PpmMissionPlan newMissionPlan, const std::vector<MissionItem> &missionItems);
|
|
Core::FunctionReplyObject updateMissionPlan(Database::PpmMissionPlan newMissionPlan, const std::vector<MissionItem> &missionItems);
|
|
Core::FunctionReplyObject removeMissionPlan(int id);
|
|
|
|
Core::FunctionReplyObject setMissionActionFulfilled(SetMissionActionFulfilledRequest req, qint64 currentTimeMSec);
|
|
Core::FunctionReplyObject setMissionPlanAborted(bool state);
|
|
private:
|
|
std::shared_ptr<ParticipantManagement::DdsHandler> m_ddsHandler;
|
|
std::shared_ptr<ParticipantManagement::DatabaseInterface> m_db;
|
|
ParticipantManagement::MissionPlan m_missionplan;
|
|
QHash<int /*dbItemId*/, ParticipantManagement::MissionItem > m_mapMissionItems; /// key:dbItemId | Value MissionItem
|
|
|
|
std::vector<std::vector<ParticipantManagement::Database::PpmMissionAction> > m_dbMissionActions; /// [ItemNumber][ActionNumber]
|
|
|
|
LOGGER_T m_logger;
|
|
};
|
|
|
|
} // namespace UasHandling
|
|
} // namespace ParticipantManagement
|
|
|