From 97877f23899b0b66f32cc890d3725661eda9160a Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Mon, 7 Aug 2017 13:30:12 +0000 Subject: [PATCH] wireless: Show channel number as well as frequency Signed-off-by: Michael Tremer --- src/functions/functions.wireless | 39 ++++++++++++++++++++++++++++++++ src/hooks/zones/wireless | 4 ++-- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/functions/functions.wireless b/src/functions/functions.wireless index 38b19369..581bdbfe 100644 --- a/src/functions/functions.wireless +++ b/src/functions/functions.wireless @@ -210,6 +210,45 @@ wireless_channel_to_frequency() { return ${EXIT_ERROR} } +wireless_frequency_to_channel() { + local frequency=${1} + + assert isinteger frequency + + # Everything that is too high + if [ ${frequency} -gt 5825 ]; then + return ${EXIT_ERROR} + + # 5 GHz Band + elif [ ${frequency} -gt 5000 ]; then + (( frequency = frequency - 5000 )) + + # Must be divisible by 5 + [ "$(( frequency % 5 ))" -ne 0 ] && return ${EXIT_ERROR} + + print "$(( frequency / 5 ))" + + # 2.4 GHz Band - Channel 14 + elif [ ${frequency} -eq 2484 ]; then + print "14" + + # 2.4 GHz Band + elif [ ${frequency} -gt 2407 ]; then + (( frequency = frequency - 2407 )) + + # Must be divisible by 5 + [ "$(( frequency % 5 ))" -ne 0 ] && return ${EXIT_ERROR} + + print "$(( frequency / 5 ))" + + # Everything else + else + return ${EXIT_ERROR} + fi + + return ${EXIT_OK} +} + wireless_set_channel() { local device=${1} assert isset device diff --git a/src/hooks/zones/wireless b/src/hooks/zones/wireless index 402a159d..962f5fc5 100644 --- a/src/hooks/zones/wireless +++ b/src/hooks/zones/wireless @@ -137,9 +137,9 @@ hook_status() { local bssid=$(wpa_cli_status_get ${zone} bssid) assert isset bssid + local frequency=$(wpa_cli_bss_get_frequency "${zone}" "${bssid}") + cli_print_fmt1 3 "Channel" "$(wireless_frequency_to_channel ${frequency}) (${frequency} MHz)" cli_print_fmt1 3 "BSSID" "${bssid}" - cli_print_fmt1 3 "Frequency" \ - "$(wpa_cli_bss_get_frequency ${zone} ${bssid}) MHz" cli_print_fmt1 3 "Noise" \ "$(wpa_cli_bss_get_noise ${zone} ${bssid})" cli_print_fmt1 3 "Quality" \ -- 2.39.2