This commit is contained in:
fujr 2024-04-28 15:09:27 +08:00
commit 0a8413d686
15 changed files with 645 additions and 201 deletions

View File

@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-modem PKG_NAME:=luci-app-modem
LUCI_TITLE:=LuCI support for Modem LUCI_TITLE:=LuCI support for Modem
LUCI_PKGARCH:=all LUCI_PKGARCH:=all
PKG_VERSION:=1.4.1 PKG_VERSION:=1.4.2
PKG_LICENSE:=GPLv3 PKG_LICENSE:=GPLv3
PKG_LINCESE_FILES:=LICENSE PKG_LINCESE_FILES:=LICENSE
PKF_MAINTAINER:=siriling <siriling@qq.com> PKF_MAINTAINER:=siriling <siriling@qq.com>

View File

@ -319,6 +319,12 @@ function getModemInfo()
end end
end end
end end
--添加额外翻译
translation["Unknown"]=luci.i18n.translate("Unknown")
translation["Excellent"]=luci.i18n.translate("Excellent")
translation["Good"]=luci.i18n.translate("Good")
translation["Fair"]=luci.i18n.translate("Fair")
translation["Bad"]=luci.i18n.translate("Bad")
--整合数据 --整合数据
local data={} local data={}

View File

@ -76,12 +76,6 @@ getMobileNetwork()
--------advanced-------- --------advanced--------
-- 配置ID
id = s:taboption("advanced", ListValue, "id", translate("Config ID"))
id.rmempty = false
id:value(arg[1])
-- uci:set('modem',arg[1],'id',arg[1])
-- 拨号工具 -- 拨号工具
dial_tool = s:taboption("advanced", ListValue, "dial_tool", translate("Dial Tool")) dial_tool = s:taboption("advanced", ListValue, "dial_tool", translate("Dial Tool"))
dial_tool.description = translate("After switching the dialing tool, it may be necessary to restart the module or restart the router to recognize the module.") dial_tool.description = translate("After switching the dialing tool, it may be necessary to restart the module or restart the router to recognize the module.")
@ -136,4 +130,13 @@ password:depends("auth", "both")
password:depends("auth", "pap") password:depends("auth", "pap")
password:depends("auth", "chap") password:depends("auth", "chap")
-- 配置ID
id = s:taboption("advanced", ListValue, "id", translate("Config ID"))
id.rmempty = false
id:value(arg[1])
-- uci:set('modem',arg[1],'id',arg[1])
-- 隐藏配置ID
m:append(Template("modem/hide_dial_config_id"))
return m return m

View File

@ -31,7 +31,9 @@ function s.create(uci, t)
end end
function s.remove(uci, t) function s.remove(uci, t)
uci.map.proceed = true uci.map.proceed = true
uci.map:del(t) -- 设置删除
uci.map:set(t,"delete","1")
-- uci.map:del(t)
luci.http.redirect(d.build_url("admin", "network", "modem","dial_overview")) luci.http.redirect(d.build_url("admin", "network", "modem","dial_overview"))
end end

View File

@ -0,0 +1,15 @@
<script type="text/javascript">//<![CDATA[
window.onload=function()
{
// 获取高级设置标签元素
var str="advanced"
var advanced_element = document.querySelector('div[data-tab="'+str+'"]');
//隐藏拨号配置ID元素
var dial_config_id_element = advanced_element.lastElementChild;
dial_config_id_element.style.display="none";
}
//]]>
</script>

View File

@ -148,8 +148,8 @@ end
if (value!="-"&&value!="") if (value!="-"&&value!="")
{ {
//添加单位 //添加单位
if (key=="RSSI") { if (key=="AMBR UL"||key=="AMBR DL") {
value=value+" dBm"; value=value+" Mbps";
} }
else if (key=="Tx Rate"||key=="Rx Rate") else if (key=="Tx Rate"||key=="Rx Rate")
{ {
@ -174,6 +174,232 @@ end
network_info_Element.innerHTML=network_info_view; network_info_Element.innerHTML=network_info_view;
} }
// 获取一个范围的百分比
function get_percent(value, min, max)
{
var percent;
if (value <= min) {
percent=0;
} else if (value >= max) {
percent=100;
} else {
percent=((value - min) / (max - min)) * 100;
}
return percent.toFixed(2);
}
// 获取参考信号接收功率RSRP的信息视图
function get_rsrp_info_view(network_type,value)
{
value=parseFloat(value);
var rsrp_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);
}
else if (network_type.includes("LTE"))
{
percent=get_percent(value,-140,-44);
}
else if (network_type.includes("WCDMA"))
{
// percent=get_percent(value,-140,-44);
}
// 获取样式
var quality="Unknown";
var color="gray";
if (value>=-70)
{
quality="Excellent";
color="limegreen";
}
else if (value>=-80&&value<-70)
{
quality="Good";
color="lime";
}
else if (value>=-90&&value<-80)
{
quality="Fair";
color="gold";
}
else if (value<-90)
{
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;
}
// 获取参考信号接收质量RSRQ的信息视图
function get_rsrq_info_view(network_type,value)
{
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);
}
else if (network_type.includes("LTE"))
{
percent=get_percent(value,-19.5,-3);
}
else if (network_type.includes("WCDMA"))
{
// percent=get_percent(value,-19.5,-3);
}
// 获取样式
var quality="Unknown";
var color="gray";
if (value>=-10)
{
quality="Excellent";
color="limegreen";
}
else if (value>=-15&&value<-10)
{
quality="Good";
color="lime";
}
else if (value>=-20&&value<-15)
{
quality="Fair";
color="gold";
}
else if (value<-20)
{
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;
}
// 获取信噪比SINR的信息视图
function get_sinr_info_view(network_type,value)
{
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);
}
else if (network_type.includes("LTE"))
{
percent=get_percent(value,-20,-30);
}
else if (network_type.includes("WCDMA"))
{
// percent=get_percent(value,-20,-30);
}
// 获取样式
var quality="Unknown";
var color="gray";
if (value>=25)
{
quality="Excellent";
color="limegreen";
}
else if (value>=15&&value<25)
{
quality="Good";
color="lime";
}
else if (value>=10&&value<15)
{
quality="Fair";
color="gold";
}
else if (value<10)
{
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;
}
// 获取接收信号功率RxLev的信息视图
function get_rxlev_info_view(network_type,value)
{
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);
}
else if (network_type.includes("LTE"))
{
percent=get_percent(value,-140,-44);
}
else if (network_type.includes("WCDMA"))
{
percent=get_percent(value,-120,-25);
}
else if (network_type.includes("GSM"))
{
percent=get_percent(value,-110,-48);
}
// 获取样式
var quality="Unknown";
var color="gray";
if (value>=-70)
{
quality="Excellent";
color="limegreen";
}
else if (value>=-80&&value<-70)
{
quality="Good";
color="lime";
}
else if (value>=-90&&value<-80)
{
quality="Fair";
color="gold";
}
else if (value<-100)
{
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;
}
//获取小区信息视图 //获取小区信息视图
function get_cell_info_view(network_mode_info,network_type,translation) function get_cell_info_view(network_mode_info,network_type,translation)
{ {
@ -204,28 +430,56 @@ end
//添加单位 //添加单位
if (key=="Band") { if (key=="Band") {
if (network_type.includes("NR")) { if (network_type.includes("NR")) {
value="N"+value value="N"+value;
} }
else if (network_type.includes("LTE")) { else if (network_type.includes("LTE")) {
value="B"+value value="B"+value;
} }
else if (network_type.includes("WCDMA")) { else if (network_type.includes("WCDMA")) {
value="B"+value value="B"+value;
} }
} }
else if (key=="UL Bandwidth"||key=="DL Bandwidth") { else if (key=="UL Bandwidth"||key=="DL Bandwidth") {
value=value+" MHz" value=value+" MHz";
} }
else if (key=="RSRP"||key=="TX Power"||key=="RxLev") { else if (key=="RSRP"||key=="TX Power"||key=="RxLev") {
value=value+" dBm"
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>';
}
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>';
}
else
{
value=value+" dBm";
}
} }
else if (key=="RSRQ"||key=="SINR"||key=="RSSNR"||key=="Ec/Io") { else if (key=="RSRQ"||key=="SINR"||key=="RSSNR"||key=="Ec/Io") {
value=value+" dB"
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>';
}
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>';
}
else
{
value=value+" dB";
}
} }
else if (key=="SCS") { else if (key=="SCS") {
value=value+" KHz" 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; break;
} }
} }

View File

@ -352,6 +352,18 @@ msgstr "网络信息"
msgid "Network Type" msgid "Network Type"
msgstr "网络类型" msgstr "网络类型"
msgid "CQI UL"
msgstr "上行信道质量指示"
msgid "CQI DL"
msgstr "下行信道质量指示"
msgid "AMBR UL"
msgstr "上行访问最大比特率"
msgid "AMBR DL"
msgstr "下行访问最大比特率"
msgid "Tx Rate" msgid "Tx Rate"
msgstr "上传速率" msgstr "上传速率"
@ -523,6 +535,18 @@ msgstr "中国电信"
msgid "46011" msgid "46011"
msgstr "中国电信" msgstr "中国电信"
msgid "Excellent"
msgstr "非常好"
msgid "Good"
msgstr "好"
msgid "Fair"
msgstr "一般"
msgid "Bad"
msgstr "差"
msgid "Plugin Config" msgid "Plugin Config"
msgstr "插件配置" msgstr "插件配置"

View File

@ -523,6 +523,18 @@ msgstr "中国电信"
msgid "46011" msgid "46011"
msgstr "中国电信" msgstr "中国电信"
msgid "Excellent"
msgstr "非常好"
msgid "Good"
msgstr "好"
msgid "Fair"
msgstr "一般"
msgid "Bad"
msgstr "差"
msgid "Plugin Config" msgid "Plugin Config"
msgstr "插件配置" msgstr "插件配置"

View File

@ -121,6 +121,13 @@ set_ipv4_interface()
local interface_name="$1" local interface_name="$1"
local network_interface="$2" 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}='interface'
uci set network.${interface_name}.proto='dhcp' uci set network.${interface_name}.proto='dhcp'
@ -287,10 +294,6 @@ modemmanager()
qmi() qmi()
{ {
#设置网络接口
local network_interface=$(uci -q get modem.modem${modem_no}.network_interface)
set_interface "${modem_no}" "$network_interface"
#选择拨号工具 #选择拨号工具
case $dial_tool in case $dial_tool in
"quectel-CM") quectel_cm ;; "quectel-CM") quectel_cm ;;
@ -302,11 +305,6 @@ qmi()
gobinet() gobinet()
{ {
#获取网络接口
local network_interface=$(uci -q get modem.modem${modem_no}.network_interface)
#设置网络接口
set_interface "${modem_no}" "$network_interface"
#拨号 #拨号
procd_open_instance procd_open_instance
procd_set_param command sh ${SCRIPT_DIR}/modem_network_task.sh "${id}" "${modem_no}" "gobinet" procd_set_param command sh ${SCRIPT_DIR}/modem_network_task.sh "${id}" "${modem_no}" "gobinet"
@ -316,11 +314,6 @@ gobinet()
ecm() ecm()
{ {
#获取网络接口
local network_interface=$(uci -q get modem.modem${modem_no}.network_interface)
#设置网络接口
set_interface "${modem_no}" "$network_interface"
#拨号 #拨号
procd_open_instance procd_open_instance
procd_set_param command sh ${SCRIPT_DIR}/modem_network_task.sh "${id}" "${modem_no}" "ecm" procd_set_param command sh ${SCRIPT_DIR}/modem_network_task.sh "${id}" "${modem_no}" "ecm"
@ -335,11 +328,6 @@ mbim()
rndis() rndis()
{ {
#获取网络接口
local network_interface=$(uci -q get modem.modem${modem_no}.network_interface)
#设置网络接口
set_interface "${modem_no}" "$network_interface"
#拨号 #拨号
procd_open_instance procd_open_instance
procd_set_param command sh ${SCRIPT_DIR}/modem_network_task.sh "${id}" "${modem_no}" "rndis" procd_set_param command sh ${SCRIPT_DIR}/modem_network_task.sh "${id}" "${modem_no}" "rndis"
@ -547,9 +535,6 @@ stop_dial()
if [ -f "${MODEM_RUN_CONFIG}" ] && grep -q "${network}" "${MODEM_RUN_CONFIG}"; then if [ -f "${MODEM_RUN_CONFIG}" ] && grep -q "${network}" "${MODEM_RUN_CONFIG}"; then
#该配置ID在运行需要删除记录 #该配置ID在运行需要删除记录
sed -i "/${id}/d" "${MODEM_RUN_CONFIG}" sed -i "/${id}/d" "${MODEM_RUN_CONFIG}"
else
return 0
fi
#获取模块序号 #获取模块序号
get_modem_no "${network}" get_modem_no "${network}"
@ -573,15 +558,29 @@ stop_dial()
elif [ "$mode" = "ncm" ]; then elif [ "$mode" = "ncm" ]; then
stop_ncm stop_ncm
fi fi
fi
} }
dial() dial()
{ {
local enable #启用 local enable #启用
local id #ID local id #ID
local delete #删除
config_get enable $1 enable config_get enable $1 enable
config_get id $1 id config_get id $1 id
config_get delete $1 delete
#删除拨号配置
[ "$delete" = "1" ] && {
stop_dial "$id"
uci -q del modem.${id}
uci commit modem
return 0
}
#停止拨号配置
[ "$enable" = "0" ] && { [ "$enable" = "0" ] && {
stop_dial "$id" stop_dial "$id"
return 0 return 0
@ -621,8 +620,15 @@ dial()
#查看移动网络是否已经有配置在运行 #查看移动网络是否已经有配置在运行
mkdir -m 0755 -p "${MODEM_RUNDIR}" mkdir -m 0755 -p "${MODEM_RUNDIR}"
if [ -f "${MODEM_RUN_CONFIG}" ]; then #文件存在 if [ ! -f "${MODEM_RUN_CONFIG}" ] || ! grep -q "${network}" "${MODEM_RUN_CONFIG}"; then
if 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}") local config_id=$(awk -v network="${network}" -F',' '!/^#/ && $0 ~ network { print $2 }' "${MODEM_RUN_CONFIG}")
#该移动网络已存在,且已有其他配置运行 #该移动网络已存在,且已有其他配置运行
if [ "$id" != "$config_id" ]; then if [ "$id" != "$config_id" ]; then
@ -630,11 +636,6 @@ dial()
uci commit modem uci commit modem
return 0 return 0
fi fi
else
echo "${network},${id}" >> "${MODEM_RUN_CONFIG}"
fi
else
echo "${network},${id}" >> "${MODEM_RUN_CONFIG}"
fi fi
#设置网络预设 #设置网络预设

View File

@ -842,6 +842,34 @@ fibocom_get_nr_dl_bandwidth()
echo "$nr_dl_bandwidth" echo "$nr_dl_bandwidth"
} }
#获取信噪比
# $1:网络类型
# $2:信噪比数字
fibocom_get_sinr_num()
{
local sinr
case $1 in
"LTE") sinr=$(awk "BEGIN{ printf \"%.2f\", $2 * 0.5 - 23.5 }" | sed 's/\.*0*$//') ;;
"NR") sinr=$(awk "BEGIN{ printf \"%.2f\", $2 * 0.5 - 23.5 }" | sed 's/\.*0*$//') ;;
esac
echo "$sinr"
}
#获取接收信号功率
# $1:网络类型
# $2:接收信号功率数字
fibocom_get_rxlev()
{
local rxlev
case $1 in
"GSM") rxlev=$(($2-110)) ;;
"WCDMA") rxlev=$(($2-121)) ;;
"LTE") rxlev=$(($2-141)) ;;
"NR") rxlev=$(($2-157)) ;;
esac
echo "$rxlev"
}
#获取参考信号接收功率 #获取参考信号接收功率
# $1:网络类型 # $1:网络类型
# $2:参考信号接收功率数字 # $2:参考信号接收功率数字
@ -877,20 +905,6 @@ fibocom_get_rssnr()
echo "$rssnr" echo "$rssnr"
} }
#获取接收信号功率
# $1:网络类型
# $2:接收信号功率数字
fibocom_get_rxlev()
{
local rxlev
case $1 in
"WCDMA") rxlev=$(($2-121)) ;;
"LTE") rxlev=$(($2-141)) ;;
"NR") rxlev=$(($2-157)) ;;
esac
echo "$rxlev"
}
#获取Ec/Io #获取Ec/Io
# $1:Ec/Io数字 # $1:Ec/Io数字
fibocom_get_ecio() fibocom_get_ecio()
@ -917,7 +931,9 @@ fibocom_cell_info()
rat=$(fibocom_get_rat ${rat_num}) rat=$(fibocom_get_rat ${rat_num})
} }
response=$(echo "$response" | sed -n '4p') for response in $response; do
#排除+GTCCINFO:、NR service cell:还有空行
[ -n "$response" ] && [[ "$response" = *","* ]] && {
case $rat in case $rat in
"NR") "NR")
@ -932,7 +948,8 @@ fibocom_cell_info()
nr_band=$(fibocom_get_band "NR" ${nr_band_num}) nr_band=$(fibocom_get_band "NR" ${nr_band_num})
nr_dl_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}') nr_dl_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}')
nr_dl_bandwidth=$(fibocom_get_nr_dl_bandwidth ${nr_dl_bandwidth_num}) nr_dl_bandwidth=$(fibocom_get_nr_dl_bandwidth ${nr_dl_bandwidth_num})
nr_sinr=$(echo "$response" | awk -F',' '{print $11}') 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_num=$(echo "$response" | awk -F',' '{print $12}')
nr_rxlev=$(fibocom_get_rxlev "NR" ${nr_rxlev_num}) nr_rxlev=$(fibocom_get_rxlev "NR" ${nr_rxlev_num})
nr_rsrp_num=$(echo "$response" | awk -F',' '{print $13}') nr_rsrp_num=$(echo "$response" | awk -F',' '{print $13}')
@ -973,7 +990,8 @@ fibocom_cell_info()
endc_nr_band=$(fibocom_get_band "NR" ${endc_nr_band_num}) endc_nr_band=$(fibocom_get_band "NR" ${endc_nr_band_num})
nr_dl_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}') 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_dl_bandwidth=$(fibocom_get_nr_dl_bandwidth ${nr_dl_bandwidth_num})
endc_nr_sinr=$(echo "$response" | awk -F',' '{print $11}') 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_num=$(echo "$response" | awk -F',' '{print $12}')
endc_nr_rxlev=$(fibocom_get_rxlev "NR" ${endc_nr_rxlev_num}) endc_nr_rxlev=$(fibocom_get_rxlev "NR" ${endc_nr_rxlev_num})
endc_nr_rsrp_num=$(echo "$response" | awk -F',' '{print $13}') endc_nr_rsrp_num=$(echo "$response" | awk -F',' '{print $13}')
@ -1022,6 +1040,17 @@ fibocom_cell_info()
wcdma_ecio=$(fibocom_get_ecio ${wcdma_ecio_num}) wcdma_ecio=$(fibocom_get_ecio ${wcdma_ecio_num})
;; ;;
esac esac
#联发科平台特殊处理FM350-GL
[[ "$name" = "FM350-GL" ]] && {
nr_sinr="${nr_sinr_num}"
endc_nr_sinr="${endc_nr_sinr_num}"
}
#只选择第一个,然后退出
break
}
done
} }

View File

@ -32,6 +32,10 @@ init_modem_info()
#网络信息 #网络信息
connect_status="disconnect" #SIM卡状态 connect_status="disconnect" #SIM卡状态
network_type="-" #蜂窝网络类型 network_type="-" #蜂窝网络类型
cqi_ul="-" #上行信道质量指示
cqi_dl="-" #下行信道质量指示
ambr_ul="-" #上行签约速率
ambr_dl="-" #下行签约速率
tx_rate="-" #上传速率 tx_rate="-" #上传速率
rx_rate="-" #下载速率 rx_rate="-" #下载速率
@ -167,6 +171,10 @@ set_network_info()
{ {
network_info="\"network_info\":[ network_info="\"network_info\":[
{\"Network Type\":\"$network_type\", \"full_name\":\"Network Type\"}, {\"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\"}, {\"Tx Rate\":\"$tx_rate\", \"full_name\":\"Transmit Rate\"},
{\"Rx Rate\":\"$rx_rate\", \"full_name\":\"Receive Rate\"} {\"Rx Rate\":\"$rx_rate\", \"full_name\":\"Receive Rate\"}
]," ],"

View File

@ -281,6 +281,7 @@ modem_network_task()
#重新设置网络接口广和通FM350-GL #重新设置网络接口广和通FM350-GL
if [ "$manufacturer" = "fibocom" ] && [ "$platform" = "mediatek" ]; then if [ "$manufacturer" = "fibocom" ] && [ "$platform" = "mediatek" ]; then
reset_network_interface "${at_port}" "${define_connect}" "${modem_no}" reset_network_interface "${at_port}" "${define_connect}" "${modem_no}"
sleep 3s
fi fi
[ "$mode" != "modemmanager" ] && { [ "$mode" != "modemmanager" ] && {

View File

@ -104,6 +104,70 @@
"data_interface":"usb", "data_interface":"usb",
"define_connect":"1", "define_connect":"1",
"modes":["qmi","gobinet","ecm","mbim","rndis","ncm"] "modes":["qmi","gobinet","ecm","mbim","rndis","ncm"]
},
"SRM815":{
"manufacturer_id":"2dee",
"manufacturer":"meig",
"platform":"qualcomm",
"data_interface":"usb",
"define_connect":"1",
"modes":["qmi","gobinet","ecm","mbim","rndis"]
},
"SRM825":{
"manufacturer_id":"2dee",
"manufacturer":"meig",
"platform":"qualcomm",
"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":{ "pcie":{

View File

@ -213,8 +213,15 @@ m_add_usb_id()
#如果已经添加则返回 #如果已经添加则返回
grep -q "${manufacturer_id} ${product_id}" "${new_id_path}" && return grep -q "${manufacturer_id} ${product_id}" "${new_id_path}" && return
while true; do
if [ -f "$new_id_path" ]; then
#添加ID #添加ID
echo "${manufacturer_id} ${product_id}" >> "${new_id_path}" echo "${manufacturer_id} ${product_id}" >> "${new_id_path}"
break
fi
sleep 5s
done
} }
#设置模组硬件配置 #设置模组硬件配置

View File

@ -491,6 +491,24 @@ quectel_network_info()
# per=$((csq * 100/31))"%" # per=$((csq * 100/31))"%"
# fi # 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"' 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') response=$(sh ${SCRIPT_DIR}/modem_at.sh $at_port $at_command | grep "+QNWCFG:" | sed 's/+QNWCFG: "up\/down",//g' | sed 's/\r//g')