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;
}
}