1

使用されている gatt プロファイルを知らずにデバイスを持っています。それが「自家製」のものであり、bluetooth データベースで知られているものではないことだけを知っています。

Linux では、コマンド

gatttool -i hci0  -b xx:xx:xx:xx:xx:xx  --char-read --handle=42

期待どおりの値を返します (xx:xx:xx:xx:xx:xx のターゲット デバイス mac を使用)。

Qt では、http://doc-snapshot.qt-project.org/qt5-5.4/qtbluetooth-heartlistener-example.html の Heartbeat-Example を使用しています 。そこでは、gattprofile、QBluetoothUuid::HeartRate および QBluetoothUuid:: を使用して接続します。心拍数測定

ハンドル 42 を読み取る方法でサンプル コードを変更できませんでした。gattool コマンドのように「標準プロファイル」に接続するために、どこにどの値を入力する必要があるか説明できますか? インタラクティブ モードで gatttool を使用してプライマリに問い合わせると、2 つの UUID が返されますが、QBluetoothUuid::HeartRate の代わりにそれらを使用しても機能しませんでした。

4

2 に答える 2

1

Qt Bluetooth Low Energy API が、ハンドル値に基づいて特性へのアクセスを取得する手段を提供しているようには見えません。(Windows 8 BLE API も同様です。) UUID を使用する必要があります。自家製のデバイスであっても、GATT プロトコルではすべてのサービスと特性に UUID が必要です。lowenergyscanner デモ アプリは、デバイスのすべてのサービスと特性の UUID とハンドルの両方を検出して表示できます。開発中の BLE デバイスを処理するために lowenergyscanner を使用しました。

于 2015-02-26T07:29:13.273 に答える
0

デバイスの検出は uuid によるものです。新しいサービスと新しい特性で新しいプロファイルを作成する場合でも、セットアップで新しい特性の uuid を指定する必要があります。しかし、1 つのサービスに複数の特性を追加する方法がわかりません。うまくいきません。楽しんで

于 2019-10-14T11:46:41.377 に答える