問題タブ [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.

0 投票する
1 に答える
1152 参照

android - 書き込み特性は常に false

今、私はこの質問が約 10 億回聞かれていることを知っています。

私はそれらのほとんどを読みました(このWebサイトは私の問題にはあまり役に立ちませんでした)、ドキュメントを読み、例とチュートリアルを読みました。

私がやろうとしていることは次のとおりです。

hello world を BLE デバイスに送信します (arduino に接続)

私がこれまでに行ったこと:

組み込みの設定を使用してデバイスとペアリング (アプリにプログラムされたロジックはありません)

GATT サーバーを使用してデバイスに接続します。

ただし、特性を書き込もうとすると、対応するステータスの戻り値のブール値は常に false です。これは最も関連性の高いコードです:

これらは私の許可です:

そして、これは関連するコードの残りの部分です

アプリBLEScannerを使用してbUUIDを取得しました。これは、読み取りと書き込みのUUIDを示しました。私のアプリケーションの目標は、そのアプリの機能をミラーリングすることですが、頭がおかしくなり始めています。単純な hello world を送信することさえまだできません。

Android Studio の出力:

クライアントは単純な HM-10 Bluetooth モジュールであり、今のところ ARDUINO IDE を使用して、アプリで送信したものをシリアル モニターにミラーリングしたいと考えています。

私は希望を失っているので、あなたにすべての文脈を与えたことを願っています. システムダイアログを使用して設定したため、手動でアクセス許可を確認していませんが、有効にするのは「場所」だけでしたか? これが私の問題の原因でしょうか? BluetoothのcheckSelfPermissionで確認すると、Bluetooth管理者はtrueを返しますが、そうではないと思います:

0 投票する
1 に答える
166 参照

ios - iOS CoreBluetooth 仮想周辺機器の複数の通知

20 バイトを超えるデータを Bluetooth LE セントラルに送信する必要がある iOS アプリケーションに取り組んでいます。ペリフェラル マネージャをセットアップし、20 バイトの各「パケット」を次々に送信します。true が返されたときにのみ次のパケットを送信します (false が返された場合は呼び出されperipheralManager.updatevalueた後に再試行します)。ほとんどの場合、これは機能しますが、約 20% の場合、送信されるデータは正しくありません。peripheralManagerIsReadyToUpdateSubscribersupdateValue

私は3つのパケットを持っています。ほとんどの場合、セントラルは A の次に B の次に C を受信しますが、セントラルは B の次に B の次に C を受信するか、A の次に C の次に C を受信することがあります。

常に 3 つの通知を送信していますが、値が正しくありません。

重要な場合:

特性の値はBLECharacteristicオブジェクトのインスタンスに保存されます

が呼び出された後に通知が送信されるように「バッファリング」されるperipheralManagerIsReadyToUpdateSubscribersと、情報はDelayedNotificationオブジェクトに格納されます。

オブジェクトの作成時:

編集:より多くのコード

0 投票する
1 に答える
510 参照

bluetooth - メッシュ プロビジョニング サービスとメッシュ プロキシ サービスは、BLE メッシュでのプロビジョニングとメッセージ交換でどのように使用されますか?

BLE メッシュは、レガシー デバイスが GATT ベアラーを介してメッシュ ネットワークと通信するための 2 つのサービスを定義しました。それらは:

  • メッシュ プロビジョニング サービス
  • メッシュ プロキシ サービス

デバイスは、メッシュ プロビジョニング サービスまたはメッシュ プロキシ サービス、またはその両方をサポートする場合があります。両方がサポートされている場合、これらのサービスの 1 つだけが GATT データベースで一度に公開されます。

GATT データベースで一度に 1 つのサービスを持つことに仕様が制約されるのはなぜですか?

これら 2 つのサービスは、プロビジョニング中およびプロビジョニング後に実際のメッシュ メッセージを交換するためにどのように使用されますか? 誰でもこれについて詳しく説明できますか?