問題タブ [bluetooth-gatt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bluetooth-lowenergy - BLE ジョイスティック / ゲームパッド - Windows joy.cpl アプレットのカスタム デバイス名
HID over GATT (HOGP) ゲームパッドは、Windows 10 ゲーム デバイス アプレット (joy.cpl) で「8 軸 32 ボタン デバイス」として表示されます。デバイスには、デバイス情報サービス (0x180a) の下に次の GATT 特性が設定されています。
- PnP ID (0x2a50)
- デバイス名 (0x2a00)
- モデル名 (0x2a24)
PnP ID は ID ソース 2 (USB) に設定され、VID/PID の組み合わせは一意です。
USB HID デバイスと同じように、デバイスを「カスタム名」として表示する必要があります。デバイス情報サービスの他のオプションの特性 (メーカー名など) を設定しようとしましたが、期待どおりの効果がありませんでした。
Windows 10 がそのデバイスのカスタム名を正しく表示するようにデバイスをセットアップする方法について何か提案はありますか?
PS: カスタム ドライバーを作成したり、HKEY_CURRENT_USER\System\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM の下のレジストリを編集したり、デバイスの INF ファイルを提供したりしたくありません..
android - 信頼できない BLE 読み取り RSSI 値
アップストリーム サーバーに送信するために、接続している BLE デバイスの RSSI を正しく読み取ろうとしています。
BluetoothGatt.readRemoteRssi()
によって返される RSSI には多くの「ジャンプ」があることがわかりました。よりスムーズな値を取得するために、(過去 10 秒間の) 移動平均を開始しました。値に多くのスパイクがあったため、これは役に立ちませんでした。
mBluetoothAdapter.startLeScan(null);
そうすることで値がより滑らかになることがわかりました。公式ドキュメントでは、デバイスに接続しているときにスキャンすることは推奨されていませんが、実際には、LG および Samsung デバイスでは機能します。
さらに-コールバックとして渡す場合null
、このメソッドは何もしません( https://github.com/aosp-mirror/platform_frameworks_base/blob/master/core/java/android/bluetooth/BluetoothAdapter.java#L2833を参照)。このことから、Samsung と LG は Android Bluetooth スタックを大幅に変更していると思います。
誰が私が見ているのか説明できますか? 「実際の」RSSI値を読み取るためのより良いソリューションを提供できる人はいますか?
編集:
が同じ値で数回 (?) 呼び出されていることがわかりましonCharasteristicWritten()
た。HW が 1 回しか送信しなかったにもかかわらずです。現在、これらの値を手動でフィルタリングしています。またonRssiRead()
、数回呼び出されます。
Android のドキュメントで、BT デバイスに接続している間はスキャンしないように提案されているのは、これが理由である可能性があります。
python - Python Bluez GATT サーバー - クライアントが切断できない
私は、Raspberry pi 3 モデル B で動作する単純な bluetooth GATT サーバー アプリに取り組んできました。このアプリは、Bluez (バージョン 5.49) を使用してサービスと特性をアドバタイズします。アプリは次の例に基づいています: https://github.com/Jumperr-labs/python-gatt-server
これまでのところ、サーバーはほぼ終了しています。クライアントは特性を読み書きでき、サービスはアドバタイズされます。クライアントがサーバーへの接続を切断しようとすると、問題が発生します。サーバーが切断を拒否しているように見えるため、クライアントは切断できません。クライアントを切断できる唯一の方法は、サーバーをシャットダウンするか、クライアントの Bluetooth アダプターを無効にすることです。
クライアントは、次の Bluetooth ライブラリを使用する Xamarin アプリです: https://github.com/aritchie/bluetoothle。LightBlue ( https://itunes.apple.com/us/app/lightblue-explorer/id557428110?mt=8 ) などの Bluetooth ファイル テスト アプリでも問題が発生するため、クライアントの問題は破棄されました。
ベース GATT サーバーは次のとおりです。
広告では:
gatt_server で:
(...) サービスと特性の実装 (...)
そして最後にアダプターで:
どんな提案でも受け入れられます。私はこのバグに数週間取り組んできましたが、イライラしています