私はpythonが初めてで、この特定のプロジェクトのためだけに学習しようとしています。私がやっていることは、本質的に arduino クローンと NRf24 トランシーバーを使用して、次の構造体を無線で送信することです。
struct SENSOR{
float sensor1;
float sensor2;
float sensor3;
};
struct HEADER{
long type;
long hops;
long src;
long ID;
SENSOR sensor;
};
そして、NRf24でビーグルボーンブラックを使用して受信しています。BBB では、トランシーバーは python によって駆動されています (BBB と私が使用しているラジオ用の (比較的) 大規模なコード ベースが既に存在するため)。
arduino側では、構造体の長さが28と表示されており、それはpython側でも受け取っています。私が理解できないのは、配列に格納されている受信データを使用可能な形式に移動する方法です。
Python 側:
#Receive Data
recv_buffer = []
radio.read(recv_buffer)
これは私がpython側で受け取っているものです
[1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 51, 51, 163, 64, 51, 51, 195, 64, 51, 51, 227, 64]
そしてarduino側で送信
header.type = 1;
header.hops = 2;
header.src = 3;
header.ID = 4;
header.sensor.sensor1 = 5.1;
header.sensor.sensor2 = 6.1;
header.sensor.sensor3 = 7.1;
私は ctypes ライブラリを調べていて、おそらく unpack を使用していますが、動作させることができません。助けていただければ幸いです。