7

私は iOS Bluetooth LE アプリケーションに取り組んでいます。私が正しく正常にフォローできる機能は次のとおりです。

  1. 周辺機器の発見。
  2. 周辺機器への接続。
  3. サービスと特性の取得。
  4. 読み取りボタンをクリックすると、特性からデータを読み取ることができます。
  5. データ書き込み可能。

ここで問題に直面しています.BLEデバイスがアプリに送信するときにのみ、受信データを読み取る必要があります。ボタンクリック時の特性を明示的に読んでいます。BLE デバイスが特定の間隔で継続的にデータを送信していますが、取得できません。

setNotify も特性に設定しましたが、成功ではありません。

[peripheral setNotifyValue:YES forCharacteristic:characteristic];

BLE デバイス イベント (アプリへの送信) によってアプリに通知するにはどうすればよいですか? ここで私を助けるか、何か提案してください。

前もって感謝します。

4

2 に答える 2

10

あなたがしていることはうまくいくはずです。Peripheral から到着するすべてのデータは、didUpdateValueForCharacteristicコールバック メソッドに送られます。そこで探してください。

したがって、readCharacteristicメソッドを明示的に呼び出しても、データが利用可能になったときに通知するように周辺機器を設定しただけでも (アラームや心拍など)、データは同じ場所で受信されます。

:setNotifyValueメッセージを送信するdidUpdateNotificationStateForCharacteristicと、エラーのないメソッドでコールバックを受信する必要があります。そうでない場合は、周辺機器のファームウェアを調べて、特性が読み取り/書き込み専用でないことを確認することをお勧めします。

于 2012-10-25T15:01:06.413 に答える
1

ペリフェラル側では、通知を有効にするために特性のプロパティを設定する必要があります。これは、CBCharacteristicPropertyNotify プロパティで行います。たとえば、特性を作成する方法は次のとおりです。

CBMutableCharacteristic *alertLevelCharacteristic = 
[[CBMutableCharacteristic alloc] initWithType:alertLevelCharacteristicUUID
                                   properties:CBCharacteristicPropertyRead | CBCharacteristicPropertyNotify
                                        value: nil permissions:CBAttributePermissionsReadable];
于 2015-01-24T21:04:19.057 に答える