i'm developing app using corebluetooth framework,
and connect ble device rssi value.
i set function read rssi periodly, timer code below
nstimer *timer; timer = [nstimer scheduledtimerwithtimeinterval:1.2f target:self selector:@selector(detectrssi) userinfo:nil repeats:yes];
and detectrssi code below
- (void)detectrssi { [self.peripheral readrssi]; }
so question is,
the function works fine , when set time interval less 1.2 sec,
the peripheraldidupdaterssi randomly report error message this:
the operation cancelled.
and wouldn't happened if rate more 1.2sec.
does have idea read rssi value more (0.5 sec or less)?
i encounter same problem well. me, works when add sleep(2)
inside peripheraldidupdaterssi
. don't forget use background queue when initialising cbcentralmanager.
- (void)peripheraldidupdaterssi:(cbperipheral *)peripheral error:(nserror *)error { nslog(@"rssi = %@", peripheral.rssi); sleep(2); [self.connectedperipheral readrssi]; }
Comments
Post a Comment