Mavlink消息包解析


Byte Index

字節索引

Content

內容

Value

Explanation

說明

0

包起始標志

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協議就不會在一起正常工作,避免了由於不同版本間通訊時帶來的重大潛在問題。

 






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM