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_将是一个单字节的unsigned int。[180]是什么意思?

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

注意RTCM消息可能大于180字节,并且在多于一条GPS_RTCM_DATA消息。

您可以检查flags字段,如mavlink文档中所述:

LSB: 1表示报文分片,后面2位为分片ID;剩下的5位用于序列ID。只有消息将在整个消息完成后刷新到GPS在自动驾驶仪上重建。片段ID指定了哪个顺序片段应该组装成一个缓冲区,同时序列ID用于检测不同缓冲区之间的不匹配。缓冲区是当所有4个碎片都被认为是完全重构的呈现,或所有片段前的第一个片段带非接收到完整的有效载荷。此管理用于确保正常的GPS操作不会破坏RTCM数据,并从一个恢复不可靠的运输交货单。

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

最新更新