sim868 MQTT を介してバイナリ データを公開しようとしていますが、一部のバイナリ値の場合に問題に直面しています。たとえば、2 進数の 0 (0x00) を公開したい場合、AT コマンドを介して sim868 に 0x00 を送信すると、sim868 はそれを 0 (NULL 文字) と解釈し、文字列の末尾と見なします。ということで、0x00より前のデータをMQTTに公開するのですが、0x00も公開する必要があります。
sim800 シリーズの MQTT アプリケーション ノートに記載されているAT コマンドAT+SMPUB=topic,qos,retain,message を使用しています。
このコマンドにはデータ長のパラメータがないため、AT コマンドでデータ長を送信することはできません。
たとえば、上記の AT コマンドでこのメッセージを sim868 に送信しようとすると、.
メッセージ[]={0x48,0x00,0x01,0x02,0x4F}
最初のバイトのみを公開し、2 番目のバイトを NULL 文字 (文字列の末尾) として解釈するようです。
したがって、sim868 MQTT を介して 0x00 を発行する方法を知りたいので、sim868 はそれを NULL 文字ではなくバイナリ 0 として解釈します。