添加移远专属命令,可查看CQI和AMBR,修复手动配置无法编辑的问题,修复部分在lede下出现的bug,动修复RM500Q-GL在6.x内核使用制造商私有驱动并使用移远工具拨号失败问题
This commit is contained in:
parent
6dcc1416af
commit
faba32d7e4
@ -6,10 +6,10 @@ 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>
|
||||
PKF_MAINTAINER:=Siriling <siriling@qq.com>
|
||||
LUCI_DEPENDS:=+luci-compat +kmod-usb-net +kmod-usb-net-cdc-ether +kmod-usb-acm \
|
||||
+kmod-usb-net-qmi-wwan +kmod-usb-net-rndis +kmod-usb-serial-qualcomm \
|
||||
+kmod-usb-net-sierrawireless +kmod-usb-ohci +kmod-usb-serial \
|
||||
@ -23,7 +23,7 @@ LUCI_DEPENDS:=+luci-compat +kmod-usb-net +kmod-usb-net-cdc-ether +kmod-usb-acm \
|
||||
+modemmanager \
|
||||
+luci-proto-modemmanager \
|
||||
+sms-tool \
|
||||
+jq +grep\
|
||||
+jq \
|
||||
|
||||
define Package/luci-app-modem/conffiles
|
||||
/etc/config/modem
|
||||
|
@ -36,7 +36,9 @@
|
||||
| 移远通信 | RM520N-CN | 高通 | USB | RMNET,ECM,MBIM,RNDIS,NCM |
|
||||
| 移远通信 | RM520N-GL | 高通 | USB | RMNET,ECM,MBIM,RNDIS,NCM |
|
||||
| 移远通信 | RM500Q-GL | 高通 | PCIE | RMNET,MBIM |
|
||||
| 移远通信 | RG500Q-EA | 高通 | PCIE | RMNET,MBIM |
|
||||
| 移远通信 | RM502Q-GL | 高通 | PCIE | RMNET,MBIM |
|
||||
| 移远通信 | RG520N-EU | 高通 | PCIE | RMNET,MBIM |
|
||||
| 广和通 | FM650-CN | 紫光展锐 | USB | ECM,MBIM,RNDIS,NCM |
|
||||
| 广和通 | FM350-GL | 联发科 | USB | RNDIS |
|
||||
| 广和通 | FM150-AE-01,FM150-AE-11,FM150-AE-21,FM150-NA-01 | 高通 | USB | RMNET,ECM,MBIM,RNDIS,NCM |
|
||||
|
@ -35,6 +35,7 @@ function getMobileNetwork()
|
||||
network:value("",translate("Mobile network not found"))
|
||||
end
|
||||
|
||||
return
|
||||
-- for i=0,modem_number-1 do
|
||||
-- --获取模块名
|
||||
-- local modem_name = uci:get('modem','modem'..i,'name')
|
||||
|
@ -1,5 +1,6 @@
|
||||
local d = require "luci.dispatcher"
|
||||
local uci = luci.model.uci.cursor()
|
||||
local sys = require "luci.sys"
|
||||
|
||||
m = Map("modem")
|
||||
m.title = translate("Dial Overview")
|
||||
@ -31,9 +32,7 @@ function s.create(uci, t)
|
||||
end
|
||||
function s.remove(uci, t)
|
||||
uci.map.proceed = true
|
||||
-- 设置删除
|
||||
uci.map:set(t,"delete","1")
|
||||
-- uci.map:del(t)
|
||||
uci.map:del(t)
|
||||
luci.http.redirect(d.build_url("admin", "network", "modem","dial_overview"))
|
||||
end
|
||||
|
||||
|
@ -18,22 +18,42 @@ end
|
||||
|
||||
--[[
|
||||
@Description 获取支持的模组信息
|
||||
@Params
|
||||
data_interface 数据接口
|
||||
]]
|
||||
function getSupportModems()
|
||||
function getSupportModems(data_interface)
|
||||
local command="cat "..script_path.."modem_support.json"
|
||||
local result=json.parse(shell(command))
|
||||
return result["modem_support"]["usb"]
|
||||
return result["modem_support"][data_interface]
|
||||
end
|
||||
|
||||
--[[
|
||||
@Description 按照制造商给模组分类
|
||||
@Params
|
||||
support_modem 支持的模组
|
||||
]]
|
||||
function getManufacturers(support_modem)
|
||||
function getManufacturers()
|
||||
|
||||
local manufacturers={}
|
||||
|
||||
-- 获取支持的模组
|
||||
local support_modem=getSupportModems("usb")
|
||||
-- USB
|
||||
for modem in pairs(support_modem) do
|
||||
|
||||
local manufacturer=support_modem[modem]["manufacturer"]
|
||||
if manufacturers[manufacturer] then
|
||||
-- 直接插入
|
||||
table.insert(manufacturers[manufacturer],modem)
|
||||
else
|
||||
-- 不存在先创建一个空表
|
||||
local tmp={}
|
||||
table.insert(tmp,modem)
|
||||
manufacturers[manufacturer]=tmp
|
||||
end
|
||||
end
|
||||
|
||||
-- 获取支持的模组
|
||||
local support_modem=getSupportModems("pcie")
|
||||
-- PCIE
|
||||
for modem in pairs(support_modem) do
|
||||
|
||||
local manufacturer=support_modem[modem]["manufacturer"]
|
||||
@ -103,10 +123,8 @@ name = s:option(ListValue, "name", translate("Modem Name"))
|
||||
name.placeholder = translate("Not Null")
|
||||
name.rmempty = false
|
||||
|
||||
-- 获取支持的模组
|
||||
local support_modem=getSupportModems()
|
||||
-- 按照制造商给模组分类
|
||||
local manufacturers=getManufacturers(support_modem)
|
||||
local manufacturers=getManufacturers()
|
||||
|
||||
for key in pairs(manufacturers) do
|
||||
local modems=manufacturers[key]
|
||||
|
@ -47,12 +47,6 @@ end
|
||||
function s.remove(uci, t)
|
||||
uci.map.proceed = true
|
||||
uci.map:del(t)
|
||||
|
||||
-- 获取模组数量
|
||||
local modem_number=tonumber(uci.map:get("@global[0]","modem_number"))-1
|
||||
-- 设置模组数量
|
||||
uci.map:set("@global[0]","modem_number",modem_number)
|
||||
|
||||
luci.http.redirect(d.build_url("admin", "network", "modem","plugin_config"))
|
||||
end
|
||||
|
||||
|
@ -6,6 +6,11 @@
|
||||
var str="advanced"
|
||||
var advanced_element = document.querySelector('div[data-tab="'+str+'"]');
|
||||
|
||||
// 适配老版luci(lede)
|
||||
if (advanced_element==null) {
|
||||
advanced_element = document.querySelectorAll('div[id*="'+str+'"]')[0];
|
||||
}
|
||||
|
||||
//隐藏拨号配置ID元素
|
||||
var dial_config_id_element = advanced_element.lastElementChild;
|
||||
dial_config_id_element.style.display="none";
|
||||
|
@ -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) {
|
||||
@ -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)
|
||||
{
|
||||
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,30 +495,35 @@ 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
|
||||
{
|
||||
value=value+" dBm";
|
||||
}
|
||||
}
|
||||
else if (key=="RSRQ"||key=="SINR"||key=="RSSNR"||key=="Ec/Io") {
|
||||
else if (key=="RSRQ"||key=="SINR"||key=="RSSNR"||key=="Srxlev"||key=="Ec/Io") {
|
||||
|
||||
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
|
||||
{
|
||||
@ -477,9 +531,9 @@ end
|
||||
}
|
||||
}
|
||||
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]+' ('+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]+'</td><td class="td left" id="'+key+'">'+value+'</td></tr>';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -41,6 +41,6 @@ function modem_scan()
|
||||
|
||||
<input class="btn cbi-button cbi-button-apply" type="button" id="modem_scan_button" value="<%:Scan%>" onclick="modem_scan()" alt="<%:Scan%>" title="<%:Scan%>"/>
|
||||
<div class="cbi-value-description" id="modem_scan_description">
|
||||
<%:The automatic configuration modem is triggered only at startup, otherwise, manual scanning is necessary%>
|
||||
<%:The automatic configuration modem is triggered only at modem startup, otherwise, manual scanning is necessary%>
|
||||
</div>
|
||||
<%+cbi/valuefooter%>
|
||||
|
@ -395,109 +395,112 @@ msgid "WCDMA Mode"
|
||||
msgstr "WCDMA 模式"
|
||||
|
||||
msgid "MCC"
|
||||
msgstr "移动国家代码"
|
||||
msgstr "移动国家代码 (MCC)"
|
||||
|
||||
msgid "MNC"
|
||||
msgstr "移动网络代码"
|
||||
msgstr "移动网络代码 (MNC)"
|
||||
|
||||
msgid "Duplex Mode"
|
||||
msgstr "双工模式"
|
||||
msgstr "双工模式 (Duplex Mode)"
|
||||
|
||||
msgid "LAC"
|
||||
msgstr "位置区码"
|
||||
msgstr "位置区码 (LAC)"
|
||||
|
||||
msgid "Cell ID"
|
||||
msgstr "小区ID"
|
||||
msgstr "小区ID (Cell ID)"
|
||||
|
||||
msgid "Physical Cell ID"
|
||||
msgstr "物理小区ID"
|
||||
msgstr "物理小区ID (Physical Cell ID)"
|
||||
|
||||
msgid "TAC"
|
||||
msgstr "跟踪区编码"
|
||||
msgstr "跟踪区编码 (TAC)"
|
||||
|
||||
msgid "ARFCN"
|
||||
msgstr "绝对射频信道号"
|
||||
msgstr "绝对射频信道号 (ARFCN)"
|
||||
|
||||
msgid "EARFCN"
|
||||
msgstr "E-UTRA绝对射频信道号"
|
||||
msgstr "E-UTRA绝对射频信道号 (EARFCN)"
|
||||
|
||||
msgid "UARFCN"
|
||||
msgstr "UTRA绝对射频信道号"
|
||||
msgstr "UTRA绝对射频信道号 (UARFCN)"
|
||||
|
||||
msgid "Band"
|
||||
msgstr "频段"
|
||||
msgstr "频段 (Band)"
|
||||
|
||||
msgid "Freq band indicator"
|
||||
msgstr "频带指示"
|
||||
msgstr "频带指示 (Freq band indicator)"
|
||||
|
||||
msgid "UL Bandwidth"
|
||||
msgstr "上行带宽"
|
||||
msgstr "上行带宽 (UL Bandwidth)"
|
||||
|
||||
msgid "DL Bandwidth"
|
||||
msgstr "下行带宽"
|
||||
msgstr "下行带宽 (DL Bandwidth)"
|
||||
|
||||
msgid "RSRP"
|
||||
msgstr "参考信号接收功率"
|
||||
msgstr "参考信号接收功率 (RSRP)"
|
||||
|
||||
msgid "RSRQ"
|
||||
msgstr "参考信号接收质量"
|
||||
msgstr "参考信号接收质量 (RSRQ)"
|
||||
|
||||
msgid "RSSI"
|
||||
msgstr "接收信号强度指示"
|
||||
msgstr "接收信号强度指示 (RSSI)"
|
||||
|
||||
msgid "SINR"
|
||||
msgstr "信号与干扰加噪声比"
|
||||
|
||||
msgid "RSSNR"
|
||||
msgstr "信号干扰比"
|
||||
|
||||
msgid "SCS"
|
||||
msgstr "NR子载波间隔"
|
||||
|
||||
msgid "CQI"
|
||||
msgstr "信道质量指示"
|
||||
|
||||
msgid "TX Power"
|
||||
msgstr "TX 功率"
|
||||
|
||||
msgid "PSC"
|
||||
msgstr "主扰码"
|
||||
|
||||
msgid "RAC"
|
||||
msgstr "路由区域码"
|
||||
|
||||
msgid "RSCP"
|
||||
msgstr "接收信号码功率"
|
||||
|
||||
msgid "每比特能量与干扰功率密度(干扰比)之比"
|
||||
msgstr "Eb/Io"
|
||||
|
||||
msgid "每比特能量与噪声功率密度(噪声比)之比"
|
||||
msgstr "Eb/No"
|
||||
|
||||
msgid "每码片能量与干扰功率密度(干扰比)之比"
|
||||
msgstr "Ec/Io"
|
||||
|
||||
msgid "每码片能量与噪声功率密度(噪声比)之比"
|
||||
msgstr "Ec/No"
|
||||
|
||||
msgid "Physical Channel"
|
||||
msgstr "物理信道"
|
||||
|
||||
msgid "Spreading Factor"
|
||||
msgstr "扩频因子"
|
||||
|
||||
msgid "Slot"
|
||||
msgstr "插槽格式"
|
||||
|
||||
msgid "Speech Code"
|
||||
msgstr "语音编码"
|
||||
|
||||
msgid "Compression Mode"
|
||||
msgstr "压缩模式"
|
||||
msgstr "信号与干扰加噪声比 (SINR)"
|
||||
|
||||
msgid "RxLev"
|
||||
msgstr "接收信号功率"
|
||||
msgstr "接收信号功率 (RxLev)"
|
||||
|
||||
msgid "RSSNR"
|
||||
msgstr "信号干扰比 (RSSNR)"
|
||||
|
||||
msgid "SCS"
|
||||
msgstr "NR子载波间隔 (SCS)"
|
||||
|
||||
msgid "CQI"
|
||||
msgstr "信道质量指示 (CQI)"
|
||||
|
||||
msgid "TX Power"
|
||||
msgstr "TX 功率 (TX Power)"
|
||||
|
||||
msgid "Srxlev"
|
||||
msgstr "服务小区接收信号功率 (Srxlev)"
|
||||
|
||||
msgid "PSC"
|
||||
msgstr "主扰码 (PSC)"
|
||||
|
||||
msgid "RAC"
|
||||
msgstr "路由区域码 (RAC)"
|
||||
|
||||
msgid "RSCP"
|
||||
msgstr "接收信号码功率 (RSCP)"
|
||||
|
||||
msgid "Eb/Io"
|
||||
msgstr "每比特能量与干扰功率密度(干扰比)之比"
|
||||
|
||||
msgid "Eb/No"
|
||||
msgstr "每比特能量与噪声功率密度(噪声比)之比"
|
||||
|
||||
msgid "Ec/Io"
|
||||
msgstr "每码片能量与干扰功率密度(干扰比)之比"
|
||||
|
||||
msgid "Ec/No"
|
||||
msgstr "每码片能量与噪声功率密度(噪声比)之比"
|
||||
|
||||
msgid "Physical Channel"
|
||||
msgstr "物理信道 (Physical Channel)"
|
||||
|
||||
msgid "Spreading Factor"
|
||||
msgstr "扩频因子 (Spreading Factor)"
|
||||
|
||||
msgid "Slot"
|
||||
msgstr "插槽格式 (Slot)"
|
||||
|
||||
msgid "Speech Code"
|
||||
msgstr "语音编码 (Speech Code)"
|
||||
|
||||
msgid "Compression Mode"
|
||||
msgstr "压缩模式 (Compression Mode)"
|
||||
|
||||
msgid "CHN-CMCC"
|
||||
msgstr "中国移动"
|
||||
@ -536,16 +539,16 @@ msgid "46011"
|
||||
msgstr "中国电信"
|
||||
|
||||
msgid "Excellent"
|
||||
msgstr "非常好"
|
||||
msgstr "优秀"
|
||||
|
||||
msgid "Good"
|
||||
msgstr "好"
|
||||
msgstr "良好"
|
||||
|
||||
msgid "Fair"
|
||||
msgstr "一般"
|
||||
|
||||
msgid "Bad"
|
||||
msgstr "差"
|
||||
msgstr "较差"
|
||||
|
||||
msgid "Plugin Config"
|
||||
msgstr "插件配置"
|
||||
@ -562,8 +565,8 @@ msgstr "扫描"
|
||||
msgid "Scaning modem..."
|
||||
msgstr "正在扫描中..."
|
||||
|
||||
msgid "The automatic configuration modem is triggered only at startup, otherwise, manual scanning is necessary"
|
||||
msgstr "自动配置模组只有在启动的时候才会触发,其他情况需要手动点击扫描"
|
||||
msgid "The automatic configuration modem is triggered only at modem startup, otherwise, manual scanning is necessary"
|
||||
msgstr "自动配置模组只有在模组启动的时候才会触发,其他情况需要手动点击扫描"
|
||||
|
||||
msgid "Manual Configuration"
|
||||
msgstr "手动配置"
|
||||
@ -572,7 +575,7 @@ msgid "Enable the manual configuration of modem information"
|
||||
msgstr "启用手动配置模组信息"
|
||||
|
||||
msgid "(After enable, the automatic scanning and configuration function for modem information will be disabled)"
|
||||
msgstr "(启用后将禁用自动扫描配置模组信息功能)"
|
||||
msgstr "(启用后将禁用自动扫描并配置模组信息功能)"
|
||||
|
||||
msgid "Plugin Info"
|
||||
msgstr "插件信息"
|
||||
|
@ -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 "上传速率"
|
||||
|
||||
@ -383,109 +395,112 @@ msgid "WCDMA Mode"
|
||||
msgstr "WCDMA 模式"
|
||||
|
||||
msgid "MCC"
|
||||
msgstr "移动国家代码"
|
||||
msgstr "移动国家代码 (MCC)"
|
||||
|
||||
msgid "MNC"
|
||||
msgstr "移动网络代码"
|
||||
msgstr "移动网络代码 (MNC)"
|
||||
|
||||
msgid "Duplex Mode"
|
||||
msgstr "双工模式"
|
||||
msgstr "双工模式 (Duplex Mode)"
|
||||
|
||||
msgid "LAC"
|
||||
msgstr "位置区码"
|
||||
msgstr "位置区码 (LAC)"
|
||||
|
||||
msgid "Cell ID"
|
||||
msgstr "小区ID"
|
||||
msgstr "小区ID (Cell ID)"
|
||||
|
||||
msgid "Physical Cell ID"
|
||||
msgstr "物理小区ID"
|
||||
msgstr "物理小区ID (Physical Cell ID)"
|
||||
|
||||
msgid "TAC"
|
||||
msgstr "跟踪区编码"
|
||||
msgstr "跟踪区编码 (TAC)"
|
||||
|
||||
msgid "ARFCN"
|
||||
msgstr "绝对射频信道号"
|
||||
msgstr "绝对射频信道号 (ARFCN)"
|
||||
|
||||
msgid "EARFCN"
|
||||
msgstr "E-UTRA绝对射频信道号"
|
||||
msgstr "E-UTRA绝对射频信道号 (EARFCN)"
|
||||
|
||||
msgid "UARFCN"
|
||||
msgstr "UTRA绝对射频信道号"
|
||||
msgstr "UTRA绝对射频信道号 (UARFCN)"
|
||||
|
||||
msgid "Band"
|
||||
msgstr "频段"
|
||||
msgstr "频段 (Band)"
|
||||
|
||||
msgid "Freq band indicator"
|
||||
msgstr "频带指示"
|
||||
msgstr "频带指示 (Freq band indicator)"
|
||||
|
||||
msgid "UL Bandwidth"
|
||||
msgstr "上行带宽"
|
||||
msgstr "上行带宽 (UL Bandwidth)"
|
||||
|
||||
msgid "DL Bandwidth"
|
||||
msgstr "下行带宽"
|
||||
msgstr "下行带宽 (DL Bandwidth)"
|
||||
|
||||
msgid "RSRP"
|
||||
msgstr "参考信号接收功率"
|
||||
msgstr "参考信号接收功率 (RSRP)"
|
||||
|
||||
msgid "RSRQ"
|
||||
msgstr "参考信号接收质量"
|
||||
msgstr "参考信号接收质量 (RSRQ)"
|
||||
|
||||
msgid "RSSI"
|
||||
msgstr "接收信号强度指示"
|
||||
msgstr "接收信号强度指示 (RSSI)"
|
||||
|
||||
msgid "SINR"
|
||||
msgstr "信号与干扰加噪声比"
|
||||
|
||||
msgid "RSSNR"
|
||||
msgstr "信号干扰比"
|
||||
|
||||
msgid "SCS"
|
||||
msgstr "NR子载波间隔"
|
||||
|
||||
msgid "CQI"
|
||||
msgstr "信道质量指示"
|
||||
|
||||
msgid "TX Power"
|
||||
msgstr "TX 功率"
|
||||
|
||||
msgid "PSC"
|
||||
msgstr "主扰码"
|
||||
|
||||
msgid "RAC"
|
||||
msgstr "路由区域码"
|
||||
|
||||
msgid "RSCP"
|
||||
msgstr "接收信号码功率"
|
||||
|
||||
msgid "每比特能量与干扰功率密度(干扰比)之比"
|
||||
msgstr "Eb/Io"
|
||||
|
||||
msgid "每比特能量与噪声功率密度(噪声比)之比"
|
||||
msgstr "Eb/No"
|
||||
|
||||
msgid "每码片能量与干扰功率密度(干扰比)之比"
|
||||
msgstr "Ec/Io"
|
||||
|
||||
msgid "每码片能量与噪声功率密度(噪声比)之比"
|
||||
msgstr "Ec/No"
|
||||
|
||||
msgid "Physical Channel"
|
||||
msgstr "物理信道"
|
||||
|
||||
msgid "Spreading Factor"
|
||||
msgstr "扩频因子"
|
||||
|
||||
msgid "Slot"
|
||||
msgstr "插槽格式"
|
||||
|
||||
msgid "Speech Code"
|
||||
msgstr "语音编码"
|
||||
|
||||
msgid "Compression Mode"
|
||||
msgstr "压缩模式"
|
||||
msgstr "信号与干扰加噪声比 (SINR)"
|
||||
|
||||
msgid "RxLev"
|
||||
msgstr "接收信号功率"
|
||||
msgstr "接收信号功率 (RxLev)"
|
||||
|
||||
msgid "RSSNR"
|
||||
msgstr "信号干扰比 (RSSNR)"
|
||||
|
||||
msgid "SCS"
|
||||
msgstr "NR子载波间隔 (SCS)"
|
||||
|
||||
msgid "CQI"
|
||||
msgstr "信道质量指示 (CQI)"
|
||||
|
||||
msgid "TX Power"
|
||||
msgstr "TX 功率 (TX Power)"
|
||||
|
||||
msgid "Srxlev"
|
||||
msgstr "服务小区接收信号功率 (Srxlev)"
|
||||
|
||||
msgid "PSC"
|
||||
msgstr "主扰码 (PSC)"
|
||||
|
||||
msgid "RAC"
|
||||
msgstr "路由区域码 (RAC)"
|
||||
|
||||
msgid "RSCP"
|
||||
msgstr "接收信号码功率 (RSCP)"
|
||||
|
||||
msgid "Eb/Io"
|
||||
msgstr "每比特能量与干扰功率密度(干扰比)之比"
|
||||
|
||||
msgid "Eb/No"
|
||||
msgstr "每比特能量与噪声功率密度(噪声比)之比"
|
||||
|
||||
msgid "Ec/Io"
|
||||
msgstr "每码片能量与干扰功率密度(干扰比)之比"
|
||||
|
||||
msgid "Ec/No"
|
||||
msgstr "每码片能量与噪声功率密度(噪声比)之比"
|
||||
|
||||
msgid "Physical Channel"
|
||||
msgstr "物理信道 (Physical Channel)"
|
||||
|
||||
msgid "Spreading Factor"
|
||||
msgstr "扩频因子 (Spreading Factor)"
|
||||
|
||||
msgid "Slot"
|
||||
msgstr "插槽格式 (Slot)"
|
||||
|
||||
msgid "Speech Code"
|
||||
msgstr "语音编码 (Speech Code)"
|
||||
|
||||
msgid "Compression Mode"
|
||||
msgstr "压缩模式 (Compression Mode)"
|
||||
|
||||
msgid "CHN-CMCC"
|
||||
msgstr "中国移动"
|
||||
@ -524,16 +539,16 @@ msgid "46011"
|
||||
msgstr "中国电信"
|
||||
|
||||
msgid "Excellent"
|
||||
msgstr "非常好"
|
||||
msgstr "优秀"
|
||||
|
||||
msgid "Good"
|
||||
msgstr "好"
|
||||
msgstr "良好"
|
||||
|
||||
msgid "Fair"
|
||||
msgstr "一般"
|
||||
|
||||
msgid "Bad"
|
||||
msgstr "差"
|
||||
msgstr "较差"
|
||||
|
||||
msgid "Plugin Config"
|
||||
msgstr "插件配置"
|
||||
@ -550,8 +565,8 @@ msgstr "扫描"
|
||||
msgid "Scaning modem..."
|
||||
msgstr "正在扫描中..."
|
||||
|
||||
msgid "The automatic configuration modem is triggered only at startup, otherwise, manual scanning is necessary"
|
||||
msgstr "自动配置模组只有在启动的时候才会触发,其他情况需要手动点击扫描"
|
||||
msgid "The automatic configuration modem is triggered only at modem startup, otherwise, manual scanning is necessary"
|
||||
msgstr "自动配置模组只有在模组启动的时候才会触发,其他情况需要手动点击扫描"
|
||||
|
||||
msgid "Manual Configuration"
|
||||
msgstr "手动配置"
|
||||
@ -560,7 +575,7 @@ msgid "Enable the manual configuration of modem information"
|
||||
msgstr "启用手动配置模组信息"
|
||||
|
||||
msgid "(After enable, the automatic scanning and configuration function for modem information will be disabled)"
|
||||
msgstr "(启用后将禁用自动扫描配置模组信息功能)"
|
||||
msgstr "(启用后将禁用自动扫描并配置模组信息功能)"
|
||||
|
||||
msgid "Plugin Info"
|
||||
msgstr "插件信息"
|
||||
|
@ -197,9 +197,28 @@ set_interface()
|
||||
esac
|
||||
}
|
||||
|
||||
#设置移远模组MAC地址
|
||||
set_quectel_mac()
|
||||
{
|
||||
local mac_address="$(cat /sys/class/net/${network}/address)"
|
||||
local null_mac="00:00:00:00:00:00"
|
||||
[ -z "$mac_address" ] || [ "$mac_address" = "$null_mac" ] && {
|
||||
#方法一(lua)
|
||||
# local mac_address=$(lua -e 'math.randomseed(os.time()); for i=1,6 do io.write(string.format("%02X", math.random(0, 255))); if i < 6 then io.write(":") end; end')
|
||||
#方法二(shell)
|
||||
mac_address="$(generate_mac_address)"
|
||||
ifconfig "${network}" hw ether "${mac_address}"
|
||||
}
|
||||
}
|
||||
|
||||
#移远拨号工具
|
||||
quectel_cm()
|
||||
{
|
||||
#获取制造商
|
||||
local manufacturer=$(uci -q get modem.modem${modem_no}.manufacturer)
|
||||
#移远500系列模组特殊处理(解决在6.x内核下缺失MAC地址使用制造商驱动导致拨号异常问题)
|
||||
[ "$manufacturer" = "quectel" ] && set_quectel_mac
|
||||
|
||||
#拨号
|
||||
procd_open_instance
|
||||
procd_set_param command "quectel-CM"
|
||||
@ -566,19 +585,9 @@ dial()
|
||||
{
|
||||
local enable #启用
|
||||
local id #ID
|
||||
local delete #删除
|
||||
|
||||
config_get enable $1 enable
|
||||
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" ] && {
|
||||
@ -618,7 +627,7 @@ dial()
|
||||
sleep 5s
|
||||
done
|
||||
|
||||
#查看移动网络是否已经有配置在运行
|
||||
#查看该移动网络是否已经有拨号配置在运行
|
||||
mkdir -m 0755 -p "${MODEM_RUNDIR}"
|
||||
if [ ! -f "${MODEM_RUN_CONFIG}" ] || ! grep -q "${network}" "${MODEM_RUN_CONFIG}"; then
|
||||
#文件不存在或者未记录该移动网络
|
||||
@ -630,7 +639,7 @@ dial()
|
||||
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
|
||||
@ -726,6 +735,44 @@ manual_set_modem_config()
|
||||
uci commit modem
|
||||
}
|
||||
|
||||
#删除拨号配置
|
||||
del_dial_config()
|
||||
{
|
||||
#运行配置是否存在
|
||||
if [ -f "${MODEM_RUN_CONFIG}" ]; then
|
||||
|
||||
local configs=$(cat ${MODEM_RUN_CONFIG})
|
||||
for config in $configs; do
|
||||
#设置标志位
|
||||
local flag="0"
|
||||
local id=$(echo "$config" | awk -F',' '{print $2}')
|
||||
|
||||
local config_number=2
|
||||
for i in $(seq 0 $((config_number-1))); do
|
||||
local config_id=$(uci -q get modem.@dial-config[${i}].id)
|
||||
[ "$config_id" = "$id" ] && {
|
||||
flag="1"
|
||||
}
|
||||
done
|
||||
|
||||
#删除运行配置
|
||||
[ "$flag" = "0" ] && {
|
||||
sed -i "/${id}/d" "${MODEM_RUN_CONFIG}"
|
||||
}
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
#统计模组数量
|
||||
count_modem_number()
|
||||
{
|
||||
local network #移动网络
|
||||
|
||||
config_get network $1 network
|
||||
|
||||
modem_count=$((modem_count+1))
|
||||
}
|
||||
|
||||
service_triggers()
|
||||
{
|
||||
procd_add_reload_trigger "modem"
|
||||
@ -736,11 +783,20 @@ start_service() {
|
||||
if [ "$enable_dial" = "0" ]; then
|
||||
stop_service
|
||||
else
|
||||
|
||||
#加载模组配置
|
||||
config_load modem
|
||||
#手动设置模组信息
|
||||
config_foreach manual_set_modem_config "modem-device"
|
||||
|
||||
#统计模组数量
|
||||
modem_count=0
|
||||
config_foreach count_modem_number "modem-device"
|
||||
#设置模组数量
|
||||
uci set modem.@global[0].modem_number=${modem_count}
|
||||
uci commit modem
|
||||
|
||||
#删除拨号配置
|
||||
del_dial_config
|
||||
#加载拨号配置
|
||||
config_foreach dial "dial-config"
|
||||
fi
|
||||
|
@ -54,8 +54,9 @@ init_modem_info()
|
||||
nr_rsrp=''
|
||||
nr_rsrq=''
|
||||
nr_sinr=''
|
||||
nr_scs=''
|
||||
nr_rxlev=''
|
||||
nr_scs=''
|
||||
nr_srxlev=''
|
||||
#EN-DC模式(LTE)
|
||||
endc_lte_mcc=''
|
||||
endc_lte_mnc=''
|
||||
@ -71,9 +72,10 @@ init_modem_info()
|
||||
endc_lte_rsrq=''
|
||||
endc_lte_rssi=''
|
||||
endc_lte_sinr=''
|
||||
endc_lte_rxlev=''
|
||||
endc_lte_cql=''
|
||||
endc_lte_tx_power=''
|
||||
endc_lte_rxlev=''
|
||||
endc_lte_srxlev=''
|
||||
#EN-DC模式(NR5G-NSA)
|
||||
endc_nr_mcc=''
|
||||
endc_nr_mnc=''
|
||||
@ -100,9 +102,10 @@ init_modem_info()
|
||||
lte_rsrq=''
|
||||
lte_rssi=''
|
||||
lte_sinr=''
|
||||
lte_rxlev=''
|
||||
lte_cql=''
|
||||
lte_tx_power=''
|
||||
lte_rxlev=''
|
||||
lte_srxlev=''
|
||||
#WCDMA模式
|
||||
wcdma_mcc=''
|
||||
wcdma_mnc=''
|
||||
@ -198,8 +201,9 @@ set_cell_info()
|
||||
{\"RSRP\":\"$nr_rsrp\", \"full_name\":\"Reference Signal Received Power\"},
|
||||
{\"RSRQ\":\"$nr_rsrq\", \"full_name\":\"Reference Signal Received Quality\"},
|
||||
{\"SINR\":\"$nr_sinr\", \"full_name\":\"Signal to Interference plus Noise Ratio Bandwidth\"},
|
||||
{\"RxLev\":\"$nr_rxlev\", \"full_name\":\"Received Signal Level\"},
|
||||
{\"SCS\":\"$nr_scs\", \"full_name\":\"SCS\"},
|
||||
{\"RxLev\":\"$nr_rxlev\", \"full_name\":\"Received Signal Level\"}
|
||||
{\"Srxlev\":\"$nr_srxlev\", \"full_name\":\"Serving Cell Receive Level\"}
|
||||
]
|
||||
}"
|
||||
elif [ "$network_mode" = "EN-DC Mode" ]; then
|
||||
@ -221,10 +225,11 @@ set_cell_info()
|
||||
{\"RSRQ\":\"$endc_lte_rsrq\", \"full_name\":\"Reference Signal Received Quality\"},
|
||||
{\"RSSI\":\"$endc_lte_rssi\", \"full_name\":\"Received Signal Strength Indicator\"},
|
||||
{\"SINR\":\"$endc_lte_sinr\", \"full_name\":\"Signal to Interference plus Noise Ratio Bandwidth\"},
|
||||
{\"RxLev\":\"$endc_lte_rxlev\", \"full_name\":\"Received Signal Level\"},
|
||||
{\"RSSNR\":\"$endc_lte_rssnr\", \"full_name\":\"Radio Signal Strength Noise Ratio\"},
|
||||
{\"CQI\":\"$endc_lte_cql\", \"full_name\":\"Channel Quality Indicator\"},
|
||||
{\"TX Power\":\"$endc_lte_tx_power\", \"full_name\":\"TX Power\"},
|
||||
{\"RxLev\":\"$endc_lte_rxlev\", \"full_name\":\"Received Signal Level\"}
|
||||
{\"Srxlev\":\"$endc_lte_srxlev\", \"full_name\":\"Serving Cell Receive Level\"}
|
||||
]
|
||||
},
|
||||
|
||||
@ -261,10 +266,11 @@ set_cell_info()
|
||||
{\"RSRQ\":\"$lte_rsrq\", \"full_name\":\"Reference Signal Received Quality\"},
|
||||
{\"RSSI\":\"$lte_rssi\", \"full_name\":\"Received Signal Strength Indicator\"},
|
||||
{\"SINR\":\"$lte_sinr\", \"full_name\":\"Signal to Interference plus Noise Ratio Bandwidth\"},
|
||||
{\"RxLev\":\"$lte_rxlev\", \"full_name\":\"RxLev\"},
|
||||
{\"RSSNR\":\"$lte_rssnr\", \"full_name\":\"Radio Signal Strength Noise Ratio\"},
|
||||
{\"CQI\":\"$lte_cql\", \"full_name\":\"Channel Quality Indicator\"},
|
||||
{\"TX Power\":\"$lte_tx_power\", \"full_name\":\"TX Power\"},
|
||||
{\"RxLev\":\"$lte_rxlev\", \"full_name\":\"RxLev\"}
|
||||
{\"Srxlev\":\"$lte_srxlev\", \"full_name\":\"Serving Cell Receive Level\"}
|
||||
]
|
||||
}"
|
||||
elif [ "$network_mode" = "WCDMA Mode" ]; then
|
||||
|
@ -105,7 +105,7 @@
|
||||
"define_connect":"1",
|
||||
"modes":["qmi","gobinet","ecm","mbim","rndis","ncm"]
|
||||
},
|
||||
"SRM815":{
|
||||
"srm815":{
|
||||
"manufacturer_id":"2dee",
|
||||
"manufacturer":"meig",
|
||||
"platform":"qualcomm",
|
||||
@ -113,64 +113,23 @@
|
||||
"define_connect":"1",
|
||||
"modes":["qmi","gobinet","ecm","mbim","rndis"]
|
||||
},
|
||||
"SRM825":{
|
||||
"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":{
|
||||
"rm500q-cn":{
|
||||
"manufacturer":"quectel",
|
||||
"platform":"qualcomm",
|
||||
"data_interface":"pcie",
|
||||
"define_connect":"1",
|
||||
"modes":["qmi","gobinet","mbim"]
|
||||
},
|
||||
"rm500q-gl":{
|
||||
"manufacturer":"quectel",
|
||||
"platform":"qualcomm",
|
||||
@ -178,8 +137,22 @@
|
||||
"define_connect":"1",
|
||||
"modes":["qmi","gobinet","mbim"]
|
||||
},
|
||||
"rg500q-ea":{
|
||||
"manufacturer":"quectel",
|
||||
"platform":"qualcomm",
|
||||
"data_interface":"pcie",
|
||||
"define_connect":"1",
|
||||
"modes":["qmi","gobinet","mbim"]
|
||||
},
|
||||
"rm502q-gl":{
|
||||
"manufacturer":"fibocom",
|
||||
"manufacturer":"quectel",
|
||||
"platform":"qualcomm",
|
||||
"data_interface":"pcie",
|
||||
"define_connect":"1",
|
||||
"modes":["qmi","gobinet","mbim"]
|
||||
},
|
||||
"rg520n-eu":{
|
||||
"manufacturer":"quectel",
|
||||
"platform":"qualcomm",
|
||||
"data_interface":"pcie",
|
||||
"define_connect":"1",
|
||||
@ -199,6 +172,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"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,6 +24,23 @@ m_log()
|
||||
logger -p "daemon.${level}" -t "Modem[$$]" "hotplug: $*"
|
||||
}
|
||||
|
||||
#生成16进制数
|
||||
generate_hex() {
|
||||
echo "$(openssl rand -hex 1)"
|
||||
}
|
||||
|
||||
#生成随机MAC地址
|
||||
generate_mac_address() {
|
||||
local mac=""
|
||||
for i in $(seq 1 6); do
|
||||
mac="${mac}$(generate_hex)"
|
||||
if [[ $i != 6 ]]; then
|
||||
mac="${mac}:"
|
||||
fi
|
||||
done
|
||||
echo "$mac"
|
||||
}
|
||||
|
||||
#上报USB事件
|
||||
# $1:事件行为(add,remove,bind)
|
||||
# $2:类型
|
||||
@ -336,6 +353,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串口
|
||||
@ -358,21 +389,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')
|
||||
|
@ -659,7 +659,7 @@ quectel_cell_info()
|
||||
endc_lte_sinr=$(echo "$lte" | awk -F',' '{print $15}')
|
||||
endc_lte_cql=$(echo "$lte" | awk -F',' '{print $16}')
|
||||
endc_lte_tx_power=$(echo "$lte" | awk -F',' '{print $17}')
|
||||
endc_lte_rxlev=$(echo "$lte" | awk -F',' '{print $18}' | sed 's/\r//g')
|
||||
endc_lte_srxlev=$(echo "$lte" | awk -F',' '{print $18}' | sed 's/\r//g')
|
||||
#NR5G-NSA
|
||||
endc_nr_mcc=$(echo "$nr5g_nsa" | awk -F',' '{print $2}')
|
||||
endc_nr_mnc=$(echo "$nr5g_nsa" | awk -F',' '{print $3}')
|
||||
@ -697,7 +697,7 @@ quectel_cell_info()
|
||||
nr_sinr=$(echo "$response" | awk -F',' '{print $15}')
|
||||
nr_scs_num=$(echo "$response" | awk -F',' '{print $16}')
|
||||
nr_scs=$(quectel_get_scs $nr_scs_num)
|
||||
nr_rxlev=$(echo "$response" | awk -F',' '{print $17}' | sed 's/\r//g')
|
||||
nr_srxlev=$(echo "$response" | awk -F',' '{print $17}' | sed 's/\r//g')
|
||||
;;
|
||||
"LTE"|"CAT-M"|"CAT-NB")
|
||||
network_mode="LTE Mode"
|
||||
@ -720,7 +720,7 @@ quectel_cell_info()
|
||||
lte_sinr=$(echo "$response" | awk -F',' '{print $17}')
|
||||
lte_cql=$(echo "$response" | awk -F',' '{print $18}')
|
||||
lte_tx_power=$(echo "$response" | awk -F',' '{print $19}')
|
||||
lte_rxlev=$(echo "$response" | awk -F',' '{print $20}' | sed 's/\r//g')
|
||||
lte_srxlev=$(echo "$response" | awk -F',' '{print $20}' | sed 's/\r//g')
|
||||
;;
|
||||
"WCDMA")
|
||||
network_mode="WCDMA Mode"
|
||||
|
Loading…
x
Reference in New Issue
Block a user