Zajmuję się tworzeniem aplikacji przy użyciu Corebluetooth ramy,corebluetooth Błąd odczytu RSSI: Operacja została anulowana
i podłączyć urządzenie do BLE, aby uzyskać wartość RSSI.
ustawić funkcję do odczytu RSSI periodly, kod czasowy jest poniżej
NSTimer *timer;
timer = [NSTimer scheduledTimerWithTimeInterval:1.2f target:self selector:@selector(detectRSSI) userInfo:nil repeats:YES];
a kod detectRSSI jest poniżej
- (void)detectRSSI
{
[self.peripheral readRSSI];
}
Więc pytanie brzmi,
prace funkcyjne dobrze, ale gdy ustawiam przedział czasu mniejszy niż 1,2 s,
p eripheralDidUpdateRSSI losowo zgłosić komunikat o błędzie tak:
The operation was cancelled.
I to nie stało, gdyby stawka wynosi więcej niż 1.2sec.
Czy ktoś ma pomysł na odczytanie wartości RSSI częściej (0,5 sekundy lub mniej)?
Może spróbuj zamiast: peripheral.RSSI –
RSSI nie zmieni jeśli tylko zadzwonić obwodową RSSI [] lub peripheral.RSSI. Wartość zostanie zaktualizowana po wywołaniu [peripheral readRSSI]. Znalazłem odpowiedź, że limit częstotliwości odczytu jest definiowany przez oprogramowanie układowe. – momoyo
Jeśli używasz BLE, użyj 'didRangeBeacons:'. Urządzenie będzie skanować tylko tyle razy na sekundę. – random