問題タブ [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.
android - ガット切断タイムアウトの変更
gatt ble デバイスの切断タイムアウトをより高速なものに変更する方法があるかどうか疑問に思っています。現在のタイムアウトでは、タイムアウトの検出に約 20 秒かかります。
以下のコードは、タイムアウトからトリガーされているものです。
信号強度は 1 秒間同じ値になることはないため、信号強度を使用して切断を検出しました。信頼性は高いものの、デバイスへの再接続はランダムです。接続が再開されます。
ガットタイムアウトが変更された場合、コードなしで使用できる再接続機能がありますが、再接続するコードが私の側にあるため、バグが多くなります。
linux - Bluetooth Low Energy in C - Bluez を使用して GATT サーバーを作成する
Linux ボックスで GATT を使用して、さまざまな特性を持つカスタム サービスをセットアップしようとしています。
この質問とそれがリンクするものを使用して、私が書く必要があるコードを特定することができました(gatt_service_add()
関数を利用して)。
gatt_service.c という別のファイルを作成し、必要と思われるコードを記述しました。しかし、ソリューションをコンパイルして実行するためにコードを Bluez ライブラリにリンクする方法がわかりません。たとえば、このサイト-lbluetooth
(BLE 開発用ではありません) は、gcc パラメーターとしてlibbluetooth を使用してリンクしていますが、コードを機能させるために何をリンクすればよいかわかりません。
何を投稿すればよいかわからないため、サンプルを投稿していません。必要なものがある場合、または何か言及していない場合はお知らせください。
前もって感謝します。
編集 - 詳細情報:
コメントに続いて、プラグイン/時間をベースとして使用して、独自の「ブロードキャスター サービス」用に独自のファイルを作成しました。完全なコードはこちらにあります(コードのどのビットを答えに入れるかわかりません!)。
私のコンパイルコマンドは次のとおりです(ここでgcc gatt_broadcaster_service.c -Wall -o gatt_broadcaster_service -lbluetooth 'pkg-config --cflags --libs glib-2.0' -I/home/alexander/Documents/bluez-5.29/lib
報告された問題を修正するためのglibビットを含む)。
私が得るエラーは次のとおりです: gatt_broadcaster_service.c:11:27: 致命的なエラー: lib/bluetooth.h: そのようなファイルまたはディレクトリはありません #include "lib/bluetooth.h"
私のCファイルはドキュメントに保存されており、私の調査によると、正しい場所を探していないため、lib/bluetooth.hが見つからないことがわかりました(これとこれは、ファイルがそうでない場合にコンパイラにインクルードフラグを使用することについて話しています一般的な場所では、しかし私はそれを機能させることはできません.
再度、感謝します!
android - Android 5 と BLE デバイス間の BLE 接続を確立できません
Android Lollipop スマートフォンと BLE デバイス (BLE モジュールを搭載した TI 実験ボード) 間の接続の実装に行き詰まっています。次の呼び出しを使用して接続します。
Android 4.3 と 4.4 の接続を確立できましたが、Android 5 で同じコードを使用すると、次のエラーが発生しBluetoothGattCallback::onConnectionStateChange
ます。
エラーコード133
は を意味しGATT_ERROR
ます。
自作アプリ、グーグルサンプル、プレイマーケットのBLEスキャナーアプリを使ってみましたが、どれもデバイスに接続できませんでした。また、いくつかの Android 5 スマートフォンを試してみましたが、うまくいきませんでした。
しかし、別のデバイス (TI ワイヤレス コネクティビティ開発キット) があり、Android 5 スマートフォンとの接続を確立できます。したがって、問題は Android 5 と私の特定のデバイスに関連しています。どうすれば解決できるのか、少なくともこの種のエラーをデバッグして根本原因を突き止めるにはどうすればよいのでしょうか。
PS @nayoso hereが提案したアプローチも試しましたが、どちらも役に立ちませんでした。
ios - Windows PC から iOS デバイスへの Bluegiga BLE112 データ転送
Windows PC から iOS デバイスへのデータ転送 (1 MB 未満のデータ) は可能ですか?
Bluetooth LE 経由で Windows マシンから iOS デバイスにデータを転送するソリューションを探していて、bluegiga BLE112 が適切なオプションであることがわかりましたが、GATT プロファイルではないデータを .net アプリケーションからios アプリケーション。
可能ですか?
android - サービスの 10,000 の同一特性を示す BluetoothGatt
主にそれがどれほど永続的であるかのために、私は完全に困惑している問題を抱えています。
Bluegiga BLE113 と通信するための小さな Android アプリを作成していました。以前にこのデバイスに接続したことはありますが、最近 GATT を変更したため、Android デバイスに反映されていませんでした (試したどのアプリにも反映されていませんでした。デスクトップと iOS アプリから GATT が更新されたことを確認しました)。予想通り)。
Bluetooth をオフ/オンにして、Nexus 7 を再起動しようとしましたが、それでも何も起こりません。最後に、私は必死になり、ここで言及されている解決策を試しました: https://stackoverflow.com/a/22709467/992509リフレクションを使用して、refresh と呼ばれるプライベート BluetoothGatt メソッドをヒットします。
私の新しいサービスが表示されていたので、完全に機能しているように見えましたが、私が遭遇したのは、私のサービス (1 つの特性のみ) が同じ UUID を持つ数百の特性を示しているということでした。アプリを実行するたびに、デバイスの再起動や BT のサイクリングによっても、同一の特性の数が増加しました。
最後に、私は必死になり、Nexus を工場出荷時設定にリセットしました (これはテスト デバイスなので、気にしません)。この画像は私が見ているものを示しています (10k 特性):
私の BLE113 GATT は次のようになります。
Android コードは、基本的に BluetoothGatt.discoverServices() です (これが起こるのは初めてです)。
繰り返しますが、BT のリセット、Nexus の再起動、工場出荷時設定へのリセットを試みました。また、デスクトップ アプリと iOS を介して、BLE 周辺機器が期待どおりに動作することを確認しました。
私は Nexus 7 を使用しており、5.0.2 を実行しており、アプリで 4.4 をターゲットにしています。
android - Android BLE ペリフェラルを作成するにはどうすればよいですか?
2 つの Bluetooth BLE アプリを作成しようとしています。
- 1つの中心的な役割
- 1つの周辺
しかし、いくつかの問題が見つかり、アプリがクラッシュしました。
これは私が従ったステップです:
1 - クライアントが記述子を設定
2 - onDescriptorWriteRequest のサーバーが
3 - クライアントはこの通知を受け取り、私はこれを行いました:
4 - サーバーは onCharacteristicWriteRequest でこれを受け取り、私はこれを行いました:
5- クライアントで notifyCharacteristicChanged が呼び出され、ステップ 3 に戻ります。
しかし、悲しいことに、いくつかのメッセージの後、通信は自動的にシャットダウンされました。
- クライアント有効化記述子
- サーバーはクライアントに通知を送信します
- クライアントは新しい特性を読み取り、サーバーに再書き込みします
- サーバーはクライアントに通知を再送信します
- クライアント読み取りクライアントにメッセージを送信
- メッセージが届かない…
ログを見ると、onCharacteristicWrite の関数がアプリの全期間で 1 回だけ呼び出されていることがわかりました。ステータス 133 で到着しないというメッセージの後に呼び出されましたが、他のメッセージの後に呼び出されなかった理由がわかりません。
中心的な役割のログ:
周辺ログ:
編集:あなたの提案/アドバイスをすべて追加して、前のメッセージをきれいにしました:)
編集 2: ペリフェラルはまだ生きていますが、切断されています。接続を再接続すると、上記の同じ手順をやり直します:(
EDIT3:このように設定したペリフェラルで:
EDIT5:私は私の問題を解決します。ペリフェラル内の OnCharacteristicWriteRequest 内でエラーが発生しました。アプリはまだ動作していますが、接続がクラッシュしていました。:)
EDIT6: 周辺機器の実際の MAC アドレスを取得するにはどうすればよいですか? クライアント側で「getAddress()」を使用すると、周辺機器が再起動するたびに MAC アドレスが変更されるためです。
node.js - Bluetooth 血圧計 U80IH からデータを読み取る
Bluetooth血圧計U80IHを入手し、 GATTインターフェースを使用して高貴なnpmモジュールを使用してこのデバイスからデータを読み取る方法を理解しようとしています。
scan
を使用してinfo
コマンドを実行しcylon-ble
、この結果を得ました....
販売者/製造業者は、このデバイスの GATT 仕様を提供していません。
誰かがリバース エンジニアリングを行い、プロセスの測定を開始してデータを読み取る方法を見つけられるかどうかを確認しようとしています。
sudo node_modules/.bin/cylon-ble-info 8cde5263626e
android - Android BluetoothGATT discoverServices() は多くのサービスを提供します
このような特定の ScanResult に接続した後
私は AndroidsBluetoothGatt.discoverServices()
メソッドを呼び出し、BluetoothGattCallback.onServicesDiscovered()
私は を呼び出しgetServices()
ますBluetoothGatt
。
サービスと関連する特性を一覧表示すると、期待どおりの結果が得られます。iPad の LightBlue でシミュレートされたこの Peripheral で 1 つの特性を持つ 1 つのサービスである必要がありますが、さらに多くのサービスがあります..私のログを見てください:
MyBluetoothGattCallback﹕ service: 00001800-0000-1000-8000-00805f9b34fb MyBluetoothGattCallback﹕ characteristic: 00002a00-0000-1000-8000-00805f9b34fb MyBluetoothGattCallback﹕ characteristic: 00002a01-0000-1000-8000-00805f9b34fb MyBluetoothGattCallback﹕ service: 00001801-0000-1000-8000 -00805f9b34fb MyBluetoothGattCallback﹕ characteristic: 00002a05-0000-1000-8000-00805f9b34fb MyBluetoothGattCallback﹕ service: d0611e78-bbb4-4591-a5f8-487910ae4366 MyBluetoothGattCallback﹕ characteristic: 8667556c-9a37-4c91-84ed-54ee27d90049 MyBluetoothGattCallback﹕ service: 7905f431-b5ce-4e99 -a40f-4b1e122d00d0 MyBluetoothGattCallback﹕ 特性: 69d1d8f3-45e1-49a8-9821-9bbdfdaad9d9 MyBluetoothGattCallback﹕ 特性: 9fbf120d-6301-42d9-8c58-25e699a21dbd MyBluetoothGattCallback﹕ 特性:22eac6e9-24d6-4bb5-be44-b36ace7c7bfb MyBluetoothGattCallback﹕ service: 0000180f-0000-1000-8000-00805f9b34fb MyBluetoothGattCallback﹕ characteristic: 00002a19-0000-1000-8000-00805f9b34fb MyBluetoothGattCallback﹕ service: 00001805-0000-1000-8000-00805f9b34fb MyBluetoothGattCallback﹕ characteristic: 00002a2b-0000-1000-8000-00805f9b34fb MyBluetoothGattCallback﹕ characteristic: 00002a0f-0000-1000-8000-00805f9b34fb MyBluetoothGattCallback﹕ service: 89d3502b-0f36-433a-8ef4-c502ad55f8dc MyBluetoothGattCallback﹕ characteristic: 9b3c81d8-57b1-4a8a-b8df-0e56f7ca51c2 MyBluetoothGattCallback﹕ 特性: 2f7cabce-808d-411f-9a0c-bb92ba96c102 MyBluetoothGattCallback﹕ 特性: c6b2f38c-23ab-46d8-a6ab-a3a870bbd5d7 MyBluetoothGattCallback﹕ サービス: 00001111-0000-1000-8000-903Bluetooth00002222-0000-1000-8000-00805f9b34fb
なぜ私がそこで多くのサービスを受けられるのか、誰か説明してもらえますか? キャッシングで何かありますか?