例如,我正在尝试发送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是什么意思?
发布于 2021-04-02 18:25:11
MAVLink GPS_RTCM_DATA消息中的uint8_t[180]表示data字段最多可以包含180个字节。
注意RTCM消息可以大于180个字节,并且可以被分成多个GPS_RTCM_DATA消息。
您可以检查mavlink文档中所述的flags字段:
GPS LSB: 1表示消息是分片的,接下来2位是分片ID,其余5位用于序列ID。只有在自动驾驶仪上重建了整个消息后,才会将消息刷新到
。片段ID指定片段应组装到缓冲区中的顺序,而序列ID用于检测不同缓冲区之间的不匹配。当所有4个片段都存在,或者接收到具有非完整有效载荷的第一个片段之前的所有片段时,缓冲器被认为是完全重建的。这种管理用于确保正常的全球定位系统操作不会损坏RTCM数据,并从不可靠的传输传送顺序中恢复。
发布于 2021-05-23 02:04:07
我试过了所有的方法,但都不起作用。除了把它作为一个180字节的数组。例如,数据可能只有30个字节。但是以这种方式输入其他150个0x00字节,python程序接受我的命令。奇怪的是。我不能解释为什么,但在这种情况下,它是有效的。
https://stackoverflow.com/questions/65805750
复制相似问题