From 26bde30e9539471bb187881ede3d72d1f1759a82 Mon Sep 17 00:00:00 2001 From: billz Date: Fri, 24 Mar 2023 12:01:47 +0100 Subject: [PATCH] Create getSignalBars(), add max/min RSSI constants --- includes/wifi_functions.php | 39 ++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/includes/wifi_functions.php b/includes/wifi_functions.php index 9b2ebf75..234933c7 100755 --- a/includes/wifi_functions.php +++ b/includes/wifi_functions.php @@ -2,6 +2,9 @@ require_once 'functions.php'; +const MIN_RSSI = -100; +const MAX_RSSI = -55; + function knownWifiStations(&$networks) { // Find currently configured networks @@ -191,7 +194,41 @@ function reinitializeWPA($force) * * @param string $ssid */ -function ssid2utf8($ssid) { +function ssid2utf8($ssid) +{ return evalHexSequence($ssid); } +/* + * Returns a signal strength indicator based on RSSI value + * + * @param string $rssi + */ +function getSignalBars($rssi) +{ + // assign css class based on RSSI value + if ($rssi >= MAX_RSSI) { + $class = 'strong'; + } elseif ($rssi >= -56) { + $class = 'medium'; + } elseif ($rssi >= -67) { + $class = 'weak'; + } elseif ($rssi >= -89) { + $class = ''; + } + + // calculate percent strength + if ($rssi >= -50) { + $pct = 100; + } elseif ($rssi <= MIN_RSSI) { + $pct = 0; + } else { + $pct = 2*($rssi + 100); + } + $elem = '
'.PHP_EOL; + for ($n = 0; $n < 3; $n++ ) { + $elem .= '
'.PHP_EOL; + } + $elem .= '
'.PHP_EOL; + return $elem; +}