Skip to main content
. 2021 Jul 15;21(14):4839. doi: 10.3390/s21144839
Listing 1. Function used to calculate the RSSI accuracy.
1 /*
2 * Calculates the accuracy of RSSI value considering txPower
3 * https://developer.radiusnetworks.com/2014/12/04/fundamentals-
4 * beacon-ranging.html
5 */
6 protected static double calculateRating(int txPower, double rssi) {
7   if (rssi == 0) {
8     return -1.0; // if we cannot determine accuracy, return -1.
9   }
10
11   double ratio = rssi*1.0/txPower;
12   if (ratio < 1.0) {
13     return Math.pow(ratio,10);
14   }
15   else
16     return (0.89976)*Math.pow(ratio,7.7095) + 0.111;
17 }