http://stackoverflow.com/a/20434019
不知道有没有大大知道公式的一些数字怎么算出来的,原因是什么!
protected static double calculateAccuracy(int txPower, double rssi) {
// 这里就是无法准确取得rssi值,就回传-1.0回去
if (rssi == 0) {
return -1.0; // if we cannot determine accuracy, return -1.
}
// 以下我就不知道为什么了,所以想请教各位
double ratio = rssi*1.0/txPower;
if (ratio < 1.0) {
return Math.pow(ratio,10);
}
else {
// 想很详细的知道这些数字怎么算得的以及它的含意
double accuracy = (0.89976)*Math.pow(ratio,7.7095) + 0.111;
return accuracy;
}
}