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协议就不会在一块儿正常工做,避免了因为不一样版本间通信时带来的重大潜在问题。

 



相关文章
相关标签/搜索