MAVLink主要是一種用于飛行器上的通信協(xié)議,但很有參考意義,算是給大家普及的知識。
Ⅰ關(guān)于MAVLink
可能很多人都不知道“MAVLink”是什么東西,簡單來說它就是一種輕量級的通信協(xié)議。
可能很多人會問,大家都不了解的這個“東西”,你講來干什么?
正如抬頭所說:給大家普及知識,而且可以應用到許多地方,說不定我講過之后你就會用上它。
1.對于初學者,了解一種協(xié)議的格式,以及它的應用我覺得對他以后的編程有幫助;
2.一種在某個行業(yè)通用,并且很成熟的通信協(xié)議很有借鑒;
3.MAVLink與很多自定的協(xié)議相比,它的開發(fā)難度非常小,有現(xiàn)成的配置工具,可直接生成MSG代碼(簡單來說,就是生成對應的函數(shù)接口供你直接調(diào)用即可),直接調(diào)用幾個相應的函數(shù)接口即可,不需要自己封裝、解析等;
4.MAVLink是一種輕量級的通信協(xié)議,可用于各類運行速度不是很高的單片機中(當然,也能用于快速的PC中)。
ⅡMAVLin協(xié)議結(jié)構(gòu)
先看協(xié)議結(jié)構(gòu)(或者說格式),如下圖:

看到上面協(xié)議格式,相信大家都會覺得,這不就是一般的協(xié)議嗎? 說實話,它和一般的協(xié)議格式?jīng)]什么兩樣,但“五臟俱全”,就是一種協(xié)議。就像人,有黃種人、白種人、黑種人等各種各樣的人,但都屬于人。
ⅢMAVLink的使用簡單、方便
說實話,本文的重點在于這一章節(jié)。MAVLink和一般協(xié)議比較,它不僅具有常規(guī)協(xié)議的格式,突出的優(yōu)點在于配置和調(diào)用比較簡單。
1.配置
MAVLink通過xml文件,配置信息(MSG),這個MSG可以理解成我們需要接收或者發(fā)送的數(shù)據(jù)變量。比如:運動控制包含速度和距離,xml配置如下:

2.通過生成代碼
本節(jié)牽涉到相關(guān)工具的安裝,這里不講述。下面是生成的工具:

3.調(diào)用代碼
代碼生成,只需要簡單調(diào)用兩個函數(shù)接口即可:
兩個函數(shù)即可:
mavlink_msg_motion_pack:封包函數(shù)接口;
mavlink_msg_to_send_buffer:轉(zhuǎn)換成發(fā)送的BUF;
如下:

看到上面的調(diào)用,是不是很簡單呢?
本文只是簡單的講述,想要學習更是相關(guān)MAVLink的知識,請參考網(wǎng)址:
MAVLink主頁:mavlink_msg_to_send_buffer
協(xié)議說明(維基百科):https://en.wikipedia.org/wiki/MAVLink
Ⅳ最后
-
通信協(xié)議
+關(guān)注
關(guān)注
28文章
1094瀏覽量
42331 -
編程
+關(guān)注
關(guān)注
90文章
3723瀏覽量
97420 -
mavlink
+關(guān)注
關(guān)注
0文章
9瀏覽量
2777
發(fā)布評論請先 登錄
MQTT協(xié)議技術(shù)白皮書:構(gòu)建物聯(lián)網(wǎng)時代的輕量級通信基石
NXP 產(chǎn)品包裝革新:輕量級卷軸的引入
松下A6伺服通信協(xié)議介紹
機器人通信協(xié)議EtherCAT和CAN如何選擇
基于FPGA的I2C通信協(xié)議設(shè)計
協(xié)議“老將”,連接工業(yè)智能的橋梁——一文讀懂ModBus通信協(xié)議
MQTT協(xié)議為什么成為物聯(lián)網(wǎng)協(xié)議
通信協(xié)議IIC與SPI最全對比分析
Xilinx FPGA串行通信協(xié)議介紹
如何使用FPGA實現(xiàn)SRIO通信協(xié)議
分布式能源并網(wǎng)的通信協(xié)議有哪些?
HIPERFACE DSL編碼器通信協(xié)議介紹
一種輕量級的通信協(xié)議 - MAVLink
評論