通过代码看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<