蓝牙防丢器距离的计算

在做防丢器的项目中,有一个比较实际的功能就是通过设置距离的大小来设置报警。但是框架中并没有给出获取距离的接口,只有一个相关的RSSI信号强度值。

在网上找了好长的一段时间,可以通过一个算法获得到他的距离:

代码如下!

-(void)peripheralDidUpdateRSSI:(CBPeripheral *)peripheral error:(NSError *)error
{
    //NSLog(@"%s,%@",__PRETTY_FUNCTION__,peripheral);
    int rssi = abs([peripheral.RSSI intValue]);
    CGFloat ci = (rssi - 49) / (10 * 4.);
    NSString *length = [NSString stringWithFormat:@"发现BLT4.0热点:%@,距离:%.1fm",_peripheral,pow(10,ci)];
    NSLog(@"距离:%@",length);
}

你可能感兴趣的:(object-c)