gatttool の使い方
BluetoothにはクラシックBluetooth(BR/EDR)とBLEの二種類がある。
BLEはGATTというプロトコルで通信を行う。
そのGATTでやり取りしているデータを見ることができるシンプルなツールがgatttoolである。
よって、ある程度GATTについて知っていないとキャラクタリスティックとか急に言われてもしらんがな、となるけど、ここではGATTの説明はしないのでぐぐれ。
gatttoolでBLEデバイスのデータを読む
以下の方法で接続できるんだが、実際にやるとエラーが出て困った。
BLEデバイスのBDアドレスが、AA:BB:CC:DD:EE:FF として、
1 2 3 4 5 |
|
となるはずが、なぜか、 Error: connect error: Connection refused (111) エラーが出てしまう。
1 2 3 4 5 |
|
いろいろググってもBlueZが古いだのなんだので困った。
んで、とりあえずの解決法としてbluetoothctlを使うことに。
理由はわからないが、このエラーが出るときはゴミみたいなのが残っているようなので、
1 2 3 4 5 |
|
と、removeしてやると、なぜか問題なくgatttoolのconnectが成功する。
成功後は、primary, characteristics などを使ってUUIDやハンドル一覧を出し、char-read-uuidなどを使ってデータを読み込む。
書き込みもできるみたいだけどやったことないんでどうなるか不明。
以上!