更新信号界面

This commit is contained in:
ling 2024-04-28 18:29:32 +08:00
parent 8ad7373bf2
commit ee99695368
10 changed files with 410 additions and 292 deletions

View File

@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-modem
LUCI_TITLE:=LuCI support for Modem
LUCI_PKGARCH:=all
PKG_VERSION:=1.4.2
PKG_VERSION:=1.4.3
PKG_LICENSE:=GPLv3
PKG_LINCESE_FILES:=LICENSE
PKF_MAINTAINER:=siriling <siriling@qq.com>
@ -15,7 +15,7 @@ LUCI_DEPENDS:=+luci-compat \
+pciutils \
+quectel-CM-5G \
+sms-tool \
+jq +grep\
+jq \
define Package/luci-app-modem/conffiles
/etc/config/modem

View File

@ -22,6 +22,65 @@ end
}
} */
.signal-view {
position: relative;
min-width: 11rem;
height: 1.5rem;
margin: 0 0;
border: thin solid #999;
background: #eee;
border-radius: 4px;
overflow: hidden;
}
.signal-percent {
width: 0;
height: 100%;
/* transition: width .25s ease-in; */
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
/* border-top-right-radius: 4px;
border-bottom-right-radius: 4px; */
}
.signal-context{
font-family: monospace;
/* font-size: 1em; */
font-weight: bold;
font-size-adjust: .38;
line-height: 1.5rem;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
overflow: hidden;
content: attr(title);
text-align: center;
white-space: pre;
text-overflow: ellipsis;
/* color:#000000; */
}
.signal-context small{
font-family: monospace;
/* font-size: 1em; */
font-weight: bold;
font-size-adjust: .38;
line-height: 1.5rem;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
overflow: hidden;
content: attr(title);
text-align: center;
white-space: pre;
text-overflow: ellipsis;
/* color:#000000; */
}
table {
width: 100%;
border-spacing: 10px;
@ -61,7 +120,6 @@ end
var rate_view;
if (mb>=1) {
console.log(mb);
rate_view=mb.toFixed(2)+" MB/s";
}
else if (kb>=1) {
@ -148,8 +206,8 @@ end
if (value!="-"&&value!="")
{
//添加单位
if (key=="RSSI") {
value=value+" dBm";
if (key=="AMBR UL"||key=="AMBR DL") {
value=value+" Mbps";
}
else if (key=="Tx Rate"||key=="Rx Rate")
{
@ -188,216 +246,207 @@ end
return percent.toFixed(2);
}
// 获取参考信号接收功率RSRP的信息视图
function get_rsrp_info_view(network_type,value)
{
// 获取参考信号的信息视图
function get_signal_info_view(network_type,key,value) {
value=parseFloat(value);
var rsrp_info_view={percent:100,quality:"Unknown",style:"width:100.00%;background-color: gray;"};
var signal_info_view={percent:100,quality:"Unknown",style:"width:100.00%;background-color: gray;"};
// 获取参考信号接收功率RSRP的信息视图'
if (key=="RSRP") {
set_rsrp_info_view(network_type,value,signal_info_view);
}
else if (key=="RSRQ") {
set_rsrq_info_view(network_type,value,signal_info_view);
}
else if (key=="SINR") {
set_sinr_info_view(network_type,value,signal_info_view);
}
else if (key=="RxLev") {
set_rxlev_info_view(network_type,value,signal_info_view);
}
//添加100%时候的样式
if (signal_info_view.percent==100) {
signal_info_view.style+="border-top-right-radius: 4px;border-bottom-right-radius: 4px;";
}
return signal_info_view;
}
// 获取参考信号接收功率RSRP的信息视图
function set_rsrp_info_view(network_type,value,signal_info_view)
{
// 获取百分比
var percent=100;
if (network_type.includes("NR"))
{
percent=get_percent(value,-153,31);
signal_info_view.percent=get_percent(value,-153,31);
}
else if (network_type.includes("LTE"))
{
percent=get_percent(value,-140,-44);
signal_info_view.percent=get_percent(value,-140,-44);
}
else if (network_type.includes("WCDMA"))
{
// percent=get_percent(value,-140,-44);
// signal_info_view.percent=get_percent(value,-140,-44);
}
// 获取样式
var quality="Unknown";
var color="gray";
if (value>=-70)
{
quality="Excellent";
signal_info_view.quality="Excellent";
color="limegreen";
}
else if (value>=-80&&value<-70)
{
quality="Good";
signal_info_view.quality="Good";
color="lime";
}
else if (value>=-90&&value<-80)
{
quality="Fair";
signal_info_view.quality="Fair";
color="gold";
}
else if (value<-90)
{
quality="Bad";
signal_info_view.quality="Bad";
color="red";
}
rsrp_info_view.percent=percent;
rsrp_info_view.quality=quality;
rsrp_info_view.style='width:'+rsrp_info_view.percent+'%;background-color: '+color+';';
return rsrp_info_view;
signal_info_view.style='width:'+signal_info_view.percent+'%;background-color: '+color+';';
}
// 获取参考信号接收质量RSRQ的信息视图
function get_rsrq_info_view(network_type,value)
function set_rsrq_info_view(network_type,value,signal_info_view)
{
value=parseFloat(value);
var rsrq_info_view={percent:100,quality:"Unknown",style:"width:100.00%;background-color: gray;"};
// 获取百分比
var percent=100;
if (network_type.includes("NR"))
{
percent=get_percent(value,-43,20);
signal_info_view.percent=get_percent(value,-43,20);
}
else if (network_type.includes("LTE"))
{
percent=get_percent(value,-19.5,-3);
signal_info_view.percent=get_percent(value,-19.5,-3);
}
else if (network_type.includes("WCDMA"))
{
// percent=get_percent(value,-19.5,-3);
// signal_info_view.percent=get_percent(value,-19.5,-3);
}
// 获取样式
var quality="Unknown";
var color="gray";
if (value>=-10)
{
quality="Excellent";
signal_info_view.quality="Excellent";
color="limegreen";
}
else if (value>=-15&&value<-10)
{
quality="Good";
signal_info_view.quality="Good";
color="lime";
}
else if (value>=-20&&value<-15)
{
quality="Fair";
signal_info_view.quality="Fair";
color="gold";
}
else if (value<-20)
{
quality="Bad";
signal_info_view.quality="Bad";
color="red";
}
rsrq_info_view.percent=percent;
rsrq_info_view.quality=quality;
rsrq_info_view.style='width:'+rsrq_info_view.percent+'%;background-color: '+color+';';
return rsrq_info_view;
signal_info_view.style='width:'+signal_info_view.percent+'%;background-color: '+color+';';
}
// 获取信噪比SINR的信息视图
function get_sinr_info_view(network_type,value)
function set_sinr_info_view(network_type,value,signal_info_view)
{
value=parseFloat(value);
var sinr_info_view={percent:100,quality:"Unknown",style:"width:100.00%;background-color: gray;"};
// 获取百分比
var percent=100;
if (network_type.includes("NR"))
{
percent=get_percent(value,-23,40);
signal_info_view.percent=get_percent(value,-23,40);
}
else if (network_type.includes("LTE"))
{
percent=get_percent(value,-20,-30);
signal_info_view.percent=get_percent(value,-20,-30);
}
else if (network_type.includes("WCDMA"))
{
// percent=get_percent(value,-20,-30);
// signal_info_view.percent=get_percent(value,-20,-30);
}
// 获取样式
var quality="Unknown";
var color="gray";
if (value>=25)
{
quality="Excellent";
signal_info_view.quality="Excellent";
color="limegreen";
}
else if (value>=15&&value<25)
{
quality="Good";
signal_info_view.quality="Good";
color="lime";
}
else if (value>=-10&&value<15)
else if (value>=10&&value<15)
{
quality="Fair";
signal_info_view.quality="Fair";
color="gold";
}
else if (value<10)
{
quality="Bad";
signal_info_view.quality="Bad";
color="red";
}
sinr_info_view.percent=percent;
sinr_info_view.quality=quality;
sinr_info_view.style='width:'+sinr_info_view.percent+'%;background-color: '+color+';';
return sinr_info_view;
signal_info_view.style='width:'+signal_info_view.percent+'%;background-color: '+color+';';
}
// 获取接收信号功率RxLev的信息视图
function get_rxlev_info_view(network_type,value)
function set_rxlev_info_view(network_type,value,signal_info_view)
{
value=parseFloat(value);
var sinr_info_view={percent:100,quality:"Unknown",style:"width:100.00%;background-color: gray;"};
// 获取百分比
var percent=100;
if (network_type.includes("NR"))
{
percent=get_percent(value,-153,31);
signal_info_view.percent=get_percent(value,-153,31);
}
else if (network_type.includes("LTE"))
{
percent=get_percent(value,-140,-44);
signal_info_view.percent=get_percent(value,-140,-44);
}
else if (network_type.includes("WCDMA"))
{
percent=get_percent(value,-120,-25);
signal_info_view.percent=get_percent(value,-120,-25);
}
else if (network_type.includes("GSM"))
{
percent=get_percent(value,-110,-48);
signal_info_view.percent=get_percent(value,-110,-48);
}
// 获取样式
var quality="Unknown";
var color="gray";
if (value>=-70)
{
quality="Excellent";
signal_info_view.quality="Excellent";
color="limegreen";
}
else if (value>=-80&&value<-70)
{
quality="Good";
signal_info_view.quality="Good";
color="lime";
}
else if (value>=-90&&value<-80)
{
quality="Fair";
signal_info_view.quality="Fair";
color="gold";
}
else if (value<-100)
else if (value<-90)
{
quality="Bad";
signal_info_view.quality="Bad";
color="red";
}
sinr_info_view.percent=percent;
sinr_info_view.quality=quality;
sinr_info_view.style='width:'+sinr_info_view.percent+'%;background-color: '+color+';';
return sinr_info_view;
signal_info_view.style='width:'+signal_info_view.percent+'%;background-color: '+color+';';
}
//获取小区信息视图
@ -446,13 +495,16 @@ end
if (key=="RSRP")
{
var rsrp_info_view=get_rsrp_info_view(network_type,value);
value='<div class="cbi-progressbar" title="'+value+' dBm | '+translation[rsrp_info_view.quality]+' ('+rsrp_info_view.percent+'%)"><div style="'+rsrp_info_view.style+'"></div></div>';
var unit="dBm";
var signal_info_view=get_signal_info_view(network_type,"RSRP",value);
// value='<div class="cbi-progressbar" title="'+value+' dBm | '+translation[signal_info_view.quality]+' ('+signal_info_view.percent+'%)"><div style="'+signal_info_view.style+'"></div></div>';
value='<div class="signal-view"><div class="signal-percent" style="'+signal_info_view.style+'"><div class="signal-context"><small title="'+value+' '+unit+' | '+translation[signal_info_view.quality]+' ('+signal_info_view.percent+'%)"><div style="'+signal_info_view.style+'">'+value+' dB | '+translation[signal_info_view.quality]+' ('+signal_info_view.percent+'%)</small></div></div></div>';
}
else if (key=="RxLev")
{
var rxlev_info_view=get_rxlev_info_view(network_type,value);
value='<div class="cbi-progressbar" title="'+value+' dBm | '+translation[rxlev_info_view.quality]+' ('+rxlev_info_view.percent+'%)"><div style="'+rxlev_info_view.style+'"></div></div>';
var unit="dBm";
var signal_info_view=get_signal_info_view(network_type,"RxLev",value);
value='<div class="signal-view"><div class="signal-percent" style="'+signal_info_view.style+'"><div class="signal-context"><small title="'+value+' '+unit+' | '+translation[signal_info_view.quality]+' ('+signal_info_view.percent+'%)"><div style="'+signal_info_view.style+'">'+value+' dB | '+translation[signal_info_view.quality]+' ('+signal_info_view.percent+'%)</small></div></div></div>';
}
else
{
@ -463,13 +515,15 @@ end
if (key=="RSRQ")
{
var rsrq_info_view=get_rsrq_info_view(network_type,value);
value='<div class="cbi-progressbar" title="'+value+' dB | '+translation[rsrq_info_view.quality]+' ('+rsrq_info_view.percent+'%)"><div style="'+rsrq_info_view.style+'"></div></div>';
var unit="dB";
var signal_info_view=get_signal_info_view(network_type,"RSRQ",value);
value='<div class="signal-view"><div class="signal-percent" style="'+signal_info_view.style+'"><div class="signal-context"><small title="'+value+' '+unit+' | '+translation[signal_info_view.quality]+' ('+signal_info_view.percent+'%)"><div style="'+signal_info_view.style+'">'+value+' dB | '+translation[signal_info_view.quality]+' ('+signal_info_view.percent+'%)</small></div></div></div>';
}
else if (key=="SINR")
{
var sinr_info_view=get_sinr_info_view(network_type,value);
value='<div class="cbi-progressbar" title="'+value+' dB | '+translation[sinr_info_view.quality]+' ('+sinr_info_view.percent+'%)"><div style="'+sinr_info_view.style+'"></div></div>';
var unit="dB";
var signal_info_view=get_signal_info_view(network_type,"SINR",value);
value='<div class="signal-view"><div class="signal-percent" style="'+signal_info_view.style+'"><div class="signal-context"><small title="'+value+' '+unit+' | '+translation[signal_info_view.quality]+' ('+signal_info_view.percent+'%)"><div style="'+signal_info_view.style+'">'+value+' dB | '+translation[signal_info_view.quality]+' ('+signal_info_view.percent+'%)</small></div></div></div>';
}
else
{
@ -479,7 +533,7 @@ end
else if (key=="SCS") {
value=value+" KHz";
}
cell_info_view+='<tr class="tr"><td class="td left" title="'+full_name+'">'+translation[key]+'</td><td class="td left" id="'+key+'">'+value+'</td></tr>';
cell_info_view+='<tr class="tr"><td class="td left" title="'+full_name+'">'+translation[key]+' ('+key+')</td><td class="td left" id="'+key+'">'+value+'</td></tr>';
break;
}
}

View File

@ -352,6 +352,18 @@ msgstr "网络信息"
msgid "Network Type"
msgstr "网络类型"
msgid "CQI UL"
msgstr "上行信道质量指示"
msgid "CQI DL"
msgstr "下行信道质量指示"
msgid "AMBR UL"
msgstr "上行访问最大比特率"
msgid "AMBR DL"
msgstr "下行访问最大比特率"
msgid "Tx Rate"
msgstr "上传速率"

View File

@ -121,6 +121,13 @@ set_ipv4_interface()
local interface_name="$1"
local network_interface="$2"
#删除原网络配置
uci -q del network.${interface_name}.ipaddr
uci -q del network.${interface_name}.netmask
uci -q del network.${interface_name}.gateway
uci -q del network.${interface_name}.peerdns
uci -q del network.${interface_name}.dns
#添加或修改网络配置
uci set network.${interface_name}='interface'
uci set network.${interface_name}.proto='dhcp'
@ -287,10 +294,6 @@ modemmanager()
qmi()
{
#设置网络接口
local network_interface=$(uci -q get modem.modem${modem_no}.network_interface)
set_interface "${modem_no}" "$network_interface"
#选择拨号工具
case $dial_tool in
"quectel-CM") quectel_cm ;;
@ -302,11 +305,6 @@ qmi()
gobinet()
{
#获取网络接口
local network_interface=$(uci -q get modem.modem${modem_no}.network_interface)
#设置网络接口
set_interface "${modem_no}" "$network_interface"
#拨号
procd_open_instance
procd_set_param command sh ${SCRIPT_DIR}/modem_network_task.sh "${id}" "${modem_no}" "gobinet"
@ -316,11 +314,6 @@ gobinet()
ecm()
{
#获取网络接口
local network_interface=$(uci -q get modem.modem${modem_no}.network_interface)
#设置网络接口
set_interface "${modem_no}" "$network_interface"
#拨号
procd_open_instance
procd_set_param command sh ${SCRIPT_DIR}/modem_network_task.sh "${id}" "${modem_no}" "ecm"
@ -335,11 +328,6 @@ mbim()
rndis()
{
#获取网络接口
local network_interface=$(uci -q get modem.modem${modem_no}.network_interface)
#设置网络接口
set_interface "${modem_no}" "$network_interface"
#拨号
procd_open_instance
procd_set_param command sh ${SCRIPT_DIR}/modem_network_task.sh "${id}" "${modem_no}" "rndis"
@ -632,20 +620,22 @@ dial()
#查看移动网络是否已经有配置在运行
mkdir -m 0755 -p "${MODEM_RUNDIR}"
if [ -f "${MODEM_RUN_CONFIG}" ]; then #文件存在
if grep -q "${network}" "${MODEM_RUN_CONFIG}"; then #是否记录该移动网络
local config_id=$(awk -v network="${network}" -F',' '!/^#/ && $0 ~ network { print $2 }' "${MODEM_RUN_CONFIG}")
#该移动网络已存在,且已有其他配置运行
if [ "$id" != "$config_id" ]; then
uci set modem.$1.enable=0
uci commit modem
return 0
fi
else
echo "${network},${id}" >> "${MODEM_RUN_CONFIG}"
fi
else
if [ ! -f "${MODEM_RUN_CONFIG}" ] || ! grep -q "${network}" "${MODEM_RUN_CONFIG}"; then
#文件不存在或者未记录该移动网络
echo "${network},${id}" >> "${MODEM_RUN_CONFIG}"
#获取网络接口
local network_interface=$(uci -q get modem.modem${modem_no}.network_interface)
#设置网络接口
set_interface "${modem_no}" "$network_interface"
else
local config_id=$(awk -v network="${network}" -F',' '!/^#/ && $0 ~ network { print $2 }' "${MODEM_RUN_CONFIG}")
#该移动网络已存在,且已有其他配置运行
if [ "$id" != "$config_id" ]; then
uci set modem.$1.enable=0
uci commit modem
return 0
fi
fi
#设置网络预设

View File

@ -698,113 +698,126 @@ fibocom_cell_info()
rat=$(fibocom_get_rat ${rat_num})
}
response=$(echo "$response" | sed -n '4p')
case $rat in
"NR")
network_mode="NR5G-SA Mode"
nr_mcc=$(echo "$response" | awk -F',' '{print $3}')
nr_mnc=$(echo "$response" | awk -F',' '{print $4}')
nr_tac=$(echo "$response" | awk -F',' '{print $5}')
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_num=$(echo "$response" | awk -F',' '{print $9}')
nr_band=$(fibocom_get_band "NR" ${nr_band_num})
nr_dl_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}')
nr_dl_bandwidth=$(fibocom_get_nr_dl_bandwidth ${nr_dl_bandwidth_num})
nr_sinr_num=$(echo "$response" | awk -F',' '{print $11}')
nr_sinr=$(fibocom_get_sinr_num "NR" ${nr_sinr_num})
nr_rxlev_num=$(echo "$response" | awk -F',' '{print $12}')
nr_rxlev=$(fibocom_get_rxlev "NR" ${nr_rxlev_num})
nr_rsrp_num=$(echo "$response" | awk -F',' '{print $13}')
nr_rsrp=$(fibocom_get_rsrp "NR" ${nr_rsrp_num})
nr_rsrq_num=$(echo "$response" | awk -F',' '{print $14}' | sed 's/\r//g')
nr_rsrq=$(fibocom_get_rsrq "NR" ${nr_rsrq_num})
;;
"LTE-NR")
network_mode="EN-DC Mode"
#LTE
endc_lte_mcc=$(echo "$response" | awk -F',' '{print $3}')
endc_lte_mnc=$(echo "$response" | awk -F',' '{print $4}')
endc_lte_tac=$(echo "$response" | awk -F',' '{print $5}')
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_num=$(echo "$response" | awk -F',' '{print $9}')
endc_lte_band=$(fibocom_get_band "LTE" ${endc_lte_band_num})
ul_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}')
endc_lte_ul_bandwidth=$(fibocom_get_ul_bandwidth ${ul_bandwidth_num})
endc_lte_dl_bandwidth="$endc_lte_ul_bandwidth"
endc_lte_rssnr_num=$(echo "$response" | awk -F',' '{print $11}')
endc_lte_rssnr=$(fibocom_get_rssnr ${endc_lte_rssnr_num})
endc_lte_rxlev_num=$(echo "$response" | awk -F',' '{print $12}')
endc_lte_rxlev=$(fibocom_get_rxlev "LTE" ${endc_lte_rxlev_num})
endc_lte_rsrp_num=$(echo "$response" | awk -F',' '{print $13}')
endc_lte_rsrp=$(fibocom_get_rsrp "LTE" ${endc_lte_rsrp_num})
endc_lte_rsrq_num=$(echo "$response" | awk -F',' '{print $14}' | sed 's/\r//g')
endc_lte_rsrq=$(fibocom_get_rsrq "LTE" ${endc_lte_rsrq_num})
#NR5G-NSA
endc_nr_mcc=$(echo "$response" | awk -F',' '{print $3}')
endc_nr_mnc=$(echo "$response" | awk -F',' '{print $4}')
endc_nr_tac=$(echo "$response" | awk -F',' '{print $5}')
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_num=$(echo "$response" | awk -F',' '{print $9}')
endc_nr_band=$(fibocom_get_band "NR" ${endc_nr_band_num})
nr_dl_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}')
endc_nr_dl_bandwidth=$(fibocom_get_nr_dl_bandwidth ${nr_dl_bandwidth_num})
endc_nr_sinr_num=$(echo "$response" | awk -F',' '{print $11}')
endc_nr_sinr=$(fibocom_get_sinr_num "NR" ${endc_nr_sinr_num})
endc_nr_rxlev_num=$(echo "$response" | awk -F',' '{print $12}')
endc_nr_rxlev=$(fibocom_get_rxlev "NR" ${endc_nr_rxlev_num})
endc_nr_rsrp_num=$(echo "$response" | awk -F',' '{print $13}')
endc_nr_rsrp=$(fibocom_get_rsrp "NR" ${endc_nr_rsrp_num})
endc_nr_rsrq_num=$(echo "$response" | awk -F',' '{print $14}' | sed 's/\r//g')
endc_nr_rsrq=$(fibocom_get_rsrq "NR" ${endc_nr_rsrq_num})
;;
"LTE"|"eMTC"|"NB-IoT")
network_mode="LTE Mode"
lte_mcc=$(echo "$response" | awk -F',' '{print $3}')
lte_mnc=$(echo "$response" | awk -F',' '{print $4}')
lte_tac=$(echo "$response" | awk -F',' '{print $5}')
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_num=$(echo "$response" | awk -F',' '{print $9}')
lte_band=$(fibocom_get_band "LTE" ${lte_band_num})
ul_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}')
lte_ul_bandwidth=$(fibocom_get_ul_bandwidth ${ul_bandwidth_num})
lte_dl_bandwidth="$lte_ul_bandwidth"
lte_rssnr=$(echo "$response" | awk -F',' '{print $11}')
lte_rxlev_num=$(echo "$response" | awk -F',' '{print $12}')
lte_rxlev=$(fibocom_get_rxlev "LTE" ${lte_rxlev_num})
lte_rsrp_num=$(echo "$response" | awk -F',' '{print $13}')
lte_rsrp=$(fibocom_get_rsrp "LTE" ${lte_rsrp_num})
lte_rsrq_num=$(echo "$response" | awk -F',' '{print $14}' | sed 's/\r//g')
lte_rsrq=$(fibocom_get_rsrq "LTE" ${lte_rsrq_num})
;;
"WCDMA"|"UMTS")
network_mode="WCDMA Mode"
wcdma_mcc=$(echo "$response" | awk -F',' '{print $3}')
wcdma_mnc=$(echo "$response" | awk -F',' '{print $4}')
wcdma_lac=$(echo "$response" | awk -F',' '{print $5}')
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_num=$(echo "$response" | awk -F',' '{print $9}')
wcdma_band=$(fibocom_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=$(fibocom_get_rxlev "WCDMA" ${wcdma_rxlev_num})
wcdma_reserved=$(echo "$response" | awk -F',' '{print $14}')
wcdma_ecio_num=$(echo "$response" | awk -F',' '{print $15}' | sed 's/\r//g')
wcdma_ecio=$(fibocom_get_ecio ${wcdma_ecio_num})
;;
esac
for response in $response; do
#排除+GTCCINFO:、NR service cell:还有空行
[ -n "$response" ] && [[ "$response" = *","* ]] && {
case $rat in
"NR")
network_mode="NR5G-SA Mode"
nr_mcc=$(echo "$response" | awk -F',' '{print $3}')
nr_mnc=$(echo "$response" | awk -F',' '{print $4}')
nr_tac=$(echo "$response" | awk -F',' '{print $5}')
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_num=$(echo "$response" | awk -F',' '{print $9}')
nr_band=$(fibocom_get_band "NR" ${nr_band_num})
nr_dl_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}')
nr_dl_bandwidth=$(fibocom_get_nr_dl_bandwidth ${nr_dl_bandwidth_num})
nr_sinr_num=$(echo "$response" | awk -F',' '{print $11}')
nr_sinr=$(fibocom_get_sinr_num "NR" ${nr_sinr_num})
nr_rxlev_num=$(echo "$response" | awk -F',' '{print $12}')
nr_rxlev=$(fibocom_get_rxlev "NR" ${nr_rxlev_num})
nr_rsrp_num=$(echo "$response" | awk -F',' '{print $13}')
nr_rsrp=$(fibocom_get_rsrp "NR" ${nr_rsrp_num})
nr_rsrq_num=$(echo "$response" | awk -F',' '{print $14}' | sed 's/\r//g')
nr_rsrq=$(fibocom_get_rsrq "NR" ${nr_rsrq_num})
;;
"LTE-NR")
network_mode="EN-DC Mode"
#LTE
endc_lte_mcc=$(echo "$response" | awk -F',' '{print $3}')
endc_lte_mnc=$(echo "$response" | awk -F',' '{print $4}')
endc_lte_tac=$(echo "$response" | awk -F',' '{print $5}')
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_num=$(echo "$response" | awk -F',' '{print $9}')
endc_lte_band=$(fibocom_get_band "LTE" ${endc_lte_band_num})
ul_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}')
endc_lte_ul_bandwidth=$(fibocom_get_ul_bandwidth ${ul_bandwidth_num})
endc_lte_dl_bandwidth="$endc_lte_ul_bandwidth"
endc_lte_rssnr_num=$(echo "$response" | awk -F',' '{print $11}')
endc_lte_rssnr=$(fibocom_get_rssnr ${endc_lte_rssnr_num})
endc_lte_rxlev_num=$(echo "$response" | awk -F',' '{print $12}')
endc_lte_rxlev=$(fibocom_get_rxlev "LTE" ${endc_lte_rxlev_num})
endc_lte_rsrp_num=$(echo "$response" | awk -F',' '{print $13}')
endc_lte_rsrp=$(fibocom_get_rsrp "LTE" ${endc_lte_rsrp_num})
endc_lte_rsrq_num=$(echo "$response" | awk -F',' '{print $14}' | sed 's/\r//g')
endc_lte_rsrq=$(fibocom_get_rsrq "LTE" ${endc_lte_rsrq_num})
#NR5G-NSA
endc_nr_mcc=$(echo "$response" | awk -F',' '{print $3}')
endc_nr_mnc=$(echo "$response" | awk -F',' '{print $4}')
endc_nr_tac=$(echo "$response" | awk -F',' '{print $5}')
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_num=$(echo "$response" | awk -F',' '{print $9}')
endc_nr_band=$(fibocom_get_band "NR" ${endc_nr_band_num})
nr_dl_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}')
endc_nr_dl_bandwidth=$(fibocom_get_nr_dl_bandwidth ${nr_dl_bandwidth_num})
endc_nr_sinr_num=$(echo "$response" | awk -F',' '{print $11}')
endc_nr_sinr=$(fibocom_get_sinr_num "NR" ${endc_nr_sinr_num})
endc_nr_rxlev_num=$(echo "$response" | awk -F',' '{print $12}')
endc_nr_rxlev=$(fibocom_get_rxlev "NR" ${endc_nr_rxlev_num})
endc_nr_rsrp_num=$(echo "$response" | awk -F',' '{print $13}')
endc_nr_rsrp=$(fibocom_get_rsrp "NR" ${endc_nr_rsrp_num})
endc_nr_rsrq_num=$(echo "$response" | awk -F',' '{print $14}' | sed 's/\r//g')
endc_nr_rsrq=$(fibocom_get_rsrq "NR" ${endc_nr_rsrq_num})
;;
"LTE"|"eMTC"|"NB-IoT")
network_mode="LTE Mode"
lte_mcc=$(echo "$response" | awk -F',' '{print $3}')
lte_mnc=$(echo "$response" | awk -F',' '{print $4}')
lte_tac=$(echo "$response" | awk -F',' '{print $5}')
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_num=$(echo "$response" | awk -F',' '{print $9}')
lte_band=$(fibocom_get_band "LTE" ${lte_band_num})
ul_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}')
lte_ul_bandwidth=$(fibocom_get_ul_bandwidth ${ul_bandwidth_num})
lte_dl_bandwidth="$lte_ul_bandwidth"
lte_rssnr=$(echo "$response" | awk -F',' '{print $11}')
lte_rxlev_num=$(echo "$response" | awk -F',' '{print $12}')
lte_rxlev=$(fibocom_get_rxlev "LTE" ${lte_rxlev_num})
lte_rsrp_num=$(echo "$response" | awk -F',' '{print $13}')
lte_rsrp=$(fibocom_get_rsrp "LTE" ${lte_rsrp_num})
lte_rsrq_num=$(echo "$response" | awk -F',' '{print $14}' | sed 's/\r//g')
lte_rsrq=$(fibocom_get_rsrq "LTE" ${lte_rsrq_num})
;;
"WCDMA"|"UMTS")
network_mode="WCDMA Mode"
wcdma_mcc=$(echo "$response" | awk -F',' '{print $3}')
wcdma_mnc=$(echo "$response" | awk -F',' '{print $4}')
wcdma_lac=$(echo "$response" | awk -F',' '{print $5}')
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_num=$(echo "$response" | awk -F',' '{print $9}')
wcdma_band=$(fibocom_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=$(fibocom_get_rxlev "WCDMA" ${wcdma_rxlev_num})
wcdma_reserved=$(echo "$response" | awk -F',' '{print $14}')
wcdma_ecio_num=$(echo "$response" | awk -F',' '{print $15}' | sed 's/\r//g')
wcdma_ecio=$(fibocom_get_ecio ${wcdma_ecio_num})
;;
esac
#联发科平台特殊处理FM350-GL
[[ "$name" = "FM350-GL" ]] && {
nr_sinr="${nr_sinr_num}"
endc_nr_sinr="${endc_nr_sinr_num}"
}
#只选择第一个,然后退出
break
}
done
}

View File

@ -18,7 +18,7 @@ init_modem_info()
at_port='-' #AT串口
mode='unknown' #拨号模式
temperature="NaN $(printf "\xc2\xb0")C" #温度
update_time='-' #更新时间
update_time='-' #更新时间
#SIM卡信息
sim_status="unknown" #SIM卡状态
@ -31,9 +31,13 @@ init_modem_info()
#网络信息
connect_status="disconnect" #SIM卡状态
network_type="-" #蜂窝网络类型
tx_rate="-" #上传速率
rx_rate="-" #下载速率
network_type="-" #蜂窝网络类型
cqi_ul="-" #上行信道质量指示
cqi_dl="-" #下行信道质量指示
ambr_ul="-" #上行签约速率
ambr_dl="-" #下行签约速率
tx_rate="-" #上传速率
rx_rate="-" #下载速率
#小区信息
network_mode="-" #网络模式
@ -167,6 +171,10 @@ set_network_info()
{
network_info="\"network_info\":[
{\"Network Type\":\"$network_type\", \"full_name\":\"Network Type\"},
{\"CQI UL\":\"$cqi_ul\", \"full_name\":\"Channel Quality Indicator for Uplink\"},
{\"CQI DL\":\"$cqi_dl\", \"full_name\":\"Channel Quality Indicator for Downlink\"},
{\"AMBR UL\":\"$ambr_ul\", \"full_name\":\"Access Maximum Bit Rate for Uplink\"},
{\"AMBR DL\":\"$ambr_dl\", \"full_name\":\"Access Maximum Bit Rate for Downlink\"},
{\"Tx Rate\":\"$tx_rate\", \"full_name\":\"Transmit Rate\"},
{\"Rx Rate\":\"$rx_rate\", \"full_name\":\"Receive Rate\"}
],"

View File

@ -191,8 +191,8 @@ modem_network_task()
#获取AT串口制造商平台连接定义接口名称
local at_port=$(uci -q get modem.modem${modem_no}.at_port)
local manufacturer=$(uci -q get modem.modem${modem_no}.manufacturer)
local platform=$(uci -q get modem.modem${modem_no}.platform)
local manufacturer=$(uci -q get modem.modem${modem_no}.manufacturer)
local platform=$(uci -q get modem.modem${modem_no}.platform)
local define_connect=$(uci -q get modem.modem${modem_no}.define_connect)
local interface_name="wwan_5g_${modem_no}"
local interface_name_ipv6="wwan6_5g_${modem_no}"
@ -281,6 +281,7 @@ modem_network_task()
#重新设置网络接口广和通FM350-GL
if [ "$manufacturer" = "fibocom" ] && [ "$platform" = "mediatek" ]; then
reset_network_interface "${at_port}" "${define_connect}" "${modem_no}"
sleep 3s
fi
[ "$mode" != "modemmanager" ] && {

View File

@ -120,54 +120,6 @@
"data_interface":"usb",
"define_connect":"1",
"modes":["qmi","gobinet","ecm","mbim","rndis"]
},
"device":{
"quectel":{
"unisoc":{
"vendor_id":["2c7c"],
"product_id":["6001","6002","6004","6005","6006","6007","0900","0901","0902","0903","0904"]
},
"qualcomm":{
"vendor_id":["2c7c"],
"product_id":["0121","0125","0191","0195","0296","0306","030b","0435","0452","0455","0512","0620","0800","0801"]
},
"mediatek":{
"vendor_id":["2c7c"],
"product_id":["0700","7001","7003"]
}
},
"fibocom":{
"unisoc":{
"vendor_id":["2cb7","3c93","3763"],
"product_id":["0a04","0a05","0a06","0a07","3c93","ffff"]
},
"qualcomm":{
"vendor_id":["2cb7"],
"product_id":["0104","0105","0106","0107","0108","0109","010A","010B","010F","0110","0111"]
},
"mediatek":{
"vendor_id":["0e8d"],
"product_id":["7126","7127"]
}
},
"meig":{
"unisoc":{
"vendor_id":["2dee"],
"product_id":["4d50","4d51","4d52","4d53"]
},
"qualcomm":{
"vendor_id":["2dee","05c6"],
"product_id":["4d22","4d23","4d38","4d45","f601"]
},
"hisilicon":{
"vendor_id":["2dee","4d20"],
"product_id":["7126","7127"]
},
"asrmicro":{
"vendor_id":["2dee"],
"product_id":["4d57","4d58","4d59"]
}
}
}
},
"pcie":{
@ -199,6 +151,54 @@
"define_connect":"1",
"modes":["qmi","mbim"]
}
},
"device":{
"quectel":{
"unisoc":{
"vendor_id":["2c7c"],
"product_id":["6001","6002","6004","6005","6006","6007","0900","0901","0902","0903","0904"]
},
"qualcomm":{
"vendor_id":["2c7c"],
"product_id":["0121","0125","0191","0195","0296","0306","030b","0435","0452","0455","0512","0620","0800","0801"]
},
"mediatek":{
"vendor_id":["2c7c"],
"product_id":["0700","7001","7003"]
}
},
"fibocom":{
"unisoc":{
"vendor_id":["2cb7","3c93","3763"],
"product_id":["0a04","0a05","0a06","0a07","3c93","ffff"]
},
"qualcomm":{
"vendor_id":["2cb7"],
"product_id":["0104","0105","0106","0107","0108","0109","010A","010B","010F","0110","0111"]
},
"mediatek":{
"vendor_id":["0e8d"],
"product_id":["7126","7127"]
}
},
"meig":{
"unisoc":{
"vendor_id":["2dee"],
"product_id":["4d50","4d51","4d52","4d53"]
},
"qualcomm":{
"vendor_id":["2dee","05c6"],
"product_id":["4d22","4d23","4d38","4d45","f601"]
},
"hisilicon":{
"vendor_id":["2dee","4d20"],
"product_id":["7126","7127"]
},
"asrmicro":{
"vendor_id":["2dee"],
"product_id":["4d57","4d58","4d59"]
}
}
}
}
}

View File

@ -213,8 +213,15 @@ m_add_usb_id()
#如果已经添加则返回
grep -q "${manufacturer_id} ${product_id}" "${new_id_path}" && return
#添加ID
echo "${manufacturer_id} ${product_id}" >> "${new_id_path}"
while true; do
if [ -f "$new_id_path" ]; then
#添加ID
echo "${manufacturer_id} ${product_id}" >> "${new_id_path}"
break
fi
sleep 5s
done
}
#设置模组硬件配置
@ -329,6 +336,20 @@ m_set_usb_device()
fi
}
#处理特殊的模组名称
# $1:模组名称
handle_special_modem_name()
{
local modem_name="$1"
#FM350-GL-00 5G Module
[[ "$modem_name" = *"fm350-gl"* ]] && {
modem_name="fm350-gl"
}
echo "$modem_name"
}
#重新尝试设置模组
# $1:模组序号
# $2:AT串口
@ -351,21 +372,22 @@ retry_set_modem_config()
local at_command="AT+CGMM?"
local modem_name=$(at ${at_port} ${at_command} | grep "+CGMM: " | awk -F'"' '{print $2}' | tr 'A-Z' 'a-z')
#再一次获取模组名称
[ -z "$modem_name" ] && {
at_command="AT+CGMM"
modem_name=$(at ${at_port} ${at_command} | sed -n '2p' | sed 's/\r//g' | tr 'A-Z' 'a-z')
}
#处理特殊的模组名称
[ -n "$modem_name" ] && {
modem_name="$(handle_special_modem_name ${modem_name})"
}
#特殊处理FM350-GL-00 5G Module
[[ "$modem_name" = *"fm350-gl"* ]] && {
modem_name="fm350-gl"
}
#获取模组信息
local data_interface=$(uci -q get modem.modem${modem_no}.data_interface)
local modem_info=$(echo ${modem_support} | jq '.modem_support.'$data_interface'."'$modem_name'"')
#获取模组信息
local data_interface=$(uci -q get modem.modem${modem_no}.data_interface)
local modem_info=$(echo ${modem_support} | jq '.modem_support.'$data_interface'."'$modem_name'"')
[ -n "$modem_name" ] && [ "$modem_info" != "null" ] && {
#获取制造商
local manufacturer=$(echo ${modem_info} | jq -r '.manufacturer')

View File

@ -491,6 +491,24 @@ quectel_network_info()
# per=$((csq * 100/31))"%"
# fi
#最大比特率,信道质量指示
at_command='AT+QNWCFG="nr5g_ambr"'
response=$(sh ${SCRIPT_DIR}/modem_at.sh $at_port $at_command | grep "+QNWCFG:")
for context in $response; do
local apn=$(echo "$context" | awk -F'"' '{print $4}' | tr 'a-z' 'A-Z')
if [ -n "$apn" ] && [ "$apn" != "IMS" ]; then
#CQL UL上行信道质量指示
cqi_ul=$(echo "$context" | awk -F',' '{print $5}')
#CQI DL下行信道质量指示
cqi_dl=$(echo "$context" | awk -F',' '{print $3}')
#AMBR UL上行签约速率单位Mbps
ambr_ul=$(echo "$context" | awk -F',' '{print $6}' | sed 's/\r//g')
#AMBR DL下行签约速率单位Mbps
ambr_dl=$(echo "$context" | awk -F',' '{print $4}')
break
fi
done
#速率统计
at_command='AT+QNWCFG="up/down"'
response=$(sh ${SCRIPT_DIR}/modem_at.sh $at_port $at_command | grep "+QNWCFG:" | sed 's/+QNWCFG: "up\/down",//g' | sed 's/\r//g')