更新插件
This commit is contained in:
parent
889cbb39a0
commit
74452a5d47
@ -14,7 +14,7 @@ function index()
|
|||||||
entry({"admin", "network", "modem"}, alias("admin", "network", "modem", "modem_info"), translate("Modem"), 100).dependent = true
|
entry({"admin", "network", "modem"}, alias("admin", "network", "modem", "modem_info"), translate("Modem"), 100).dependent = true
|
||||||
|
|
||||||
--模块状态
|
--模块状态
|
||||||
entry({"admin", "network", "modem", "modem_info"}, template("modem/modem_info"), translate("Modem Info"),10).leaf = true
|
entry({"admin", "network", "modem", "modem_info"}, template("modem/modem_info"), translate("Modem Information"),10).leaf = true
|
||||||
entry({"admin", "network", "modem", "get_modem_info"}, call("getModemInfo"))
|
entry({"admin", "network", "modem", "get_modem_info"}, call("getModemInfo"))
|
||||||
|
|
||||||
--模块设置
|
--模块设置
|
||||||
@ -76,7 +76,7 @@ function getModemBaseInfo(at_port)
|
|||||||
--获取数据接口
|
--获取数据接口
|
||||||
local data_interface=modem_device["data_interface"]:upper()
|
local data_interface=modem_device["data_interface"]:upper()
|
||||||
--获取连接状态
|
--获取连接状态
|
||||||
local connect_status
|
local connect_status="unknown"
|
||||||
if modem_device["at_port"] then
|
if modem_device["at_port"] then
|
||||||
connect_status=getModemConnectStatus(modem_device["at_port"])
|
connect_status=getModemConnectStatus(modem_device["at_port"])
|
||||||
end
|
end
|
||||||
@ -94,10 +94,16 @@ end
|
|||||||
|
|
||||||
-- 获取模组更多信息
|
-- 获取模组更多信息
|
||||||
function getModemMoreInfo(at_port,manufacturer)
|
function getModemMoreInfo(at_port,manufacturer)
|
||||||
|
local modem_more_info={}
|
||||||
|
|
||||||
|
-- if manufacturer == "unknown" then
|
||||||
|
-- return modem_more_info
|
||||||
|
-- end
|
||||||
|
|
||||||
local odpall = io.popen("sh "..script_path.."modem_info.sh".." "..at_port.." "..manufacturer)
|
local odpall = io.popen("sh "..script_path.."modem_info.sh".." "..at_port.." "..manufacturer)
|
||||||
local opd = odpall:read("*a")
|
local opd = odpall:read("*a")
|
||||||
odpall:close()
|
odpall:close()
|
||||||
local modem_more_info=json.parse(opd)
|
modem_more_info=json.parse(opd)
|
||||||
return modem_more_info
|
return modem_more_info
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -107,7 +113,7 @@ function getModemInfo()
|
|||||||
--获取AT串口
|
--获取AT串口
|
||||||
local at_port = http.formvalue("port")
|
local at_port = http.formvalue("port")
|
||||||
|
|
||||||
--获取值
|
--获取信息
|
||||||
local modem_base_info
|
local modem_base_info
|
||||||
local modem_more_info
|
local modem_more_info
|
||||||
if at_port then
|
if at_port then
|
||||||
@ -115,38 +121,74 @@ function getModemInfo()
|
|||||||
modem_more_info=getModemMoreInfo(at_port,modem_base_info["manufacturer"])
|
modem_more_info=getModemMoreInfo(at_port,modem_base_info["manufacturer"])
|
||||||
end
|
end
|
||||||
|
|
||||||
--设置值
|
--设置信息
|
||||||
local modem_info={}
|
local modem_info={}
|
||||||
modem_info["base_info"]=modem_base_info
|
modem_info["base_info"]=modem_base_info
|
||||||
modem_info["more_info"]=modem_more_info
|
modem_info["more_info"]=modem_more_info
|
||||||
|
|
||||||
|
--设置翻译
|
||||||
|
local translation={}
|
||||||
|
if modem_more_info["sim_info"] then
|
||||||
|
for key in pairs(modem_more_info["sim_info"]) do
|
||||||
|
local key_origin=modem_more_info["sim_info"][key]:upper()
|
||||||
|
translation[key_origin]=luci.i18n.translate(key_origin)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if modem_more_info["cell_info"] then
|
||||||
|
for key in pairs(modem_more_info["cell_info"]) do
|
||||||
|
local network_mode=modem_more_info["cell_info"][key]
|
||||||
|
for i = 1, #network_mode do
|
||||||
|
local value = network_mode[i]
|
||||||
|
for key in pairs(value) do
|
||||||
|
translation[key]=luci.i18n.translate(key)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--整合数据
|
||||||
|
local data={}
|
||||||
|
data["modem_info"]=modem_info
|
||||||
|
data["translation"]=translation
|
||||||
|
|
||||||
-- 写入Web界面
|
-- 写入Web界面
|
||||||
luci.http.prepare_content("application/json")
|
luci.http.prepare_content("application/json")
|
||||||
luci.http.write_json(modem_info)
|
luci.http.write_json(data)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 获取模组信息
|
-- 获取模组信息
|
||||||
function getModems()
|
function getModems()
|
||||||
|
|
||||||
local modems={}
|
|
||||||
|
|
||||||
-- 获取所有模组
|
-- 获取所有模组
|
||||||
|
local modems={}
|
||||||
|
local translation={}
|
||||||
uci:foreach("modem", "modem-device", function (modem_device)
|
uci:foreach("modem", "modem-device", function (modem_device)
|
||||||
--获取连接状态
|
-- 获取连接状态
|
||||||
local connect_status
|
local connect_status="unknown"
|
||||||
if modem_device["at_port"] then
|
if modem_device["at_port"] then
|
||||||
connect_status=getModemConnectStatus(modem_device["at_port"])
|
connect_status=getModemConnectStatus(modem_device["at_port"])
|
||||||
end
|
end
|
||||||
|
|
||||||
--设置值
|
-- 获取翻译
|
||||||
|
translation[connect_status]=luci.i18n.translate(connect_status)
|
||||||
|
translation[modem_device["name"]]=luci.i18n.translate(modem_device["name"])
|
||||||
|
translation[modem_device["mode"]]=luci.i18n.translate(modem_device["mode"])
|
||||||
|
|
||||||
|
-- 设置值
|
||||||
local modem=modem_device
|
local modem=modem_device
|
||||||
modem["connect_status"]=connect_status
|
modem["connect_status"]=connect_status
|
||||||
modems[modem_device[".name"]]=modem
|
modems[modem_device[".name"]]=modem
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
-- 设置值
|
||||||
|
local data={}
|
||||||
|
data["modems"]=modems
|
||||||
|
data["translation"]=translation
|
||||||
|
|
||||||
-- 写入Web界面
|
-- 写入Web界面
|
||||||
luci.http.prepare_content("application/json")
|
luci.http.prepare_content("application/json")
|
||||||
luci.http.write_json(modems)
|
luci.http.write_json(data)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 模块列表状态函数
|
-- 模块列表状态函数
|
||||||
@ -245,13 +287,22 @@ end
|
|||||||
function getATPort()
|
function getATPort()
|
||||||
local at_ports={}
|
local at_ports={}
|
||||||
uci:foreach("modem", "modem-device", function (modem_device)
|
uci:foreach("modem", "modem-device", function (modem_device)
|
||||||
--获取模块的备注
|
--获取模组的备注
|
||||||
local network=modem_device["network"]
|
local network=modem_device["network"]
|
||||||
local remarks=getModemRemarks(network)
|
local remarks=getModemRemarks(network)
|
||||||
|
|
||||||
local name=modem_device["name"]:upper()..remarks
|
--设置模组AT串口
|
||||||
local at_port = modem_device["at_port"]
|
if modem_device["name"] and modem_device["at_port"] then
|
||||||
at_ports[at_port]=name
|
|
||||||
|
local name=modem_device["name"]:upper()..remarks
|
||||||
|
if modem_device["name"] == "unknown" then
|
||||||
|
-- name=modem_device["at_port"]..remarks
|
||||||
|
name=modem_device["name"]..remarks
|
||||||
|
end
|
||||||
|
|
||||||
|
local at_port = modem_device["at_port"]
|
||||||
|
at_ports[at_port]=name
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
-- 写入Web界面
|
-- 写入Web界面
|
||||||
luci.http.prepare_content("application/json")
|
luci.http.prepare_content("application/json")
|
||||||
|
@ -1,106 +1,84 @@
|
|||||||
<%+header%>
|
<%+header%>
|
||||||
|
|
||||||
<%
|
|
||||||
local uci = luci.model.uci.cursor()
|
|
||||||
|
|
||||||
-- 获取模组的备注
|
|
||||||
-- @Param network 移动网络
|
|
||||||
function getModemRemarks(network)
|
|
||||||
local remarks=""
|
|
||||||
uci:foreach("modem", "config", function (config)
|
|
||||||
---配置启用,且备注存在
|
|
||||||
if network == config["network"] and config["enable"] == "1" then
|
|
||||||
if config["remarks"] then
|
|
||||||
remarks=" ("..config["remarks"]..")" --" (备注)"
|
|
||||||
return true --跳出循环
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
return remarks
|
|
||||||
end
|
|
||||||
|
|
||||||
-- 获取AT串口
|
|
||||||
function getATPort()
|
|
||||||
local at_ports={}
|
|
||||||
uci:foreach("modem", "modem-device", function (modem_device)
|
|
||||||
--获取模块的备注
|
|
||||||
local network=modem_device["network"]
|
|
||||||
local remarks=getModemRemarks(network)
|
|
||||||
|
|
||||||
local name=modem_device["name"]:upper()..remarks
|
|
||||||
local at_port = modem_device["at_port"]
|
|
||||||
at_ports[at_port]=name
|
|
||||||
end)
|
|
||||||
return at_ports
|
|
||||||
end
|
|
||||||
%>
|
|
||||||
<h2 name="content"><%:AT Commands%></h2>
|
<h2 name="content"><%:AT Commands%></h2>
|
||||||
<div class="cbi-map-descr"><%:Debugging Your Module with AT Command%></div>
|
<div class="cbi-map-descr"><%:Debugging Your Module with AT Command%></div>
|
||||||
<p></p>
|
|
||||||
<h4><br/></h4>
|
|
||||||
<div class="table" width="100%">
|
|
||||||
|
|
||||||
<div class="tr">
|
<fieldset class="cbi-section" id="cbi-info" style="display: block;">
|
||||||
<div class="td left" width="25%"><%:Modem Select%>:</div>
|
<h3><%:Message%></h3>
|
||||||
<div class="td left" style="width:50%;">
|
<table width="550" border="0">
|
||||||
<select name="modem_select" id="modem_select" onclick="afunction()">
|
<tr>
|
||||||
<% at_ports=getATPort() %>
|
<td width="10%"></td>
|
||||||
<% for key in pairs(at_ports) do %>
|
<td width="60%">
|
||||||
<option value="<%= key %>"><%= at_ports[key] %></option>
|
<div align="left" id="info_message" style="font-size:1.875em">
|
||||||
<% end %>
|
<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle"/>
|
||||||
</select>
|
<%:Loading modem%>...
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td width="30%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<div id="at_command_view" style="display: none;">
|
||||||
|
<h4><br/></h4>
|
||||||
|
<div class="table" width="100%">
|
||||||
|
<div class="tr">
|
||||||
|
<div class="td left" width="25%"><%:Modem Select%>:</div>
|
||||||
|
<div class="td left" style="width:50%;">
|
||||||
|
<select name="modem_select" id="modem_select" onclick="afunction()"></select>
|
||||||
|
</div>
|
||||||
|
<div class="td left" style="width:50%;"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="td left" style="width:50%;"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="tr">
|
<div class="tr">
|
||||||
<div class="td left" width="25%"><%:User AT Commands%>:</div>
|
<div class="td left" width="25%"><%:User AT Commands%>:</div>
|
||||||
<div class="td left" style="width:50%;">
|
<div class="td left" style="width:50%;">
|
||||||
<select name="command_choose" id="command_choose" onclick="copyToSend()"></select>
|
<select name="command_choose" id="command_choose" onclick="copyToSend()"></select>
|
||||||
|
</div>
|
||||||
|
<div class="td left" style="width:50%;"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="td left" style="width:50%;"></div>
|
|
||||||
|
<div class="tr">
|
||||||
|
<div class="td left" style="width:25%;"><%:Command to send%>:</div>
|
||||||
|
<div class="td left" ><input type="text" id="at_command" required size="20" ></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tr">
|
<div class="table" width="100%">
|
||||||
<div class="td left" style="width:25%;"><%:Command to send%>:</div>
|
<div class="td left" style="width:25%;"><%:Reply%>:
|
||||||
<div class="td left" ><input type="text" id="at_command" required size="20" ></div>
|
<p>
|
||||||
|
<pre id="odp" style="visibility: hidden; width:75%;"></pre></div>
|
||||||
|
|
||||||
|
<div class="tr cbi-rowstyle-2">
|
||||||
|
<div class="td right"><input type="button" style="margin-right: 26%"; id="sendcmd" class="btn cbi-button cbi-button-neutral" value="<%:Send Command%>" /></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="table" width="100%">
|
|
||||||
<div class="td left" style="width:25%;"><%:Reply%>:
|
|
||||||
<p>
|
|
||||||
<pre id="odp" style="visibility: hidden; width:75%;"></pre></div>
|
|
||||||
|
|
||||||
<div class="tr cbi-rowstyle-2">
|
|
||||||
<div class="td right"><input type="button" style="margin-right: 26%"; id="sendcmd" class="btn cbi-button cbi-button-neutral" value="<%:Send Command%>" /></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
window.onload = function readData()
|
window.onload = function readData()
|
||||||
{
|
{
|
||||||
// 选择AT命令
|
// 获取AT命令
|
||||||
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "modem", "user_at_command")%>', null,
|
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "modem", "user_at_command")%>', null,
|
||||||
function(x, json)
|
function(x, json)
|
||||||
{
|
{
|
||||||
select = document.getElementById('command_choose');
|
select = document.getElementById('command_choose');
|
||||||
// 遍历序号
|
// 遍历序号
|
||||||
for (var command in json) {
|
for (var command in json) {
|
||||||
// 遍历AT命令
|
// 遍历AT命令
|
||||||
for (var key in json[command]) {
|
for (var key in json[command]) {
|
||||||
var option = document.createElement('option');
|
var option = document.createElement('option');
|
||||||
option.text = key;
|
option.text = key;
|
||||||
option.value = json[command][key].trim();
|
option.value = json[command][key].trim();
|
||||||
option.innerHTML = key;
|
option.innerHTML = key;
|
||||||
select.appendChild(option);
|
select.appendChild(option);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
);
|
||||||
);
|
};
|
||||||
|
|
||||||
// 定时触发更新AT串口
|
// 定时触发更新AT串口
|
||||||
XHR.poll(5,'<%=luci.dispatcher.build_url("admin", "network", "modem", "get_at_port")%>', null,
|
XHR.poll(5,'<%=luci.dispatcher.build_url("admin", "network", "modem", "get_at_port")%>', null,
|
||||||
@ -116,8 +94,15 @@ window.onload = function readData()
|
|||||||
for (var key in port)
|
for (var key in port)
|
||||||
{
|
{
|
||||||
var option = document.createElement('option');
|
var option = document.createElement('option');
|
||||||
option.text = port[key].trim();
|
|
||||||
option.value = key;
|
option.value = key;
|
||||||
|
if (port[key].includes("unknown"))
|
||||||
|
{
|
||||||
|
option.text = port[key].replace("unknown", key);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
option.text = port[key];
|
||||||
|
}
|
||||||
modem_select.appendChild(option);
|
modem_select.appendChild(option);
|
||||||
}
|
}
|
||||||
// 恢复原来的选择
|
// 恢复原来的选择
|
||||||
@ -129,84 +114,101 @@ window.onload = function readData()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 界面显示控制
|
||||||
|
if (Object.keys(port).length==0)
|
||||||
|
{
|
||||||
|
// 更新提示信息
|
||||||
|
document.getElementById("info_message").innerHTML="<strong><%:No modems found%></strong>";
|
||||||
|
// 显示提示信息
|
||||||
|
document.getElementById("cbi-info").style.display="block";
|
||||||
|
// 隐藏AT命令界面
|
||||||
|
document.getElementById("at_command_view").style.display="none";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 显示AT命令界面
|
||||||
|
document.getElementById("at_command_view").style.display="block";
|
||||||
|
// 隐藏提示信息
|
||||||
|
document.getElementById("cbi-info").style.display="none";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
};
|
|
||||||
|
|
||||||
// 根据所选的模组改变AT命令
|
// 根据所选的模组改变AT命令
|
||||||
function afunction()
|
function afunction()
|
||||||
{
|
{
|
||||||
// var node = document.getElementById('odp');
|
// var node = document.getElementById('odp');
|
||||||
// node.style.visibility = 'hidden';
|
// node.style.visibility = 'hidden';
|
||||||
|
|
||||||
// var x = document.getElementById("at_command").value;
|
// var x = document.getElementById("at_command").value;
|
||||||
// document.getElementById("code").value = x;
|
// document.getElementById("code").value = x;
|
||||||
// document.getElementById("odp").innerHTML = "";
|
// document.getElementById("odp").innerHTML = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
//自动填写到命令输入框
|
|
||||||
function copyToSend()
|
|
||||||
{
|
|
||||||
var node = document.getElementById('odp');
|
|
||||||
node.style.visibility = 'hidden';
|
|
||||||
|
|
||||||
var command_choose = document.getElementById("command_choose").value;
|
|
||||||
document.getElementById("at_command").value = command_choose;
|
|
||||||
document.getElementById("odp").innerHTML = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function postCommand(at_port,at_command) {
|
|
||||||
(new XHR()).post('<%=luci.dispatcher.build_url("admin", "network", "modem", "send_at_command")%>', {"port":at_port,"command":at_command}, function(x) {
|
|
||||||
console.log(x.response)
|
|
||||||
console.log(x)
|
|
||||||
|
|
||||||
var aStr = x.response;
|
|
||||||
var myre = /^[\s\t]*(\r\n|\n|\r)/gm;
|
|
||||||
var bStr = aStr.replace(myre,"");
|
|
||||||
document.getElementById("odp").innerHTML = bStr;
|
|
||||||
var el = document.getElementsByName("odp")[0];
|
|
||||||
el.value.replace(/(\r\n|\n|\r)/gm, "");
|
|
||||||
});
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', function (ev) {var button = document.getElementById("sendcmd");
|
|
||||||
button.addEventListener("click", function () {
|
|
||||||
|
|
||||||
//获取AT串口
|
|
||||||
var at_port = document.getElementById("modem_select").value;
|
|
||||||
if ( at_port.length == 0 )
|
|
||||||
{
|
|
||||||
document.getElementById("odp").innerHTML = "";
|
|
||||||
alert("<%:Please choose a Modem%>");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//获取AT命令
|
|
||||||
var at_command = document.getElementById("at_command").value;
|
|
||||||
if ( at_command.length == 0 )
|
|
||||||
{
|
|
||||||
document.getElementById("odp").innerHTML = "";
|
|
||||||
alert("<%:Please enter a AT Command%>");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//发送AT命令
|
|
||||||
postCommand(at_port,at_command);
|
|
||||||
at_command = "";
|
|
||||||
|
|
||||||
|
//自动填写到命令输入框
|
||||||
|
function copyToSend()
|
||||||
|
{
|
||||||
var node = document.getElementById('odp');
|
var node = document.getElementById('odp');
|
||||||
if (node.style.visibility=='visible') {
|
node.style.visibility = 'hidden';
|
||||||
node.style.visibility = 'hidden';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
node.style.visibility = 'visible'
|
|
||||||
|
|
||||||
return true;
|
var command_choose = document.getElementById("command_choose").value;
|
||||||
|
document.getElementById("at_command").value = command_choose;
|
||||||
|
document.getElementById("odp").innerHTML = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
function postCommand(at_port,at_command)
|
||||||
|
{
|
||||||
|
(new XHR()).post('<%=luci.dispatcher.build_url("admin", "network", "modem", "send_at_command")%>', {"port":at_port,"command":at_command}, function(x) {
|
||||||
|
console.log(x.response)
|
||||||
|
console.log(x)
|
||||||
|
|
||||||
|
var aStr = x.response;
|
||||||
|
var myre = /^[\s\t]*(\r\n|\n|\r)/gm;
|
||||||
|
var bStr = aStr.replace(myre,"");
|
||||||
|
document.getElementById("odp").innerHTML = bStr;
|
||||||
|
var el = document.getElementsByName("odp")[0];
|
||||||
|
el.value.replace(/(\r\n|\n|\r)/gm, "");
|
||||||
});
|
});
|
||||||
}, true);
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function (ev) {var button = document.getElementById("sendcmd");
|
||||||
|
button.addEventListener("click", function () {
|
||||||
|
|
||||||
|
//获取AT串口
|
||||||
|
var at_port = document.getElementById("modem_select").value;
|
||||||
|
if ( at_port.length == 0 )
|
||||||
|
{
|
||||||
|
document.getElementById("odp").innerHTML = "";
|
||||||
|
alert("<%:Please choose a Modem%>");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取AT命令
|
||||||
|
var at_command = document.getElementById("at_command").value;
|
||||||
|
if ( at_command.length == 0 )
|
||||||
|
{
|
||||||
|
document.getElementById("odp").innerHTML = "";
|
||||||
|
alert("<%:Please enter a AT Command%>");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//发送AT命令
|
||||||
|
postCommand(at_port,at_command);
|
||||||
|
at_command = "";
|
||||||
|
|
||||||
|
var node = document.getElementById('odp');
|
||||||
|
if (node.style.visibility=='visible') {
|
||||||
|
node.style.visibility = 'hidden';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
node.style.visibility = 'visible'
|
||||||
|
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
}, true);
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -11,37 +11,6 @@ havegps = 0
|
|||||||
if fs.stat("/etc/havegps") then
|
if fs.stat("/etc/havegps") then
|
||||||
havegps = 1
|
havegps = 1
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 获取模组的备注
|
|
||||||
-- @Param network 移动网络
|
|
||||||
function getModemRemarks(network)
|
|
||||||
local remarks=""
|
|
||||||
uci:foreach("modem", "config", function (config)
|
|
||||||
---配置启用,且备注存在
|
|
||||||
if network == config["network"] and config["enable"] == "1" then
|
|
||||||
if config["remarks"] then
|
|
||||||
remarks=" ("..config["remarks"]..")" --" (备注)"
|
|
||||||
return true --跳出循环
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
return remarks
|
|
||||||
end
|
|
||||||
|
|
||||||
-- 获取AT串口
|
|
||||||
function getATPort()
|
|
||||||
local at_ports={}
|
|
||||||
uci:foreach("modem", "modem-device", function (modem_device)
|
|
||||||
--获取模块的备注
|
|
||||||
local network=modem_device["network"]
|
|
||||||
local remarks=getModemRemarks(network)
|
|
||||||
|
|
||||||
local name=modem_device["name"]:upper()..remarks
|
|
||||||
local at_port = modem_device["at_port"]
|
|
||||||
at_ports[at_port]=name
|
|
||||||
end)
|
|
||||||
return at_ports
|
|
||||||
end
|
|
||||||
%>
|
%>
|
||||||
<style>g {color:grey; font-size:75%; vertical-align: super;}</style>
|
<style>g {color:grey; font-size:75%; vertical-align: super;}</style>
|
||||||
<script type="text/javascript" src="<%=resource%>/xhr.js?v=git-23.159.15540-7154b89"></script>
|
<script type="text/javascript" src="<%=resource%>/xhr.js?v=git-23.159.15540-7154b89"></script>
|
||||||
@ -57,158 +26,93 @@ end
|
|||||||
// 更新数据
|
// 更新数据
|
||||||
update();
|
update();
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
//更新模组数据
|
//获取小区信息视图
|
||||||
// XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "modem", "get_modem_info")%>', {"port":at_port},
|
function get_cell_info_view(network_mode_info,translation)
|
||||||
// function(x, modem_info)
|
{
|
||||||
// {
|
//初始化视图
|
||||||
// console.log(modem_info);
|
var cell_info_view='';
|
||||||
|
//遍历每一条信息
|
||||||
|
for (var info of network_mode_info)
|
||||||
|
{
|
||||||
|
//遍历每一条信息里的键
|
||||||
|
for (var key in info)
|
||||||
|
{
|
||||||
|
var full_name=info["full_name"];
|
||||||
|
if (full_name==null)
|
||||||
|
{
|
||||||
|
full_name='';
|
||||||
|
}
|
||||||
|
//不显示空的信息
|
||||||
|
if (key!="full_name"&&info[key]!="")
|
||||||
|
{
|
||||||
|
//添加单位
|
||||||
|
if (key=="UL Bandwidth"||key=="DL Bandwidth") {
|
||||||
|
info[key]=info[key]+" MHz"
|
||||||
|
}
|
||||||
|
else if (key=="RSRP"||key=="RxLev") {
|
||||||
|
info[key]=info[key]+" dbm"
|
||||||
|
}
|
||||||
|
else if (key=="RSRQ"||key=="RSSNR") {
|
||||||
|
info[key]=info[key]+" dB"
|
||||||
|
}
|
||||||
|
cell_info_view+='<tr><td width="20%" title="'+full_name+'">'+translation[key]+' :</td><td id="'+key+'">'+info[key]+'</td><td></td></tr>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cell_info_view;
|
||||||
|
}
|
||||||
|
|
||||||
// // 基本信息
|
//获取小区信息
|
||||||
// // document.getElementById('modem').innerHTML=modem_info.modem;
|
function show_cell_info(cell_info,translation) {
|
||||||
// document.getElementById('manufacturer').innerHTML=modem_info.manufacturer;
|
//获取网络模式
|
||||||
// document.getElementById('at_port').innerHTML=modem_info.at_port;
|
var network_mode=Object.keys(cell_info)[0];
|
||||||
// document.getElementById('mode').innerHTML=modem_info.mode;
|
//获取网络模式下的信息
|
||||||
// document.getElementById('temperature').innerHTML=modem_info.temperature;
|
var network_mode_info=cell_info[network_mode];
|
||||||
// document.getElementById('date').innerHTML=modem_info.date;
|
//获取表格
|
||||||
|
var cell_info_Element=document.getElementById("cell_info");
|
||||||
// //SIM卡信息
|
|
||||||
// document.getElementById('csq').innerHTML=modem_info.csq;
|
|
||||||
// document.getElementById('per').innerHTML=modem_info.per;
|
|
||||||
// document.getElementById('rssi').innerHTML=modem_info.rssi;
|
|
||||||
// document.getElementById('cops').innerHTML=modem_info.cops;
|
|
||||||
// document.getElementById('net_type').innerHTML=modem_info.net_type;
|
|
||||||
// document.getElementById('lac').innerHTML=modem_info.lac;
|
|
||||||
// document.getElementById('cid').innerHTML=modem_info.cid;
|
|
||||||
// document.getElementById('lacn').innerHTML=modem_info.lacn;
|
|
||||||
// document.getElementById('cidn').innerHTML=modem_info.cidn;
|
|
||||||
// document.getElementById('mcc').innerHTML=modem_info.mcc;
|
|
||||||
// document.getElementById('mnc').innerHTML=modem_info.mnc;
|
|
||||||
// document.getElementById('rnc').innerHTML=modem_info.rnc;
|
|
||||||
// document.getElementById('rncn').innerHTML=modem_info.rncn;
|
|
||||||
// document.getElementById('down').innerHTML=modem_info.down;
|
|
||||||
// document.getElementById('up').innerHTML=modem_info.up;
|
|
||||||
// document.getElementById('ecio').innerHTML=modem_info.ecio;
|
|
||||||
// document.getElementById('rscp').innerHTML=modem_info.rscp;
|
|
||||||
// document.getElementById('ecio1').innerHTML=modem_info.ecio1;
|
|
||||||
// document.getElementById('rscp1').innerHTML=modem_info.rscp1;
|
|
||||||
// document.getElementById('chan').innerHTML=modem_info.channel;
|
|
||||||
// document.getElementById('lband').innerHTML=modem_info.lband;
|
|
||||||
// document.getElementById('conmon').innerHTML=modem_info.netmode;
|
|
||||||
// document.getElementById('tempur').innerHTML=modem_info.tempur;
|
|
||||||
|
|
||||||
// document.getElementById('pci').innerHTML=modem_info.pci;
|
|
||||||
// document.getElementById('sinr').innerHTML=modem_info.sinr;
|
|
||||||
|
|
||||||
// document.getElementById('imei').innerHTML=modem_info.imei;
|
|
||||||
// document.getElementById('imsi').innerHTML=modem_info.imsi;
|
|
||||||
// document.getElementById('iccid').innerHTML=modem_info.iccid;
|
|
||||||
// document.getElementById('phone').innerHTML=modem_info.phone;
|
|
||||||
|
|
||||||
|
|
||||||
// <% if havegps == 1 then %>
|
|
||||||
// document.getElementById('lat').innerHTML=modem_info.lat;
|
|
||||||
// document.getElementById('long').innerHTML=modem_info.long;
|
|
||||||
// <% end %>
|
|
||||||
// // document.getElementById('idvp').innerHTML=modem_info.modid;
|
|
||||||
// // document.getElementById('proto').innerHTML=modem_info.proto;
|
|
||||||
// // document.getElementById('port').innerHTML=modem_info.port;
|
|
||||||
|
|
||||||
// // document.getElementById('crate').innerHTML=modem_info.crate;
|
|
||||||
// // if (phonenx == "")
|
|
||||||
// // {
|
|
||||||
// // document.getElementById('phone').value=modem_info.phone;
|
|
||||||
// // document.getElementById('phonen').value=modem_info.phonen;
|
|
||||||
// // phonenx = document.getElementById('phone').value;
|
|
||||||
// // document.getElementById("phone").disabled=false;
|
|
||||||
// // document.getElementById("phonen").disabled=false;
|
|
||||||
// // document.getElementById("pho").disabled=false;
|
|
||||||
// // }
|
|
||||||
|
|
||||||
// // if (modem_info.phone == "-")
|
|
||||||
// // {
|
|
||||||
// // document.getElementById('phone').value="-";
|
|
||||||
// // document.getElementById('phonen').value="-";
|
|
||||||
// // document.getElementById("pho").disabled=true;
|
|
||||||
// // document.getElementById("phone").disabled=true;
|
|
||||||
// // document.getElementById("phonen").disabled=true;
|
|
||||||
// // phonenx = "";
|
|
||||||
// // }
|
|
||||||
|
|
||||||
// // simerr = modem_info.simerr;
|
|
||||||
// // if (simerr == "0")
|
|
||||||
// // {
|
|
||||||
// // document.getElementById("simwarn").style.display="none";
|
|
||||||
// // }
|
|
||||||
// // else
|
|
||||||
// // {
|
|
||||||
// // document.getElementById("simwarn").style.display="block";
|
|
||||||
// // document.getElementById("simsg").style.color = "red";
|
|
||||||
// // if (simerr == "1")
|
|
||||||
// // {
|
|
||||||
// // document.getElementById("simsg").innerHTML = "<%:SIM卡已锁定,个人资料中未输入SIM Pin!!%>";
|
|
||||||
// // }
|
|
||||||
// // else
|
|
||||||
// // {
|
|
||||||
// // if (simerr == "2")
|
|
||||||
// // {
|
|
||||||
// // document.getElementById("simsg").innerHTML = "<%:解锁SIM卡的Pin不正确%>";
|
|
||||||
// // }
|
|
||||||
// // else
|
|
||||||
// // {
|
|
||||||
// // if (simerr == "3")
|
|
||||||
// // {
|
|
||||||
// // document.getElementById("simsg").innerHTML = "<%:无效SIM卡%>";
|
|
||||||
// // } else
|
|
||||||
// // {
|
|
||||||
// // document.getElementById("simsg").innerHTML = "<%:SIM卡未锁定.错误的SIM卡%>";
|
|
||||||
// // }
|
|
||||||
// // }
|
|
||||||
// // }
|
|
||||||
// // }
|
|
||||||
|
|
||||||
|
|
||||||
// // reslt=modem_info.result
|
|
||||||
|
|
||||||
// // portx=modem_info.port
|
|
||||||
// // if (portx == "-" )
|
|
||||||
// // {
|
|
||||||
// // document.getElementById('inc1').style.display="none";
|
|
||||||
// // document.getElementById('dec1').style.display="none";
|
|
||||||
// // }
|
|
||||||
// // else
|
|
||||||
// // {
|
|
||||||
// // document.getElementById('inc1').style.display="block";
|
|
||||||
// // document.getElementById('dec1').style.display="block";
|
|
||||||
// // }
|
|
||||||
|
|
||||||
// // host = modem_info.host;
|
|
||||||
// // if(host == "1")
|
|
||||||
// // {
|
|
||||||
// // document.getElementById("pho").disabled=true;
|
|
||||||
// // }
|
|
||||||
// }
|
|
||||||
// );
|
|
||||||
|
|
||||||
|
//初始化视图
|
||||||
|
var cell_info_view='<caption>'+<%:network_mode%>+'</caption>';
|
||||||
|
if (network_mode=="EN-DC Mode")
|
||||||
|
{
|
||||||
|
var lte=network_mode_info[0]["LTE"];
|
||||||
|
cell_info_view+='<tr><td colspan="3">LTE</td></tr>';
|
||||||
|
cell_info_view+=get_cell_info_view(lte,translation);
|
||||||
|
var nsa=network_mode_info[1]["NR5G-NSA"];
|
||||||
|
cell_info_view+='<tr><td colspan="3">NR5G-NSA</td></tr>';
|
||||||
|
cell_info_view+=get_cell_info_view(nsa,translation);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// cell_info_view+='<tr><td colspan="3">NR5G-NSA</td></tr>';
|
||||||
|
cell_info_view+=get_cell_info_view(network_mode_info,translation);
|
||||||
|
}
|
||||||
|
cell_info_Element.innerHTML=cell_info_view;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新模组数据
|
// 更新模组数据
|
||||||
function update()
|
function update()
|
||||||
{
|
{
|
||||||
var at_port="";
|
// var at_port="";
|
||||||
if (modem_select.options.length!=0) {
|
// if (modem_select.options.length!=0) {
|
||||||
at_port=modem_select.options[modem_select.selectedIndex].value;
|
var at_port=modem_select.options[modem_select.selectedIndex].value;
|
||||||
}
|
// }
|
||||||
else {
|
// else {
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
|
|
||||||
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "modem", "get_modem_info")%>', {"port":at_port},
|
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "modem", "get_modem_info")%>', {"port":at_port},
|
||||||
function(x, modem_info)
|
function(x, data)
|
||||||
{
|
{
|
||||||
console.log(modem_info);
|
console.log(data);
|
||||||
|
|
||||||
|
var modem_info=data["modem_info"];
|
||||||
|
var translation=data["translation"];
|
||||||
|
|
||||||
var base_info=modem_info["base_info"];
|
var base_info=modem_info["base_info"];
|
||||||
|
var connect_status=base_info["connect_status"];
|
||||||
for (var key in base_info)
|
for (var key in base_info)
|
||||||
{
|
{
|
||||||
var base_info_Element=document.getElementById(key);
|
var base_info_Element=document.getElementById(key);
|
||||||
@ -219,14 +123,80 @@ end
|
|||||||
}
|
}
|
||||||
|
|
||||||
var more_info=modem_info["more_info"];
|
var more_info=modem_info["more_info"];
|
||||||
for (var key in more_info)
|
//基本信息
|
||||||
|
base_info=more_info["base_info"];
|
||||||
|
for (var key in base_info)
|
||||||
{
|
{
|
||||||
var more_info_Element=document.getElementById(key);
|
var base_info_Element=document.getElementById(key);
|
||||||
if (more_info_Element!=null)
|
if (base_info_Element!=null)
|
||||||
{
|
{
|
||||||
more_info_Element.innerHTML=more_info[key];
|
base_info_Element.innerHTML=base_info[key];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 界面显示控制
|
||||||
|
// 隐藏提示信息
|
||||||
|
document.getElementById("cbi-info").style.display="none";
|
||||||
|
// 显示基本信息
|
||||||
|
document.getElementById("cbi-baseinfo").style.display="block";
|
||||||
|
|
||||||
|
//SIM卡信息
|
||||||
|
var sim_info=more_info["sim_info"];
|
||||||
|
for (var key in sim_info)
|
||||||
|
{
|
||||||
|
var sim_info_Element=document.getElementById(key);
|
||||||
|
if (sim_info_Element!=null)
|
||||||
|
{
|
||||||
|
sim_info_Element.innerHTML=translation[sim_info[key]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 界面显示控制
|
||||||
|
if (base_info["manufacturer"]!="unknown")
|
||||||
|
{
|
||||||
|
// 显示SIM卡信息
|
||||||
|
document.getElementById("cbi-siminfo").style.display="block";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 隐藏SIM卡信息
|
||||||
|
document.getElementById("cbi-siminfo").style.display="none";
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
//网络信息
|
||||||
|
var network_info=more_info["network_info"];
|
||||||
|
for (var key in network_info)
|
||||||
|
{
|
||||||
|
var network_info_Element=document.getElementById(key);
|
||||||
|
if (network_info_Element!=null)
|
||||||
|
{
|
||||||
|
network_info_Element.innerHTML=network_info[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//小区信息
|
||||||
|
var cell_info=more_info["cell_info"];
|
||||||
|
if (cell_info!=null)
|
||||||
|
{
|
||||||
|
show_cell_info(cell_info,translation);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 界面显示控制
|
||||||
|
if (connect_status=="connect")
|
||||||
|
{
|
||||||
|
// 显示网络信息
|
||||||
|
document.getElementById("cbi-networkinfo").style.display="block";
|
||||||
|
// 显示小区信息
|
||||||
|
document.getElementById("cbi-cellinfo").style.display="block";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 隐藏网络信息
|
||||||
|
document.getElementById("cbi-networkinfo").style.display="none";
|
||||||
|
// 隐藏小区信息
|
||||||
|
document.getElementById("cbi-cellinfo").style.display="none";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -258,6 +228,25 @@ end
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 界面显示控制
|
||||||
|
if (Object.keys(port).length==0)
|
||||||
|
{
|
||||||
|
// 更新提示信息
|
||||||
|
document.getElementById("info_message").innerHTML="<strong><%:No modems found%></strong>";
|
||||||
|
// 显示提示信息
|
||||||
|
document.getElementById("cbi-info").style.display="block";
|
||||||
|
// 隐藏基本信息
|
||||||
|
document.getElementById("cbi-baseinfo").style.display="none";
|
||||||
|
// 隐藏SIM卡信息
|
||||||
|
document.getElementById("cbi-siminfo").style.display="none";
|
||||||
|
// 隐藏网络信息
|
||||||
|
document.getElementById("cbi-networkinfo").style.display="none";
|
||||||
|
// 隐藏小区信息
|
||||||
|
document.getElementById("cbi-cellinfo").style.display="none";
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -297,7 +286,6 @@ end
|
|||||||
document.getElementById('conmon').innerHTML="-";
|
document.getElementById('conmon').innerHTML="-";
|
||||||
document.getElementById('phone').value="-";
|
document.getElementById('phone').value="-";
|
||||||
|
|
||||||
|
|
||||||
document.getElementById('imei').innerHTML="-";
|
document.getElementById('imei').innerHTML="-";
|
||||||
document.getElementById('imsi').innerHTML="-";
|
document.getElementById('imsi').innerHTML="-";
|
||||||
document.getElementById('iccid').innerHTML="-";
|
document.getElementById('iccid').innerHTML="-";
|
||||||
@ -315,10 +303,10 @@ end
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="cbi-map" id="cbi-modem">
|
<div class="cbi-map" id="cbi-modem">
|
||||||
<h2 name="content"><%:Modem Info%></h2>
|
<h2 name="content"><%:Modem Information%></h2>
|
||||||
<div class="cbi-map-descr"><%:%></div>
|
<div class="cbi-map-descr"><%:%></div>
|
||||||
|
|
||||||
<fieldset class="cbi-section" id="simwarn" style="display:none;">
|
<!-- <fieldset class="cbi-section" id="simwarn" style="display:none;">
|
||||||
<legend><%:SIM警告%></legend>
|
<legend><%:SIM警告%></legend>
|
||||||
<table width="550" border="0">
|
<table width="550" border="0">
|
||||||
<tr>
|
<tr>
|
||||||
@ -327,100 +315,124 @@ end
|
|||||||
<td width="30%"></td>
|
<td width="30%"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</fieldset>
|
</fieldset> -->
|
||||||
|
|
||||||
<% at_ports = getATPort() %>
|
<fieldset class="cbi-section" id="cbi-info" style="display: block;">
|
||||||
<% if next(at_ports) == nil then %>
|
<h3><%:Message%></h3>
|
||||||
|
<table width="550" border="0">
|
||||||
<fieldset class="cbi-section" id="info">
|
|
||||||
<h3><%:信息%></h3>
|
|
||||||
<table width="550" border="0">
|
|
||||||
<tr>
|
<tr>
|
||||||
<td width="10%"></td>
|
<td width="10%"></td>
|
||||||
<td width="60%"><div align="left" id="simsg" style="font-size:1.875em"><strong><%:No modems found%></strong></div></td>
|
<td width="60%">
|
||||||
|
<div align="left" id="info_message" style="font-size:1.875em">
|
||||||
|
<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle"/>
|
||||||
|
<%:Loading modem information%>...
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
<td width="30%"></td>
|
<td width="30%"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<% else %>
|
<fieldset class="cbi-section" id="cbi-baseinfo" style="display: none;">
|
||||||
<fieldset class="cbi-section" id="cbi-baseinfo">
|
<h3><%:Base Information%></h3>
|
||||||
<h3><%:基本信息%></h3>
|
|
||||||
<table width="100%" cellspacing="10">
|
<table width="100%" cellspacing="10">
|
||||||
<tr><td width="20%"><%:模组 :%></td><td id="modem_name">
|
<tr><td width="20%"><%:Modem%> :</td><td id="modem_name">
|
||||||
<select name="modem_select" id="modem_select">
|
<select name="modem_select" id="modem_select"></select>
|
||||||
<% at_ports = getATPort() %>
|
|
||||||
<% for key in pairs(at_ports) do %>
|
|
||||||
<option value="<%= key %>"><%= at_ports[key] %></option>
|
|
||||||
<% end %>
|
|
||||||
</select>
|
|
||||||
</td><td></td></tr>
|
</td><td></td></tr>
|
||||||
<tr><td width="20%"><%:制造商 :%></td><td id="manufacturer"></td><td></td></tr>
|
<tr><td width="20%"><%:Manufacturer%> :</td><td id="manufacturer"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:固件版本 :%></td><td id="revision"></td><td></td></tr>
|
<tr><td width="20%"><%:Revision%>:</td><td id="revision"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:数据接口 : %></td><td id="data_interface"></td><td></td></tr>
|
<tr><td width="20%"><%:Data Interface%> :</td><td id="data_interface"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:拨号模式 : %></td><td id="mode"></td><td></td></tr>
|
<tr><td width="20%"><%:Mode%> :</td><td id="mode"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:AT串口 : %></td><td id="at_port"></td><td></td></tr>
|
<tr><td width="20%"><%:AT Port%> :</td><td id="at_port"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:移动网络 : %></td><td id="network"></td><td></td></tr>
|
<tr><td width="20%"><%:Mobile Network%> :</td><td id="network"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:温度 : %></td><td id="temperature"></td><td></td></tr>
|
<tr><td width="20%"><%:Temperature%> :</td><td id="temperature"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:更新时间 : %></td><td id="update_time"></td><td></td></tr>
|
<tr><td width="20%"><%:Update Time%> :</td><td id="update_time"></td><td></td></tr>
|
||||||
</table>
|
</table>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<% if nosms == 0 then %>
|
<% if nosms == 0 then %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<fieldset class="cbi-section" id="cbi-siminfo">
|
<fieldset class="cbi-section" id="cbi-siminfo" style="display: none;">
|
||||||
<h3><%:SIM卡信息%></h3>
|
<h3><%:SIM Information%></h3>
|
||||||
<table width="100%" cellspacing="10">
|
<table width="100%" cellspacing="10">
|
||||||
<tr><td width="20%"><%:运营商 : %></td><td id="isp"></td><td></td></tr>
|
<tr><td width="20%"><%:ISP%> :</td><td id="isp"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:IMEI :%></td><td id="imei"></td><td></td></tr>
|
<tr><td width="20%"><%:IMEI%> :</td><td id="imei"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:IMSI : %></td><td id="imsi"></td><td></td></tr>
|
<tr><td width="20%"><%:IMSI%> :</td><td id="imsi"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:ICCID : %></td><td id="iccid"></td><td></td></tr>
|
<tr><td width="20%"><%:ICCID%> :</td><td id="iccid"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:SIM卡号码 : %></td><td id="phone"></td><td></td></tr>
|
<tr><td width="20%"><%:SIM Number%> :</td><td id="sim_number"></td><td></td></tr>
|
||||||
</table>
|
</table>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<fieldset class="cbi-section" id="cbi-networkinfo">
|
<fieldset class="cbi-section" id="cbi-networkinfo" style="display: none;">
|
||||||
|
<h3><%:Network Information%></h3>
|
||||||
|
<table width="100%" cellspacing="10">
|
||||||
|
<tr><td width="20%"><%:Network Type%> :</td><td id="network_type"></td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset class="cbi-section" id="cbi-cellinfo" style="display: none;">
|
||||||
|
<h3><%:Cell Information%></h3>
|
||||||
|
<table width="100%" cellspacing="10" id="cell_info">
|
||||||
|
<!-- <tr><td width="20%"><%:MCC/MNC 国家码/网络码 %> :</td><td id="nr_mcc"></td><td id="nr_mnc"></td></tr>
|
||||||
|
<tr><td width="20%"><%:Duplex Mode 双工模式 %> :</td><td id="nr_duplex_mode"></td><td></td></tr>
|
||||||
|
<tr><td width="20%"><%:Cell ID 小区ID %> :</td><td><ul><span id="nr_cell_id" class="r"></span><span id="cidn" class="r"></span></ul></td><td></td></tr>
|
||||||
|
<tr><td width="20%"><%:Physical Cell ID 物理小区ID %> :</td><td id="nr_physical_cell_id"></td><td></td></tr>
|
||||||
|
<tr><td width="20%"><%:TAC 跟踪区编码 %> :</td><td id="nr_tac"></td><td></td></tr>
|
||||||
|
<tr><td width="20%" title="<%:Absolute Radio-Frequency Channel Number%>"><%:ARFCN 绝对射频信道号 : %></td><td id="nr_arfcn"></td><td></td></tr>
|
||||||
|
<tr><td width="20%"><%:Band 频段 : %></td><td id="nr_band"></td><td></td></tr>
|
||||||
|
<tr><td width="20%"><%:UL Bandwidth 上行带宽 %> :</td><td id="nr_ul_bandwidth"></td><td></td></tr>
|
||||||
|
<tr><td width="20%"><%:DL Bandwidth 下行带宽 %> :</td><td id="nr_dl_bandwidth"></td><td></td></tr>
|
||||||
|
<tr><td width="20%" title="<%:Reference Signal Received Power%>"><%:RSRP 参考信号接收功率 %> :</td><td id="nr_rsrp"></td><td></td></tr>
|
||||||
|
<tr><td width="20%" title="<%:Reference Signal Received Quality%>"><%:RSRQ 参考信号接收质量 %> :</td><td id="nr_rsrq"></td><td></td></tr>
|
||||||
|
<tr><td width="20%" title="<%:Signal to Interference plus Noise Ratio Bandwidth%>"><%:SINR 信号与干扰加噪声比 %> :</td><td id="nr_sinr"></td><td></td></tr>
|
||||||
|
<tr><td width="20%"><%:SCS NR子载波间隔 %> :</td><td id="nr_scs"></td><td></td></tr>
|
||||||
|
<tr><td width="20%"title="<%:Received Signal Level%>"><%:RxLev 接收信号电平 %> :</td><td id="nr_rxlev"></td><td></td></tr> -->
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<!-- <fieldset class="cbi-section" id="cbi-networkinfo" style="display: none;">
|
||||||
<h3><%:网络信息%></h3>
|
<h3><%:网络信息%></h3>
|
||||||
<table width="100%" cellspacing="10">
|
<table width="100%" cellspacing="10">
|
||||||
<tr><td width="20%"><%:网络类型 :%></td><td id="net_type"></td><td></td></tr>
|
<tr><td width="20%"><%:Network Type 网络类型 %> :</td><td id="network_type"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:CSQ : %></td><td id="csq"></td><td></td></tr>
|
<tr><td width="20%"><%:CSQ : %></td><td id="csq"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:信号强度 : %></td><td id="per"></td><td></td></tr>
|
<tr><td width="20%"><%:信号强度 : %></td><td id="per"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:信号接收强度 RSSI : %></td><td id="rssi"></td><td></td></tr>
|
<tr><td width="20%"><%:RSSI 信号接收强度 : %></td><td id="rssi"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:参考信号接收质量 RSRQ : %></td><td><ul><span id="ecio" class="r"></span><span id="ecio1" class="r"></span></ul></td><td></td></tr>
|
<tr><td width="20%"><%:RSRQ 参考信号接收质量 : %></td><td><ul><span id="ecio" class="r"></span><span id="ecio1" class="r"></span></ul></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:参考信号接收功率 RSRP : %></td><td><ul><span id="rscp" class="r"></span><span id="rscp1" class="r"></span></ul></td><td></td></tr>
|
<tr><td width="20%"><%:RSRP 参考信号接收功率 : %></td><td><ul><span id="rscp" class="r"></span><span id="rscp1" class="r"></span></ul></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:信噪比 SINR : %></td><td id="sinr"></td><td></td></tr>
|
<tr><td width="20%"><%:SINR 信噪比 : %></td><td id="sinr"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:连接状态监控 : %></td><td id="conmon"></td><td></td></tr>
|
<tr><td width="20%"><%:连接状态监控 : %></td><td id="conmon"></td><td></td></tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<fieldset class="cbi-section" id="cbi-sig">
|
<fieldset class="cbi-section" id="cbi-stationinfo" style="display: none;">
|
||||||
<h3><%:基站信息%></h3>
|
<h3><%:基站信息%></h3>
|
||||||
<table width="100%" cellspacing="10">
|
<table width="100%" cellspacing="10">
|
||||||
<tr><td width="20%"><%:MCC / MNC :%></td><td id="mcc"></td><td id="mnc"></td></tr>
|
<tr><td width="20%"><%:MCC/MNC 国家码/网络码 %> :</td><td id="mcc"></td><td id="mnc"></td></tr>
|
||||||
<tr><td width="20%"><%:eNB ID : %></td><td><ul><span id="rnc" class="r"></span><span id="rncn" class="r"></span></ul></td><td></td></tr>
|
<tr><td width="20%"><%:eNB ID : %></td><td><ul><span id="rnc" class="r"></span><span id="rncn" class="r"></span></ul></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:TAC : %></td><td><ul><span id="lac" class="r"></span><span id="lacn" class="r"></span></ul></td><td></td></tr>
|
<tr><td width="20%"><%:TAC : %></td><td><ul><span id="lac" class="r"></span><span id="lacn" class="r"></span></ul></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:Cell ID : %></td><td><ul><span id="cid" class="r"></span><span id="cidn" class="r"></span></ul></td><td></td></tr>
|
<tr><td width="20%"><%:Cell ID : %></td><td><ul><span id="cid" class="r"></span><span id="cidn" class="r"></span></ul></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:频段 Band : %></td><td id="lband"></td><td></td></tr>
|
<tr><td width="20%"><%:Band 频段 : %></td><td id="lband"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:频点 Channel : %></td><td id="chan"></td><td></td></tr>
|
<tr><td width="20%"><%:Channel 频点 : %></td><td id="channel"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:物理小区标识 PCI : %></td><td id="pci"></td><td></td></tr>
|
<tr><td width="20%"><%:PCI 物理小区标识 : %></td><td id="pci"></td><td></td></tr>
|
||||||
<tr><td width="20%"><%:最大Qos级别 Maximum Qos : %></td><td><ul><span id="down" class="r"></span><span id="up" class="r"></span></ul></td><td></td></tr>
|
<tr><td width="20%"><%:Maximum Qos 最大Qos级别 : %></td><td><ul><span id="down" class="r"></span><span id="up" class="r"></span></ul></td><td></td></tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
</fieldset>
|
</fieldset> -->
|
||||||
|
|
||||||
<% if havegps == 1 then %>
|
<% if havegps == 1 then %>
|
||||||
<fieldset class="cbi-section" id="cbi-gpsinfo">
|
<fieldset class="cbi-section" id="cbi-gpsinfo">
|
||||||
<h3><%:GPS 定位%></h3>
|
<h3><%:GPS 定位%></h3>
|
||||||
<table width="550" border="0">
|
<table width="550" border="0">
|
||||||
<tr>
|
<tr>
|
||||||
<td width="30%"><div align="right"><%:纬度 :%></div></td>
|
<td width="30%"><div align="right"><%:纬度 %> :</div></td>
|
||||||
<td><ul id="lat"></ul></td>
|
<td><ul id="lat"></ul></td>
|
||||||
<td width="1%"> </td>
|
<td width="1%"> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><div align="right"><%:经度 :%></div></td>
|
<td><div align="right"><%:经度 %> :</div></td>
|
||||||
<td><ul id="long"></ul></td>
|
<td><ul id="long"></ul></td>
|
||||||
<td> </td>
|
<td> </td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -428,8 +440,6 @@ end
|
|||||||
</fieldset>
|
</fieldset>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<%+footer%>
|
<%+footer%>
|
||||||
|
|
||||||
|
@ -5,29 +5,66 @@
|
|||||||
-%>
|
-%>
|
||||||
|
|
||||||
<script type="text/javascript">//<![CDATA[
|
<script type="text/javascript">//<![CDATA[
|
||||||
|
|
||||||
XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "modem", "get_modems")%>', null,
|
XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "modem", "get_modems")%>', null,
|
||||||
function(x, modems)
|
function(x, data)
|
||||||
{
|
{
|
||||||
console.log(modems);
|
var modems=data["modems"];
|
||||||
var modemsDiv = document.getElementById('modem_status_text');
|
var translation=data["translation"];
|
||||||
if (modems.length!=0)
|
|
||||||
|
var modems_div=document.getElementById('modem_status_view');
|
||||||
|
if (Object.keys(modems).length!=0)
|
||||||
{
|
{
|
||||||
var modem_view = '';
|
var modem_view = "";
|
||||||
for ( var key in modems)
|
for ( var key in modems)
|
||||||
{
|
{
|
||||||
var modem=modems[key];
|
var modem=modems[key];
|
||||||
// 获取拨号模式
|
|
||||||
var mode="unknown mode";
|
var language=navigator.language;
|
||||||
if (modem["mode"]!=null) {
|
// 检查模组名
|
||||||
mode=modem["mode"].toUpperCase()
|
var name=modem["name"];
|
||||||
|
if (name==null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
// 获取连接状态
|
else if (name=="unknown")
|
||||||
var connect_status;
|
{
|
||||||
if (modem["connect_status"]!=null) {
|
language=="en" ? name=name.toUpperCase() : translation[name];
|
||||||
// 首字母大写
|
}
|
||||||
connect_status=modem["connect_status"].charAt(0).toUpperCase() + modem["connect_status"].slice(1);
|
else
|
||||||
|
{
|
||||||
|
name=name.toUpperCase();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 检查拨号模式
|
||||||
|
var mode=modem["mode"]
|
||||||
|
if (mode==null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if (mode=="unknown")
|
||||||
|
{
|
||||||
|
language=="en" ? mode=mode.toUpperCase() : translation[mode];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
name=name.toUpperCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取连接状态
|
||||||
|
var connect_status=modem["connect_status"];
|
||||||
|
if (modem["connect_status"]!=null)
|
||||||
|
{
|
||||||
|
if (language=="en") {
|
||||||
|
// 首字母大写
|
||||||
|
connect_status=connect_status.charAt(0).toUpperCase() + modem["connect_status"].slice(1);
|
||||||
|
}
|
||||||
|
else if (language=="zh-CN"||language=="zh") {
|
||||||
|
connect_status=translation[connect_status];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置显示样式
|
||||||
var state = '';
|
var state = '';
|
||||||
var css = '';
|
var css = '';
|
||||||
switch (modem["connect_status"])
|
switch (modem["connect_status"])
|
||||||
@ -41,10 +78,12 @@
|
|||||||
css = 'danger';
|
css = 'danger';
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
state = '<%:Disabled%>';
|
state = '<%:unknown%>';
|
||||||
css = 'warning';
|
css = 'warning';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 设置显示内容
|
||||||
modem_view += String.format(
|
modem_view += String.format(
|
||||||
'<div class="alert-message %s">',
|
'<div class="alert-message %s">',
|
||||||
css
|
css
|
||||||
@ -55,7 +94,7 @@
|
|||||||
);
|
);
|
||||||
modem_view += String.format(
|
modem_view += String.format(
|
||||||
'<div><strong><%:Modem Name%>: </strong>%s</div>',
|
'<div><strong><%:Modem Name%>: </strong>%s</div>',
|
||||||
modem.name.toUpperCase()
|
name
|
||||||
);
|
);
|
||||||
modem_view += String.format(
|
modem_view += String.format(
|
||||||
'<div><strong><%:Data Interface%>: </strong>%s</div>',
|
'<div><strong><%:Data Interface%>: </strong>%s</div>',
|
||||||
@ -71,15 +110,25 @@
|
|||||||
);
|
);
|
||||||
modem_view += String.format(
|
modem_view += String.format(
|
||||||
'<div><strong><%:Connect Status%>: </strong>%s</div>',
|
'<div><strong><%:Connect Status%>: </strong>%s</div>',
|
||||||
<%:connect_status%>
|
connect_status
|
||||||
);
|
);
|
||||||
modem_view += '</div>'
|
modem_view += '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 有参数不存在,则不显示模块状态
|
||||||
|
if (modem_view != "")
|
||||||
|
{
|
||||||
|
modems_div.innerHTML=modem_view;
|
||||||
|
// 显示模块状态(状态加载完成才显示)
|
||||||
|
document.getElementById("modem_status_field").style.display="block";
|
||||||
}
|
}
|
||||||
modemsDiv.innerHTML = modem_view;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
modemsDiv.innerHTML = '<strong><%:No modems found%></strong>';
|
var modem_view="<strong><%:No modems found%></strong>";
|
||||||
|
modems_div.innerHTML=modem_view;
|
||||||
|
// 隐藏模块状态
|
||||||
|
document.getElementById("modem_status_field").style.display="none";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -87,7 +136,7 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
#modem_status_text > div {
|
#modem_status_view > div {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin: 1rem;
|
margin: 1rem;
|
||||||
padding: 1rem;
|
padding: 1rem;
|
||||||
@ -97,11 +146,12 @@
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<fieldset id="modem_field" class="cbi-section">
|
<!-- 默认隐藏模块状态 -->
|
||||||
|
<fieldset id="modem_status_field" class="cbi-section" style="display: none;">
|
||||||
<!-- <legend><%:Modem Status%></legend> -->
|
<!-- <legend><%:Modem Status%></legend> -->
|
||||||
<h3><%:Modem Status%></h3>
|
<h3><%:Modem Status%></h3>
|
||||||
<div id="modem_status_text">
|
<div id="modem_status_view">
|
||||||
<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" />
|
<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle"/>
|
||||||
<%:Loading modem status...%>
|
<%:Loading modem status%>...
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
@ -19,16 +19,22 @@ msgstr "选择模组"
|
|||||||
msgid "Check information about adapted modem on this page"
|
msgid "Check information about adapted modem on this page"
|
||||||
msgstr "在此页面查看已适配模组的信息"
|
msgstr "在此页面查看已适配模组的信息"
|
||||||
|
|
||||||
msgid "Loading modem status..."
|
msgid "Loading modem information"
|
||||||
|
msgstr "正在加载模组信息"
|
||||||
|
|
||||||
|
msgid "Loading modem status"
|
||||||
msgstr "正在加载模组状态"
|
msgstr "正在加载模组状态"
|
||||||
|
|
||||||
msgid "Connect"
|
msgid "Loading modem"
|
||||||
|
msgstr "正在加载模组"
|
||||||
|
|
||||||
|
msgid "connect"
|
||||||
msgstr "已连接"
|
msgstr "已连接"
|
||||||
|
|
||||||
msgid "Disconnect"
|
msgid "disconnect"
|
||||||
msgstr "未连接"
|
msgstr "未连接"
|
||||||
|
|
||||||
msgid "Disabled"
|
msgid "disabled"
|
||||||
msgstr "未启用"
|
msgstr "未启用"
|
||||||
|
|
||||||
msgid "Data Interface"
|
msgid "Data Interface"
|
||||||
@ -52,7 +58,7 @@ msgstr "AT命令"
|
|||||||
msgid "Debugging Your Module with AT Command"
|
msgid "Debugging Your Module with AT Command"
|
||||||
msgstr "使用AT命令调试你的模组"
|
msgstr "使用AT命令调试你的模组"
|
||||||
|
|
||||||
msgid "Modem Info"
|
msgid "Modem Information"
|
||||||
msgstr "模组信息"
|
msgstr "模组信息"
|
||||||
|
|
||||||
msgid "No modems found"
|
msgid "No modems found"
|
||||||
@ -76,6 +82,9 @@ msgstr "移动网络"
|
|||||||
msgid "UNKNOWN"
|
msgid "UNKNOWN"
|
||||||
msgstr "未知"
|
msgstr "未知"
|
||||||
|
|
||||||
|
msgid "unknown"
|
||||||
|
msgstr "未知"
|
||||||
|
|
||||||
msgid "Mobile network not found"
|
msgid "Mobile network not found"
|
||||||
msgstr "未发现移动网络"
|
msgstr "未发现移动网络"
|
||||||
|
|
||||||
@ -126,3 +135,201 @@ msgstr "认证类型"
|
|||||||
|
|
||||||
msgid "NONE"
|
msgid "NONE"
|
||||||
msgstr "无"
|
msgstr "无"
|
||||||
|
|
||||||
|
msgid "Message"
|
||||||
|
msgstr "信息"
|
||||||
|
|
||||||
|
msgid "Base Information"
|
||||||
|
msgstr "基本信息"
|
||||||
|
|
||||||
|
msgid "Manufacturer"
|
||||||
|
msgstr "制造商"
|
||||||
|
|
||||||
|
msgid "Revision"
|
||||||
|
msgstr "固件版本"
|
||||||
|
|
||||||
|
msgid "AT Port"
|
||||||
|
msgstr "AT串口"
|
||||||
|
|
||||||
|
msgid "Temperature"
|
||||||
|
msgstr "温度"
|
||||||
|
|
||||||
|
msgid "Update Time"
|
||||||
|
msgstr "更新时间"
|
||||||
|
|
||||||
|
msgid "SIM Information"
|
||||||
|
msgstr "SIM卡信息"
|
||||||
|
|
||||||
|
msgid "ISP"
|
||||||
|
msgstr "运营商"
|
||||||
|
|
||||||
|
msgid "IMEI"
|
||||||
|
msgstr "IMEI"
|
||||||
|
|
||||||
|
msgid "IMSI"
|
||||||
|
msgstr "IMSI"
|
||||||
|
|
||||||
|
msgid "ICCID"
|
||||||
|
msgstr "ICCID"
|
||||||
|
|
||||||
|
msgid "SIM Number"
|
||||||
|
msgstr "SIM卡号码"
|
||||||
|
|
||||||
|
msgid "Network Information"
|
||||||
|
msgstr "网络信息"
|
||||||
|
|
||||||
|
msgid "Network Type"
|
||||||
|
msgstr "网络类型"
|
||||||
|
|
||||||
|
msgid "Cell Information"
|
||||||
|
msgstr "小区信息"
|
||||||
|
|
||||||
|
msgid "Network Mode"
|
||||||
|
msgstr "网络模式"
|
||||||
|
|
||||||
|
msgid "NR5G-SA Mode"
|
||||||
|
msgstr "NR5G-SA 模式"
|
||||||
|
|
||||||
|
msgid "EN-DC Mode"
|
||||||
|
msgstr "EN-DC 模式"
|
||||||
|
|
||||||
|
msgid "LTE Mode"
|
||||||
|
msgstr "LTE 模式"
|
||||||
|
|
||||||
|
msgid "WCDMA Mode"
|
||||||
|
msgstr "WCDMA 模式"
|
||||||
|
|
||||||
|
msgid "MCC"
|
||||||
|
msgstr "移动国家代码"
|
||||||
|
|
||||||
|
msgid "MNC"
|
||||||
|
msgstr "移动网络代码"
|
||||||
|
|
||||||
|
msgid "Duplex Mode"
|
||||||
|
msgstr "双工模式"
|
||||||
|
|
||||||
|
msgid "LAC"
|
||||||
|
msgstr "位置区码"
|
||||||
|
|
||||||
|
msgid "Cell ID"
|
||||||
|
msgstr "小区ID"
|
||||||
|
|
||||||
|
msgid "Physical Cell ID"
|
||||||
|
msgstr "物理小区ID"
|
||||||
|
|
||||||
|
msgid "TAC"
|
||||||
|
msgstr "跟踪区编码"
|
||||||
|
|
||||||
|
msgid "ARFCN"
|
||||||
|
msgstr "绝对射频信道号"
|
||||||
|
|
||||||
|
msgid "EARFCN"
|
||||||
|
msgstr "E-UTRA绝对射频信道号"
|
||||||
|
|
||||||
|
msgid "UARFCN"
|
||||||
|
msgstr "UTRA绝对射频信道号"
|
||||||
|
|
||||||
|
msgid "Band"
|
||||||
|
msgstr "频段"
|
||||||
|
|
||||||
|
msgid "Freq band indicator"
|
||||||
|
msgstr "频带指示"
|
||||||
|
|
||||||
|
msgid "UL Bandwidth"
|
||||||
|
msgstr "上行带宽"
|
||||||
|
|
||||||
|
msgid "DL Bandwidth"
|
||||||
|
msgstr "下行带宽"
|
||||||
|
|
||||||
|
msgid "RSRP"
|
||||||
|
msgstr "参考信号接收功率"
|
||||||
|
|
||||||
|
msgid "RSRQ"
|
||||||
|
msgstr "参考信号接收质量"
|
||||||
|
|
||||||
|
msgid "RSSI"
|
||||||
|
msgstr "接收信号强度指示"
|
||||||
|
|
||||||
|
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 "Ec/Io"
|
||||||
|
msgstr "Ec/Io"
|
||||||
|
|
||||||
|
msgid "Ec/No"
|
||||||
|
msgstr "Ec/No"
|
||||||
|
|
||||||
|
msgid "Physical Channel"
|
||||||
|
msgstr "物理信道"
|
||||||
|
|
||||||
|
msgid "Spreading Factor"
|
||||||
|
msgstr "扩频因子"
|
||||||
|
|
||||||
|
msgid "Slot"
|
||||||
|
msgstr "插槽格式"
|
||||||
|
|
||||||
|
msgid "Speech Code"
|
||||||
|
msgstr "语音编码"
|
||||||
|
|
||||||
|
msgid "Compression Mode"
|
||||||
|
msgstr "压缩模式"
|
||||||
|
|
||||||
|
msgid "RxLev"
|
||||||
|
msgstr "接收信号功率"
|
||||||
|
|
||||||
|
msgid "CHN-CMCC"
|
||||||
|
msgstr "中国移动"
|
||||||
|
|
||||||
|
msgid "CMCC"
|
||||||
|
msgstr "中国移动"
|
||||||
|
|
||||||
|
msgid "46000"
|
||||||
|
msgstr "中国移动"
|
||||||
|
|
||||||
|
msgid "CHN-UNICOM"
|
||||||
|
msgstr "中国联通"
|
||||||
|
|
||||||
|
msgid "UNICOM"
|
||||||
|
msgstr "中国联通"
|
||||||
|
|
||||||
|
msgid "CUCC"
|
||||||
|
msgstr "中国联通"
|
||||||
|
|
||||||
|
msgid "46001"
|
||||||
|
msgstr "中国联通"
|
||||||
|
|
||||||
|
msgid "CHN-CT"
|
||||||
|
msgstr "中国电信"
|
||||||
|
|
||||||
|
msgid "CHN-TELECOM"
|
||||||
|
msgstr "中国电信"
|
||||||
|
|
||||||
|
msgid "CTCC"
|
||||||
|
msgstr "中国电信"
|
||||||
|
|
||||||
|
msgid "CT"
|
||||||
|
msgstr "中国电信"
|
||||||
|
|
||||||
|
msgid "46011"
|
||||||
|
msgstr "中国电信"
|
||||||
|
@ -25,7 +25,7 @@ USE_PROCD=1
|
|||||||
# "mbim") mode_num='2' ;;
|
# "mbim") mode_num='2' ;;
|
||||||
# "rndis") mode_num='3' ;;
|
# "rndis") mode_num='3' ;;
|
||||||
# "ncm") mode_num='5' ;;
|
# "ncm") mode_num='5' ;;
|
||||||
# "*") mode_num='0' ;;
|
# *) mode_num='0' ;;
|
||||||
# esac
|
# esac
|
||||||
|
|
||||||
# #查询当前拨号模式
|
# #查询当前拨号模式
|
||||||
@ -41,7 +41,7 @@ USE_PROCD=1
|
|||||||
# "mbim") command='AT+QCFG="usbnet",2' ;;
|
# "mbim") command='AT+QCFG="usbnet",2' ;;
|
||||||
# "rndis") command='AT+QCFG="usbnet",3' ;;
|
# "rndis") command='AT+QCFG="usbnet",3' ;;
|
||||||
# "ncm") command='AT+QCFG="usbnet",5' ;;
|
# "ncm") command='AT+QCFG="usbnet",5' ;;
|
||||||
# "*") command='AT+QCFG="usbnet",0' ;;
|
# *) command='AT+QCFG="usbnet",0' ;;
|
||||||
# esac
|
# esac
|
||||||
# at_result=$(sh /usr/share/modem/modem_at.sh "$at_port" "$command")
|
# at_result=$(sh /usr/share/modem/modem_at.sh "$at_port" "$command")
|
||||||
# #移远切换模式后,还需要重启模块,待测试
|
# #移远切换模式后,还需要重启模块,待测试
|
||||||
@ -58,7 +58,7 @@ USE_PROCD=1
|
|||||||
# "mbim") mode_num='29' ;;
|
# "mbim") mode_num='29' ;;
|
||||||
# "rndis") mode_num='24' ;;
|
# "rndis") mode_num='24' ;;
|
||||||
# "ncm") mode_num='23' ;;
|
# "ncm") mode_num='23' ;;
|
||||||
# "*") mode_num='32' ;;
|
# *) mode_num='32' ;;
|
||||||
# esac
|
# esac
|
||||||
|
|
||||||
# #查询当前拨号模式
|
# #查询当前拨号模式
|
||||||
@ -73,7 +73,7 @@ USE_PROCD=1
|
|||||||
# "mbim") command='AT+GTUSBMODE=29' ;;
|
# "mbim") command='AT+GTUSBMODE=29' ;;
|
||||||
# "rndis") command='AT+GTUSBMODE=24' ;;
|
# "rndis") command='AT+GTUSBMODE=24' ;;
|
||||||
# "ncm") command='AT+GTUSBMODE=23' ;;
|
# "ncm") command='AT+GTUSBMODE=23' ;;
|
||||||
# "*") command='AT+GTUSBMODE=32' ;;
|
# *) command='AT+GTUSBMODE=32' ;;
|
||||||
# esac
|
# esac
|
||||||
# at_result=$(sh /usr/share/modem/modem_at.sh "$at_port" "$command")
|
# at_result=$(sh /usr/share/modem/modem_at.sh "$at_port" "$command")
|
||||||
# sleep 5
|
# sleep 5
|
||||||
@ -157,7 +157,7 @@ set_interface()
|
|||||||
set_ipv4_interface "wwan_5g_$1" $2
|
set_ipv4_interface "wwan_5g_$1" $2
|
||||||
set_ipv6_interface "wwan6_5g_$1" $2
|
set_ipv6_interface "wwan6_5g_$1" $2
|
||||||
;;
|
;;
|
||||||
"*")
|
*)
|
||||||
set_ipv4_interface "wwan_5g_$1" $2
|
set_ipv4_interface "wwan_5g_$1" $2
|
||||||
set_ipv6_interface "wwan6_5g_$1" $2
|
set_ipv6_interface "wwan6_5g_$1" $2
|
||||||
;;
|
;;
|
||||||
@ -185,7 +185,7 @@ qmi()
|
|||||||
"ipv4") procd_append_param command -4 ;;
|
"ipv4") procd_append_param command -4 ;;
|
||||||
"ipv6") procd_append_param command -6 ;;
|
"ipv6") procd_append_param command -6 ;;
|
||||||
"ipv4_ipv6") procd_append_param command -4 -6 ;;
|
"ipv4_ipv6") procd_append_param command -4 -6 ;;
|
||||||
"*") procd_append_param command -4 -6 ;;
|
*) procd_append_param command -4 -6 ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [ "$apn" != "" ]; then
|
if [ "$apn" != "" ]; then
|
||||||
@ -505,7 +505,7 @@ stop_service()
|
|||||||
"ecm") stop_ecm ;;
|
"ecm") stop_ecm ;;
|
||||||
"rndis") stop_rndis ;;
|
"rndis") stop_rndis ;;
|
||||||
"ncm") stop_ncm ;;
|
"ncm") stop_ncm ;;
|
||||||
"*") stop_ecm ;;
|
*) stop_ecm ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
@ -22,11 +22,36 @@ get_fibocom_mode()
|
|||||||
"30") mode="mbim" ;;
|
"30") mode="mbim" ;;
|
||||||
"24") mode="rndis" ;;
|
"24") mode="rndis" ;;
|
||||||
"18") mode='ncm' ;;
|
"18") mode='ncm' ;;
|
||||||
"*") mode="$mode_num" ;;
|
*) mode="$mode_num" ;;
|
||||||
esac
|
esac
|
||||||
echo "$mode"
|
echo "$mode"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#获取SIM卡状态
|
||||||
|
get_fibocom_sim_status()
|
||||||
|
{
|
||||||
|
debug "检查SIM状态"
|
||||||
|
local sim_status
|
||||||
|
|
||||||
|
local at_command="AT+CPIN?"
|
||||||
|
local response=$(sh $current_dir/modem_at.sh $at_port $at_command)
|
||||||
|
local sim_error=$(echo "$response" | grep "ERROR")
|
||||||
|
if [ -n "$sim_error" ]; then
|
||||||
|
debug "未插入SIM卡"
|
||||||
|
sim_status="miss"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
local sim_ready=$(echo "$response" | grep "READY")
|
||||||
|
if [ -n "$sim_ready" ]; then
|
||||||
|
debug "SIM卡正常"
|
||||||
|
sim_status="ready"
|
||||||
|
else
|
||||||
|
debug "SIM卡被锁定"
|
||||||
|
sim_status="locked"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
echo "$sim_status"
|
||||||
|
}
|
||||||
|
|
||||||
#基本信息
|
#基本信息
|
||||||
fibocom_base_info()
|
fibocom_base_info()
|
||||||
@ -62,13 +87,13 @@ fibocom_sim_info()
|
|||||||
#ISP(互联网服务提供商)
|
#ISP(互联网服务提供商)
|
||||||
local at_command="AT+COPS?"
|
local at_command="AT+COPS?"
|
||||||
isp=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'"' '{print $2}')
|
isp=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'"' '{print $2}')
|
||||||
if [ "$isp" = "CHN-CMCC" ] || [ "$isp" = "CMCC" ]|| [ "$isp" = "46000" ]; then
|
# if [ "$isp" = "CHN-CMCC" ] || [ "$isp" = "CMCC" ]|| [ "$isp" = "46000" ]; then
|
||||||
isp="中国移动"
|
# isp="中国移动"
|
||||||
elif [ "$isp" = "CHN-UNICOM" ] || [ "$isp" = "UNICOM" ] || [ "$isp" = "46001" ]; then
|
# elif [ "$isp" = "CHN-UNICOM" ] || [ "$isp" = "UNICOM" ] || [ "$isp" = "46001" ]; then
|
||||||
isp="中国联通"
|
# isp="中国联通"
|
||||||
elif [ "$isp" = "CHN-CT" ] || [ "$isp" = "CT" ] || [ "$isp" = "46011" ]; then
|
# elif [ "$isp" = "CHN-CT" ] || [ "$isp" = "CT" ] || [ "$isp" = "46011" ]; then
|
||||||
isp="中国电信"
|
# isp="中国电信"
|
||||||
fi
|
# fi
|
||||||
|
|
||||||
#IMEI
|
#IMEI
|
||||||
at_command="AT+CGSN"
|
at_command="AT+CGSN"
|
||||||
@ -84,36 +109,232 @@ fibocom_sim_info()
|
|||||||
|
|
||||||
#SIM卡号码(手机号)
|
#SIM卡号码(手机号)
|
||||||
at_command="AT+CNUM?"
|
at_command="AT+CNUM?"
|
||||||
phone=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'"' '{print $2}')
|
sim_number=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'"' '{print $2}')
|
||||||
}
|
}
|
||||||
|
|
||||||
#网络信息
|
#网络信息
|
||||||
fibocom_net_info()
|
fibocom_network_info()
|
||||||
{
|
{
|
||||||
debug "Fibocom net info"
|
debug "Fibocom network info"
|
||||||
|
|
||||||
#Network Type(网络类型)
|
#Network Type(网络类型)
|
||||||
local at_command="AT+PSRAT?"
|
local at_command="AT+PSRAT?"
|
||||||
net_type=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/+PSRAT: //g' | sed 's/\r//g')
|
network_type=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | sed 's/+PSRAT: //g' | sed 's/\r//g')
|
||||||
|
|
||||||
#CSQ
|
# #CSQ
|
||||||
local at_command="AT+CSQ"
|
# local at_command="AT+CSQ"
|
||||||
csq=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'[ ,]+' '{print $2}')
|
# csq=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'[ ,]+' '{print $2}')
|
||||||
if [ $CSQ = "99" ]; then
|
# if [ $CSQ = "99" ]; then
|
||||||
csq=""
|
# csq=""
|
||||||
fi
|
# fi
|
||||||
|
|
||||||
#PER(信号强度)
|
# #PER(信号强度)
|
||||||
if [ -n "$csq" ]; then
|
# if [ -n "$csq" ]; then
|
||||||
per=$(($csq * 100/31))"%"
|
# per=$(($csq * 100/31))"%"
|
||||||
fi
|
# fi
|
||||||
|
|
||||||
#RSSI(信号接收强度)
|
# #RSSI(信号接收强度)
|
||||||
if [ -n "$csq" ]; then
|
# if [ -n "$csq" ]; then
|
||||||
rssi=$((2 * $csq - 113))" dBm"
|
# rssi=$((2 * $csq - 113))" dBm"
|
||||||
fi
|
# fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#获取上行带宽
|
||||||
|
# $1:上行带宽数字
|
||||||
|
get_ul_bandwidth()
|
||||||
|
{
|
||||||
|
local ul_bandwidth
|
||||||
|
case $1 in
|
||||||
|
"6") ul_bandwidth="1.4" ;;
|
||||||
|
"15"|"25"|"50"|"75"|"100") ul_bandwidth=$(( $1 / 5 )) ;;
|
||||||
|
esac
|
||||||
|
echo "$ul_bandwidth"
|
||||||
|
}
|
||||||
|
|
||||||
|
#获取下行带宽
|
||||||
|
# $1:下行带宽数字
|
||||||
|
get_dl_bandwidth()
|
||||||
|
{
|
||||||
|
local dl_bandwidth
|
||||||
|
case $1 in
|
||||||
|
"6") ul_bandwidth="1.4" ;;
|
||||||
|
"15"|"25"|"50"|"75"|"100") ul_bandwidth=$(( $1 / 5 )) ;;
|
||||||
|
esac
|
||||||
|
echo "$dl_bandwidth"
|
||||||
|
}
|
||||||
|
|
||||||
|
#获取NR下行带宽
|
||||||
|
# $1:下行带宽数字
|
||||||
|
get_nr_dl_bandwidth()
|
||||||
|
{
|
||||||
|
local nr_dl_bandwidth
|
||||||
|
case $1 in
|
||||||
|
"0") nr_dl_bandwidth="5" ;;
|
||||||
|
"10"|"15"|"20"|"25"|"30"|"40"|"50"|"60"|"70"|"80"|"90"|"100"|"200"|"400") nr_dl_bandwidth="$1" ;;
|
||||||
|
esac
|
||||||
|
echo "$nr_dl_bandwidth"
|
||||||
|
}
|
||||||
|
|
||||||
|
#获取参考信号接收功率
|
||||||
|
# $1:网络类型
|
||||||
|
# $2:参考信号接收功率数字
|
||||||
|
get_rsrp()
|
||||||
|
{
|
||||||
|
local rsrp
|
||||||
|
case $1 in
|
||||||
|
"LTE") rsrp=$(($2-141)) ;;
|
||||||
|
"NR") rsrp=$(($2-157)) ;;
|
||||||
|
esac
|
||||||
|
echo "$rsrp"
|
||||||
|
}
|
||||||
|
|
||||||
|
#获取参考信号接收质量
|
||||||
|
# $1:网络类型
|
||||||
|
# $2:参考信号接收质量数字
|
||||||
|
get_rsrq()
|
||||||
|
{
|
||||||
|
local rsrq
|
||||||
|
case $1 in
|
||||||
|
"LTE") rsrq=$(awk 'BEGIN{ printf "%.2f", $2 * 0.5 - 20 }' | sed 's/\.*0*$//') ;;
|
||||||
|
"NR") rsrq=$(awk -v num="$2" 'BEGIN{ printf "%.2f", (num+1) * 0.5 - 44 }' | sed 's/\.*0*$//') ;;
|
||||||
|
esac
|
||||||
|
echo "$rsrq"
|
||||||
|
}
|
||||||
|
|
||||||
|
#获取信号干扰比
|
||||||
|
# $1:信号干扰比数字
|
||||||
|
get_rssnr()
|
||||||
|
{
|
||||||
|
#去掉小数点后的0
|
||||||
|
local rssnr=$(awk 'BEGIN{ printf "%.2f", $1 / 2 }' | sed 's/\.*0*$//')
|
||||||
|
echo "$rssnr"
|
||||||
|
}
|
||||||
|
|
||||||
|
#获取接收信号功率
|
||||||
|
# $1:网络类型
|
||||||
|
# $2:接收信号功率数字
|
||||||
|
get_rxlev()
|
||||||
|
{
|
||||||
|
local rxlev
|
||||||
|
case $1 in
|
||||||
|
"WCDMA") rxlev=$(($2-121)) ;;
|
||||||
|
"LTE") rxlev=$(($2-141)) ;;
|
||||||
|
"NR") rxlev=$(($2-157)) ;;
|
||||||
|
esac
|
||||||
|
echo "$rxlev"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#网络信息
|
||||||
|
fibocom_cell_info()
|
||||||
|
{
|
||||||
|
debug "Fibocom cell info"
|
||||||
|
|
||||||
|
#RSRQ,RSRP,SINR
|
||||||
|
at_command='AT+GTCCINFO?'
|
||||||
|
local response=$(sh $current_dir/modem_at.sh $at_port $at_command)
|
||||||
|
local rat=$(echo "$response" | grep "service" | awk -F' ' '{print $1}')
|
||||||
|
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=$(echo "$response" | awk -F',' '{print $9}')
|
||||||
|
nr_dl_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}')
|
||||||
|
nr_dl_bandwidth=$(get_nr_dl_bandwidth $nr_dl_bandwidth_num)
|
||||||
|
nr_sinr=$(echo "$response" | awk -F',' '{print $11}')
|
||||||
|
nr_rxlev_num=$(echo "$response" | awk -F',' '{print $12}')
|
||||||
|
nr_rxlev=$(get_rxlev "NR" $nr_rxlev_num)
|
||||||
|
nr_rsrp_num=$(echo "$response" | awk -F',' '{print $13}')
|
||||||
|
nr_rsrp=$(get_rsrp "NR" $nr_rsrp_num)
|
||||||
|
nr_rsrq_num=$(echo "$response" | awk -F',' '{print $14}' | sed 's/\r//g')
|
||||||
|
nr_rsrq=$(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=$(echo "$response" | awk -F',' '{print $9}')
|
||||||
|
ul_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}')
|
||||||
|
endc_lte_ul_bandwidth=$(get_ul_bandwidth $ul_bandwidth_num)
|
||||||
|
endc_lte_dl_bandwidth="$endc_lte_ul_bandwidth"
|
||||||
|
endc_lte_rssnr_num=$(echo "$response" | awk -F',' '{print $11}')
|
||||||
|
endc_lte_rssnr=$(get_rssnr $endc_lte_rssnr_num)
|
||||||
|
endc_lte_rxlev_num=$(echo "$response" | awk -F',' '{print $12}')
|
||||||
|
endc_lte_rxlev=$(get_rxlev "LTE" $endc_lte_rxlev_num)
|
||||||
|
endc_lte_rsrp_num=$(echo "$response" | awk -F',' '{print $13}')
|
||||||
|
endc_lte_rsrp=$(get_rsrp "LTE" $endc_lte_rsrp_num)
|
||||||
|
endc_lte_rsrq_num=$(echo "$response" | awk -F',' '{print $14}' | sed 's/\r//g')
|
||||||
|
endc_lte_rsrq=$(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=$(echo "$response" | awk -F',' '{print $9}')
|
||||||
|
nr_dl_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}')
|
||||||
|
endc_nr_dl_bandwidth=$(get_nr_dl_bandwidth $nr_dl_bandwidth_num)
|
||||||
|
endc_nr_sinr=$(echo "$response" | awk -F',' '{print $11}')
|
||||||
|
endc_nr_rxlev_num=$(echo "$response" | awk -F',' '{print $12}')
|
||||||
|
endc_nr_rxlev=$(get_rxlev "NR" $endc_nr_rxlev_num)
|
||||||
|
endc_nr_rsrp_num=$(echo "$response" | awk -F',' '{print $13}')
|
||||||
|
endc_nr_rsrp=$(get_rsrp "NR" $endc_nr_rsrp_num)
|
||||||
|
endc_nr_rsrq_num=$(echo "$response" | awk -F',' '{print $14}' | sed 's/\r//g')
|
||||||
|
endc_nr_rsrq=$(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=$(echo "$response" | awk -F',' '{print $9}')
|
||||||
|
ul_bandwidth_num=$(echo "$response" | awk -F',' '{print $10}')
|
||||||
|
lte_ul_bandwidth=$(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=$(get_rxlev "LTE" $lte_rxlev_num)
|
||||||
|
lte_rsrp_num=$(echo "$response" | awk -F',' '{print $13}')
|
||||||
|
lte_rsrp=$(get_rsrp "LTE" $lte_rsrp_num)
|
||||||
|
lte_rsrq_num=$(echo "$response" | awk -F',' '{print $14}' | sed 's/\r//g')
|
||||||
|
lte_rsrq=$(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=$(echo "$response" | awk -F',' '{print $9}')
|
||||||
|
wcdma_ecno=$(echo "$response" | awk -F',' '{print $10}')
|
||||||
|
wcdma_rscp=$(echo "$response" | awk -F',' '{print $11}')
|
||||||
|
wcdma_rac=$(echo "$response" | awk -F',' '{print $12}')
|
||||||
|
wcdma_rxlev_num=$(echo "$response" | awk -F',' '{print $13}')
|
||||||
|
wcdma_rxlev=$(get_rxlev "WCDMA" $wcdma_rxlev_num)
|
||||||
|
wcdma_reserved=$(echo "$response" | awk -F',' '{print $14}')
|
||||||
|
wcdma_ecio=$(echo "$response" | awk -F',' '{print $15}' | sed 's/\r//g')
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# fibocom获取基站信息
|
# fibocom获取基站信息
|
||||||
Fibocom_Cellinfo()
|
Fibocom_Cellinfo()
|
||||||
{
|
{
|
||||||
@ -255,10 +476,19 @@ get_fibocom_info()
|
|||||||
|
|
||||||
#基本信息
|
#基本信息
|
||||||
fibocom_base_info
|
fibocom_base_info
|
||||||
|
|
||||||
|
#获取SIM状态
|
||||||
|
sim_status=$(get_fibocom_sim_status)
|
||||||
|
if [ "$sim_status" != "ready" ];then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
#SIM卡信息
|
#SIM卡信息
|
||||||
fibocom_sim_info
|
fibocom_sim_info
|
||||||
#网络信息
|
#网络信息
|
||||||
fibocom_net_info
|
fibocom_network_info
|
||||||
|
#小区信息
|
||||||
|
fibocom_cell_info
|
||||||
|
|
||||||
return
|
return
|
||||||
# Fibocom_Cellinfo
|
# Fibocom_Cellinfo
|
||||||
|
@ -50,10 +50,10 @@ get_mode()
|
|||||||
"quectel") mode=$(get_quectel_mode "$2") ;;
|
"quectel") mode=$(get_quectel_mode "$2") ;;
|
||||||
"fibocom") mode=$(get_fibocom_mode "$2") ;;
|
"fibocom") mode=$(get_fibocom_mode "$2") ;;
|
||||||
"simcom") mode=$(get_simcom_mode "$2") ;;
|
"simcom") mode=$(get_simcom_mode "$2") ;;
|
||||||
"*")
|
*)
|
||||||
debug "未适配该模块"
|
debug "未适配该模块"
|
||||||
mode="unknown"
|
mode="unknown"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
echo "$mode"
|
echo "$mode"
|
||||||
}
|
}
|
@ -13,72 +13,295 @@ init_modem_info()
|
|||||||
manufacturer='' #制造商
|
manufacturer='' #制造商
|
||||||
revision='-' #固件版本
|
revision='-' #固件版本
|
||||||
at_port='-' #AT串口
|
at_port='-' #AT串口
|
||||||
mode='' #拨号模式
|
mode='unknown' #拨号模式
|
||||||
temperature="NaN $(printf "\xc2\xb0")C" #温度
|
temperature="NaN $(printf "\xc2\xb0")C" #温度
|
||||||
update_time='' #更新时间
|
update_time='' #更新时间
|
||||||
|
|
||||||
#SIM卡信息
|
#SIM卡信息
|
||||||
isp="-" #运营商(互联网服务提供商)
|
sim_status="miss" #SIM卡状态
|
||||||
imei='-' #IMEI
|
isp="-" #运营商(互联网服务提供商)
|
||||||
imsi='-' #IMSI
|
imei='-' #IMEI
|
||||||
iccid='-' #ICCID
|
imsi='-' #IMSI
|
||||||
phone='-' #SIM卡号码(手机号)
|
iccid='-' #ICCID
|
||||||
|
sim_number='-' #SIM卡号码(手机号)
|
||||||
|
|
||||||
|
#网络信息
|
||||||
|
network_type="-" #蜂窝网络类型
|
||||||
|
|
||||||
|
#小区信息
|
||||||
|
network_mode="-" #网络模式
|
||||||
|
#NR5G-SA模式
|
||||||
|
nr_mcc=''
|
||||||
|
nr_mnc=''
|
||||||
|
nr_duplex_mode=''
|
||||||
|
nr_cell_id=''
|
||||||
|
nr_physical_cell_id=''
|
||||||
|
nr_tac=''
|
||||||
|
nr_arfcn=''
|
||||||
|
nr_band=''
|
||||||
|
nr_dl_bandwidth=''
|
||||||
|
nr_rsrp=''
|
||||||
|
nr_rsrq=''
|
||||||
|
nr_sinr=''
|
||||||
|
nr_scs=''
|
||||||
|
nr_rxlev=''
|
||||||
|
#EN-DC模式(LTE)
|
||||||
|
endc_lte_mcc=''
|
||||||
|
endc_lte_mnc=''
|
||||||
|
endc_lte_duplex_mode=''
|
||||||
|
endc_lte_cell_id=''
|
||||||
|
endc_lte_physical_cell_id=''
|
||||||
|
endc_lte_earfcn=''
|
||||||
|
endc_lte_freq_band_ind=''
|
||||||
|
endc_lte_ul_bandwidth=''
|
||||||
|
endc_lte_dl_bandwidth=''
|
||||||
|
endc_lte_tac=''
|
||||||
|
endc_lte_rsrp=''
|
||||||
|
endc_lte_rsrq=''
|
||||||
|
endc_lte_rssi=''
|
||||||
|
endc_lte_sinr=''
|
||||||
|
endc_lte_cql=''
|
||||||
|
endc_lte_tx_power=''
|
||||||
|
endc_lte_rxlev=''
|
||||||
|
#EN-DC模式(NR5G-NSA)
|
||||||
|
endc_nr_mcc=''
|
||||||
|
endc_nr_mnc=''
|
||||||
|
endc_nr_physical_cell_id=''
|
||||||
|
endc_nr_arfcn=''
|
||||||
|
endc_nr_band=''
|
||||||
|
endc_nr_dl_bandwidth=''
|
||||||
|
endc_nr_rsrp=''
|
||||||
|
endc_nr_rsrq=''
|
||||||
|
endc_nr_sinr=''
|
||||||
|
endc_nr_scs=''
|
||||||
|
#LTE模式
|
||||||
|
lte_mcc=''
|
||||||
|
lte_mnc=''
|
||||||
|
lte_duplex_mode=''
|
||||||
|
lte_cell_id=''
|
||||||
|
lte_physical_cell_id=''
|
||||||
|
lte_earfcn=''
|
||||||
|
lte_freq_band_ind=''
|
||||||
|
lte_ul_bandwidth=''
|
||||||
|
lte_dl_bandwidth=''
|
||||||
|
lte_tac=''
|
||||||
|
lte_rsrp=''
|
||||||
|
lte_rsrq=''
|
||||||
|
lte_rssi=''
|
||||||
|
lte_sinr=''
|
||||||
|
lte_cql=''
|
||||||
|
lte_tx_power=''
|
||||||
|
lte_rxlev=''
|
||||||
|
#WCDMA模式
|
||||||
|
wcdma_mcc=''
|
||||||
|
wcdma_mnc=''
|
||||||
|
wcdma_lac=''
|
||||||
|
wcdma_cell_id=''
|
||||||
|
wcdma_uarfcn=''
|
||||||
|
wcdma_psc=''
|
||||||
|
wcdma_rac=''
|
||||||
|
wcdma_rscp=''
|
||||||
|
wcdma_ecio=''
|
||||||
|
wcdma_phych=''
|
||||||
|
wcdma_sf=''
|
||||||
|
wcdma_slot=''
|
||||||
|
wcdma_speech_code=''
|
||||||
|
wcdma_com_mod=''
|
||||||
|
|
||||||
#信号信息
|
#信号信息
|
||||||
net_type="-" #蜂窝网络类型
|
|
||||||
csq="" #CSQ
|
csq="" #CSQ
|
||||||
per="" #信号强度
|
per="" #信号强度
|
||||||
rssi="" #信号接收强度 RSSI
|
rssi="" #信号接收强度 RSSI
|
||||||
ECIO="-" #参考信号接收质量 RSRQ ecio
|
ecio="-" #参考信号接收质量 RSRQ ecio
|
||||||
ECIO1=" " #参考信号接收质量 RSRQ ecio1
|
ecio1=" " #参考信号接收质量 RSRQ ecio1
|
||||||
RSCP="-" #参考信号接收功率 RSRP rscp0
|
RSCP="-" #参考信号接收功率 RSRP rscp0
|
||||||
RSCP1=" " #参考信号接收功率 RSRP rscp1
|
RSCP1=" " #参考信号接收功率 RSRP rscp1
|
||||||
SINR="-" #信噪比 SINR rv["sinr"]
|
SINR="-" #信噪比 SINR rv["sinr"]
|
||||||
NETMODE="-" #连接状态监控 rv["netmode"]
|
NETMODE="-" #连接状态监控 rv["netmode"]
|
||||||
|
|
||||||
#基站信息
|
#基站信息
|
||||||
MCC=""
|
mcc="-"
|
||||||
|
mnc="-"
|
||||||
eNBID=""
|
eNBID=""
|
||||||
TAC=""
|
TAC=""
|
||||||
cell_id=""
|
cell_id=""
|
||||||
LBAND="-" #频段
|
LBAND="-" #频段
|
||||||
CHANNEL="-" #频点
|
channel="-" #频点
|
||||||
PCI="-" #物理小区标识
|
PCI="-" #物理小区标识
|
||||||
qos="" #最大Qos级别
|
qos="" #最大Qos级别
|
||||||
}
|
}
|
||||||
|
|
||||||
#保存模块数据
|
#获取基本信息
|
||||||
info_to_json()
|
get_base_info()
|
||||||
{
|
{
|
||||||
modem_info="{
|
base_info="\"base_info\":{
|
||||||
\"manufacturer\":\"$manufacturer\",
|
\"manufacturer\":\"$manufacturer\",
|
||||||
\"revision\":\"$revision\",
|
\"revision\":\"$revision\",
|
||||||
\"at_port\":\"$at_port\",
|
\"at_port\":\"$at_port\",
|
||||||
\"mode\":\"$mode\",
|
\"mode\":\"$mode\",
|
||||||
\"temperature\":\"$temperature\",
|
\"temperature\":\"$temperature\",
|
||||||
\"update_time\":\"$update_time\",
|
\"update_time\":\"$update_time\"
|
||||||
|
},"
|
||||||
|
}
|
||||||
|
|
||||||
|
#获取SIM卡信息
|
||||||
|
get_sim_info()
|
||||||
|
{
|
||||||
|
sim_info="\"sim_info\":{
|
||||||
\"isp\":\"$isp\",
|
\"isp\":\"$isp\",
|
||||||
\"imei\":\"$imei\",
|
\"imei\":\"$imei\",
|
||||||
\"imsi\":\"$imsi\",
|
\"imsi\":\"$imsi\",
|
||||||
\"iccid\":\"$iccid\",
|
\"iccid\":\"$iccid\",
|
||||||
\"phone\":\"$phone\",
|
\"sim_number\":\"$sim_number\"
|
||||||
|
},"
|
||||||
|
}
|
||||||
|
|
||||||
\"net_type\":\"$net_type\",
|
#获取网络信息
|
||||||
\"csq\":\"$csq\",
|
get_network_info()
|
||||||
\"per\":\"$per\",
|
{
|
||||||
\"rssi\":\"$rssi\"
|
network_info="\"network_info\":{
|
||||||
|
\"network_type\":\"$network_type\"
|
||||||
|
},"
|
||||||
|
}
|
||||||
|
|
||||||
|
#获取信号信息
|
||||||
|
get_cell_info()
|
||||||
|
{
|
||||||
|
if [ "$network_mode" = "NR5G-SA Mode" ]; then
|
||||||
|
cell_info="\"cell_info\":{
|
||||||
|
\"NR5G-SA Mode\":[
|
||||||
|
{\"MCC\":\"$nr_mcc\", \"full_name\":\"Mobile Country Code\"},
|
||||||
|
{\"MNC\":\"$nr_mnc\", \"full_name\":\"Mobile Network Code\"},
|
||||||
|
{\"Duplex Mode\":\"$nr_duplex_mode\", \"full_name\":\"Duplex Mode\"},
|
||||||
|
{\"Cell ID\":\"$nr_cell_id\", \"full_name\":\"Cell ID\"},
|
||||||
|
{\"Physical Cell ID\":\"$nr_physical_cell_id\", \"full_name\":\"Physical Cell ID\"},
|
||||||
|
{\"TAC\":\"$nr_tac\", \"full_name\":\"Tracking area code of cell servedby neighbor Enb\"},
|
||||||
|
{\"ARFCN\":\"$nr_arfcn\", \"full_name\":\"Absolute Radio-Frequency Channel Number\"},
|
||||||
|
{\"Band\":\"$nr_band\", \"full_name\":\"Band\"},
|
||||||
|
{\"DL Bandwidth\":\"$nr_dl_bandwidth\", \"full_name\":\"DL Bandwidth\"},
|
||||||
|
{\"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\"},
|
||||||
|
{\"SCS\":\"$nr_scs\", \"full_name\":\"SCS\"},
|
||||||
|
{\"RxLev\":\"$nr_rxlev\", \"full_name\":\"Received Signal Level\"}
|
||||||
|
]
|
||||||
|
}"
|
||||||
|
elif [ "$network_mode" = "EN-DC Mode" ]; then
|
||||||
|
cell_info="\"cell_info\":{
|
||||||
|
\"EN-DC Mode\":[
|
||||||
|
{\"LTE\":[
|
||||||
|
{\"MCC\":\"$endc_lte_mcc\", \"full_name\":\"Mobile Country Code\"},
|
||||||
|
{\"MNC\":\"$endc_lte_mnc\", \"full_name\":\"Mobile Network Code\"},
|
||||||
|
{\"Duplex Mode\":\"$endc_lte_duplex_mode\", \"full_name\":\"Duplex Mode\"},
|
||||||
|
{\"Cell ID\":\"$endc_lte_cell_id\", \"full_name\":\"Cell ID\"},
|
||||||
|
{\"Physical Cell ID\":\"$endc_lte_physical_cell_id\", \"full_name\":\"Physical Cell ID\"},
|
||||||
|
{\"EARFCN\":\"$endc_lte_earfcn\", \"full_name\":\"E-UTRA Absolute Radio Frequency Channel Number\"},
|
||||||
|
{\"Freq band indicator\":\"$endc_lte_freq_band_ind\", \"full_name\":\"Freq band indicator\"},
|
||||||
|
{\"UL Bandwidth\":\"$endc_lte_ul_bandwidth\", \"full_name\":\"UL Bandwidth\"},
|
||||||
|
{\"DL Bandwidth\":\"$endc_lte_dl_bandwidth\", \"full_name\":\"DL Bandwidth\"},
|
||||||
|
{\"TAC\":\"$endc_lte_tac\", \"full_name\":\"Tracking area code of cell servedby neighbor Enb\"},
|
||||||
|
{\"RSRP\":\"$endc_lte_rsrp\", \"full_name\":\"Reference Signal Received Power\"},
|
||||||
|
{\"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\"},
|
||||||
|
{\"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\"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
}"
|
{\"NR5G-NSA\":[
|
||||||
|
{\"MCC\":\"$endc_nr_mcc\", \"full_name\":\"Mobile Country Code\"},
|
||||||
|
{\"MNC\":\"$endc_nr_mnc\", \"full_name\":\"Mobile Network Code\"},
|
||||||
|
{\"Physical Cell ID\":\"$endc_nr_physical_cell_id\", \"full_name\":\"Physical Cell ID\"},
|
||||||
|
{\"ARFCN\":\"$endc_nr_arfcn\", \"full_name\":\"Absolute Radio-Frequency Channel Number\"},
|
||||||
|
{\"Band\":\"$endc_nr_band\", \"full_name\":\"Band\"},
|
||||||
|
{\"DL Bandwidth\":\"$endc_nr_dl_bandwidth\", \"full_name\":\"DL Bandwidth\"},
|
||||||
|
{\"RSRP\":\"$endc_nr_rsrp\", \"full_name\":\"Reference Signal Received Power\"},
|
||||||
|
{\"RSRQ\":\"$endc_nr_rsrq\", \"full_name\":\"Reference Signal Received Quality\"},
|
||||||
|
{\"SINR\":\"$endc_nr_sinr\", \"full_name\":\"Signal to Interference plus Noise Ratio Bandwidth\"},
|
||||||
|
{\"SCS\":\"$endc_nr_scs\", \"full_name\":\"SCS\"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}"
|
||||||
|
elif [ "$network_mode" = "LTE Mode" ]; then
|
||||||
|
cell_info="\"cell_info\":{
|
||||||
|
\"LTE Mode\":[
|
||||||
|
{\"MCC\":\"$lte_mcc\", \"full_name\":\"Mobile Country Code\"},
|
||||||
|
{\"MNC\":\"$lte_mnc\", \"full_name\":\"Mobile Network Code\"},
|
||||||
|
{\"Duplex Mode\":\"$lte_duplex_mode\", \"full_name\":\"Duplex Mode\"},
|
||||||
|
{\"Cell ID\":\"$lte_cell_id\", \"full_name\":\"Cell ID\"},
|
||||||
|
{\"Physical Cell ID\":\"$lte_physical_cell_id\", \"full_name\":\"Physical Cell ID\"},
|
||||||
|
{\"EARFCN\":\"$lte_earfcn\", \"full_name\":\"E-UTRA Absolute Radio Frequency Channel Number\"},
|
||||||
|
{\"Freq band indicator\":\"$lte_freq_band_ind\", \"full_name\":\"Freq band indicator\"},
|
||||||
|
{\"UL Bandwidth\":\"$lte_ul_bandwidth\", \"full_name\":\"UL Bandwidth\"},
|
||||||
|
{\"DL Bandwidth\":\"$lte_dl_bandwidth\", \"full_name\":\"DL Bandwidth\"},
|
||||||
|
{\"TAC\":\"$lte_tac\", \"full_name\":\"Tracking area code of cell servedby neighbor Enb\"},
|
||||||
|
{\"RSRP\":\"$lte_rsrp\", \"full_name\":\"Reference Signal Received Power\"},
|
||||||
|
{\"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\"},
|
||||||
|
{\"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\"}
|
||||||
|
]
|
||||||
|
}"
|
||||||
|
elif [ "$network_mode" = "WCDMA Mode" ]; then
|
||||||
|
cell_info="\"cell_info\":{
|
||||||
|
\"WCDMA Mode\":[
|
||||||
|
{\"MCC\":\"$wcdma_mcc\", \"full_name\":\"Mobile Country Code\"},
|
||||||
|
{\"MNC\":\"$wcdma_mnc\", \"full_name\":\"Mobile Network Code\"},
|
||||||
|
{\"LAC\":\"$wcdma_lac\", \"full_name\":\"Location Area Code\"},
|
||||||
|
{\"Cell ID\":\"$wcdma_cell_id\", \"full_name\":\"Cell ID\"},
|
||||||
|
{\"UARFCN\":\"$wcdma_uarfcn\", \"full_name\":\"UTRA Absolute Radio Frequency Channel Number\"},
|
||||||
|
{\"PSC\":\"$wcdma_psc\", \"full_name\":\"Primary Scrambling Code\"},
|
||||||
|
{\"RAC\":\"$wcdma_rac\", \"full_name\":\"Routing Area Code\"},
|
||||||
|
{\"RSCP\":\"$wcdma_rscp\", \"full_name\":\"Received Signal Code Power\"},
|
||||||
|
{\"Ec/Io\":\"$wcdma_ecio\", \"full_name\":\"Ec/Io\"},
|
||||||
|
{\"Ec/No\":\"$wcdma_ecno\", \"full_name\":\"Ec/No\"},
|
||||||
|
{\"Physical Channel\":\"$wcdma_phych\", \"full_name\":\"Physical Channel\"},
|
||||||
|
{\"Spreading Factor\":\"$wcdma_sf\", \"full_name\":\"Spreading Factor\"},
|
||||||
|
{\"Slot\":\"$wcdma_slot\", \"full_name\":\"Slot\"},
|
||||||
|
{\"Speech Code\":\"$wcdma_speech_code\", \"full_name\":\"Speech Code\"},
|
||||||
|
{\"Compression Mode\":\"$wcdma_com_mod\", \"full_name\":\"Compression Mode\"},
|
||||||
|
{\"RxLev\":\"$wcdma_rxlev\", \"full_name\":\"RxLev\"}
|
||||||
|
]
|
||||||
|
}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#以Json格式保存模组信息
|
||||||
|
info_to_json()
|
||||||
|
{
|
||||||
|
base_info="\"base_info\":{},"
|
||||||
|
sim_info="\"sim_info\":{},"
|
||||||
|
network_info="\"network_info\":{},"
|
||||||
|
cell_info="\"cell_info\":{}"
|
||||||
|
|
||||||
|
#获取基本信息
|
||||||
|
get_base_info
|
||||||
|
|
||||||
|
if [ "$sim_status" = "ready" ];then
|
||||||
|
#获取SIM卡信息
|
||||||
|
get_sim_info
|
||||||
|
#获取网络信息
|
||||||
|
get_network_info
|
||||||
|
#获取小区信息
|
||||||
|
get_cell_info
|
||||||
|
fi
|
||||||
|
|
||||||
|
#拼接所有信息(不要漏掉最后一个})
|
||||||
|
modem_info="{$base_info$modem_info$sim_info$network_info$cell_info}"
|
||||||
}
|
}
|
||||||
# echo $ECIO #参考信号接收质量 RSRQ ecio
|
# echo $ECIO #参考信号接收质量 RSRQ ecio
|
||||||
# echo $ECIO1 #参考信号接收质量 RSRQ ecio1
|
# echo $ECIO1 #参考信号接收质量 RSRQ ecio1
|
||||||
# echo $RSCP #参考信号接收功率 RSRP rscp0
|
# echo $RSCP #参考信号接收功率 RSRP rscp0
|
||||||
# echo $RSCP1 #参考信号接收功率 RSRP rscp1
|
# echo $RSCP1 #参考信号接收功率 RSRP rscp1
|
||||||
# echo $SINR #信噪比 SINR rv["sinr"]
|
# echo $SINR #信噪比 SINR rv["sinr"]
|
||||||
# echo $NETMODE #连接状态监控 rv["netmode"]
|
|
||||||
# echo '---------------------------------'
|
|
||||||
# #基站信息
|
# #基站信息
|
||||||
# echo $COPS_MCC #MCC
|
# echo $COPS_MCC #MCC
|
||||||
# echo $$COPS_MNC #MNC
|
# echo $$COPS_MNC #MNC
|
||||||
@ -89,7 +312,7 @@ info_to_json()
|
|||||||
# echo $CID
|
# echo $CID
|
||||||
# echo '' #CID_NUM
|
# echo '' #CID_NUM
|
||||||
# echo $LBAND
|
# echo $LBAND
|
||||||
# echo $CHANNEL
|
# echo $channel
|
||||||
# echo $PCI
|
# echo $PCI
|
||||||
# echo $MODTYPE
|
# echo $MODTYPE
|
||||||
# echo $QTEMP
|
# echo $QTEMP
|
||||||
@ -99,37 +322,20 @@ get_modem_info()
|
|||||||
{
|
{
|
||||||
update_time=$(date +"%Y-%m-%d %H:%M:%S")
|
update_time=$(date +"%Y-%m-%d %H:%M:%S")
|
||||||
|
|
||||||
debug "检查模块的AT串口"
|
debug "检查模组的AT串口"
|
||||||
#获取模块AT串口
|
#获取模块AT串口
|
||||||
if [ -z "$at_port" ]; then
|
if [ -z "$at_port" ]; then
|
||||||
debug "模块0没有找到AT串口"
|
debug "模组没有AT串口"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
debug "检查SIM状态"
|
debug "根据模组的制造商获取信息"
|
||||||
local sim_status=$(echo `sh $current_dir/modem_at.sh $at_port "AT+CPIN?"`)
|
|
||||||
local sim_error=$(echo "$sim_status" | grep "ERROR")
|
|
||||||
if [ -n "$sim_error" ]; then
|
|
||||||
debug "未插入SIM卡"
|
|
||||||
sleep 1s
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
local sim_ready=$(echo "$sim_status" | grep "READY")
|
|
||||||
if [ -n "$sim_ready" ]; then
|
|
||||||
debug "SIM卡正常"
|
|
||||||
else
|
|
||||||
debug "SIM卡被锁定"
|
|
||||||
sleep 1s
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
debug "根据模块类型开始采集数据"
|
|
||||||
#更多信息获取
|
#更多信息获取
|
||||||
case $manufacturer in
|
case $manufacturer in
|
||||||
"quectel") get_quectel_info $at_port ;;
|
"quectel") get_quectel_info $at_port ;;
|
||||||
"fibocom") get_fibocom_info $at_port ;;
|
"fibocom") get_fibocom_info $at_port ;;
|
||||||
"simcom") get_simcom_info $at_port ;;
|
"simcom") get_simcom_info $at_port ;;
|
||||||
"*") debug "未适配该模块" ;;
|
*) debug "未适配该模组" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
#获取更新时间
|
#获取更新时间
|
||||||
|
@ -126,8 +126,16 @@ setModemInfoConfig()
|
|||||||
if [ "$data_interface" = "$data_interface_info" ]; then
|
if [ "$data_interface" = "$data_interface_info" ]; then
|
||||||
#获取模块名
|
#获取模块名
|
||||||
local modem_name=$(echo "$line_context" | cut -d ";" -f 2)
|
local modem_name=$(echo "$line_context" | cut -d ";" -f 2)
|
||||||
#获取AT命令返回的内容
|
|
||||||
local at_result=$(echo `sh $current_dir/modem_at.sh $2 "ATI" | sed -n '3p' | tr 'A-Z' 'a-z'`)
|
local at_result
|
||||||
|
if [ "$modem_name" != "unknown" ]; then
|
||||||
|
#获取AT命令返回的内容
|
||||||
|
at_result=$(echo `sh $current_dir/modem_at.sh $2 "ATI" | sed -n '3p' | tr 'A-Z' 'a-z'`)
|
||||||
|
else
|
||||||
|
#数据库中没有此模块的信息,使用默认值
|
||||||
|
at_result="unknown"
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "$at_result" = *"$modem_name"* ]]; then
|
if [[ "$at_result" = *"$modem_name"* ]]; then
|
||||||
#设置模块名
|
#设置模块名
|
||||||
uci set modem.modem$1.name="$modem_name"
|
uci set modem.modem$1.name="$modem_name"
|
||||||
@ -152,22 +160,22 @@ setModemInfoConfig()
|
|||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#数据库中没有此模块的信息,使用默认值
|
# #数据库中没有此模块的信息,使用默认值
|
||||||
if [ $i -ge $(($line_count-1)) ]; then
|
# if [ $i -ge $(($line_count-1)) ]; then
|
||||||
|
|
||||||
#设置模块名
|
# #设置模块名
|
||||||
uci set modem.modem$1.name="$modem_name"
|
# uci set modem.modem$1.name="$modem_name"
|
||||||
#设置制造商
|
# #设置制造商
|
||||||
local manufacturer=$(echo "$line_context" | cut -d ";" -f 1)
|
# local manufacturer=$(echo "$line_context" | cut -d ";" -f 1)
|
||||||
uci set modem.modem$1.manufacturer="$manufacturer"
|
# uci set modem.modem$1.manufacturer="$manufacturer"
|
||||||
#删除原来的拨号模式列表
|
# #删除原来的拨号模式列表
|
||||||
uci -q del modem.modem$1.modes
|
# uci -q del modem.modem$1.modes
|
||||||
#添加新的拨号模式列表
|
# #添加新的拨号模式列表
|
||||||
for mode in $modes; do
|
# for mode in $modes; do
|
||||||
uci add_list modem.modem$1.modes="$mode"
|
# uci add_list modem.modem$1.modes="$mode"
|
||||||
done
|
# done
|
||||||
break
|
# break
|
||||||
fi
|
# fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
@ -65,7 +65,7 @@ modem_network_task()
|
|||||||
case "$4" in
|
case "$4" in
|
||||||
"ecm") ecm_dial $at_port $3 ;;
|
"ecm") ecm_dial $at_port $3 ;;
|
||||||
"gobinet") gobinet_dial $at_port $3 ;;
|
"gobinet") gobinet_dial $at_port $3 ;;
|
||||||
"*") ecm_dial $at_port $3 ;;
|
*) ecm_dial $at_port $3 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
debug "结束网络连接检查任务"
|
debug "结束网络连接检查任务"
|
||||||
|
@ -17,11 +17,37 @@ get_quectel_mode()
|
|||||||
"2") mode="mbim" ;;
|
"2") mode="mbim" ;;
|
||||||
"3") mode="rndis" ;;
|
"3") mode="rndis" ;;
|
||||||
"5") mode='ncm' ;;
|
"5") mode='ncm' ;;
|
||||||
"*") mode="$mode_num" ;;
|
*) mode="$mode_num" ;;
|
||||||
esac
|
esac
|
||||||
echo "$mode"
|
echo "$mode"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#获取SIM卡状态
|
||||||
|
get_quectel_sim_status()
|
||||||
|
{
|
||||||
|
debug "检查SIM状态"
|
||||||
|
local sim_status
|
||||||
|
|
||||||
|
local at_command="AT+CPIN?"
|
||||||
|
local response=$(sh $current_dir/modem_at.sh $at_port $at_command)
|
||||||
|
local sim_error=$(echo "$response" | grep "ERROR")
|
||||||
|
if [ -n "$sim_error" ]; then
|
||||||
|
debug "未插入SIM卡"
|
||||||
|
sim_status="miss"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
local sim_ready=$(echo "$response" | grep "READY")
|
||||||
|
if [ -n "$sim_ready" ]; then
|
||||||
|
debug "SIM卡正常"
|
||||||
|
sim_status="ready"
|
||||||
|
else
|
||||||
|
debug "SIM卡被锁定"
|
||||||
|
sim_status="locked"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
echo "$sim_status"
|
||||||
|
}
|
||||||
|
|
||||||
#基本信息
|
#基本信息
|
||||||
quectel_base_info()
|
quectel_base_info()
|
||||||
{
|
{
|
||||||
@ -70,15 +96,15 @@ quectel_sim_info()
|
|||||||
#ISP(互联网服务提供商)
|
#ISP(互联网服务提供商)
|
||||||
local at_command="AT+COPS?"
|
local at_command="AT+COPS?"
|
||||||
isp=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'"' '{print $2}')
|
isp=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'"' '{print $2}')
|
||||||
if [ "$isp" = "CHN-CMCC" ] || [ "$isp" = "CMCC" ]|| [ "$isp" = "46000" ]; then
|
# if [ "$isp" = "CHN-CMCC" ] || [ "$isp" = "CMCC" ]|| [ "$isp" = "46000" ]; then
|
||||||
isp="中国移动"
|
# isp="中国移动"
|
||||||
# elif [ "$isp" = "CHN-UNICOM" ] || [ "$isp" = "UNICOM" ] || [ "$isp" = "46001" ]; then
|
# # elif [ "$isp" = "CHN-UNICOM" ] || [ "$isp" = "UNICOM" ] || [ "$isp" = "46001" ]; then
|
||||||
elif [ "$isp" = "CHN-UNICOM" ] || [ "$isp" = "CUCC" ] || [ "$isp" = "46001" ]; then
|
# elif [ "$isp" = "CHN-UNICOM" ] || [ "$isp" = "CUCC" ] || [ "$isp" = "46001" ]; then
|
||||||
isp="中国联通"
|
# isp="中国联通"
|
||||||
# elif [ "$isp" = "CHN-CT" ] || [ "$isp" = "CT" ] || [ "$isp" = "46011" ]; then
|
# # elif [ "$isp" = "CHN-CT" ] || [ "$isp" = "CT" ] || [ "$isp" = "46011" ]; then
|
||||||
elif [ "$isp" = "CHN-TELECOM" ] || [ "$isp" = "CTCC" ] || [ "$isp" = "46011" ]; then
|
# elif [ "$isp" = "CHN-TELECOM" ] || [ "$isp" = "CTCC" ] || [ "$isp" = "46011" ]; then
|
||||||
isp="中国电信"
|
# isp="中国电信"
|
||||||
fi
|
# fi
|
||||||
|
|
||||||
#IMEI
|
#IMEI
|
||||||
at_command="AT+CGSN"
|
at_command="AT+CGSN"
|
||||||
@ -94,21 +120,21 @@ quectel_sim_info()
|
|||||||
|
|
||||||
#SIM卡号码(手机号)
|
#SIM卡号码(手机号)
|
||||||
at_command="AT+CNUM"
|
at_command="AT+CNUM"
|
||||||
phone=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'"' '{print $4}')
|
sim_number=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'"' '{print $4}')
|
||||||
}
|
}
|
||||||
|
|
||||||
#网络信息
|
#网络信息
|
||||||
quectel_net_info()
|
quectel_network_info()
|
||||||
{
|
{
|
||||||
debug "Quectel net info"
|
debug "Quectel network info"
|
||||||
|
|
||||||
#Network Type(网络类型)
|
#Network Type(网络类型)
|
||||||
# local at_command="AT+COPS?"
|
# local at_command="AT+COPS?"
|
||||||
local at_command="AT+QNWINFO"
|
local at_command="AT+QNWINFO"
|
||||||
net_type=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'"' '{print $2}')
|
network_type=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'"' '{print $2}')
|
||||||
|
|
||||||
#CSQ
|
#CSQ
|
||||||
local at_command="AT+CSQ"
|
at_command="AT+CSQ"
|
||||||
csq=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'[ ,]+' '{print $2}')
|
csq=$(sh $current_dir/modem_at.sh $at_port $at_command | sed -n '2p' | awk -F'[ ,]+' '{print $2}')
|
||||||
if [ $CSQ = "99" ]; then
|
if [ $CSQ = "99" ]; then
|
||||||
csq=""
|
csq=""
|
||||||
@ -125,31 +151,345 @@ quectel_net_info()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
#quectel
|
#UL_bandwidth
|
||||||
lte_bw() {
|
# $1:上行带宽数字
|
||||||
BW=$(echo $BW | grep -o "[0-5]\{1\}")
|
get_lte_ul_bandwidth()
|
||||||
case $BW in
|
{
|
||||||
"0")
|
local ul_bandwidth
|
||||||
BW="1.4" ;;
|
case $1 in
|
||||||
"1")
|
"0") ul_bandwidth="1.4" ;;
|
||||||
BW="3" ;;
|
"1") ul_bandwidth="3" ;;
|
||||||
"2"|"3"|"4"|"5")
|
"2"|"3"|"4"|"5") ul_bandwidth=$((($1 - 1) * 5)) ;;
|
||||||
BW=$((($(echo $BW) - 1) * 5)) ;;
|
|
||||||
esac
|
esac
|
||||||
|
echo "$ul_bandwidth"
|
||||||
}
|
}
|
||||||
#quectel
|
|
||||||
nr_bw() {
|
#DL_bandwidth
|
||||||
BW=$(echo $BW | grep -o "[0-9]\{1,2\}")
|
# $1:下行带宽数字
|
||||||
case $BW in
|
get_lte_dl_bandwidth()
|
||||||
"0"|"1"|"2"|"3"|"4"|"5")
|
{
|
||||||
BW=$((($(echo $BW) + 1) * 5)) ;;
|
local dl_bandwidth
|
||||||
"6"|"7"|"8"|"9"|"10"|"11"|"12")
|
case $1 in
|
||||||
BW=$((($(echo $BW) - 2) * 10)) ;;
|
"0") dl_bandwidth="1.4" ;;
|
||||||
"13")
|
"1") dl_bandwidth="3" ;;
|
||||||
BW="200" ;;
|
"2"|"3"|"4"|"5") dl_bandwidth=$((($1 - 1) * 5)) ;;
|
||||||
"14")
|
|
||||||
BW="400" ;;
|
|
||||||
esac
|
esac
|
||||||
|
echo "$dl_bandwidth"
|
||||||
|
}
|
||||||
|
|
||||||
|
#NR_DL_bandwidth
|
||||||
|
# $1:下行带宽数字
|
||||||
|
get_nr_dl_bandwidth()
|
||||||
|
{
|
||||||
|
local nr_dl_bandwidth
|
||||||
|
case $1 in
|
||||||
|
"0"|"1"|"2"|"3"|"4"|"5") nr_dl_bandwidth=$((($1 + 1) * 5)) ;;
|
||||||
|
"6"|"7"|"8"|"9"|"10"|"11"|"12") nr_dl_bandwidth=$((($1 - 2) * 10)) ;;
|
||||||
|
"13") nr_dl_bandwidth="200" ;;
|
||||||
|
"14") nr_dl_bandwidth="400" ;;
|
||||||
|
esac
|
||||||
|
echo "$nr_dl_bandwidth"
|
||||||
|
}
|
||||||
|
|
||||||
|
#scs
|
||||||
|
# $1:NR子载波间隔数字
|
||||||
|
get_scs()
|
||||||
|
{
|
||||||
|
local scs
|
||||||
|
case $1 in
|
||||||
|
"0") scs="15" ;;
|
||||||
|
"1") scs="30" ;;
|
||||||
|
"2") scs="60" ;;
|
||||||
|
"3") scs="120" ;;
|
||||||
|
"4") scs="240" ;;
|
||||||
|
esac
|
||||||
|
echo "$scs"
|
||||||
|
}
|
||||||
|
|
||||||
|
#小区信息
|
||||||
|
quectel_cell_info()
|
||||||
|
{
|
||||||
|
debug "Quectel cell info"
|
||||||
|
|
||||||
|
local at_command='AT+QENG="servingcell"'
|
||||||
|
local response=$(sh $current_dir/modem_at.sh $at_port $at_command)
|
||||||
|
|
||||||
|
local lte=$(echo "$response" | grep "+QENG: \"LTE\"")
|
||||||
|
local nr5g_nsa=$(echo "$response" | grep "+QENG: \"NR5G-NSA\"")
|
||||||
|
if [ -n "$lte" ] && [ -n "$nr5g_nsa" ] ; then
|
||||||
|
#EN-DC模式
|
||||||
|
network_mode="EN-DC Mode"
|
||||||
|
#LTE
|
||||||
|
endc_lte_duplex_mode=$(echo "$lte" | awk -F',' '{print $2}' | sed 's/"//g')
|
||||||
|
endc_lte_mcc=$(echo "$lte" | awk -F',' '{print $3}')
|
||||||
|
endc_lte_mnc=$(echo "$lte" | awk -F',' '{print $4}')
|
||||||
|
endc_lte_cell_id=$(echo "$lte" | awk -F',' '{print $5}')
|
||||||
|
endc_lte_physical_cell_id=$(echo "$lte" | awk -F',' '{print $6}')
|
||||||
|
endc_lte_earfcn=$(echo "$lte" | awk -F',' '{print $7}')
|
||||||
|
endc_lte_freq_band_ind=$(echo "$lte" | awk -F',' '{print $8}')
|
||||||
|
ul_bandwidth_num=$(echo "$lte" | awk -F',' '{print $9}')
|
||||||
|
endc_lte_ul_bandwidth=$(get_lte_ul_bandwidth $ul_bandwidth_num)
|
||||||
|
dl_bandwidth_num=$(echo "$lte" | awk -F',' '{print $10}')
|
||||||
|
endc_lte_dl_bandwidth=$(get_lte_dl_bandwidth $dl_bandwidth_num)
|
||||||
|
endc_lte_tac=$(echo "$lte" | awk -F',' '{print $11}')
|
||||||
|
endc_lte_rsrp=$(echo "$lte" | awk -F',' '{print $12}')
|
||||||
|
endc_lte_rsrq=$(echo "$lte" | awk -F',' '{print $13}')
|
||||||
|
endc_lte_rssi=$(echo "$lte" | awk -F',' '{print $14}')
|
||||||
|
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}')
|
||||||
|
#NR5G-NSA
|
||||||
|
endc_nr_mcc=$(echo "$nr5g_nsa" | awk -F',' '{print $2}')
|
||||||
|
endc_nr_mnc=$(echo "$nr5g_nsa" | awk -F',' '{print $3}')
|
||||||
|
endc_nr_physical_cell_id=$(echo "$nr5g_nsa" | awk -F',' '{print $4}')
|
||||||
|
endc_nr_rsrp=$(echo "$nr5g_nsa" | awk -F',' '{print $5}')
|
||||||
|
endc_nr_sinr=$(echo "$nr5g_nsa" | awk -F',' '{print $6}')
|
||||||
|
endc_nr_rsrq=$(echo "$nr5g_nsa" | awk -F',' '{print $7}')
|
||||||
|
endc_nr_arfcn=$(echo "$nr5g_nsa" | awk -F',' '{print $8}')
|
||||||
|
endc_nr_band=$(echo "$nr5g_nsa" | awk -F',' '{print $9}')
|
||||||
|
nr_dl_bandwidth_num=$(echo "$nr5g_nsa" | awk -F',' '{print $10}')
|
||||||
|
endc_nr_dl_bandwidth=$(get_nr_dl_bandwidth $nr_dl_bandwidth_num)
|
||||||
|
scs_num=$(echo "$nr5g_nsa" | awk -F',' '{print $16}')
|
||||||
|
endc_nr_scs=$(get_scs $scs_num)
|
||||||
|
else
|
||||||
|
#SA,LTE,WCDMA模式
|
||||||
|
response=$(echo "$response" | grep "+QENG:")
|
||||||
|
local rat=$(echo "$response" | awk -F',' '{print $3}' | sed 's/"//g')
|
||||||
|
case $rat in
|
||||||
|
"NR5G-SA")
|
||||||
|
network_mode="NR5G-SA Mode"
|
||||||
|
nr_duplex_mode=$(echo "$response" | awk -F',' '{print $4}' | sed 's/"//g')
|
||||||
|
nr_mcc=$(echo "$response" | awk -F',' '{print $5}')
|
||||||
|
nr_mnc=$(echo "$response" | awk -F',' '{print $6}')
|
||||||
|
nr_cell_id=$(echo "$response" | awk -F',' '{print $7}')
|
||||||
|
nr_physical_cell_id=$(echo "$response" | awk -F',' '{print $8}')
|
||||||
|
nr_tac=$(echo "$response" | awk -F',' '{print $9}')
|
||||||
|
nr_arfcn=$(echo "$response" | awk -F',' '{print $10}')
|
||||||
|
nr_band=$(echo "$response" | awk -F',' '{print $11}')
|
||||||
|
nr_dl_bandwidth_num=$(echo "$response" | awk -F',' '{print $12}')
|
||||||
|
nr_dl_bandwidth=$(get_nr_dl_bandwidth $nr_dl_bandwidth_num)
|
||||||
|
nr_rsrp=$(echo "$response" | awk -F',' '{print $13}')
|
||||||
|
nr_rsrq=$(echo "$response" | awk -F',' '{print $14}')
|
||||||
|
nr_sinr=$(echo "$response" | awk -F',' '{print $15}')
|
||||||
|
nr_scs=$(echo "$response" | awk -F',' '{print $16}')
|
||||||
|
nr_rxlev=$(echo "$response" | awk -F',' '{print $17}')
|
||||||
|
;;
|
||||||
|
"LTE"|"CAT-M"|"CAT-NB")
|
||||||
|
network_mode="LTE Mode"
|
||||||
|
lte_duplex_mode=$(echo "$response" | awk -F',' '{print $4}' | sed 's/"//g')
|
||||||
|
lte_mcc=$(echo "$response" | awk -F',' '{print $5}')
|
||||||
|
lte_mnc=$(echo "$response" | awk -F',' '{print $6}')
|
||||||
|
lte_cell_id=$(echo "$response" | awk -F',' '{print $7}')
|
||||||
|
lte_physical_cell_id=$(echo "$response" | awk -F',' '{print $8}')
|
||||||
|
lte_earfcn=$(echo "$response" | awk -F',' '{print $9}')
|
||||||
|
lte_freq_band_ind=$(echo "$response" | awk -F',' '{print $10}')
|
||||||
|
ul_bandwidth_num=$(echo "$response" | awk -F',' '{print $11}')
|
||||||
|
lte_ul_bandwidth=$(get_lte_ul_bandwidth $ul_bandwidth_num)
|
||||||
|
dl_bandwidth_num=$(echo "$response" | awk -F',' '{print $12}')
|
||||||
|
lte_dl_bandwidth=$(get_lte_dl_bandwidth $dl_bandwidth_num)
|
||||||
|
lte_tac=$(echo "$response" | awk -F',' '{print $13}')
|
||||||
|
lte_rsrp=$(echo "$response" | awk -F',' '{print $14}')
|
||||||
|
lte_rsrq=$(echo "$response" | awk -F',' '{print $15}')
|
||||||
|
lte_rssi=$(echo "$response" | awk -F',' '{print $16}')
|
||||||
|
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}')
|
||||||
|
;;
|
||||||
|
"WCDMA")
|
||||||
|
network_mode="WCDMA Mode"
|
||||||
|
wcdma_mcc=$(echo "$response" | awk -F',' '{print $4}')
|
||||||
|
wcdma_mnc=$(echo "$response" | awk -F',' '{print $5}')
|
||||||
|
wcdma_lac=$(echo "$response" | awk -F',' '{print $6}')
|
||||||
|
wcdma_cell_id=$(echo "$response" | awk -F',' '{print $7}')
|
||||||
|
wcdma_uarfcn=$(echo "$response" | awk -F',' '{print $8}')
|
||||||
|
wcdma_psc=$(echo "$response" | awk -F',' '{print $9}')
|
||||||
|
wcdma_rac=$(echo "$response" | awk -F',' '{print $10}')
|
||||||
|
wcdma_rscp=$(echo "$response" | awk -F',' '{print $11}')
|
||||||
|
wcdma_ecio=$(echo "$response" | awk -F',' '{print $12}')
|
||||||
|
wcdma_phych=$(echo "$response" | awk -F',' '{print $13}')
|
||||||
|
wcdma_sf=$(echo "$response" | awk -F',' '{print $14}')
|
||||||
|
wcdma_slot=$(echo "$response" | awk -F',' '{print $15}')
|
||||||
|
wcdma_speech_code=$(echo "$response" | awk -F',' '{print $16}')
|
||||||
|
wcdma_com_mod=$(echo "$response" | awk -F',' '{print $17}')
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
NR_NSA=$(echo $response | grep -o -i "+QENG:[ ]\?\"NR5G-NSA\",")
|
||||||
|
NR_SA=$(echo $response | grep -o -i "+QENG: \"SERVINGCELL\",[^,]\+,\"NR5G-SA\",\"[DFT]\{3\}\",")
|
||||||
|
if [ -n "$NR_NSA" ]; then
|
||||||
|
QENG=",,"$(echo $response" " | grep -o -i "+QENG: \"LTE\".\+\"NR5G-NSA\"," | tr " " ",")
|
||||||
|
QENG5=$(echo $response | grep -o -i "+QENG:[ ]\?\"NR5G-NSA\",[0-9]\{3\},[0-9]\{2,3\},[0-9]\{1,5\},-[0-9]\{2,5\},[-0-9]\{1,3\},-[0-9]\{2,3\},[0-9]\{1,7\},[0-9]\{1,3\}.\{1,6\}")
|
||||||
|
if [ -z "$QENG5" ]; then
|
||||||
|
QENG5=$(echo $response | grep -o -i "+QENG:[ ]\?\"NR5G-NSA\",[0-9]\{3\},[0-9]\{2,3\},[0-9]\{1,5\},-[0-9]\{2,3\},[-0-9]\{1,3\},-[0-9]\{2,3\}")
|
||||||
|
if [ -n "$QENG5" ]; then
|
||||||
|
QENG5=$QENG5",,"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
elif [ -n "$NR_SA" ]; then
|
||||||
|
QENG=$(echo $NR_SA | tr " " ",")
|
||||||
|
QENG5=$(echo $response | grep -o -i "+QENG: \"SERVINGCELL\",[^,]\+,\"NR5G-SA\",\"[DFT]\{3\}\",[ 0-9]\{3,4\},[0-9]\{2,3\},[0-9A-F]\{1,10\},[0-9]\{1,5\},[0-9A-F]\{2,6\},[0-9]\{6,7\},[0-9]\{1,3\},[0-9]\{1,2\},-[0-9]\{2,5\},-[0-9]\{2,3\},[-0-9]\{1,3\}")
|
||||||
|
else
|
||||||
|
QENG=$(echo $response" " | grep -o -i "+QENG: [^ ]\+ " | tr " " ",")
|
||||||
|
fi
|
||||||
|
|
||||||
|
RAT=$(echo $QENG | cut -d, -f4 | grep -o "[-A-Z5]\{3,7\}")
|
||||||
|
case $RAT in
|
||||||
|
"GSM")
|
||||||
|
# MODE="GSM"
|
||||||
|
;;
|
||||||
|
"WCDMA")
|
||||||
|
channel=$(echo $QENG | cut -d, -f9)
|
||||||
|
rscp="-"$(echo $QENG | cut -d, -f12 | grep -o "[0-9]\{1,3\}")
|
||||||
|
ecio=$(echo $QENG | cut -d, -f13)
|
||||||
|
ecio="-"$(echo $ecio | grep -o "[0-9]\{1,3\}")
|
||||||
|
;;
|
||||||
|
"LTE"|"CAT-M"|"CAT-NB")
|
||||||
|
PCI=$(echo $QENG | cut -d, -f9)
|
||||||
|
channel=$(echo $QENG | cut -d, -f10)
|
||||||
|
LBAND=$(echo $QENG | cut -d, -f11 | grep -o "[0-9]\{1,3\}")
|
||||||
|
BW=$(echo $QENG | cut -d, -f12)
|
||||||
|
lte_bw
|
||||||
|
BWU=$BW
|
||||||
|
BW=$(echo $QENG | cut -d, -f13)
|
||||||
|
lte_bw
|
||||||
|
BWD=$BW
|
||||||
|
if [ -z "$BWD" ]; then
|
||||||
|
BWD="unknown"
|
||||||
|
fi
|
||||||
|
if [ -z "$BWU" ]; then
|
||||||
|
BWU="unknown"
|
||||||
|
fi
|
||||||
|
if [ -n "$LBAND" ]; then
|
||||||
|
LBAND="B"$LBAND" (Bandwidth $BWD MHz Down | $BWU MHz Up)"
|
||||||
|
fi
|
||||||
|
RSRP=$(echo $QENG | cut -d, -f15 | grep -o "[0-9]\{1,3\}")
|
||||||
|
if [ -n "$RSRP" ]; then
|
||||||
|
RSCP="-"$RSRP
|
||||||
|
RSRPLTE=$RSCP
|
||||||
|
fi
|
||||||
|
rsrq=$(echo $QENG | cut -d, -f16 | grep -o "[0-9]\{1,3\}")
|
||||||
|
if [ -n "$rsrq" ]; then
|
||||||
|
ecio="-"$rsrq
|
||||||
|
fi
|
||||||
|
rssi=$(echo $QENG | cut -d, -f17 | grep -o "\-[0-9]\{1,3\}")
|
||||||
|
if [ -n "$rssi" ]; then
|
||||||
|
CSQ_RSSI=$rssi" dBm"
|
||||||
|
fi
|
||||||
|
sinrr=$(echo $QENG | cut -d, -f18 | grep -o "[0-9]\{1,3\}")
|
||||||
|
if [ -n "$sinrr" ]; then
|
||||||
|
if [ $sinrr -le 25 ]; then
|
||||||
|
sinrr=$((($(echo $sinrr) * 2) -20))" dB"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$NR_NSA" ]; then
|
||||||
|
if [ -n "$QENG5" ] && [ -n "$LBAND" ] && [ "$RSCP" != "-" ] && [ "$ecio" != "-" ]; then
|
||||||
|
PCI="$PCI, "$(echo $QENG5 | cut -d, -f4)
|
||||||
|
SCHV=$(echo $QENG5 | cut -d, -f8)
|
||||||
|
SLBV=$(echo $QENG5 | cut -d, -f9)
|
||||||
|
BW=$(echo $QENG5 | cut -d, -f10 | grep -o "[0-9]\{1,3\}")
|
||||||
|
if [ -n "$SLBV" ]; then
|
||||||
|
LBAND=$LBAND"<br />n"$SLBV
|
||||||
|
if [ -n "$BW" ]; then
|
||||||
|
nr_bw
|
||||||
|
LBAND=$LBAND" (Bandwidth $BW MHz)"
|
||||||
|
fi
|
||||||
|
if [ "$SCHV" -ge 123400 ]; then
|
||||||
|
channel=$channel", "$SCHV
|
||||||
|
else
|
||||||
|
channel=$channel", -"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
LBAND=$LBAND"<br />nxx (unknown NR5G band)"
|
||||||
|
channel=$channel", -"
|
||||||
|
fi
|
||||||
|
RSCP=$RSCP" dBm<br />"$(echo $QENG5 | cut -d, -f5)
|
||||||
|
sinrr=$(echo $QENG5 | cut -d, -f6 | grep -o "[0-9]\{1,3\}")
|
||||||
|
if [ -n "$sinrr" ]; then
|
||||||
|
if [ $sinrr -le 30 ]; then
|
||||||
|
SINR=$SINR"<br />"$((($(echo $sinrr) * 2) -20))" dB"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
ecio=$ecio" (4G) dB<br />"$(echo $QENG5 | cut -d, -f7)" (5G) "
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -z "$LBAND" ]; then
|
||||||
|
LBAND="-"
|
||||||
|
else
|
||||||
|
if [ -n "$QCA" ]; then
|
||||||
|
QCA=$(echo $QCA | grep -o "\"S[CS]\{2\}\"[-0-9A-Z,\"]\+")
|
||||||
|
for QCAL in $(echo "$QCA"); do
|
||||||
|
if [ $(echo "$QCAL" | cut -d, -f7) = "2" ]; then
|
||||||
|
SCHV=$(echo $QCAL | cut -d, -f2 | grep -o "[0-9]\+")
|
||||||
|
SRATP="B"
|
||||||
|
if [ -n "$SCHV" ]; then
|
||||||
|
channel="$channel, $SCHV"
|
||||||
|
if [ "$SCHV" -gt 123400 ]; then
|
||||||
|
SRATP="n"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
SLBV=$(echo $QCAL | cut -d, -f6 | grep -o "[0-9]\{1,2\}")
|
||||||
|
if [ -n "$SLBV" ]; then
|
||||||
|
LBAND=$LBAND"<br />"$SRATP$SLBV
|
||||||
|
BWD=$(echo $QCAL | cut -d, -f3 | grep -o "[0-9]\{1,3\}")
|
||||||
|
if [ -n "$BWD" ]; then
|
||||||
|
UPDOWN=$(echo $QCAL | cut -d, -f13)
|
||||||
|
case "$UPDOWN" in
|
||||||
|
"UL" )
|
||||||
|
CATYPE="CA"$(printf "\xe2\x86\x91") ;;
|
||||||
|
"DL" )
|
||||||
|
CATYPE="CA"$(printf "\xe2\x86\x93") ;;
|
||||||
|
* )
|
||||||
|
CATYPE="CA" ;;
|
||||||
|
esac
|
||||||
|
if [ $BWD -gt 14 ]; then
|
||||||
|
LBAND=$LBAND" ("$CATYPE", Bandwidth "$(($(echo $BWD) / 5))" MHz)"
|
||||||
|
else
|
||||||
|
LBAND=$LBAND" ("$CATYPE", Bandwidth 1.4 MHz)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
LBAND=$LBAND
|
||||||
|
fi
|
||||||
|
PCI="$PCI, "$(echo $QCAL | cut -d, -f8)
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ $RAT = "CAT-M" ] || [ $RAT = "CAT-NB" ]; then
|
||||||
|
LBAND="B$(echo $QENG | cut -d, -f11) ($RAT)"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"NR5G-SA")
|
||||||
|
if [ -n "$QENG5" ]; then
|
||||||
|
#AT+qnwcfg="NR5G_AMBR" #查询速度
|
||||||
|
PCI=$(echo $QENG5 | cut -d, -f8)
|
||||||
|
channel=$(echo $QENG5 | cut -d, -f10)
|
||||||
|
LBAND=$(echo $QENG5 | cut -d, -f11)
|
||||||
|
BW=$(echo $QENG5 | cut -d, -f12)
|
||||||
|
nr_bw
|
||||||
|
LBAND="n"$LBAND" (Bandwidth $BW MHz)"
|
||||||
|
RSCP=$(echo $QENG5 | cut -d, -f13)
|
||||||
|
ecio=$(echo $QENG5 | cut -d, -f14)
|
||||||
|
if [ "$CSQ_PER" = "-" ]; then
|
||||||
|
RSSI=$(rsrp2rssi $RSCP $BW)
|
||||||
|
CSQ_PER=$((100 - (($RSSI + 51) * 100/-62)))"%"
|
||||||
|
CSQ=$((($RSSI + 113) / 2))
|
||||||
|
CSQ_RSSI=$RSSI" dBm"
|
||||||
|
fi
|
||||||
|
SINRR=$(echo $QENG5 | cut -d, -f15 | grep -o "[0-9]\{1,3\}")
|
||||||
|
if [ -n "$SINRR" ]; then
|
||||||
|
if [ $SINRR -le 30 ]; then
|
||||||
|
SINR=$((($(echo $SINRR) * 2) -20))" dB"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
# SIMCOM获取基站信息
|
# SIMCOM获取基站信息
|
||||||
@ -290,205 +630,24 @@ get_quectel_info()
|
|||||||
|
|
||||||
#基本信息
|
#基本信息
|
||||||
quectel_base_info
|
quectel_base_info
|
||||||
|
|
||||||
|
#获取SIM状态
|
||||||
|
sim_status=$(get_quectel_sim_status)
|
||||||
|
if [ "$sim_status" != "ready" ];then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
#SIM卡信息
|
#SIM卡信息
|
||||||
quectel_sim_info
|
quectel_sim_info
|
||||||
#网络信息
|
#网络信息
|
||||||
quectel_net_info
|
quectel_network_info
|
||||||
|
#小区信息
|
||||||
|
quectel_cell_info
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
# Quectel_Cellinfo
|
# Quectel_Cellinfo
|
||||||
|
|
||||||
#
|
|
||||||
OX=$( sh modem_at.sh $at_port 'AT+QENG="servingcell"' | grep "+QENG:" )
|
|
||||||
NR_NSA=$(echo $OX | grep -o -i "+QENG:[ ]\?\"NR5G-NSA\",")
|
|
||||||
NR_SA=$(echo $OX | grep -o -i "+QENG: \"SERVINGCELL\",[^,]\+,\"NR5G-SA\",\"[DFT]\{3\}\",")
|
|
||||||
if [ -n "$NR_NSA" ]; then
|
|
||||||
QENG=",,"$(echo $OX" " | grep -o -i "+QENG: \"LTE\".\+\"NR5G-NSA\"," | tr " " ",")
|
|
||||||
QENG5=$(echo $OX | grep -o -i "+QENG:[ ]\?\"NR5G-NSA\",[0-9]\{3\},[0-9]\{2,3\},[0-9]\{1,5\},-[0-9]\{2,5\},[-0-9]\{1,3\},-[0-9]\{2,3\},[0-9]\{1,7\},[0-9]\{1,3\}.\{1,6\}")
|
|
||||||
if [ -z "$QENG5" ]; then
|
|
||||||
QENG5=$(echo $OX | grep -o -i "+QENG:[ ]\?\"NR5G-NSA\",[0-9]\{3\},[0-9]\{2,3\},[0-9]\{1,5\},-[0-9]\{2,3\},[-0-9]\{1,3\},-[0-9]\{2,3\}")
|
|
||||||
if [ -n "$QENG5" ]; then
|
|
||||||
QENG5=$QENG5",,"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
elif [ -n "$NR_SA" ]; then
|
|
||||||
QENG=$(echo $NR_SA | tr " " ",")
|
|
||||||
QENG5=$(echo $OX | grep -o -i "+QENG: \"SERVINGCELL\",[^,]\+,\"NR5G-SA\",\"[DFT]\{3\}\",[ 0-9]\{3,4\},[0-9]\{2,3\},[0-9A-F]\{1,10\},[0-9]\{1,5\},[0-9A-F]\{2,6\},[0-9]\{6,7\},[0-9]\{1,3\},[0-9]\{1,2\},-[0-9]\{2,5\},-[0-9]\{2,3\},[-0-9]\{1,3\}")
|
|
||||||
else
|
|
||||||
QENG=$(echo $OX" " | grep -o -i "+QENG: [^ ]\+ " | tr " " ",")
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# debug "$QENG"
|
|
||||||
# debug "$QENG5"
|
|
||||||
|
|
||||||
RAT=$(echo $QENG | cut -d, -f4 | grep -o "[-A-Z5]\{3,7\}")
|
|
||||||
case $RAT in
|
|
||||||
"GSM")
|
|
||||||
MODE="GSM"
|
|
||||||
;;
|
|
||||||
"WCDMA")
|
|
||||||
MODE="WCDMA"
|
|
||||||
CHANNEL=$(echo $QENG | cut -d, -f9)
|
|
||||||
RSCP=$(echo $QENG | cut -d, -f12)
|
|
||||||
RSCP="-"$(echo $RSCP | grep -o "[0-9]\{1,3\}")
|
|
||||||
ECIO=$(echo $QENG | cut -d, -f13)
|
|
||||||
ECIO="-"$(echo $ECIO | grep -o "[0-9]\{1,3\}")
|
|
||||||
;;
|
|
||||||
"LTE"|"CAT-M"|"CAT-NB")
|
|
||||||
MODE=$(echo $QENG | cut -d, -f5 | grep -o "[DFT]\{3\}")
|
|
||||||
if [ -n "$MODE" ]; then
|
|
||||||
MODE="$RAT $MODE"
|
|
||||||
else
|
|
||||||
MODE="$RAT"
|
|
||||||
fi
|
|
||||||
PCI=$(echo $QENG | cut -d, -f9)
|
|
||||||
CHANNEL=$(echo $QENG | cut -d, -f10)
|
|
||||||
LBAND=$(echo $QENG | cut -d, -f11 | grep -o "[0-9]\{1,3\}")
|
|
||||||
BW=$(echo $QENG | cut -d, -f12)
|
|
||||||
lte_bw
|
|
||||||
BWU=$BW
|
|
||||||
BW=$(echo $QENG | cut -d, -f13)
|
|
||||||
lte_bw
|
|
||||||
BWD=$BW
|
|
||||||
if [ -z "$BWD" ]; then
|
|
||||||
BWD="unknown"
|
|
||||||
fi
|
|
||||||
if [ -z "$BWU" ]; then
|
|
||||||
BWU="unknown"
|
|
||||||
fi
|
|
||||||
if [ -n "$LBAND" ]; then
|
|
||||||
LBAND="B"$LBAND" (Bandwidth $BWD MHz Down | $BWU MHz Up)"
|
|
||||||
fi
|
|
||||||
RSRP=$(echo $QENG | cut -d, -f15 | grep -o "[0-9]\{1,3\}")
|
|
||||||
if [ -n "$RSRP" ]; then
|
|
||||||
RSCP="-"$RSRP
|
|
||||||
RSRPLTE=$RSCP
|
|
||||||
fi
|
|
||||||
RSRQ=$(echo $QENG | cut -d, -f16 | grep -o "[0-9]\{1,3\}")
|
|
||||||
if [ -n "$RSRQ" ]; then
|
|
||||||
ECIO="-"$RSRQ
|
|
||||||
fi
|
|
||||||
RSSI=$(echo $QENG | cut -d, -f17 | grep -o "\-[0-9]\{1,3\}")
|
|
||||||
if [ -n "$RSSI" ]; then
|
|
||||||
CSQ_RSSI=$RSSI" dBm"
|
|
||||||
fi
|
|
||||||
SINRR=$(echo $QENG | cut -d, -f18 | grep -o "[0-9]\{1,3\}")
|
|
||||||
if [ -n "$SINRR" ]; then
|
|
||||||
if [ $SINRR -le 25 ]; then
|
|
||||||
SINR=$((($(echo $SINRR) * 2) -20))" dB"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "$NR_NSA" ]; then
|
|
||||||
MODE="LTE/NR EN-DC"
|
|
||||||
echo "0" > /tmp/modnetwork
|
|
||||||
if [ -n "$QENG5" ] && [ -n "$LBAND" ] && [ "$RSCP" != "-" ] && [ "$ECIO" != "-" ]; then
|
|
||||||
PCI="$PCI, "$(echo $QENG5 | cut -d, -f4)
|
|
||||||
SCHV=$(echo $QENG5 | cut -d, -f8)
|
|
||||||
SLBV=$(echo $QENG5 | cut -d, -f9)
|
|
||||||
BW=$(echo $QENG5 | cut -d, -f10 | grep -o "[0-9]\{1,3\}")
|
|
||||||
if [ -n "$SLBV" ]; then
|
|
||||||
LBAND=$LBAND"<br />n"$SLBV
|
|
||||||
if [ -n "$BW" ]; then
|
|
||||||
nr_bw
|
|
||||||
LBAND=$LBAND" (Bandwidth $BW MHz)"
|
|
||||||
fi
|
|
||||||
if [ "$SCHV" -ge 123400 ]; then
|
|
||||||
CHANNEL=$CHANNEL", "$SCHV
|
|
||||||
else
|
|
||||||
CHANNEL=$CHANNEL", -"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
LBAND=$LBAND"<br />nxx (unknown NR5G band)"
|
|
||||||
CHANNEL=$CHANNEL", -"
|
|
||||||
fi
|
|
||||||
RSCP=$RSCP" dBm<br />"$(echo $QENG5 | cut -d, -f5)
|
|
||||||
SINRR=$(echo $QENG5 | cut -d, -f6 | grep -o "[0-9]\{1,3\}")
|
|
||||||
if [ -n "$SINRR" ]; then
|
|
||||||
if [ $SINRR -le 30 ]; then
|
|
||||||
SINR=$SINR"<br />"$((($(echo $SINRR) * 2) -20))" dB"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
ECIO=$ECIO" (4G) dB<br />"$(echo $QENG5 | cut -d, -f7)" (5G) "
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [ -z "$LBAND" ]; then
|
|
||||||
LBAND="-"
|
|
||||||
else
|
|
||||||
if [ -n "$QCA" ]; then
|
|
||||||
QCA=$(echo $QCA | grep -o "\"S[CS]\{2\}\"[-0-9A-Z,\"]\+")
|
|
||||||
for QCAL in $(echo "$QCA"); do
|
|
||||||
if [ $(echo "$QCAL" | cut -d, -f7) = "2" ]; then
|
|
||||||
SCHV=$(echo $QCAL | cut -d, -f2 | grep -o "[0-9]\+")
|
|
||||||
SRATP="B"
|
|
||||||
if [ -n "$SCHV" ]; then
|
|
||||||
CHANNEL="$CHANNEL, $SCHV"
|
|
||||||
if [ "$SCHV" -gt 123400 ]; then
|
|
||||||
SRATP="n"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
SLBV=$(echo $QCAL | cut -d, -f6 | grep -o "[0-9]\{1,2\}")
|
|
||||||
if [ -n "$SLBV" ]; then
|
|
||||||
LBAND=$LBAND"<br />"$SRATP$SLBV
|
|
||||||
BWD=$(echo $QCAL | cut -d, -f3 | grep -o "[0-9]\{1,3\}")
|
|
||||||
if [ -n "$BWD" ]; then
|
|
||||||
UPDOWN=$(echo $QCAL | cut -d, -f13)
|
|
||||||
case "$UPDOWN" in
|
|
||||||
"UL" )
|
|
||||||
CATYPE="CA"$(printf "\xe2\x86\x91") ;;
|
|
||||||
"DL" )
|
|
||||||
CATYPE="CA"$(printf "\xe2\x86\x93") ;;
|
|
||||||
* )
|
|
||||||
CATYPE="CA" ;;
|
|
||||||
esac
|
|
||||||
if [ $BWD -gt 14 ]; then
|
|
||||||
LBAND=$LBAND" ("$CATYPE", Bandwidth "$(($(echo $BWD) / 5))" MHz)"
|
|
||||||
else
|
|
||||||
LBAND=$LBAND" ("$CATYPE", Bandwidth 1.4 MHz)"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
LBAND=$LBAND
|
|
||||||
fi
|
|
||||||
PCI="$PCI, "$(echo $QCAL | cut -d, -f8)
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [ $RAT = "CAT-M" ] || [ $RAT = "CAT-NB" ]; then
|
|
||||||
LBAND="B$(echo $QENG | cut -d, -f11) ($RAT)"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"NR5G-SA")
|
|
||||||
MODE="NR5G-SA"
|
|
||||||
if [ -n "$QENG5" ]; then
|
|
||||||
#AT+qnwcfg="NR5G_AMBR" #查询速度
|
|
||||||
MODE="$RAT $(echo $QENG5 | cut -d, -f4)"
|
|
||||||
PCI=$(echo $QENG5 | cut -d, -f8)
|
|
||||||
CHANNEL=$(echo $QENG5 | cut -d, -f10)
|
|
||||||
LBAND=$(echo $QENG5 | cut -d, -f11)
|
|
||||||
BW=$(echo $QENG5 | cut -d, -f12)
|
|
||||||
nr_bw
|
|
||||||
LBAND="n"$LBAND" (Bandwidth $BW MHz)"
|
|
||||||
RSCP=$(echo $QENG5 | cut -d, -f13)
|
|
||||||
ECIO=$(echo $QENG5 | cut -d, -f14)
|
|
||||||
if [ "$CSQ_PER" = "-" ]; then
|
|
||||||
RSSI=$(rsrp2rssi $RSCP $BW)
|
|
||||||
CSQ_PER=$((100 - (($RSSI + 51) * 100/-62)))"%"
|
|
||||||
CSQ=$((($RSSI + 113) / 2))
|
|
||||||
CSQ_RSSI=$RSSI" dBm"
|
|
||||||
fi
|
|
||||||
SINRR=$(echo $QENG5 | cut -d, -f15 | grep -o "[0-9]\{1,3\}")
|
|
||||||
if [ -n "$SINRR" ]; then
|
|
||||||
if [ $SINRR -le 30 ]; then
|
|
||||||
SINR=$((($(echo $SINRR) * 2) -20))" dB"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
#
|
#
|
||||||
OX=$( sh modem_at.sh $at_port "AT+QCAINFO" | grep "+QCAINFO:" )
|
OX=$( sh modem_at.sh $at_port "AT+QCAINFO" | grep "+QCAINFO:" )
|
||||||
QCA=$(echo $OX" " | grep -o -i "+QCAINFO: \"S[CS]\{2\}\".\+NWSCANMODE" | tr " " ",")
|
QCA=$(echo $OX" " | grep -o -i "+QCAINFO: \"S[CS]\{2\}\".\+NWSCANMODE" | tr " " ",")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user