Mavlink 命令 [180] 是什么意思?

问题描述

例如,我正在尝试发送一个 mavlink 命令

GPS_RTCM_DATA ( #233 )

flags   uint8_t     

len     uint8_t

data    uint8_t[180]        RTCM message (may be fragmented)

https://mavlink.io/en/messages/common.html#GPS_RTCM_DATA

我知道 uint8_ 将在单字节无符号整数中。 [180] 是什么意思?

解决方法

MAVLink GPS_RTCM_DATA 消息中的 uint8_t[180] 表示 data 字段最多可以包含 180 个字节。

请注意 RTCM 消息可能大于 180 字节,并且可能会被分段 不止一条 GPS_RTCM_DATA 消息。

您可以按照 mavlink 文档中的说明检查 flags 字段:

LSB:1 表示消息被分片,接下来的 2 位是分片 ID, 剩余的 5 位用于序列 ID。消息只是 当整个消息都被刷新到 GPS 在自动驾驶仪上重建。片段 ID 指定哪个顺序 片段应组装到缓冲区中,而序列 ID 用于检测不同缓冲区之间的不匹配。缓冲区是 当所有 4 个片段中的任何一个都被认为是完全重建的 存在,或第一个片段之前的所有片段 接收到完整的有效载荷。这种管理用于确保 正常的 GPS 操作不会破坏 RTCM 数据,并从 不可靠的运输交货单。

,

我每个都试过了,但没有用。除了把它作为一个 180 字节的数组。例如,数据可能只有 30 个字节。但是以这种方式输入另外150个0x00字节,python程序接受了我的命令。奇怪的是。我无法解释为什么,但在这种情况下它有效。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...