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