Mavlink消息包解析

Byte Index 算法

字節索引 網絡

Content post

內容 spa

Value orm

xml

Explanation blog

說明 索引

0 圖片

包起始標誌 ci

v1.0: 0xFE (v0.9: 0x55)

指示新消息幀的開始v1.0版本中以「FE」做爲起始標誌。這個標誌位在mavlink消息幀接收端進行消息解碼時有用處。

1

有效載荷長度

0 - 255

 

表示如下的有效載荷的長度。mavlink消息幀接收端能夠用它和實際收到的有效載荷的長度比較,以驗證有效載荷的長度是否正確。

2

包序列號

0 - 255

         

每一個組件計數了他的發送序列。容許檢測包丟失每次發完一個消息,這個字節的內容會加1,加到255後會從0從新開始。這個序號用於mavlink消息幀接收端計算消息丟失比例用的,至關因而信號強度

3

系統ID

1 - 255

發送包的ID。容許在同一網絡上區分不一樣的微型飛行器。用於mavlink消息幀接收端識別是哪一個設備發來的消息。(PIXHAWK默認1

4

組件ID

0 - 255

發送包組件的ID。容許區分同一系統的不一樣組分,例如在IMU和自動駕駛儀用於mavlink消息幀接收端識別是設備的哪一個單元發來的消息(PIXHAWK默認50

5

消息ID

0 - 255

消息的ID - 標識定義了有效載荷的「意義」應該如何正確解碼。mavlink消息幀接收端要根據這個編號來肯定有效載荷裏到底放了什麼消息包並根據編號選擇對應的方式來處理有效載荷裏的信息包。

6 to

(n+6)

數據

(有效載荷)

(0-255)bytes

消息數據,取決於消息的ID

(n+7) to

(n+8)

校驗和(低字節,高字節)

最後兩個字節是16位校驗位,ckb是高八位,cka是低八位校驗碼由crc16算法獲得,算法將整個消息(從起始位開始到有效載荷結束,還要額外加上個MAVLINK_CRC_EXTRA字節)進行crc16計算,得出一個16位的校驗碼。以前提到的每種有效載荷裏信息包(由消息包編號來代表是哪一種消息 包)會對應一個MAVLINK_CRC_EXTRA,這個 MAVLINK_CRC_EXTRA 是由生成mavlink代碼的xml文件生成的,加入這個額外的東西是爲了當飛行器和地面站使用不一樣版本的mavlink協議時,雙方計算獲得的校驗碼會 不一樣,這樣不一樣版本間的mavlink協議就不會在一塊兒正常工做,避免了因爲不一樣版本間通信時帶來的重大潛在問題。

 



相關文章
相關標籤/搜索