藍牙防丟器距離的計算

在做防丟器的項目中,有一個比較實際的功能就是通過設置距離的大小來設置報警。但是框架中並沒有給出獲取距離的接口,只有一個相關的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);
}

發佈了71 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章