From c2d573780101de1ba5284f8a3b270c40d649440a Mon Sep 17 00:00:00 2001
From: ling <1042585959@qq.com>
Date: Fri, 5 Jan 2024 20:24:06 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8F=92=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
luci-app-modem/luasrc/controller/modem.lua | 1 +
.../luasrc/view/modem/modem_info.htm | 15 +++-
luci-app-modem/po/zh-cn/modem.po | 13 +++-
.../root/usr/share/modem/fibocom.sh | 51 +++++++++---
.../root/usr/share/modem/quectel.sh | 77 ++++++++++++++++---
5 files changed, 130 insertions(+), 27 deletions(-)
diff --git a/luci-app-modem/luasrc/controller/modem.lua b/luci-app-modem/luasrc/controller/modem.lua
index 43ac40d..350d6e7 100644
--- a/luci-app-modem/luasrc/controller/modem.lua
+++ b/luci-app-modem/luasrc/controller/modem.lua
@@ -137,6 +137,7 @@ function getModemInfo()
if modem_more_info["cell_info"] then
for key in pairs(modem_more_info["cell_info"]) do
+ translation[key]=luci.i18n.translate(key)
local network_mode=modem_more_info["cell_info"][key]
for i = 1, #network_mode do
local value = network_mode[i]
diff --git a/luci-app-modem/luasrc/view/modem/modem_info.htm b/luci-app-modem/luasrc/view/modem/modem_info.htm
index eb06b34..a06ec50 100644
--- a/luci-app-modem/luasrc/view/modem/modem_info.htm
+++ b/luci-app-modem/luasrc/view/modem/modem_info.htm
@@ -51,12 +51,15 @@ end
if (key=="UL Bandwidth"||key=="DL Bandwidth") {
info[key]=info[key]+" MHz"
}
- else if (key=="RSRP"||key=="RxLev") {
- info[key]=info[key]+" dbm"
+ else if (key=="RSRP"||key=="TX Power"||key=="RxLev") {
+ info[key]=info[key]+" dBm"
}
- else if (key=="RSRQ"||key=="RSSNR") {
+ else if (key=="RSRQ"||key=="SINR"||key=="RSSNR"||key=="Ec/Io") {
info[key]=info[key]+" dB"
}
+ else if (key=="SCS") {
+ info[key]=info[key]+" KHz"
+ }
cell_info_view+='
'+translation[key]+' : | '+info[key]+' | |
';
}
}
@@ -74,7 +77,7 @@ end
var cell_info_Element=document.getElementById("cell_info");
//初始化视图
- var cell_info_view=''+<%:network_mode%>+'';
+ var cell_info_view=''+translation[network_mode]+'';
if (network_mode=="EN-DC Mode")
{
var lte=network_mode_info[0]["LTE"];
@@ -159,6 +162,10 @@ end
}
else
{
+ // 更新提示信息
+ document.getElementById("info_message").innerHTML="<%:Not adapted to this modem%>";
+ // 显示提示信息
+ document.getElementById("cbi-info").style.display="block";
// 隐藏SIM卡信息
document.getElementById("cbi-siminfo").style.display="none";
return
diff --git a/luci-app-modem/po/zh-cn/modem.po b/luci-app-modem/po/zh-cn/modem.po
index c08b353..06d12ab 100644
--- a/luci-app-modem/po/zh-cn/modem.po
+++ b/luci-app-modem/po/zh-cn/modem.po
@@ -19,6 +19,9 @@ msgstr "选择模组"
msgid "Check information about adapted modem on this page"
msgstr "在此页面查看已适配模组的信息"
+msgid "Not adapted to this modem"
+msgstr "未适配该模组"
+
msgid "Loading modem information"
msgstr "正在加载模组信息"
@@ -274,10 +277,16 @@ msgstr "路由区域码"
msgid "RSCP"
msgstr "接收信号码功率"
-msgid "Ec/Io"
+msgid "每比特能量与干扰功率密度(干扰比)之比"
+msgstr "Eb/Io"
+
+msgid "每比特能量与噪声功率密度(噪声比)之比"
+msgstr "Eb/No"
+
+msgid "每码片能量与干扰功率密度(干扰比)之比"
msgstr "Ec/Io"
-msgid "Ec/No"
+msgid "每码片能量与噪声功率密度(噪声比)之比"
msgstr "Ec/No"
msgid "Physical Channel"
diff --git a/luci-app-modem/root/usr/share/modem/fibocom.sh b/luci-app-modem/root/usr/share/modem/fibocom.sh
index 40331ba..f82d4b7 100755
--- a/luci-app-modem/root/usr/share/modem/fibocom.sh
+++ b/luci-app-modem/root/usr/share/modem/fibocom.sh
@@ -139,6 +139,20 @@ fibocom_network_info()
# fi
}
+#获取频段
+# $1:网络类型
+# $2:频段数字
+get_band()
+{
+ local band
+ case $1 in
+ "WCDMA") band="B$2" ;;
+ "LTE") band="B$(($2-100))" ;;
+ "NR") band="N$(($2-500))" ;;
+ esac
+ echo "$band"
+}
+
#获取上行带宽
# $1:上行带宽数字
get_ul_bandwidth()
@@ -182,7 +196,7 @@ get_rsrp()
{
local rsrp
case $1 in
- "LTE") rsrp=$(($2-141)) ;;
+ "LTE") rsrp=$(($2-141)) ;;
"NR") rsrp=$(($2-157)) ;;
esac
echo "$rsrp"
@@ -195,8 +209,8 @@ get_rsrq()
{
local rsrq
case $1 in
- "LTE") rsrq=$(awk 'BEGIN{ printf "%.2f", $2 * 0.5 - 20 }' | sed 's/\.*0*$//') ;;
- "NR") rsrq=$(awk -v num="$2" 'BEGIN{ printf "%.2f", (num+1) * 0.5 - 44 }' | sed 's/\.*0*$//') ;;
+ "LTE") rsrq=$(awk "BEGIN{ printf \"%.2f\", $2 * 0.5 - 20 }" | sed 's/\.*0*$//') ;;
+ "NR") rsrq=$(awk -v num="$2" "BEGIN{ printf \"%.2f\", (num+1) * 0.5 - 44 }" | sed 's/\.*0*$//') ;;
esac
echo "$rsrq"
}
@@ -206,7 +220,7 @@ get_rsrq()
get_rssnr()
{
#去掉小数点后的0
- local rssnr=$(awk 'BEGIN{ printf "%.2f", $1 / 2 }' | sed 's/\.*0*$//')
+ local rssnr=$(awk "BEGIN{ printf \"%.2f\", $1 / 2 }" | sed 's/\.*0*$//')
echo "$rssnr"
}
@@ -217,13 +231,20 @@ get_rxlev()
{
local rxlev
case $1 in
- "WCDMA") rxlev=$(($2-121)) ;;
- "LTE") rxlev=$(($2-141)) ;;
+ "WCDMA") rxlev=$(($2-121)) ;;
+ "LTE") rxlev=$(($2-141)) ;;
"NR") rxlev=$(($2-157)) ;;
esac
echo "$rxlev"
}
+#获取Ec/Io
+# $1:Ec/Io数字
+get_ecio()
+{
+ local ecio=$(awk "BEGIN{ printf \"%.2f\", $1 * 0.5 - 24.5 }" | sed 's/\.*0*$//')
+ echo "$ecio"
+}
#网络信息
fibocom_cell_info()
@@ -244,7 +265,8 @@ fibocom_cell_info()
nr_cell_id=$(echo "$response" | awk -F',' '{print $6}')
nr_arfcn=$(echo "$response" | awk -F',' '{print $7}')
nr_physical_cell_id=$(echo "$response" | awk -F',' '{print $8}')
- nr_band=$(echo "$response" | awk -F',' '{print $9}')
+ 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=$(get_nr_dl_bandwidth $nr_dl_bandwidth_num)
nr_sinr=$(echo "$response" | awk -F',' '{print $11}')
@@ -264,7 +286,8 @@ fibocom_cell_info()
endc_lte_cell_id=$(echo "$response" | awk -F',' '{print $6}')
endc_lte_earfcn=$(echo "$response" | awk -F',' '{print $7}')
endc_lte_physical_cell_id=$(echo "$response" | awk -F',' '{print $8}')
- endc_lte_band=$(echo "$response" | awk -F',' '{print $9}')
+ endc_lte_band_num=$(echo "$response" | awk -F',' '{print $9}')
+ endc_lte_band=$(get_band "LTE" $endc_lte_band_num)
ul_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}')
endc_lte_ul_bandwidth=$(get_ul_bandwidth $ul_bandwidth_num)
endc_lte_dl_bandwidth="$endc_lte_ul_bandwidth"
@@ -283,7 +306,8 @@ fibocom_cell_info()
endc_nr_cell_id=$(echo "$response" | awk -F',' '{print $6}')
endc_nr_arfcn=$(echo "$response" | awk -F',' '{print $7}')
endc_nr_physical_cell_id=$(echo "$response" | awk -F',' '{print $8}')
- endc_nr_band=$(echo "$response" | awk -F',' '{print $9}')
+ endc_nr_band_num=$(echo "$response" | awk -F',' '{print $9}')
+ endc_nr_band=$(get_band "NR" $endc_nr_band_num)
nr_dl_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}')
endc_nr_dl_bandwidth=$(get_nr_dl_bandwidth $nr_dl_bandwidth_num)
endc_nr_sinr=$(echo "$response" | awk -F',' '{print $11}')
@@ -302,7 +326,8 @@ fibocom_cell_info()
lte_cell_id=$(echo "$response" | awk -F',' '{print $6}')
lte_earfcn=$(echo "$response" | awk -F',' '{print $7}')
lte_physical_cell_id=$(echo "$response" | awk -F',' '{print $8}')
- lte_band=$(echo "$response" | awk -F',' '{print $9}')
+ lte_band_num=$(echo "$response" | awk -F',' '{print $9}')
+ lte_band=$(get_band "LTE" $lte_band_num)
ul_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}')
lte_ul_bandwidth=$(get_ul_bandwidth $ul_bandwidth_num)
lte_dl_bandwidth="$lte_ul_bandwidth"
@@ -322,14 +347,16 @@ fibocom_cell_info()
wcdma_cell_id=$(echo "$response" | awk -F',' '{print $6}')
wcdma_uarfcn=$(echo "$response" | awk -F',' '{print $7}')
wcdma_psc=$(echo "$response" | awk -F',' '{print $8}')
- wcdma_band=$(echo "$response" | awk -F',' '{print $9}')
+ wcdma_band_num=$(echo "$response" | awk -F',' '{print $9}')
+ wcdma_band=$(get_band "WCDMA" $wcdma_band_num)
wcdma_ecno=$(echo "$response" | awk -F',' '{print $10}')
wcdma_rscp=$(echo "$response" | awk -F',' '{print $11}')
wcdma_rac=$(echo "$response" | awk -F',' '{print $12}')
wcdma_rxlev_num=$(echo "$response" | awk -F',' '{print $13}')
wcdma_rxlev=$(get_rxlev "WCDMA" $wcdma_rxlev_num)
wcdma_reserved=$(echo "$response" | awk -F',' '{print $14}')
- wcdma_ecio=$(echo "$response" | awk -F',' '{print $15}' | sed 's/\r//g')
+ wcdma_ecio_num=$(echo "$response" | awk -F',' '{print $15}' | sed 's/\r//g')
+ wcdma_ecio=$(get_ecio $wcdma_ecio_num)
;;
esac
}
diff --git a/luci-app-modem/root/usr/share/modem/quectel.sh b/luci-app-modem/root/usr/share/modem/quectel.sh
index f8a640f..224284c 100755
--- a/luci-app-modem/root/usr/share/modem/quectel.sh
+++ b/luci-app-modem/root/usr/share/modem/quectel.sh
@@ -151,6 +151,20 @@ quectel_network_info()
fi
}
+#获取频段
+# $1:网络类型
+# $2:频段数字
+get_band()
+{
+ local band
+ case $1 in
+ "WCDMA") band="B$2" ;;
+ "LTE") band="B$2" ;;
+ "NR") band="N$2" ;;
+ esac
+ echo "$band"
+}
+
#UL_bandwidth
# $1:上行带宽数字
get_lte_ul_bandwidth()
@@ -191,7 +205,7 @@ get_nr_dl_bandwidth()
echo "$nr_dl_bandwidth"
}
-#scs
+#获取NR子载波间隔
# $1:NR子载波间隔数字
get_scs()
{
@@ -202,10 +216,47 @@ get_scs()
"2") scs="60" ;;
"3") scs="120" ;;
"4") scs="240" ;;
+ *) scs=$(awk "BEGIN{ print 2^$1 * 15 }") ;;
esac
echo "$scs"
}
+#获取物理信道
+# $1:物理信道数字
+get_phych()
+{
+ local phych
+ case $1 in
+ "0") phych="DPCH" ;;
+ "1") phych="FDPCH" ;;
+ esac
+ echo "$phych"
+}
+
+#获取扩频因子
+# $1:扩频因子数字
+get_sf()
+{
+ local sf
+ case $1 in
+ "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7") sf=$(awk "BEGIN{ print 2^$(($1+2)) }") ;;
+ "8") sf="UNKNOWN" ;;
+ esac
+ echo "$sf"
+}
+
+#获取插槽格式
+# $1:插槽格式数字
+get_slot()
+{
+ local slot=$1
+ # case $1 in
+ # "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"|"10"|"11"|"12"|"13"|"14"|"15"|"16") slot=$1 ;;
+ # "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9") slot=$1 ;;
+ # esac
+ echo "$slot"
+}
+
#小区信息
quectel_cell_info()
{
@@ -226,7 +277,8 @@ quectel_cell_info()
endc_lte_cell_id=$(echo "$lte" | awk -F',' '{print $5}')
endc_lte_physical_cell_id=$(echo "$lte" | awk -F',' '{print $6}')
endc_lte_earfcn=$(echo "$lte" | awk -F',' '{print $7}')
- endc_lte_freq_band_ind=$(echo "$lte" | awk -F',' '{print $8}')
+ endc_lte_freq_band_ind_num=$(echo "$lte" | awk -F',' '{print $8}')
+ endc_lte_freq_band_ind=$(get_band "LTE" $endc_lte_freq_band_ind_num)
ul_bandwidth_num=$(echo "$lte" | awk -F',' '{print $9}')
endc_lte_ul_bandwidth=$(get_lte_ul_bandwidth $ul_bandwidth_num)
dl_bandwidth_num=$(echo "$lte" | awk -F',' '{print $10}')
@@ -247,7 +299,8 @@ quectel_cell_info()
endc_nr_sinr=$(echo "$nr5g_nsa" | awk -F',' '{print $6}')
endc_nr_rsrq=$(echo "$nr5g_nsa" | awk -F',' '{print $7}')
endc_nr_arfcn=$(echo "$nr5g_nsa" | awk -F',' '{print $8}')
- endc_nr_band=$(echo "$nr5g_nsa" | awk -F',' '{print $9}')
+ endc_nr_band_num=$(echo "$nr5g_nsa" | awk -F',' '{print $9}')
+ endc_nr_band=$(get_band "NR" $endc_nr_band_num)
nr_dl_bandwidth_num=$(echo "$nr5g_nsa" | awk -F',' '{print $10}')
endc_nr_dl_bandwidth=$(get_nr_dl_bandwidth $nr_dl_bandwidth_num)
scs_num=$(echo "$nr5g_nsa" | awk -F',' '{print $16}')
@@ -266,13 +319,15 @@ quectel_cell_info()
nr_physical_cell_id=$(echo "$response" | awk -F',' '{print $8}')
nr_tac=$(echo "$response" | awk -F',' '{print $9}')
nr_arfcn=$(echo "$response" | awk -F',' '{print $10}')
- nr_band=$(echo "$response" | awk -F',' '{print $11}')
+ nr_band_num=$(echo "$response" | awk -F',' '{print $11}')
+ nr_band=$(get_band "NR" $nr_band_num)
nr_dl_bandwidth_num=$(echo "$response" | awk -F',' '{print $12}')
nr_dl_bandwidth=$(get_nr_dl_bandwidth $nr_dl_bandwidth_num)
nr_rsrp=$(echo "$response" | awk -F',' '{print $13}')
nr_rsrq=$(echo "$response" | awk -F',' '{print $14}')
nr_sinr=$(echo "$response" | awk -F',' '{print $15}')
- nr_scs=$(echo "$response" | awk -F',' '{print $16}')
+ nr_scs_num=$(echo "$response" | awk -F',' '{print $16}')
+ nr_scs=$(get_scs $nr_scs_num)
nr_rxlev=$(echo "$response" | awk -F',' '{print $17}')
;;
"LTE"|"CAT-M"|"CAT-NB")
@@ -283,7 +338,8 @@ quectel_cell_info()
lte_cell_id=$(echo "$response" | awk -F',' '{print $7}')
lte_physical_cell_id=$(echo "$response" | awk -F',' '{print $8}')
lte_earfcn=$(echo "$response" | awk -F',' '{print $9}')
- lte_freq_band_ind=$(echo "$response" | awk -F',' '{print $10}')
+ lte_freq_band_ind_num=$(echo "$response" | awk -F',' '{print $10}')
+ lte_freq_band_ind=$(get_band "LTE" $lte_freq_band_ind_num)
ul_bandwidth_num=$(echo "$response" | awk -F',' '{print $11}')
lte_ul_bandwidth=$(get_lte_ul_bandwidth $ul_bandwidth_num)
dl_bandwidth_num=$(echo "$response" | awk -F',' '{print $12}')
@@ -308,9 +364,12 @@ quectel_cell_info()
wcdma_rac=$(echo "$response" | awk -F',' '{print $10}')
wcdma_rscp=$(echo "$response" | awk -F',' '{print $11}')
wcdma_ecio=$(echo "$response" | awk -F',' '{print $12}')
- wcdma_phych=$(echo "$response" | awk -F',' '{print $13}')
- wcdma_sf=$(echo "$response" | awk -F',' '{print $14}')
- wcdma_slot=$(echo "$response" | awk -F',' '{print $15}')
+ wcdma_phych_num=$(echo "$response" | awk -F',' '{print $13}')
+ wcdma_phych=$(get_phych $wcdma_phych_num)
+ wcdma_sf_num=$(echo "$response" | awk -F',' '{print $14}')
+ wcdma_sf=$(get_sf $wcdma_sf_num)
+ wcdma_slot_num=$(echo "$response" | awk -F',' '{print $15}')
+ wcdma_slot=$(get_slot $wcdma_slot_num)
wcdma_speech_code=$(echo "$response" | awk -F',' '{print $16}')
wcdma_com_mod=$(echo "$response" | awk -F',' '{print $17}')
;;