Files
autopilot/drone_controller/az_mission_controller.h
Tuomas Järvinen 38953d0ba6 Use MAVSDK::RawMission in AzMissionController
TODO!!
- send mission indexes from AzMissionController to AzDroneController
- handle finishing of the mission
2024-12-01 21:51:02 +01:00

47 lines
1.3 KiB
C++

#pragma once
#include <QObject>
#include <mavsdk/mavsdk.h>
#include <mavsdk/plugins/mission_raw/mission_raw.h>
#include <mavsdk/plugins/telemetry/telemetry.h>
#include "az_mission.h"
using namespace mavsdk;
class AzMissionController : public QObject
{
Q_OBJECT
public:
explicit AzMissionController(System &system, AzMission &mission, QObject *parent = nullptr);
bool startMission();
void stopMission(void);
bool uploadMission(void);
private:
MissionRaw::MissionItem makeRawMissionItem(float latitudeDeg1e7,
float longitudeDeg1e7,
int32_t altitude,
float doPhoto,
MAV_FRAME frame,
MAV_CMD command,
float p2 = 0,
float p3 = 0);
public slots:
void newPosition(Telemetry::Position position);
signals:
void missionProgressChanged(int currentIndex, int totalIndexes);
void finished(void);
private:
AzMission &mAzMission;
int mCurrentMissionIndex;
bool mMissionStarted;
int mMissionItemSeqNum;
MissionRaw *mMissionRaw;
System &mSystem;
};