106 lines
2.1 KiB
C++
106 lines
2.1 KiB
C++
#ifndef MISSIONPROCESS_H
|
|
#define MISSIONPROCESS_H
|
|
|
|
#include <QObject>
|
|
#include "mavlinknode.h"
|
|
|
|
#include "QDebug"
|
|
#include "QThread"
|
|
#include "mavlink.h"
|
|
#include "QTimer"
|
|
|
|
#ifdef QtMavlinkNode
|
|
#include <mavlinknodeglobal.h>
|
|
class MAVLINKNODESHARED_EXPORT MissionProcess : public QObject {
|
|
#else
|
|
class MissionProcess : public QObject
|
|
{
|
|
#endif
|
|
Q_OBJECT
|
|
public:
|
|
explicit MissionProcess(QObject *parent = nullptr);
|
|
|
|
|
|
public slots:
|
|
//线程对外接口
|
|
void setRunFrq(uint32_t frq);
|
|
void start();
|
|
void stop();
|
|
|
|
|
|
void MissionParse(mavlink_message_t msg);
|
|
|
|
private slots:
|
|
//线程私有接口
|
|
void process();
|
|
|
|
|
|
|
|
//航线读取传输
|
|
void ReadMissionRequest();
|
|
|
|
|
|
void request_list(void);
|
|
void count(uint16_t count);
|
|
void request_int(uint16_t seq);
|
|
void request(uint16_t seq);
|
|
void item_int(float param1,float param2,float param3,float param4,
|
|
float x,float y,float z,
|
|
uint16_t seq,uint16_t command,
|
|
uint8_t frame,uint8_t current,
|
|
uint8_t autocontinue,uint8_t mission_type);
|
|
void item(float param1,float param2,float param3,float param4,
|
|
float x,float y,float z,
|
|
uint16_t seq,uint16_t command,
|
|
uint8_t frame,uint8_t current,
|
|
uint8_t autocontinue,uint8_t mission_type);
|
|
void ack(void);
|
|
void current(void);
|
|
void setcurrent(void);
|
|
void clear_all(void);
|
|
|
|
|
|
signals:
|
|
|
|
|
|
private:
|
|
|
|
uint8_t sysid;
|
|
uint8_t compid;
|
|
|
|
|
|
mavlink_mission_count_t mission_count;
|
|
mavlink_mission_item_t mission_item;
|
|
mavlink_mission_item_int_t mission_item_int;
|
|
mavlink_mission_request_t mission_request;
|
|
mavlink_mission_request_int_t mission_request_int;
|
|
mavlink_mission_ack_t mission_ack;
|
|
|
|
|
|
|
|
bool running_flag = false;
|
|
quint32 running_frq = 200;//200Hz
|
|
QThread *Missionthread = nullptr;
|
|
|
|
|
|
|
|
|
|
bool isRecieveCount = false;
|
|
|
|
|
|
bool isReadMission = false;
|
|
|
|
|
|
|
|
QTimer *mTimer = nullptr;
|
|
|
|
|
|
};
|
|
|
|
|
|
void SendMessageTo(uint8_t ch, QByteArray data,uint16_t len);
|
|
|
|
|
|
|
|
#endif // MISSIONPROCESS_H
|