From e376cf5e2ae148a440003c836d0eb17a3dc2f935 Mon Sep 17 00:00:00 2001 From: sfwtw Date: Thu, 8 May 2025 18:34:40 +0800 Subject: [PATCH] feat: fibocom ca info --- .../root/usr/share/qmodem/modem_dial.sh | 2 +- .../root/usr/share/qmodem/vendor/fibocom.sh | 38 +++++++++++++++---- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/luci/luci-app-qmodem/root/usr/share/qmodem/modem_dial.sh b/luci/luci-app-qmodem/root/usr/share/qmodem/modem_dial.sh index d8cdd78..79ba61d 100755 --- a/luci/luci-app-qmodem/root/usr/share/qmodem/modem_dial.sh +++ b/luci/luci-app-qmodem/root/usr/share/qmodem/modem_dial.sh @@ -813,7 +813,7 @@ at_dial() mbim_port=$(echo "$at_port" | sed 's/at/mbim/g') umbim -d $mbim_port disconnect sleep 1 - umbim -d $mbim_port connect + umbim -d $mbim_port connect 0 fi } diff --git a/luci/luci-app-qmodem/root/usr/share/qmodem/vendor/fibocom.sh b/luci/luci-app-qmodem/root/usr/share/qmodem/vendor/fibocom.sh index 9bbf282..1d4681b 100755 --- a/luci/luci-app-qmodem/root/usr/share/qmodem/vendor/fibocom.sh +++ b/luci/luci-app-qmodem/root/usr/share/qmodem/vendor/fibocom.sh @@ -1042,7 +1042,7 @@ get_bandwidth() "NR") case $bandwidth_num in "0") bandwidth="5" ;; - "10"|"15"|"20"|"25"|"30"|"40"|"50"|"60"|"70"|"80"|"90"|"100"|"200"|"400") bandwidth="$bandwidth_num" ;; + *) bandwidth=$(( $bandwidth_num / 5 )) ;; esac ;; esac @@ -1143,7 +1143,22 @@ cell_info() case $rat in "NR") - network_mode="NR5G-SA Mode" + at_command='AT+GTCAINFO?' + ca_response=$(at $at_port $at_command) + if echo "$ca_response" | grep -q "SCC"; then + has_ca=1 + scc_info=$(echo "$ca_response" | grep "SCC" | sed 's/\r//g') + scc_band_num=$(echo "$scc_info" | awk -F',' '{print $3}') + scc_arfcn=$(echo "$scc_info" | awk -F',' '{print $5}') + scc_band=$(get_band "NR" ${scc_band_num}) + nr_scc_dl_bandwidth_num=$(echo "$scc_info" | awk -F',' '{print $6}') + nr_scc_dl_bandwidth=$(get_bandwidth "NR" ${nr_scc_dl_bandwidth_num}) + fi + if [ $has_ca -eq 1 ]; then + network_mode="NR5G-SA CA Mode" + else + network_mode="NR5G-SA Mode" + fi nr_mcc=$(echo "$response" | awk -F',' '{print $3}') nr_mnc=$(echo "$response" | awk -F',' '{print $4}') nr_tac=$(echo "$response" | awk -F',' '{print $5}') @@ -1152,8 +1167,10 @@ cell_info() nr_physical_cell_id=$(echo "$response" | awk -F',' '{print $8}') nr_band_num=$(echo "$response" | awk -F',' '{print $9}') nr_band=$(get_band "NR" ${nr_band_num}) - nr_dl_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}') + nr_dl_bandwidth_num=$(echo "$ca_response" | grep "PCC" | sed 's/\r//g' | awk -F',' '{print $4}') nr_dl_bandwidth=$(get_bandwidth "NR" ${nr_dl_bandwidth_num}) + nr_ul_bandwidth_num=$(echo "$ca_response" | grep "PCC" | sed 's/\r//g' | awk -F',' '{print $5}') + nr_ul_bandwidth=$(get_bandwidth "NR" ${nr_ul_bandwidth_num}) nr_sinr_num=$(echo "$response" | awk -F',' '{print $11}') nr_sinr=$(get_sinr "NR" ${nr_sinr_num}) nr_rxlev_num=$(echo "$response" | awk -F',' '{print $12}') @@ -1261,16 +1278,23 @@ cell_info() class="Cell Information" add_plain_info_entry "network_mode" "$network_mode" "Network Mode" case $network_mode in - "NR5G-SA Mode") + "NR5G-SA Mode"|"NR5G-SA CA Mode") add_plain_info_entry "MMC" "$nr_mcc" "Mobile Country Code" add_plain_info_entry "MNC" "$nr_mnc" "Mobile Network Code" add_plain_info_entry "Duplex Mode" "$nr_duplex_mode" "Duplex Mode" add_plain_info_entry "Cell ID" "$nr_cell_id" "Cell ID" add_plain_info_entry "Physical Cell ID" "$nr_physical_cell_id" "Physical Cell ID" add_plain_info_entry "TAC" "$nr_tac" "Tracking area code of cell served by neighbor Enb" - add_plain_info_entry "ARFCN" "$nr_arfcn" "Absolute Radio-Frequency Channel Number" - add_plain_info_entry "Band" "$nr_band" "Band" - add_plain_info_entry "DL Bandwidth" "$nr_dl_bandwidth" "DL Bandwidth" + if [ $has_ca -eq 1 ]; then + add_plain_info_entry "ARFCN" "$nr_arfcn / $scc_arfcn" "Absolute Radio-Frequency Channel Number" + add_plain_info_entry "Band" "$nr_band / $scc_band" "Band" + add_plain_info_entry "DL Bandwidth" "${nr_dl_bandwidth}M / ${nr_scc_dl_bandwidth}M" "DL Bandwidth" + else + add_plain_info_entry "ARFCN" "$nr_arfcn" "Absolute Radio-Frequency Channel Number" + add_plain_info_entry "Band" "$nr_band" "Band" + add_plain_info_entry "DL Bandwidth" "${nr_dl_bandwidth}M" "DL Bandwidth" + fi + add_plain_info_entry "UL Bandwidth" "${nr_ul_bandwidth}M" "UL Bandwidth" add_bar_info_entry "RSRP" "$nr_rsrp" "Reference Signal Received Power" -187 -29 dBm add_bar_info_entry "RSRQ" "$nr_rsrq" "Reference Signal Received Quality" -43 20 dBm add_bar_info_entry "SINR" "$nr_sinr" "Signal to Interference plus Noise Ratio Bandwidth" -23 40 dB