Files
gcs-nf/MavLinkNode/parameterprocess.h
T

161 lines
3.3 KiB
C++
Raw Normal View History

#ifndef PARAMETERPROCESS_H
#define PARAMETERPROCESS_H
#include <QObject>
#include "QDebug"
#include "QThread"
#include "mavlink.h"
#include "QTimer"
#include "QTime"
2020-06-08 17:54:17 +08:00
//#include "ParameterInspector/ParameterInspector.h"
#ifdef QtMavlinkNode
#include <mavlinknodeglobal.h>
class MAVLINKNODESHARED_EXPORT ParameterProcess : public QObject{
#else
class ParameterProcess : public QObject
{
#endif
Q_OBJECT
enum _modetype {
Nop_Mode = 0,
RecieveMode,
TransmitMode
};
enum _readtype {
All = 0,
One = 1
};
typedef struct {
//bool isWaitingforCount;
bool isWaitingforValue;
_readtype type;
}_recieve;
typedef struct {
uint32_t count;
//bool isWaiteforRequest;
bool isWaitingforValue;
}_transmit;
typedef struct
{
_recieve recieve;
_transmit transmit;
_modetype m_Mode;
}_parameter_;
public:
explicit ParameterProcess(QObject *parent = nullptr);
_parameter_ status;
2020-08-04 23:18:58 +08:00
void setGCSID(int m_sysid, int m_compid)
{
Current_sysID = m_sysid;
Current_CompID = m_compid;
}
2020-06-08 17:54:17 +08:00
// ParameterInspector *paramInspect;
2020-03-23 18:39:05 +08:00
public slots:
2020-06-02 18:39:43 +08:00
void setID(int m_sysid, int m_compid);
//读取和写入指令
void ReadCmd(uint8_t m_sysid, uint8_t m_compid, uint8_t type);
2020-06-05 18:05:16 +08:00
void WriteCmd(uint8_t m_sysid, uint8_t m_compid , const char *id, uint8_t type, float value);
2020-03-23 18:39:05 +08:00
//线程对外接口
void setRunFrq(uint32_t frq);
void start();
void stop();
2020-04-03 09:39:31 +08:00
void Parse(mavlink_message_t msg);
private slots:
//线程私有接口
void SendMessage(mavlink_message_t msg);
void process();
//状态机
void ReadStateMachine(void);
void WriteStateMachine(void);
//所有的相关函数
void set(const char *id, uint8_t type, float value);
void value(float value);
void ext_ack(float value);
void ext_set(const char *id, uint8_t type, float value);
void ext_value(float value);
void request_list(void);
void request_read(const char *id, int16_t index);
signals:
2020-07-01 18:22:49 +08:00
void showMessage(const QString &message,int TimeOut = 0);
void readError();
void SendMessageTo(quint8 ch, quint8 *data,quint16 len);
2020-06-08 17:54:17 +08:00
void RecieveValue(mavlink_message_t msg);
private:
2020-04-03 09:39:31 +08:00
//线程运行参数
bool running_flag = false;
quint32 running_frq = 200;//200Hz
QThread *thread = nullptr;
2020-04-03 09:39:31 +08:00
//目标id
uint8_t sysid;
uint8_t compid;
2020-08-04 23:18:58 +08:00
//本机的id
int Current_sysID = 0xF1;
int Current_CompID = 0xF1;
2020-08-08 21:07:33 +08:00
//超时时间(ms
int readTimeout = 3000;
int sendTimeout = 3000;
mavlink_param_set_t param_set;//
mavlink_param_union_t param_union;
mavlink_param_value_t param_value;//
mavlink_param_map_rc_t param_map;
mavlink_param_ext_ack_t param_ext_ack;
mavlink_param_ext_set_t param_ext_set;
mavlink_param_ext_value_t param_ext_value;
mavlink_param_request_list_t param_request_list;//
mavlink_param_request_read_t param_request_read;//
mavlink_param_union_double_t param_union_double;
mavlink_param_ext_request_list_t param_ext_request_list;
mavlink_param_ext_request_read_t param_ext_request_read;
};
#endif // PARAMETERPROCESS_H