BlueZを使用してBluetooth低エネルギーをプログラミングするのは初めてです。
Intel EdisonでBluetooth Low EnergyのBlueZ APIを使用して近くのデバイスをスキャンするネイティブコードcを開発したいと思います。私は この質問 を見てきましたが、答えは本当に役に立ちません。何かアドバイス?
GalileoまたはEdisonでBlueZを使用したBLEプログラミングは、他のx86プラットフォームと同様です。
Edison(およびGalileo)には通常、BlueZライブラリがプリインストールされています。それらとCコードでリンクし、他のx86プラットフォームと同様にプログラムするだけです。
完全な BlueZによるBluetoothコードスキャンのCコード例は、このリンクを参照してください 。
そしてHCI API here 。
他の答えの例は私にとってはうまくいきません、それはスキャンで停止します...
次のリンクはC言語で機能しますが、de rssi信号に関する情報を持つバイトをキャストするとエラーが発生します。 https://github.com/glock45/intel-edison-playground/blob/master/scan.c
この121行目:
printf("%s - RSSI %d\n", addr, (**char**)info->data[info->length]);
でなければなりません:
printf("%s - RSSI %d\n", addr, (**int8_t**)info->data[info->length]);
Btmonプログラムが存在するbluez-version/monitor/*.c
の内部を見たところ、これらが見つかりました。データ型と構造体を確認できます。hcidump.c
は非常に便利で、packets.c
、main.c
も使用できますが、hciソケットについては多くの知識があります。