MAVLink主要是一种用于飞行器上的通信协议,但很有参考意义,算是给大家普及的知识。
Ⅰ关于MAVLink
可能很多人都不知道“MAVLink”是什么东西,简单来说它就是一种轻量级的通信协议。
可能很多人会问,大家都不了解的这个“东西”,你讲来干什么?
正如抬头所说:给大家普及知识,而且可以应用到许多地方,说不定我讲过之后你就会用上它。
1.对于初学者,了解一种协议的格式,以及它的应用我觉得对他以后的编程有帮助;
2.一种在某个行业通用,并且很成熟的通信协议很有借鉴;
3.MAVLink与很多自定的协议相比,它的开发难度非常小,有现成的配置工具,可直接生成MSG代码(简单来说,就是生成对应的函数接口供你直接调用即可),直接调用几个相应的函数接口即可,不需要自己封装、解析等;
4.MAVLink是一种轻量级的通信协议,可用于各类运行速度不是很高的单片机中(当然,也能用于快速的PC中)。
ⅡMAVLin协议结构
先看协议结构(或者说格式),如下图:
看到上面协议格式,相信大家都会觉得,这不就是一般的协议吗? 说实话,它和一般的协议格式没什么两样,但“五脏俱全”,就是一种协议。就像人,有黄种人、白种人、黑种人等各种各样的人,但都属于人。
ⅢMAVLink的使用简单、方便
说实话,本文的重点在于这一章节。MAVLink和一般协议比较,它不仅具有常规协议的格式,突出的优点在于配置和调用比较简单。
1.配置
MAVLink通过xml文件,配置信息(MSG),这个MSG可以理解成我们需要接收或者发送的数据变量。比如:运动控制包含速度和距离,xml配置如下:
2.通过生成代码
本节牵涉到相关工具的安装,这里不讲述。下面是生成的工具:
3.调用代码
代码生成,只需要简单调用两个函数接口即可:
两个函数即可:
mavlink_msg_motion_pack:封包函数接口;
mavlink_msg_to_send_buffer:转换成发送的BUF;
如下:
看到上面的调用,是不是很简单呢?
本文只是简单的讲述,想要学习更是相关MAVLink的知识,请参考网址:
MAVLink主页:mavlink_msg_to_send_buffer
协议说明(维基百科):https://en.wikipedia.org/wiki/MAVLink
Ⅳ最后
全部0条评论
快来发表一下你的评论吧 !