低エネルギーBluetooth仕様では、周辺機器が一度に複数のセントラルに接続できるかどうかについてはあまり言及していませんが、私の経験テストでは不可能であることがわかります。iOS CoreBluetooth Central Managerの連続スキャンですか?
私のアプリケーションは周辺機器との非所有関係(他人をブロックする接続がない)が必要で、常にRSSI値を更新する必要があるため、周辺機器を連続的にスキャンしてRSSI値を取得する方法を模索しています。
scanForPeripheralsWithServicesメソッドが特定の間隔でスキャンして停止するように見えます。私は一番良いのは、一度に3秒間スキャンすること、stopScanを待つこと(数秒間)、次にスキャンを再開することだと考えています。繰り返す。
誰かがそれを行う良い方法を指摘できますか?たとえば、複数のセントラルに接続するようにペリフェラルを設定しますか?
、私は継続的に更新RSSIを取得する必要があります:クラスを想定し
(。
@YES
にCBCentralManagerScanOptionAllowDuplicatesKey
を設定すると、完全に私のために問題を解決していない)はCBCentralManagerDelegateを実装しています。私の知見は、Central Managerが周辺機器を数回発見して再検出した後、スキャンが続行されてもそれを発見しなくなります(約3秒のようです)。私が残しているのは、更新されたRSSI値を取得しようと試みるためにスキャンを再開する必要があるということです。 – Jonathan
ええと、didDiscoverPeripheral関数の中でスキャンを再開することができます。そうすれば、RSSIをすばやく得ることができます。 – Aboelseoud
ありがとうございます。それは動作します。電源を節約するために、私は実際に100ms後にスキャンを停止し、毎秒100msのバーストを行います。よく働く。 – Jonathan