我正在尝试通过 sim868 MQTT 发布二进制数据,但在某些二进制值的情况下会遇到问题。例如,当我想发布二进制数 0 (0x00) 时,如果我通过 AT 命令将 0x00 发送到 sim868,它会将其解释为 0(NULL 字符)并假定它是字符串的结尾。因此,它将 0x00 之前的数据发布到 MQTT,但我还需要发布 0x00。
我正在使用sim800 系列 MQTT 应用笔记中提到的AT 命令AT+SMPUB=topic,qos,retain,message 。
由于该命令中没有数据长度的参数,所以不能通过 AT 命令发送数据长度。
例如,当我尝试在上述 AT 命令中向 sim868 发送此消息时。
味精[]={0x48,0x00,0x01,0x02,0x4F}
它只发布第一个字节,似乎将第二个字节解释为 NULL 字符(字符串的结尾)。
所以,我想知道如何通过 sim868 MQTT 发布 0x00,以便 sim868 将其解释为二进制 0,而不是 NULL 字符。