b
This commit is contained in:
+91
-35
@@ -29,7 +29,7 @@ void MavLinkNode::setRunFrq(uint32_t frq)
|
||||
if((frq != 0)||(frq <= 1000))
|
||||
{
|
||||
running_frq = frq;
|
||||
qDebug() << "set running frquency:" <<frq <<"Hz";
|
||||
qDebug() << "set Mavlink Node running frquency:" <<frq <<"Hz";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -202,20 +202,66 @@ void MavLinkNode::Mavlinkparse(quint32 src,QByteArray datagram)
|
||||
|
||||
void MavLinkNode::MAVLinkRcv_Handler(mavlink_message_t msg)
|
||||
{
|
||||
//vehicle.sysid = msg.sysid;
|
||||
//vehicle.compid = MAV_COMP_ID_AUTOPILOT1;//msg.compid;
|
||||
switch (msg.msgid) {
|
||||
//状态
|
||||
case MAVLINK_MSG_ID_AUTOPILOT_VERSION:
|
||||
case MAVLINK_MSG_ID_SYS_STATUS:
|
||||
case MAVLINK_MSG_ID_HEARTBEAT:
|
||||
case MAVLINK_MSG_ID_PING:
|
||||
case MAVLINK_MSG_ID_ATTITUDE:
|
||||
case MAVLINK_MSG_ID_GPS_RAW_INT:
|
||||
case MAVLINK_MSG_ID_GLOBAL_POSITION_INT:
|
||||
case MAVLINK_MSG_ID_SERVO_OUTPUT_RAW:
|
||||
case MAVLINK_MSG_ID_RC_CHANNELS_RAW:
|
||||
case MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT:
|
||||
case MAVLINK_MSG_ID_AIRSPEED_AUTOCAL:
|
||||
case MAVLINK_MSG_ID_RPM:
|
||||
case MAVLINK_MSG_ID_SCALED_PRESSURE:
|
||||
case MAVLINK_MSG_ID_EXTENDED_SYS_STATE:
|
||||
case MAVLINK_MSG_ID_BATTERY_STATUS:
|
||||
case MAVLINK_MSG_ID_VIBRATION:
|
||||
case MAVLINK_MSG_ID_EngineState:
|
||||
case MAVLINK_MSG_ID_VFR_HUD:
|
||||
StateParse(msg);
|
||||
break;
|
||||
|
||||
//航线部分
|
||||
case MAVLINK_MSG_ID_MISSION_COUNT:
|
||||
case MAVLINK_MSG_ID_MISSION_CURRENT:
|
||||
//case MAVLINK_MSG_ID_MISSION_ITEM:
|
||||
case MAVLINK_MSG_ID_MISSION_ITEM_INT:
|
||||
//case MAVLINK_MSG_ID_MISSION_REQUEST:
|
||||
case MAVLINK_MSG_ID_MISSION_REQUEST_INT:
|
||||
case MAVLINK_MSG_ID_MISSION_ACK:
|
||||
MissionParse(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:
|
||||
ParamParse(msg);
|
||||
break;
|
||||
|
||||
//命令
|
||||
case MAVLINK_MSG_ID_COMMAND_ACK:
|
||||
CommandParse(msg);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void MavLinkNode::StateParse(mavlink_message_t msg)
|
||||
{
|
||||
switch (msg.msgid) {
|
||||
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: {
|
||||
mavlink_msg_attitude_decode(&msg,&vehicle.attitude);
|
||||
qDebug() << "vehicle.attitude.pitch" << vehicle.attitude.pitch;
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_GPS_RAW_INT: {
|
||||
mavlink_msg_gps_raw_int_decode(&msg,&vehicle.gps_raw_int);
|
||||
@@ -226,7 +272,47 @@ void MavLinkNode::MAVLinkRcv_Handler(mavlink_message_t msg)
|
||||
case MAVLINK_MSG_ID_VFR_HUD: {
|
||||
mavlink_msg_vfr_hud_decode(&msg,&vehicle.vfr_hud);
|
||||
}break;
|
||||
}
|
||||
}
|
||||
|
||||
void MavLinkNode::ParamParse(mavlink_message_t msg)
|
||||
{
|
||||
switch (msg.msgid) {
|
||||
case MAVLINK_MSG_ID_PARAM_REQUEST_LIST: {
|
||||
mavlink_msg_param_request_list_decode(&msg,&vehicle.param_request_list);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_PARAM_REQUEST_READ: {
|
||||
mavlink_msg_param_request_read_decode(&msg,&vehicle.param_request_read);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_PARAM_SET: {
|
||||
mavlink_msg_param_set_decode(&msg,&vehicle.param_set);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_PARAM_VALUE: {//分类解码
|
||||
mavlink_msg_param_value_decode(&msg,&vehicle.param_value);
|
||||
//要判断是否是全部读取,如果不是那么就不发送那么多
|
||||
//emit recieveParamater(vehicle.param_value);//发送收到参数
|
||||
|
||||
if(vehicle.param_value.param_index < (vehicle.param_value.param_count-1))
|
||||
{
|
||||
// Mavlink_param_request_read(vehicle.param_value.param_index + 1);
|
||||
}
|
||||
}break;
|
||||
}
|
||||
}
|
||||
|
||||
void MavLinkNode::CommandParse(mavlink_message_t msg)
|
||||
{
|
||||
switch (msg.msgid) {
|
||||
case MAVLINK_MSG_ID_COMMAND_ACK: {
|
||||
mavlink_command_ack_t ack;
|
||||
mavlink_msg_command_ack_decode(&msg,&ack);
|
||||
}break;
|
||||
}
|
||||
}
|
||||
|
||||
void MavLinkNode::MissionParse(mavlink_message_t msg)
|
||||
{
|
||||
switch (msg.msgid) {
|
||||
//航线部分
|
||||
case MAVLINK_MSG_ID_MISSION_COUNT: {//飞控发来计数值,然后开始读取
|
||||
mavlink_msg_mission_count_decode(&msg,&vehicle.mission_count);
|
||||
@@ -258,35 +344,5 @@ void MavLinkNode::MAVLinkRcv_Handler(mavlink_message_t msg)
|
||||
mavlink_msg_mission_request_int_decode(&msg,&vehicle.mission_request_int);
|
||||
//emit mission_item_request_int(vehicle.mission_request_int.seq);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_MISSION_ACK: {
|
||||
mavlink_msg_mission_ack_decode(&msg,&vehicle.mission_ack);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_PARAM_REQUEST_LIST: {
|
||||
mavlink_msg_param_request_list_decode(&msg,&vehicle.param_request_list);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_PARAM_REQUEST_READ: {
|
||||
mavlink_msg_param_request_read_decode(&msg,&vehicle.param_request_read);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_PARAM_SET: {
|
||||
mavlink_msg_param_set_decode(&msg,&vehicle.param_set);
|
||||
}break;
|
||||
case MAVLINK_MSG_ID_PARAM_VALUE: {//分类解码
|
||||
mavlink_msg_param_value_decode(&msg,&vehicle.param_value);
|
||||
//要判断是否是全部读取,如果不是那么就不发送那么多
|
||||
//emit recieveParamater(vehicle.param_value);//发送收到参数
|
||||
|
||||
if(vehicle.param_value.param_index < (vehicle.param_value.param_count-1))
|
||||
{
|
||||
// Mavlink_param_request_read(vehicle.param_value.param_index + 1);
|
||||
}
|
||||
}break;
|
||||
}
|
||||
//最后更新一下界面
|
||||
//emit vehicleUpdate();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user