Use MAVSDK::RawMission in AzMissionController

TODO!!
- send mission indexes from AzMissionController to AzDroneController
- handle finishing of the mission
This commit is contained in:
Tuomas Järvinen
2024-12-01 21:51:02 +01:00
parent 37e8cfd3fe
commit 38953d0ba6
5 changed files with 170 additions and 256 deletions
+20 -13
View File
@@ -1,12 +1,12 @@
#pragma once
#include <QObject>
#include <QElapsedTimer>
#include <mavsdk/mavsdk.h>
#include <mavsdk/plugins/mission_raw/mission_raw.h>
#include <mavsdk/plugins/telemetry/telemetry.h>
#include "az_mission.h"
#include "plugins/action/action.h"
using namespace mavsdk;
@@ -14,10 +14,20 @@ class AzMissionController : public QObject
{
Q_OBJECT
public:
explicit AzMissionController(AzMission &mission, QObject *parent = nullptr);
void setAction(Action *action);
bool startMissions(float absoluteAltitude);
void stopMissions(void);
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);
@@ -27,13 +37,10 @@ signals:
void finished(void);
private:
bool flyToNextMissionItem(void);
AzMission &mMission;
Action *mAction;
AzMission &mAzMission;
int mCurrentMissionIndex;
bool mMissionStarted;
bool mFlyingToReturnPoint;
float mAbsoluteAltitude;
QElapsedTimer mPlaneCirclingTime;
int mMissionItemSeqNum;
MissionRaw *mMissionRaw;
System &mSystem;
};