修改航线,参数,消息等

This commit is contained in:
hm
2021-08-23 10:09:44 +08:00
parent e096f9cef6
commit c8ba57fcb7
4 changed files with 153 additions and 21 deletions
+88 -8
View File
@@ -1,8 +1,35 @@
#include "Vehicle.h"
/*
* 1. 判断飞机是否丢失信号
* 2. 状态更新(飞机从数据链发来的数据)
* 3. 选择发beep声
* 4. 飞机自身状态(如选中)
* 5. 组别情况
* 6. 所有的指令,参数,航线,都通过飞机自己发送,飞机跟自己特定的数据链相连
* 7. 记录所有发过的指令等
*/
Vehicle::Vehicle(QObject *parent) : QObject(parent)
{
//WayPointGroup.begin().value().begin().value()
qint32 group = 0;//没有任何组别
bool select = false;
qint32 sysid = 1;
//数据链 地址等信息
//参数
//航线
//指令
//记录
}
@@ -11,25 +38,78 @@ Vehicle::~Vehicle()
}
void Vehicle::_Handler(mavlink_message_t msg)
{
//用于给参数添加设备,便于读取
switch (msg.msgid) {
//航线部分
case MAVLINK_MSG_ID_MISSION_REQUEST_LIST:
case MAVLINK_MSG_ID_MISSION_COUNT:
case MAVLINK_MSG_ID_MISSION_REQUEST_INT:
case MAVLINK_MSG_ID_MISSION_REQUEST:
case MAVLINK_MSG_ID_MISSION_ITEM_INT:
case MAVLINK_MSG_ID_MISSION_ITEM:
case MAVLINK_MSG_ID_MISSION_ACK:
case MAVLINK_MSG_ID_MISSION_CURRENT:
case MAVLINK_MSG_ID_MISSION_SET_CURRENT:
case MAVLINK_MSG_ID_MISSION_CLEAR_ALL:
case MAVLINK_MSG_ID_MISSION_ITEM_REACHED:
case MAVLINK_MSG_ID_MISSION_REQUEST_PARTIAL_LIST:
case MAVLINK_MSG_ID_MISSION_WRITE_PARTIAL_LIST:
//Mission->Parse(msg);
break;
//参数
case MAVLINK_MSG_ID_PARAM_REQUEST_LIST:
case MAVLINK_MSG_ID_PARAM_REQUEST_READ:
case MAVLINK_MSG_ID_PARAM_SET:
case MAVLINK_MSG_ID_PARAM_VALUE:
//Parameter->Parse(msg);
break;
//命令
case MAVLINK_MSG_ID_COMMAND_INT:
case MAVLINK_MSG_ID_COMMAND_LONG:
case MAVLINK_MSG_ID_COMMAND_ACK:
//Commander->Parse(msg);
break;
//终端
case MAVLINK_MSG_ID_SERIAL_CONTROL:
//Terminal->Parse(msg);
break;
//状态
default:
//StatusParse(msg);
break;
}
}
void Vehicle::setType(int t)
{
Q_UNUSED(t)
//type = t;
}
void Vehicle::setMsg(int idx,int m)
void Vehicle::setMsg(mavlink_message_t *msg)
{
Q_UNUSED(idx)
Q_UNUSED(m)
messages.insert(msg->msgid,msg);
}
void Vehicle::setParam(int idx, param *p)
void Vehicle::setParam(mavlink_param_value_t *param)
{
params.insert(idx,p);
parameters.insert(param->param_index,param);
}
void Vehicle::setMission(int idx, item_int * i)
void Vehicle::setMission(mavlink_mission_item_int_t * item)
{
//waypoint.insert(idx,i);
waypoints.insert(item->seq,item);
}
+61 -11
View File
@@ -3,12 +3,12 @@
#include "VehicleManage_global.h"
#include <QObject>
#include "QIcon"
#include "QHash"
#include "QMap"
#include "VehicleType.h"
#include "QDebug"
#include "mavlink.h"
/*
@@ -46,9 +46,9 @@ public slots:
void setType(int t);
void setMsg(int idx, int m);
void setParam(int idx,param *p);
void setMission(int idx, item_int *i);
void setMsg(mavlink_message_t *msg);
void setParam(mavlink_param_value_t *param);
void setMission(mavlink_mission_item_int_t *item);
private slots:
@@ -56,13 +56,62 @@ private slots:
private:
//基本信息
QIcon icon = "fixwing.png";
QColor tailColor = "#026F80";
QColor wayColor = "#F09382";
int sysid = 0;
bool isSeleted = false;
int type = 0;//设备类型
int sysid;
bool arm;
int flightmode;
bool heartbeat = false;
bool isOnline = false;
//惯性
qreal roll;
qreal pitch;
qreal yaw;
qreal p;
qreal q;
qreal r;
qreal ax;
qreal ay;
qreal az;
//导航
double lat;
double lng;
qreal RelativeAltitude;//相对海拔
qreal AbsoluteAltitude;//绝对海拔
qreal groudspeed;
qreal heading;
int fixType;
int Satellites;
//大气
qreal tas;
qreal cas;
qreal Ma;
qreal alpha;
qreal beta;
//控制
state m_state;
//state m_state;
/*
* 航线组
@@ -77,13 +126,14 @@ private:
*
*/
QMap<int,QMap<int,item_int *>> WayPointGroup;//航线组
QMap<int,mavlink_mission_item_int_t *> waypoints;//航线组
QMap<int,int> msg;
QMap<int,param *> params;
QMap<quint32,mavlink_message_t *> messages;
QMap<int,mavlink_param_value_t *> parameters;
+2 -1
View File
@@ -1,5 +1,6 @@
#include "VehicleManage.h"
VehicleManage::VehicleManage()
{
@@ -24,7 +25,7 @@ void VehicleManage::setMsg(int sysid,int s)
Vehicle *v = Vehicles.value(sysid);
v->setMsg(s,s);
//v->setMsg(s,s);
}
+2 -1
View File
@@ -1,4 +1,4 @@
QT -= gui
QT += gui
TEMPLATE = lib
DEFINES += VEHICLEMANAGE_LIBRARY
@@ -29,6 +29,7 @@ MOC_DIR = $$PWD/../build
OBJECTS_DIR = $$PWD/../build
#添加mavlink目录
#INCLUDEPATH += $$PWD/../mavlink
INCLUDEPATH += $$PWD/../mavlink \
$$PWD/../mavlink/ardupilotmega \
$$PWD/../mavlink/common \