43

Linuxマシンを介してBLEモジュールと通信しようとしています(モジュールは心拍数プロファイルを実行しています)。これまでのところ、通知と表示をリッスンする以外に必要なすべてのことを実行できました(たとえば、心拍数測定通知をリッスンする)。カーネルバージョン3.5とbluez-5.3を使用しています。

これまでに使用された成功したコマンド:

hcitool lescan
hcitool lecc
gatttool -b <Mac Address> --primary
gatttool -b <MAC Address> --characteristics
gatttool -b <MAC Address> --char-read
gatttool -b <MAC Address> --char-desc
gatttool -b <MAC Address> --interactive

失敗したコマンド:

gatttool -b <MAC Address> --listen

どんな助けでも大歓迎です。

4

4 に答える 4

50

これを試して...

gatttool -b <MAC Address> --interactive以前と同じように実行します。プロンプトが表示されたら、と入力しますconnectCONデバイスに接続したことを示すがプロンプトに表示されます。次に、と入力しchar-read-uuid 2902ます。デバイス上のすべてのCCC(クライアント特性構成)属性のリストを取得する必要があります。 それらすべてを0100に設定して通知を受け取り、0200を表示に、0300を両方に、または0000にすべてをオフに設定してみてください。 入力helpして、すべてのコマンドとその引数を表示します。

編集:

引数を使用するには、--listen他のコマンドと組み合わせて通知や表示をオンにする必要があります。したがって、Bluez4.101で機能する例を次に示します。

gatttool -b <MAC Address> --char-write-req --handle=0x0031 --value=0100 --listen

明らかに、通知をオンにするCCCのハンドルにハンドルを変更する必要があります。ただし、インタラクティブモードを使用する方がはるかに簡単です。

于 2013-03-30T19:49:58.333 に答える
11

古いバージョンのBluez(hcitool&gatttool)では、BluetoothLowEnergyデバイスへの書き込みが許可されていないようです。通知などを有効にするために、新しいバージョン(この記事の執筆時点では5.17)をインストールすることになりました。

すべてのハンドルのリストを取得するには、次のコマンドを実行できます。

char-desc

次に、ハンドルから読み取ることができます。

char-read-hnd 0x000e

(上記のハンドルは私のnrf51822バッテリーレベル用です)

ハンドルはあなたが得たリストからのものですchar-desc.

ティムが上で言ったように、通知関連のハンドルに書き込んで、指示または通知を取得できます。(私の場合、私のデバイスには通知しかありませんでした)

char-write-req 0x000f 0100

(上記のハンドルは私のnrf51822バッテリーレベル通知用です)

私の場合、バッテリーレベルが変更されるまで、バッテリー通知は何も送信しません。

Bluezのセットアップについて、かなり長いブログ投稿を書きました。ここで見つけることができます:Bluetooth Low Energyを始めましょうお気軽にチェックしてください!

于 2014-04-15T00:01:35.697 に答える
6

Mio Alphaで心拍数を読み取るための最終的な答え:

gatttool -b xx:xx:xx:xx:xx:xx -t random --char-write-req -a 0x0025 -n 0100 --listen

Characteristic value was written successfully
Notification handle = 0x0024 value: 10 4b 33 03 
Notification handle = 0x0024 value: 10 4b 33 03 
Notification handle = 0x0024 value: 10 4b 33 03 
Notification handle = 0x0024 value: 10 4a 3e 03 
Notification handle = 0x0024 value: 10 4c 28 03 28 03 
Notification handle = 0x0024 value: 10 4c 28 03 
Notification handle = 0x0024 value: 10 4b 33 03 
Notification handle = 0x0024 value: 10 4a 3e 03 3e 03
于 2014-01-16T14:42:22.117 に答える
2

CCC値を保持するには、2つのデバイスをペアリングする必要があります。ペアリングされたら、CCCを再度設定する必要はありません。次の再接続時に、設定が見つかります。これは、キーフォブのフラッシュに保存されます。SMPを介してペアリングした後に構成してみてください。

于 2013-06-01T06:20:36.947 に答える