一种轻量级的通信协议 - MAVLink

描述

MAVLink主要是一种用于飞行器上的通信协议,但很有参考意义,算是给大家普及的知识。

Ⅰ关于MAVLink

可能很多人都不知道“MAVLink”是什么东西,简单来说它就是一种轻量级的通信协议。

可能很多人会问,大家都不了解的这个“东西”,你讲来干什么?

正如抬头所说:给大家普及知识,而且可以应用到许多地方,说不定我讲过之后你就会用上它。

1.对于初学者,了解一种协议的格式,以及它的应用我觉得对他以后的编程有帮助;

2.一种在某个行业通用,并且很成熟的通信协议很有借鉴;

3.MAVLink与很多自定的协议相比,它的开发难度非常小,有现成的配置工具,可直接生成MSG代码(简单来说,就是生成对应的函数接口供你直接调用即可),直接调用几个相应的函数接口即可,不需要自己封装、解析等;

4.MAVLink是一种轻量级的通信协议,可用于各类运行速度不是很高的单片机中(当然,也能用于快速的PC中)。

ⅡMAVLin协议结构

先看协议结构(或者说格式),如下图:

mavlink

看到上面协议格式,相信大家都会觉得,这不就是一般的协议吗?  说实话,它和一般的协议格式没什么两样,但“五脏俱全”,就是一种协议。就像人,有黄种人、白种人、黑种人等各种各样的人,但都属于人。

ⅢMAVLink的使用简单、方便

说实话,本文的重点在于这一章节。MAVLink和一般协议比较,它不仅具有常规协议的格式,突出的优点在于配置和调用比较简单。

1.配置

MAVLink通过xml文件,配置信息(MSG),这个MSG可以理解成我们需要接收或者发送的数据变量。比如:运动控制包含速度和距离,xml配置如下:

mavlink

2.通过生成代码

本节牵涉到相关工具的安装,这里不讲述。下面是生成的工具:

mavlink

3.调用代码

代码生成,只需要简单调用两个函数接口即可:

两个函数即可:

mavlink_msg_motion_pack:封包函数接口;

mavlink_msg_to_send_buffer:转换成发送的BUF;

如下:

mavlink

看到上面的调用,是不是很简单呢?

本文只是简单的讲述,想要学习更是相关MAVLink的知识,请参考网址:

MAVLink主页:mavlink_msg_to_send_buffer

协议说明(维基百科):https://en.wikipedia.org/wiki/MAVLink

Ⅳ最后

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分