いくつかのBluetooth周辺機器からiOS(BLE付き6)のRSSIインジケーターを測定しようとしています。scanForPeripheral で RSSI を取得できます。
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], CBCentralManagerScanOptionAllowDuplicatesKey, nil];
[_manager scanForPeripheralsWithServices:nil
options:options];
と相まって:
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI {
これは機能しますが、パケットの受信速度を制御できず、結果が不確実に見えます。
私は読んだ:https ://stackoverflow.com/a/12486927/270209しかし、私のレートは100ミリ秒にまったく近くありません(1〜2秒以上)
デバイスに接続している場合、readRSSI の結果はより信頼できるようです。
スキャンモードでより頻繁に更新するために周辺機器を「刺激」する方法、または一度に複数の周辺機器に接続する方法を探しています。
ありがとう
編集:スキャンをすばやく開始/停止しようとしましたが、スキャンを開始すると、より多くのデバイスが検出され、更新がより頻繁に行われるようです