mavlink 自定义消息编程

 紧接着上一篇的操作方法,根据自定义的xml生成基于mavlink协议形式的消息。将其添加到工程中,并且调用起来的示例demo代码如下:
  • 将生成自定义消息目录拷贝到工程下
#include <iostream>
#include <mavlink.h>
#include <string>
//#include "SerialPort.hpp"using namespace std;int main(int argc , char * argv[]) {std::cout << "Hello mavlink !" << std::endl;uint8_t system_id = 1;uint8_t component_id = 1;//定义mavlink标准消息结构体mavlink_message_t msg;uint8_t buffer[MAVLINK_MAX_PACKET_LEN] = {};//上传航线包,初始化信息1mavlink_upload_route_t packet_in = {963497464,963497672,963497880,1,1};//上传航线包,初始化信息2mavlink_upload_route_t packet1, packet2;memset(&packet1, 0, sizeof(packet1));packet1.lon = packet_in.lon;packet1.lat = packet_in.lat;packet1.alt = packet_in.alt;packet1.route_id = packet_in.route_id;packet1.point_id = packet_in.point_id;memset(&packet2, 0, sizeof(packet2));//将packet1 打包成 msg 格式, 加上mavlink协议头. 编码mavlink_msg_upload_route_encode(system_id, component_id, &msg, &packet1);//将mavlink协议包转换为自定义消息包, 解码mavlink_msg_upload_route_decode(&msg, &packet2);MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);//输出packet2cout << "route_id:" << to_string(packet2.route_id)  << " point_id:" << to_string(packet2.point_id) << " lon:" << packet2.lon << " lat:" << packet2.lat << " alt:" << packet2.alt << endl;//将标准协议格式包转换成buffer字节流形式存储在数组中,准备好进行发送,可以通过串口或者网络mavlink_msg_to_send_buffer(buffer, &msg);//输出buffer与协议表进行对比.for (int j = 0; j < MAVLINK_MAX_PACKET_LEN; ++j) {printf("%x ", buffer[j]);if(j!=0  && j%100 == 0){putchar(10);}}putchar(10);//程序输出数据如下,f4,b8即为校验码 //fd e 0 0 0 1 1 c 0 0 f8 cd 6d 39 c8 ce 6d 39 98 cf 6d 39 1 1 f4 b8//1 如果是网络发送,参考此形式进行发送即可.当然这之前需要一些网络初始化代码,本文略.//bytes_sent = sendto(sock, buf, len, 0, (struct sockaddr*)&gcAddr, sizeof (struct sockaddr_in));//2 如果是串口发送,那么采用以下形式即可.//write() 写串口即可return 0;
}
  • mavlink协议帧

6003.mavlink协议自定义消息编程相关推荐

  1. mavlink协议详解_MAVLink学习之路05_ MAVLink应用编程接口分析

    描述 MAVLink应用编程主要内容 2.1 发送和接收说明 利用MAVLink通信协议进行编程,主要实现的功能就是: 1.发送端 将需要发送的数据(如:SysState, BatVol),添加MAV ...

  2. mavlink协议_MAVLink学习之路05_MAVLink应用编程接口分析

    说明: 本文原创作者『strongerHuang』 首发于微信公众号『嵌入式专栏』,同时也更新在我的个人网站:EmbeddedDevelop 一.写在前面 前面写的几篇文章你掌握了,说明你离成功很近了 ...

  3. Mavlink协议概要

    转:http://blog.csdn.net/luckpl/article/details/52608868#mavlink协议简介 Mavlink协议简介 Mavlink协议简介 一Mavlink协 ...

  4. mavlink协议_MAVLink学习之路03_XML中定义MSG并生成C代码

    说明: 本文原创作者『strongerHuang』 首发于微信公众号『嵌入式专栏』,同时也更新在我的个人网站:EmbeddedDevelop 一.写在前面 如果你前面两篇文章掌握了,说明你已经入门了. ...

  5. 一、Mavlink协议

    一.Mavlink协议 MAVLink通讯协议是一个为微型飞行器设计的非常轻巧的.只由头文件构成的信息编组库.它可以通过串口非常高效地封装C结构数据,并将这些数据包发送至地面控制站.该协议被PX4, ...

  6. http协议网络编程

    一.http协议简介    在进入http协议网络编程之前,我们先来对HTTP协议进行简单的介绍. 早期的软件基本上都是运行在大型机上,软件的使用者则通过哑终端来控制使用计算机资源,在PC技术不断普及 ...

  7. 6005.boost多线程与mavlink协议结合实现消息收发

    boost多线程与mavlink协议结合实现消息收发 本文将实现boost库创建多线程,利用mavlink协议进行数据链消息打包.解包,解放了很多数据解析的工作,不得不佩服mavlink协议功能的强大 ...

  8. mavlink协议从入门到放弃(二)

    mavlink协议从入门到放弃(二) 姿态消息帧 GPS消息帧 mavlink校验位的计算 因为这个项目没有说要完全移植mavlink协议,所以只是提取了有用的信息包成mavlink协议然后发给上位机 ...

  9. 基于多线程技术和自定义消息编程实现Windows 9x异步串行通信

    基于多线程技术和自定义消息编程实现Windows 9x异步串行通信 张志明 李蓉艳 王 磊 摘  要  分析了基于Windows 95/98平台上的异步串行通信程序开发方法,并结合开发实践,用C++B ...

最新文章

  1. gil php,网络编程之多线程——GIL全局解释器锁
  2. MC-21-B高精度电阻箱初步测试
  3. Python统计网站访问日志log中的IP信息,并排序。。
  4. 【STM32 .Net MF开发板学习-18】GPRS遥控智能小车
  5. 盲僧一键r闪用什么设置_美加狮R.A.T. PRO X3至尊版带你畅玩模拟飞行
  6. 第四节 CSS继承性和层叠性
  7. 字符串第一个出现的单个字符_如何在不编写单个应用程序的情况下找到我的第一个开发人员工作
  8. APPLE笔记本电脑软件测试,Apple Mac 实验室
  9. HTML渐变背景不重复,如何停止重复自身的背景颜色渐变? (css)
  10. 关于Java交换两个对象的问题
  11. java sleep 精度,java – Thread.sleep(x)是否足以在Android中用作时钟?
  12. matlab2c使用c++实现matlab函数系列教程-abs函数
  13. net 调用java_NET调用Java之100-Continue的坑
  14. 计算机平面和应用,计算机平面设计中软件的相互结合与应用
  15. 自动驾驶(五十八)---------自动驾驶2019年终盘点
  16. 关于python变量使用下列说法中错误的是_关于Python中的全局变量和局部变量,以下描述中错误的是...
  17. 东子破解的quartz7月2号找到的很好这个
  18. CTF PWN-攻防世界XCTF新手区WriteUp
  19. 【Hive任务优化】—— Map、Reduce数量调整
  20. .NET-9.乱七八糟的理论笔记(概念,思想)

热门文章

  1. 站覆盖范围_武汉高铁站落地灯箱广告有什么投放价值?
  2. Dijkstra(迪杰斯特拉)算法的总结
  3. 解密android日志xlog,XLog 详解及源码分析
  4. php 跳转到另外一个php,PHP: 其他变更 - Manual
  5. 深度遍历 java_java 图论一 深度遍历和广度遍历
  6. 加密原理公钥私钥CA
  7. pytest-xdist分布式执行测试用例
  8. GEETEST极验召集互联网大佬齐聚光谷,共同探讨交互安全问题
  9. Vijos1775 CodeVS1174 NOIP2009 靶形数独
  10. jquery中prop()和attr()的使用