通过代码看MAVLink协议 (一)

本文从代码角度深入理解MAVLink协议,通过 Mission Planner 的C#源码,探讨如何生成和解析协议包。文章提及mavlink_types.h及common.xml文件在定义消息中的作用,并解释了该协议的XML方言和Python转换脚本。
摘要由CSDN通过智能技术生成

通过代码看MAVLink协议 (一)

最近因为毕设的缘故要看MAVLink协议,从里面读到一些传感器数据。
MAVLink的协议理解的差不多,但是大家都懂的,代码和实际上总有一些距离,所以,根据代码来看MAVLink协议可能会好一点。
我看的代码呢,是Mission Planner,是C#程序。源码可以在github上获取到的。我是通过一步一步读代码进入到当前的这个地方的,为了快速起见,使用vs2012打开(ps:因为笔者电脑上只有vs2012的缘故,编译可能遇到了一点问题,不过也没必要编译成功了,要个vs2012的代码组织能力就可以了)。直接打开源码的MAVLink文件夹下的MAVLinkInterface.cs文件,搜那个generatePacket()函数。
这里写图片描述

好吧没错又是这张图,相信对MAVLink有一定了解的人看这张图都厌烦了。正题开始,先贴一些主要代码:

 byte[] packet = new byte[data.Length + 6 + 2];


packet[0] = 254;
//包的开始标志,0xFE
packet[1] = (byte) data.Length;
//有效载荷长度
packet[2] = (byte) packetcount;
//包的序列,也就是第几个包,后面还++,也就是说发一个包更新一次。
 packetcount++;
packet[3<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值