2017-07-18 41 views
0

私はpaho-mqttを使ってPythonでMQTTテストを作成しています。ブローカにバイト配列を送る必要があります。加入者は、異なるデータタイプのいくつかのトピックを探します。文字列ベースのペイロードは正常に動作していますが、数字の値は数値型の適切な長さで受信する必要があります(つまり、32ビット整数は4バイトの配列でなければなりません)。MQTT Pythonとpaho-mqttを使ってバイト配列を公開する

たとえば、32ビット整数ペイロードは次のようになります(INT32)00 00 00 00

私が送信するために私が必要となる小数点以下53を送信したい場合は00 00 00 35(0x35の= 53)この試験はの一部として実行されたよう

スイートにはPythonが必要で、paho-mqttは私たちがmqttパッケージとして選んだものです。

もし誰でも私にpaho-mqttを使ってバイトの配列を送信する方法を教えていただけたら、それは非常に感謝します。

答えて

1

バイナリデータをパックするには、python structモジュールを使用します。たとえば:

import struct 
struct.pack('i', 53) 

が得られます:

'5\x00\x00\x00' 

を(注: '5' あなたの例を使用して、53のためだけのASCII値です)。これは逆にバイトが得られます

struct.pack('>i', 53) 

'\x00\x00\x005' 

あなたは配列を指定するには、繰り返し回数を使用することができます。また

は、明示的にエンディアン(バイト順序)、使用を指定します。たとえば、 '10i'は、10バイトの32ビット整数の配列を意味し、それぞれ4バイト、合計40バイトです。迅速な答えを https://docs.python.org/2.7/library/struct.html

+1

ありがとう:詳細については

は、構造体のモジュールのマニュアルを参照してください。それを解決した。 –

関連する問題