模组信息页面添加实时速率显示

This commit is contained in:
ling 2024-03-07 18:59:39 +08:00
parent 5bdd98356f
commit 846545fbc9
6 changed files with 259 additions and 126 deletions

View File

@ -188,16 +188,20 @@ function getModemInfo()
end
--网络信息翻译
if modem_more_info["network_info"] then
for key in pairs(modem_more_info["network_info"]) do
local network_info=modem_more_info["network_info"]
for i = 1, #network_info do
local info = network_info[i]
for key in pairs(info) do
--翻译键
translation[key]=luci.i18n.translate(key)
-- local value=modem_more_info["network_info"][key]
-- local value=info[key]
-- if hasLetters(value) then
-- --翻译值
-- translation[value]=luci.i18n.translate(value)
-- end
end
end
end
--小区信息翻译
if modem_more_info["cell_info"] then
for key in pairs(modem_more_info["cell_info"]) do

View File

@ -52,6 +52,28 @@ end
});
}
//获取SIM卡信息视图
function get_rate_view(rate)
{
const b=parseFloat(rate);
const kb=b/1024;
const mb=kb/1024;
var rate_view;
if (mb>=1) {
console.log(mb);
rate_view=mb.toFixed(2)+" MB/s";
}
else if (kb>=1) {
rate_view=kb.toFixed(2)+" KB/s";
}
else {
rate_view=b+" B/s";
}
return rate_view;
}
//获取SIM卡信息视图
function get_sim_info_view(sim_info,translation)
{
@ -63,6 +85,12 @@ end
//遍历每一条信息里的键
for (var key in info)
{
//跳过全名
if (key=="full_name")
{
continue;
}
//获取全名
var full_name=info["full_name"];
if (full_name==null)
@ -71,7 +99,7 @@ end
}
//写入视图(不显示空的信息)
var value=info[key];
if (key!="full_name"&&value!="-"&&value!=""&&value!="ready")
if (value!="-"&&value!=""&&value!="ready")
{
// value=translation[value]; //是否翻译
sim_info_view+='<tr class="tr"><td class="td left" title="'+full_name+'">'+translation[key]+'</td><td class="td left" id="'+key+'">'+value+'</td></tr>';
@ -92,6 +120,60 @@ end
sim_info_Element.innerHTML=sim_info_view;
}
//获取网络信息视图
function get_network_info_view(network_info,translation)
{
//初始化视图
var network_info_view='';
//遍历每一条信息
for (var info of network_info)
{
//遍历每一条信息里的键
for (var key in info)
{
//跳过全名
if (key=="full_name")
{
continue;
}
//获取全名
var full_name=info["full_name"];
if (full_name==null)
{
full_name='';
}
//写入视图(不显示空的信息)
var value=info[key];
if (value!="-"&&value!="")
{
//添加单位
if (key=="RSSI") {
value=value+" dBm";
}
else if (key=="Tx Rate"||key=="Rx Rate")
{
value=get_rate_view(value);
}
// value=translation[value]; //是否翻译
network_info_view+='<tr class="tr"><td class="td left" title="'+full_name+'">'+translation[key]+'</td><td class="td left" id="'+key+'">'+value+'</td></tr>';
break;
}
}
}
return network_info_view;
}
//设置网络信息
function set_network_info(network_info,translation)
{
//获取网络信息视图
var network_info_view=get_network_info_view(network_info,translation);
//获取网络信息表格
var network_info_Element=document.getElementById("network_info");
network_info_Element.innerHTML=network_info_view;
}
//获取小区信息视图
function get_cell_info_view(network_mode_info,network_type,translation)
{
@ -103,6 +185,12 @@ end
//遍历每一条信息里的键
for (var key in info)
{
//跳过全名
if (key=="full_name")
{
continue;
}
//获取全名
var full_name=info["full_name"];
if (full_name==null)
@ -111,7 +199,7 @@ end
}
//写入视图(不显示空的信息)
var value=info[key];
if (key!="full_name"&&value!="-"&&value!="")
if (value!="-"&&value!="")
{
//添加单位
if (key=="Band") {
@ -145,7 +233,7 @@ end
return cell_info_view;
}
//获取小区信息
//设置小区信息
function set_cell_info(cell_info,translation)
{
//获取网络模式
@ -334,7 +422,7 @@ end
//网络信息
var network_info=more_info["network_info"];
set_info(network_info);
set_network_info(network_info,translation);
//小区信息
var cell_info=more_info["cell_info"];
@ -486,11 +574,7 @@ end
<fieldset class="cbi-section" id="cbi-networkinfo" style="display: none;">
<div class="cbi-section fade-in">
<h3><%:Network Information%></h3>
<table id="network_info" class="table">
<tbody>
<tr class="tr"><td class="td left"><%:Network Type%></td><td class="td left" id="network_type"></td></tr>
</tbody>
</table>
<table id="network_info" class="table"></table>
</div>
</fieldset>
@ -501,22 +585,7 @@ end
</div>
</fieldset>
<!-- <fieldset class="cbi-section" id="cbi-networkinfo" style="display: none;">
<h3><%:网络信息%></h3>
<table width="100%" cellspacing="10">
<tr><td width="20%"><%:Network Type 网络类型 %> :</td><td id="network_type"></td><td></td></tr>
<tr><td width="20%"><%:CSQ : %></td><td id="csq"></td><td></td></tr>
<tr><td width="20%"><%:信号强度 : %></td><td id="per"></td><td></td></tr>
<tr><td width="20%"><%:RSSI 信号接收强度 : %></td><td id="rssi"></td><td></td></tr>
<tr><td width="20%"><%:RSRQ 参考信号接收质量 : %></td><td><ul><span id="ecio" class="r"></span><span id="ecio1" class="r"></span></ul></td><td></td></tr>
<tr><td width="20%"><%:RSRP 参考信号接收功率 : %></td><td><ul><span id="rscp" class="r"></span><span id="rscp1" class="r"></span></ul></td><td></td></tr>
<tr><td width="20%"><%:SINR 信噪比 : %></td><td id="sinr"></td><td></td></tr>
<tr><td width="20%"><%:连接状态监控 : %></td><td id="conmon"></td><td></td></tr>
</table>
</fieldset>
<fieldset class="cbi-section" id="cbi-stationinfo" style="display: none;">
<!-- <fieldset class="cbi-section" id="cbi-stationinfo" style="display: none;">
<h3><%:基站信息%></h3>
<table width="100%" cellspacing="10">
<tr><td width="20%"><%:MCC/MNC 国家码/网络码 %> :</td><td id="mcc"></td><td id="mnc"></td></tr>

View File

@ -274,6 +274,18 @@ msgstr "网络信息"
msgid "Network Type"
msgstr "网络类型"
msgid "Tx Rate"
msgstr "上传速率"
msgid "Rx Rate"
msgstr "下载速率"
msgid "RSSI"
msgstr "接收信号强度指示"
msgid "BER"
msgstr "信道误码率"
msgid "Cell Information"
msgstr "小区信息"

View File

@ -238,15 +238,15 @@ fibocom_base_info()
{
debug "Fibocom base info"
at_command="ATI"
response=$(sh $current_dir/modem_at.sh $at_port $at_command)
#Name名称
name=$(echo "$response" | sed -n '3p' | sed 's/Model: //g' | sed 's/\r//g')
at_command="AT+CGMM"
name=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/\r//g')
#Manufacturer制造商
manufacturer=$(echo "$response" | sed -n '2p' | sed 's/Manufacturer: //g' | sed 's/\r//g')
at_command="AT+CGMI"
manufacturer=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/\r//g')
#Revision固件版本
revision=$(echo "$response" | sed -n '4p' | sed 's/Revision: //g' | sed 's/\r//g')
at_command="AT+CGMR"
revision=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/\r//g')
#Mode拨号模式
mode=$(get_mode $at_port | tr 'a-z' 'A-Z')
@ -259,23 +259,12 @@ fibocom_base_info()
fi
}
#SIM卡信息
fibocom_sim_info()
#获取SIM卡状态
# $1:SIM卡状态标志
get_sim_status()
{
debug "Fibocom sim info"
#SIM SlotSIM卡卡槽
at_command="AT+GTDUALSIM"
sim_slot=$(sh $current_dir/modem_at.sh $at_port $at_command | grep "+GTDUALSIM:" | awk -F'"' '{print $2}' | sed 's/SUB//g')
#IMEI国际移动设备识别码
at_command="AT+CGSN"
imei=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/\r//g')
#SIM StatusSIM状态
at_command="AT+CPIN?"
response=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p')
case "$response" in
local sim_status
case $1 in
*"ERROR"*) sim_status="miss" ;;
*"READY"*) sim_status="ready" ;;
*"SIM PIN"*) sim_status="MT is waiting SIM PIN to be given" ;;
@ -295,6 +284,26 @@ fibocom_sim_info()
*"PH-CORP PUK"*) sim_status="MT is waiting corporate personalization unblocking password to be given" ;;
*) sim_status="unknown" ;;
esac
echo "$sim_status"
}
#SIM卡信息
fibocom_sim_info()
{
debug "Fibocom sim info"
#SIM SlotSIM卡卡槽
at_command="AT+GTDUALSIM"
sim_slot=$(sh $current_dir/modem_at.sh $at_port $at_command | grep "+GTDUALSIM:" | awk -F'"' '{print $2}' | sed 's/SUB//g')
#IMEI国际移动设备识别码
at_command="AT+CGSN"
imei=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/\r//g')
#SIM StatusSIM状态
at_command="AT+CPIN?"
sim_status_flag=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p')
sim_status=$(get_sim_status "$sim_status_flag")
if [ "$sim_status" != "ready" ]; then
return
@ -324,6 +333,18 @@ fibocom_sim_info()
iccid=$(sh $current_dir/modem_at.sh $at_port $at_command | grep -o "+ICCID:[ ]*[-0-9]\+" | grep -o "[-0-9]\{1,4\}")
}
#获取信号强度指示
# $1:信号强度指示数字
get_rssi()
{
local rssi
case $1 in
"99") rssi="unknown" ;;
* ) rssi=$((2 * $1 - 113)) ;;
esac
echo "$rssi"
}
#网络信息
fibocom_network_info()
{
@ -339,22 +360,34 @@ fibocom_network_info()
at_command="AT+PSRAT?"
network_type=$(sh $current_dir/modem_at.sh $at_port $at_command | grep "+PSRAT:" | sed 's/+PSRAT: //g' | sed 's/\r//g')
# #CSQ
# local at_command="AT+CSQ"
# csq=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'[ ,]+' '{print $2}')
# if [ $CSQ = "99" ]; then
# csq=""
# fi
#设置网络类型为5G时信号强度指示用RSRP代替
# at_command="AT+GTCSQNREN=1"
# sh $current_dir/modem_at.sh $at_port $at_command
#CSQ信号强度
at_command="AT+CSQ"
response=$(sh $current_dir/modem_at.sh $at_port $at_command | grep "+CSQ:" | sed 's/+CSQ: //g' | sed 's/\r//g')
#RSSI信号强度指示
rssi_num=$(echo $response | awk -F',' '{print $1}')
rssi=$(get_rssi $rssi_num)
#BER信道误码率
ber=$(echo $response | awk -F',' '{print $2}')
# #PER信号强度
# if [ -n "$csq" ]; then
# per=$(($csq * 100/31))"%"
# fi
# #RSSI信号接收强度
# if [ -n "$csq" ]; then
# rssi=$((2 * $csq - 113))" dBm"
# fi
#速率统计
at_command="AT+GTSTATIS?"
response=$(sh $current_dir/modem_at.sh $at_port $at_command | grep "+GTSTATIS:" | sed 's/+GTSTATIS: //g' | sed 's/\r//g')
#当前上传速率单位Byte/s
tx_rate=$(echo $response | awk -F',' '{print $2}')
#当前下载速率单位Byte/s
rx_rate=$(echo $response | awk -F',' '{print $1}')
}
#获取频段

View File

@ -29,6 +29,10 @@ init_modem_info()
#网络信息
connect_status="disconnect" #SIM卡状态
network_type="-" #蜂窝网络类型
rssi="" #RSSI
ber="" #BER
tx_rate="-" #上传速率
rx_rate="-" #下载速率
#小区信息
network_mode="-" #网络模式
@ -109,28 +113,6 @@ init_modem_info()
wcdma_slot=''
wcdma_speech_code=''
wcdma_com_mod=''
#信号信息
csq="" #CSQ
per="" #信号强度
rssi="" #信号接收强度 RSSI
ecio="-" #参考信号接收质量 RSRQ ecio
ecio1=" " #参考信号接收质量 RSRQ ecio1
RSCP="-" #参考信号接收功率 RSRP rscp0
RSCP1=" " #参考信号接收功率 RSRP rscp1
SINR="-" #信噪比 SINR rv["sinr"]
NETMODE="-" #连接状态监控 rv["netmode"]
#基站信息
mcc="-"
mnc="-"
eNBID=""
TAC=""
cell_id=""
LBAND="-" #频段
channel="-" #频点
PCI="-" #物理小区标识
qos="" #最大Qos级别
}
#设置基本信息
@ -182,9 +164,13 @@ set_sim_info()
#设置网络信息
set_network_info()
{
network_info="\"network_info\":{
\"network_type\":\"$network_type\"
},"
network_info="\"network_info\":[
{\"Network Type\":\"$network_type\", \"full_name\":\"Network Type\"},
{\"Tx Rate\":\"$tx_rate\", \"full_name\":\"Transmit Rate\"},
{\"Rx Rate\":\"$rx_rate\", \"full_name\":\"Receive Rate\"},
{\"RSSI\":\"$rssi\", \"full_name\":\"Received Signal Strength Indicator\"},
{\"BER\":\"$ber\", \"full_name\":\"Bit Error Rate\"}
],"
}
#设置信号信息

View File

@ -215,15 +215,15 @@ quectel_base_info()
{
debug "Quectel base info"
at_command="ATI"
response=$(sh $current_dir/modem_at.sh $at_port $at_command)
#Name名称
name=$(echo "$response" | sed -n '3p' | sed 's/\r//g')
at_command="AT+CGMM"
name=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/\r//g')
#Manufacturer制造商
manufacturer=$(echo "$response" | sed -n '2p' | sed 's/\r//g')
at_command="AT+CGMI"
manufacturer=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/\r//g')
#Revision固件版本
revision=$(echo "$response" | sed -n '4p' | sed 's/Revision: //g' | sed 's/\r//g')
at_command="AT+CGMR"
revision=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/\r//g')
#Mode拨号模式
mode=$(get_mode $at_port | tr 'a-z' 'A-Z')
@ -250,23 +250,12 @@ quectel_base_info()
# fi
}
#SIM卡信息
quectel_sim_info()
#获取SIM卡状态
# $1:SIM卡状态标志
get_sim_status()
{
debug "Quectel sim info"
#SIM SlotSIM卡卡槽
at_command="AT+QUIMSLOT?"
sim_slot=$(sh $current_dir/modem_at.sh $at_port $at_command | grep "+QUIMSLOT:" | awk -F' ' '{print $2}' | sed 's/\r//g')
#IMEI国际移动设备识别码
at_command="AT+CGSN"
imei=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/\r//g')
#SIM StatusSIM状态
at_command="AT+CPIN?"
response=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p')
case "$response" in
local sim_status
case $1 in
"") sim_status="miss" ;;
*"READY"*) sim_status="ready" ;;
*"SIM PIN"*) sim_status="MT is waiting SIM PIN to be given" ;;
@ -286,6 +275,26 @@ quectel_sim_info()
*"PH-CORP PUK"*) sim_status="MT is waiting corporate personalization unblocking password to be given" ;;
*) sim_status="unknown" ;;
esac
echo "$sim_status"
}
#SIM卡信息
quectel_sim_info()
{
debug "Quectel sim info"
#SIM SlotSIM卡卡槽
at_command="AT+QUIMSLOT?"
sim_slot=$(sh $current_dir/modem_at.sh $at_port $at_command | grep "+QUIMSLOT:" | awk -F' ' '{print $2}' | sed 's/\r//g')
#IMEI国际移动设备识别码
at_command="AT+CGSN"
imei=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/\r//g')
#SIM StatusSIM状态
at_command="AT+CPIN?"
sim_status_flag=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p')
sim_status=$(get_sim_status "$sim_status_flag")
if [ "$sim_status" != "ready" ]; then
return
@ -317,6 +326,18 @@ quectel_sim_info()
# iccid=$(sh $current_dir/modem_at.sh $at_port $at_command | grep -o "+ICCID:[ ]*[-0-9]\+" | grep -o "[-0-9]\{1,4\}")
}
#获取信号强度指示
# $1:信号强度指示数字
get_rssi()
{
local rssi
case $1 in
"99") rssi="unknown" ;;
* ) rssi=$((2 * $1 - 113)) ;;
esac
echo "$rssi"
}
#网络信息
quectel_network_info()
{
@ -333,22 +354,30 @@ quectel_network_info()
at_command="AT+QNWINFO"
network_type=$(sh $current_dir/modem_at.sh $at_port $at_command | grep "+QNWINFO:" | awk -F'"' '{print $2}')
#CSQ
#CSQ(信号强度)
at_command="AT+CSQ"
csq=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'[ ,]+' '{print $2}')
if [ $CSQ = "99" ]; then
csq=""
fi
response=$(sh $current_dir/modem_at.sh $at_port $at_command | grep "+CSQ:" | sed 's/+CSQ: //g' | sed 's/\r//g')
#RSSI信号强度指示
rssi_num=$(echo $response | awk -F',' '{print $1}')
rssi=$(get_rssi $rssi_num)
#Ber信道误码率
ber=$(echo $response | awk -F',' '{print $2}')
#PER信号强度
if [ -n "$csq" ]; then
per=$((csq * 100/31))"%"
fi
# if [ -n "$csq" ]; then
# per=$((csq * 100/31))"%"
# fi
#RSSI信号接收强度
if [ -n "$csq" ]; then
rssi=$((2 * csq - 113))" dBm"
fi
#速率统计
at_command='AT+QNWCFG="up/down"'
response=$(sh $current_dir/modem_at.sh $at_port $at_command | grep "+QNWCFG:" | sed 's/+QNWCFG: "up/down",//g' | sed 's/\r//g')
#当前上传速率单位Byte/s
tx_rate=$(echo $response | awk -F',' '{print $1}')
#当前下载速率单位Byte/s
rx_rate=$(echo $response | awk -F',' '{print $2}')
}
#获取频段