internal static double CalculateDistance(int txPower, double rssi)
{
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;
}
}