Sto sviluppando un app utilizzando il framework Corebluetooth,corebluetooth errore durante la lettura RSSI: L'operazione è stata annullata
e connettersi a un dispositivo BLE per ottenere il valore RSSI.
ho impostare una funzione per leggere RSSI periodly, il codice del timer è inferiore
NSTimer *timer;
timer = [NSTimer scheduledTimerWithTimeInterval:1.2f target:self selector:@selector(detectRSSI) userInfo:nil repeats:YES];
e il codice detectRSSI è al di sotto
- (void)detectRSSI
{
[self.peripheral readRSSI];
}
Quindi la domanda è,
le opere di funzione bene, ma quando ho impostato l'intervallo di tempo inferiore a 1,2 secondi,
il p eripheralDidUpdateRSSI in modo casuale segnalare messaggio di errore simile a questo:
The operation was cancelled.
E non sarebbe successo se il tasso è più di 1,2 sec.
Qualcuno ha qualche idea di leggere il valore RSSI più frequentemente (0,5 secondi o meno)?
magari provare invece: peripheral.RSSI –
La RSSI non è il cambiamento se solo io chiamo [RSSI periferica] o peripheral.RSSI. Il valore verrebbe aggiornato dopo aver chiamato [readRSSI periferico]. Infine ho trovato la risposta che il limite di frequenza di lettura è definito dal firmware. – momoyo
Se si usa BLE, usare 'didRangeBeacons:'. Il dispositivo eseguirà la scansione solo tante volte al secondo. – random