add mavlink parse
This commit is contained in:
+11
-1
@@ -14,6 +14,14 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
|
||||
dlink = new DLink();
|
||||
|
||||
/*
|
||||
connect(dlink->mavlinknode,&MavLinkNode::state_updated,
|
||||
this,&MainWindow::updateUI);
|
||||
*/
|
||||
connect(dlink->mavlinknode,SIGNAL(state_updated()),
|
||||
this,SLOT(updateUI()));
|
||||
|
||||
|
||||
map = new mapcontrol::OPMapWidget(this);
|
||||
|
||||
map->SetShowHome(false);
|
||||
@@ -54,7 +62,7 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
connect(updateTimer,&QTimer::timeout,
|
||||
this,&MainWindow::updateUI);
|
||||
|
||||
updateTimer->start(20);
|
||||
//updateTimer->start(20);
|
||||
|
||||
|
||||
}
|
||||
@@ -153,6 +161,8 @@ void MainWindow::client_triggered()
|
||||
void MainWindow::updateUI()
|
||||
{
|
||||
|
||||
qDebug() << "updateUI";
|
||||
|
||||
copk->setAttitude(dlink->mavlinknode->vehicle.attitude.pitch * 57.3,
|
||||
dlink->mavlinknode->vehicle.attitude.roll * 57.3,
|
||||
dlink->mavlinknode->vehicle.attitude.yaw * 57.3);
|
||||
|
||||
@@ -222,7 +222,7 @@ void MavLinkNode::MAVLinkRcv_Handler(mavlink_message_t msg)
|
||||
case MAVLINK_MSG_ID_VIBRATION:
|
||||
case MAVLINK_MSG_ID_EngineState:
|
||||
case MAVLINK_MSG_ID_VFR_HUD:
|
||||
StateParse(msg);
|
||||
StatusParse(msg);
|
||||
break;
|
||||
|
||||
//航线部分
|
||||
@@ -251,28 +251,70 @@ void MavLinkNode::MAVLinkRcv_Handler(mavlink_message_t msg)
|
||||
}
|
||||
}
|
||||
|
||||
void MavLinkNode::StateParse(mavlink_message_t msg)
|
||||
void MavLinkNode::StatusParse(mavlink_message_t msg)
|
||||
{
|
||||
switch (msg.msgid) {
|
||||
case MAVLINK_MSG_ID_HEARTBEAT: {
|
||||
//qDebug() << "msgid:" << msg.msgid;
|
||||
switch (msg.msgid) {
|
||||
case MAVLINK_MSG_ID_AUTOPILOT_VERSION: {
|
||||
mavlink_msg_autopilot_version_decode(&msg,&vehicle.autopilot_version);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_SYS_STATUS: {
|
||||
mavlink_msg_sys_status_decode(&msg,&vehicle.sys_status);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_HEARTBEAT: {
|
||||
mavlink_msg_heartbeat_decode(&msg,&vehicle.heartbeat);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_PING: {
|
||||
mavlink_msg_ping_decode(&msg,&vehicle.ping);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_ATTITUDE: {
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_ATTITUDE: {
|
||||
mavlink_msg_attitude_decode(&msg,&vehicle.attitude);
|
||||
emit state_updated();
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_GPS_RAW_INT: {
|
||||
mavlink_msg_gps_raw_int_decode(&msg,&vehicle.gps_raw_int);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_GLOBAL_POSITION_INT: {
|
||||
mavlink_msg_global_position_int_decode(&msg,&vehicle.global_position_int);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_SERVO_OUTPUT_RAW: {
|
||||
mavlink_msg_servo_output_raw_decode(&msg,&vehicle.servo_output_raw);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_RC_CHANNELS_RAW: {
|
||||
mavlink_msg_rc_channels_raw_decode(&msg,&vehicle.rc_channels_raw);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT: {
|
||||
mavlink_msg_nav_controller_output_decode(&msg,&vehicle.nav_controller_output);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_AIRSPEED_AUTOCAL: {
|
||||
mavlink_msg_airspeed_autocal_decode(&msg,&vehicle.airspeed_autocal);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_RPM: {
|
||||
mavlink_msg_rpm_decode(&msg,&vehicle.rpm);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_SCALED_PRESSURE: {
|
||||
mavlink_msg_scaled_pressure_decode(&msg,&vehicle.scaled_pressure);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_EXTENDED_SYS_STATE: {
|
||||
mavlink_msg_extended_sys_state_decode(&msg,&vehicle.extended_sys_state);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_BATTERY_STATUS: {
|
||||
mavlink_msg_battery_status_decode(&msg,&vehicle.battery_status);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_VIBRATION: {
|
||||
mavlink_msg_vibration_decode(&msg,&vehicle.vibration);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_EngineState: {
|
||||
mavlink_msg_enginestate_decode(&msg,&vehicle.enginestate);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_VFR_HUD: {
|
||||
mavlink_msg_vfr_hud_decode(&msg,&vehicle.vfr_hud);
|
||||
}break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void MavLinkNode::ParamParse(mavlink_message_t msg)
|
||||
|
||||
+17
-11
@@ -29,20 +29,25 @@ class MavLinkNode : public QObject
|
||||
uint8_t sysid; /*< ID of message sender system/aircraft */
|
||||
uint8_t compid; /*< ID of the message sender component */
|
||||
|
||||
mavlink_heartbeat_t heartbeat_old;
|
||||
mavlink_autopilot_version_t autopilot_version;
|
||||
mavlink_sys_status_t sys_status;
|
||||
mavlink_heartbeat_t heartbeat;
|
||||
|
||||
mavlink_ping_t ping;
|
||||
|
||||
mavlink_attitude_t attitude;
|
||||
mavlink_gps_raw_int_t gps_raw_int;
|
||||
mavlink_battery_status_t battery_status;
|
||||
mavlink_rpm_t rpm;
|
||||
mavlink_rc_channels_raw_t rc_channels_raw;
|
||||
mavlink_global_position_int_t global_position_int;
|
||||
mavlink_servo_output_raw_t servo_output_raw;
|
||||
mavlink_scaled_pressure_t scaled_pressure;
|
||||
mavlink_vfr_hud_t vfr_hud;
|
||||
mavlink_rc_channels_raw_t rc_channels_raw;
|
||||
mavlink_nav_controller_output_t nav_controller_output;
|
||||
mavlink_airspeed_autocal_t airspeed_autocal;
|
||||
mavlink_rpm_t rpm;
|
||||
mavlink_scaled_pressure_t scaled_pressure;
|
||||
mavlink_extended_sys_state_t extended_sys_state;
|
||||
mavlink_battery_status_t battery_status;
|
||||
mavlink_vibration_t vibration;
|
||||
mavlink_enginestate_t enginestate;
|
||||
mavlink_vfr_hud_t vfr_hud;
|
||||
|
||||
mavlink_command_int_t command_int;
|
||||
mavlink_mission_count_t mission_count;
|
||||
mavlink_mission_item_t mission_item;
|
||||
@@ -79,14 +84,15 @@ public:
|
||||
|
||||
|
||||
signals:
|
||||
|
||||
void state_updated();
|
||||
void parameter_updated();
|
||||
void mission_updated();
|
||||
public slots:
|
||||
//线程对外接口
|
||||
void setRunFrq(uint32_t frq);
|
||||
void start();
|
||||
void stop();
|
||||
|
||||
|
||||
//缓存对外接口
|
||||
void setbuff(quint32 src, QByteArray data);
|
||||
|
||||
@@ -104,7 +110,7 @@ private slots:
|
||||
|
||||
void MAVLinkRcv_Handler(mavlink_message_t msg);
|
||||
|
||||
void StateParse(mavlink_message_t msg);
|
||||
void StatusParse(mavlink_message_t msg);
|
||||
void ParamParse(mavlink_message_t msg);
|
||||
void CommandParse(mavlink_message_t msg);
|
||||
void MissionParse(mavlink_message_t msg);
|
||||
|
||||
+8
-9
@@ -8,13 +8,6 @@
|
||||
#include "QDebug"
|
||||
#include "mavlinknode.h"
|
||||
|
||||
struct Node{
|
||||
QUdpSocket * sock;
|
||||
QHostAddress addr;
|
||||
quint16 port;
|
||||
};
|
||||
|
||||
|
||||
#ifdef QtDlink
|
||||
#include <dlinkglobal.h>
|
||||
class DLINKSHARED_EXPORT DLink : public QObject {
|
||||
@@ -22,9 +15,15 @@ class DLINKSHARED_EXPORT DLink : public QObject {
|
||||
class DLink : public QObject
|
||||
{
|
||||
#endif
|
||||
|
||||
|
||||
Q_OBJECT
|
||||
|
||||
struct Node{
|
||||
QUdpSocket * sock;
|
||||
QHostAddress addr;
|
||||
quint16 port;
|
||||
};
|
||||
|
||||
|
||||
public:
|
||||
explicit DLink(QObject *parent = nullptr);
|
||||
~DLink();
|
||||
|
||||
Reference in New Issue
Block a user