2

パケットを受信できる別のプログラム (Blender) に UDP 経由でデータを送信する Simulink モデルがありますが、パケットを正しくデコードする方法がわかりません。

Simulink モデルでは、正弦波に基づく値を送信するだけで、特別なことは何もなく、1.452 などの単一の値だけを送信します。Blender では、パケットから受け取ったデータを吐き出し、次のようなものを受け取っています。

b'<\xa6ya\x05\x93\xe3?'

これをデコードする方法がわかりません。いくつかの 16 進値があるようですが、それ以上はわかりません。このすべてのデータに何が含まれているかさえわかりません。Simulink からの値だけですか、それとも送信者と受信者の IP アドレス、ポートなどに関する情報が含まれていますか?

更新: Simulink モデルを更新して、デバッグ/調査のために UDP 経由で定数値を送信しました。値は 0.5234 で、Python スクリプトが吐き出すデータは次のとおりです。

b'\xab>W[\xb1\xbf\xe0?'

(hexlify を使用して) 16 進数の読み取りに変換すると、次のようになります。

b'ab3e575bb1bfe03f'

そこから 0.5234 を抽出/デコードするにはどうすればよいですか?

助けてくれてありがとう!

4

1 に答える 1

3

を使用structしてバイナリ データをデコードできます。この場合、double値のようです。

>>> import struct
>>> struct.unpack('d', b'\xab>W[\xb1\xbf\xe0?')
(0.5234,)
于 2012-12-10T22:47:41.627 に答える