• 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协议就不会在一起正常工作,避免了由于不同版本间通讯时带来的重大潜在问题。

     





  • 相关阅读:
    Linux常用快捷键
    如何Oracle 数据库备份与恢复
    Linux常用命令解释
    转摘:商业智能BI的演绎型需求和归纳型需求BI三维框架之内容维研究
    PHP中const的使用
    PHP中define的使用
    Apache配置正向代理与反向代理
    正向代理
    JAVA System.getProperty()参数
    PHP查找当前URL文件扩展名
  • 原文地址:https://www.cnblogs.com/daxuezhidao/p/5750095.html
Copyright © 2020-2023  润新知