<?php
function calculateAccuracy($txPower, $rssi){
if ($rssi == 0) {
return -1.0; // if we cannot determine accuracy, return -1.
}
$ratio = $rssi*1.0/$txPower;
if ($ratio < 1.0) {
return pow($ratio,10);
}
else {
$accuracy = (0.89976)*pow($ratio,7.7095) + 0.111;
return $accuracy;
}
}
echo(calculateAccuracy(-10, -70).PHP_EOL);
echo(calculateAccuracy(-20, -70).PHP_EOL);
echo(calculateAccuracy(-40, -70).PHP_EOL);
echo(calculateAccuracy(-60, -70).PHP_EOL);
echo(calculateAccuracy(-80, -70).PHP_EOL);
echo(calculateAccuracy(-90, -70).PHP_EOL);
echo(calculateAccuracy(-100, -70).PHP_EOL);
preferences:
38.55 ms | 402 KiB | 5 Q