Я занимаюсь разработкой приложения с использованием базы Corebluetooth,corebluetooth Чтение RSSI ошибка: Операция была отменена
и подключить к BLE устройство, чтобы получить значение RSSI.
Я установил функцию для чтения RSSI periodly, код таймера ниже
NSTimer *timer;
timer = [NSTimer scheduledTimerWithTimeInterval:1.2f target:self selector:@selector(detectRSSI) userInfo:nil repeats:YES];
и код detectRSSI ниже
- (void)detectRSSI
{
[self.peripheral readRSSI];
}
Таким образом, вопрос,
функция работает тонкий, но когда я устанавливаю временной интервал менее 1,2 с,
p eripheralDidUpdateRSSI будет случайным образом сообщать сообщение об ошибке, как это:
The operation was cancelled.
И это не случилось, если скорость больше, чем 1.2sec.
Есть ли у кого-нибудь идеи читать значение RSSI чаще (0,5 с или менее)?
Возможно попробовать вместо этого: peripheral.RSSI –
ПМПС не изменится, если я только называю [периферическое RSSI] или peripheral.RSSI. Значение будет обновлено после вызова [externalal readRSSI]. Наконец, я нашел ответ, что ограничение частоты чтения определяется прошивкой. – momoyo
Если вы используете BLE, используйте 'didRangeBeacons:'. Устройство будет сканировать столько раз в секунду. – random