can't set BLE readRSSI frequency below 1.0s

I set a timer to read a BLE RSSI, frequency is 0.01s, use readRSSI api, but the result can't return per 0.01s, it seems like 1.0s. So I want to know whether the frequency can't below 1.0s .



- (IBAction)readRSSI:(id)sender {


if (_timer == nil){

_timer=[NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(startReadRSSI) userInfo:nil repeats:YES];

}

_timer.fireDate = [NSDate date];



}


- (void)startReadRSSI

{

[self.peri readRSSI];

}


-(void)peripheral:(CBPeripheral *)peripheral didReadRSSI:(NSNumber *)RSSI error:(NSError *)error

{

NSLog(@"%@",RSSI);

}

Replies

Keep in mind that the frequency can vary by device may be determined by firmware, meaning your app might have to work with a generic rate that fits the devices you expect it to encounter.


See http://stackoverflow.com/questions/15540481/corebluetooth-reading-rssi-errorthe-operation-was-cancelled

Hi fanren.gao,

Did you find why the frequency can't be below 1.0s?

I'm facing exactly the same issue and didn't find any answer yet :/

It doesn't seem to come from the BLE device because when using an smartphone running on Android, we've managed to get the RSSI every 200 ms.