From 36aeb387a8363810aa45aa62ac59ee041618035c Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 26 Mar 2016 23:11:34 +0000 Subject: [PATCH] modem: Deduplicate some code to show status of a serial modem Signed-off-by: Michael Tremer --- src/functions/functions.modem | 46 +++++++++++++++++++++++++++++++++++ src/hooks/zones/modem | 16 +----------- src/network | 42 ++++++-------------------------- 3 files changed, 54 insertions(+), 50 deletions(-) diff --git a/src/functions/functions.modem b/src/functions/functions.modem index 0f7cdee9..90def3f3 100644 --- a/src/functions/functions.modem +++ b/src/functions/functions.modem @@ -348,6 +348,52 @@ modem_is_mobile() { modem_get_device_imei ${device} &>/dev/null } +modem_mobile_network_status() { + local device="${1}" + assert isset device + + local ident="${2}" + isset ident || ident=1 + + cli_headline "${ident}" "Network status" + + modem_sim_status ${device} &>/dev/null + local sim_status_code=$? + + local sim_status="unknown" + case "${sim_status_code}" in + ${EXIT_SIM_READY}) + sim_status="SIM ready" + ;; + ${EXIT_SIM_PIN}) + sim_status="PIN locked" + ;; + ${EXIT_SIM_PUK}) + sim_status="PUK locked" + ;; + esac + cli_print_fmt1 "${ident}" "SIM status" "${sim_status}" + + if [ ${sim_status_code} -eq ${EXIT_SIM_READY} ]; then + cli_print_fmt1 "${ident}" "Network Registration" \ + "$(modem_get_network_registration ${device})" + cli_print_fmt1 "${ident}" "Operator" \ + "$(modem_get_network_operator ${device})" + cli_print_fmt1 "${ident}" "Mode" \ + "$(modem_get_network_mode ${device})" + cli_print_fmt1 "${ident}" "IMSI" \ + "$(modem_get_sim_imsi ${device})" + cli_print_fmt1 "${ident}" "Signal quality" \ + "$(modem_get_signal_quality ${device}) dBm" + + local ber=$(modem_get_bit_error_rate ${device}) + isset ber || ber="unknown" + cli_print_fmt1 "${ident}" "Bit Error Rate" "${ber}" + fi + + return ${EXIT_OK} +} + # Exit codes of the network registration function. EXIT_REG_REGISTERED_TO_HOME_NETWORK=0 EXIT_REG_NOT_REGISTERED_NOT_SEARCHING=1 diff --git a/src/hooks/zones/modem b/src/hooks/zones/modem index d12a464e..ff21d455 100644 --- a/src/hooks/zones/modem +++ b/src/hooks/zones/modem @@ -197,8 +197,6 @@ hook_status() { cli_print_fmt1 2 "MTU/MRU" "${MTU}" cli_space - cli_headline 2 "Carrier network" - # If the device and the monitor device are both locked, # we cannot show any carrier information. local device dev @@ -215,19 +213,7 @@ hook_status() { done if isset device && modem_is_mobile "${device}"; then - cli_print_fmt1 2 "Network Registration" \ - "$(modem_get_network_registration ${device})" - cli_print_fmt1 2 "Operator" \ - "$(modem_get_network_operator ${device})" - cli_print_fmt1 2 "SIM IMSI" \ - "$(modem_get_sim_imsi ${device})" - cli_print_fmt1 2 "Mode" \ - "$(modem_get_network_mode ${device})" - cli_print_fmt1 2 "Signal strength" \ - "$(modem_get_signal_quality ${device}) dBm" - local ber=$(modem_get_bit_error_rate ${device}) - isset ber || ber="unknown" - cli_print_fmt1 2 "Bit error rate" "${ber}" + modem_mobile_network_status "${device}" 2 else cli_print 2 "Device is locked." fi diff --git a/src/network b/src/network index 632a423b..922ad66f 100644 --- a/src/network +++ b/src/network @@ -225,45 +225,17 @@ cli_device_status_serial() { cli_print_fmt1 1 "Software version" \ "$(modem_get_software_version ${device})" - if modem_is_mobile ${device}; then + # Mobile + if modem_is_mobile "${device}"; then cli_print_fmt1 1 "IMEI" \ "$(modem_get_device_imei ${device})" - cli_space - - cli_headline 2 "Network status" - modem_sim_status ${device} &>/dev/null - local sim_status_code=$? - - local sim_status="unknown" - case "${sim_status_code}" in - ${EXIT_SIM_READY}) - sim_status="SIM ready" - ;; - ${EXIT_SIM_PIN}) - sim_status="PIN locked" - ;; - ${EXIT_SIM_PUK}) - sim_status="PUK locked" - ;; - esac - cli_print_fmt1 2 "SIM status" "${sim_status}" - - if [ ${sim_status_code} -eq ${EXIT_SIM_READY} ]; then - cli_print_fmt1 2 "IMSI" \ - "$(modem_get_sim_imsi ${device})" - cli_print_fmt1 2 "Operator" \ - "$(modem_get_network_operator ${device})" - cli_print_fmt1 2 "Mode" \ - "$(modem_get_network_mode ${device})" - cli_print_fmt1 2 "Signal quality" \ - "$(modem_get_signal_quality ${device}) dBm" - - local ber=$(modem_get_bit_error_rate ${device}) - isset ber || ber="unknown" - cli_print_fmt1 2 "Bit Error Rate" "${ber}" - fi fi cli_space + + if modem_is_mobile "${device}"; then + modem_mobile_network_status "${device}" 2 + cli_space + fi } cli_device_status_phy() { -- 2.39.5