Я пытаюсь измерить индикатор RSSI на iOS (6 с BLE) с нескольких периферийных устройств bluetooth. я могу получить RSSI с scanForPeripheral:Обновление значения RSSI для многих периферийных устройств Bluetooth
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 кажется более надежным.
Я ищу способ «стимулировать» периферийные устройства для более частого обновления в режиме сканирования или для подключения к нескольким периферийным устройствам одновременно.
Благодаря
Edit: Я также попытался запустить/остановить сканирование быстро, кажется, что при запуске сканирования обнаруживает несколько устройств и обновления чаще
вы имеете в виду, - (Недействительными) centralManager: (CBCentralManager *) центральный didDiscoverPeripheral: (CBPeripheral *) периферическая advertisementData: (NSDictionary *) advertisementData RSSI :(NSNumber *) Метод RSSI вызван слишком быстро, и ваш RSSI обновляется слишком часто? –
Нет, на самом деле это не называется достаточно быстро. – luxcem
На каком устройстве вы работаете? – cbowns