2023-12-24 15:40:41 +08:00

436 lines
15 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%+header%>
<%
local fs = require "nixio.fs"
local uci = luci.model.uci.cursor()
nosms = 1
if not fs.stat("/etc/nosim") then
nosms = 0
end
havegps = 0
if fs.stat("/etc/havegps") then
havegps = 1
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>
<script type="text/javascript" src="<%=resource%>/xhr.js?v=git-23.159.15540-7154b89"></script>
<script type="text/javascript">//<![CDATA[
window.onload=function()
{
//获取模块选择框元素
var modem_select = document.getElementById('modem_select');
// 更换模组AT串口时触发
modem_select.addEventListener('change', function() {
// 更新数据
update();
});
//更新模组数据
// XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "modem", "get_modem_info")%>', {"port":at_port},
// function(x, modem_info)
// {
// console.log(modem_info);
// // 基本信息
// // document.getElementById('modem').innerHTML=modem_info.modem;
// document.getElementById('manufacturer').innerHTML=modem_info.manufacturer;
// document.getElementById('at_port').innerHTML=modem_info.at_port;
// document.getElementById('mode').innerHTML=modem_info.mode;
// document.getElementById('temperature').innerHTML=modem_info.temperature;
// document.getElementById('date').innerHTML=modem_info.date;
// //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;
// // }
// }
// );
}
// 更新模组数据
function update()
{
var at_port="";
if (modem_select.options.length!=0) {
at_port=modem_select.options[modem_select.selectedIndex].value;
}
else {
return
}
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "modem", "get_modem_info")%>', {"port":at_port},
function(x, modem_info)
{
console.log(modem_info);
var base_info=modem_info["base_info"];
for (var key in base_info)
{
var base_info_Element=document.getElementById(key);
if (base_info_Element!=null)
{
base_info_Element.innerHTML=base_info[key];
}
}
var more_info=modem_info["more_info"];
for (var key in more_info)
{
var more_info_Element=document.getElementById(key);
if (more_info_Element!=null)
{
more_info_Element.innerHTML=more_info[key];
}
}
}
);
}
// 定时触发更新AT串口和模组数据
XHR.poll(5,'<%=luci.dispatcher.build_url("admin", "network", "modem", "get_at_port")%>', null,
function(x, port)
{
//获取模块选择框元素
var modem_select = document.getElementById('modem_select');
// 记录所选
var selected=modem_select.value;
// 删除原来的选项
modem_select.options.length=0;
// 更新keyAT串口value模块名称
for (var key in port)
{
var option = document.createElement('option');
option.text = port[key].trim();
option.value = key;
modem_select.appendChild(option);
}
// 恢复原来的选择
for (let i = 0; i < modem_select.options.length; i++)
{
if(modem_select.options[i].value == selected)
{
modem_select.selectedIndex=i;
break;
}
}
update();
}
);
modemtype=0;
cell=0;
portx="-";
phonenx = "";
hided = 0;
function clear_data()
{
document.getElementById('port').innerHTML="<%:Changing Port%>";
document.getElementById('csq').innerHTML="-";
document.getElementById('per').innerHTML="-";
document.getElementById('rssi').innerHTML="-";
// document.getElementById('modem').innerHTML="-";
document.getElementById('cops').innerHTML="-";
document.getElementById('net_type').innerHTML="-";
document.getElementById('lac').innerHTML="-";
document.getElementById('cid').innerHTML="-";
document.getElementById('lacn').innerHTML="-";
document.getElementById('cidn').innerHTML="-";
document.getElementById('mcc').innerHTML="-";
document.getElementById('mnc').innerHTML="-";
document.getElementById('rnc').innerHTML="-";
document.getElementById('rncn').innerHTML="-";
document.getElementById('down').innerHTML="-";
document.getElementById('up').innerHTML="-";
document.getElementById('ecio').innerHTML="-";
document.getElementById('rscp').innerHTML="-";
document.getElementById('ecio1').innerHTML="-";
document.getElementById('rscp1').innerHTML="-";
document.getElementById('netmode').innerHTML="-";
document.getElementById('manufacturer').innerHTML=" ";
document.getElementById('chan').innerHTML=" ";
document.getElementById('conmon').innerHTML="-";
document.getElementById('phone').value="-";
document.getElementById('imei').innerHTML="-";
document.getElementById('imsi').innerHTML="-";
document.getElementById('iccid').innerHTML="-";
document.getElementById('lband').innerHTML="-";
document.getElementById('pci').innerHTML="-";
<% if havegps == 1 then %>
document.getElementById('lat').innerHTML="-";
document.getElementById('long').innerHTML="-";
<% end %>
// document.getElementById('idvp').innerHTML="-";
// document.getElementById('phonen').value="-";
}
//]]>
</script>
<div class="cbi-map" id="cbi-modem">
<h2 name="content"><%:Modem Info%></h2>
<div class="cbi-map-descr"><%:%></div>
<fieldset class="cbi-section" id="simwarn" style="display:none;">
<legend><%:SIM警告%></legend>
<table width="550" border="0">
<tr>
<td width="10%"></td>
<td width="60%"><div align="left" id="simsg" style="font-size:1.875em"><strong></strong></div></td>
<td width="30%"></td>
</tr>
</table>
</fieldset>
<% at_ports = getATPort() %>
<% if next(at_ports) == nil then %>
<fieldset class="cbi-section" id="info">
<h3><%:信息%></h3>
<table width="550" border="0">
<tr>
<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="30%"></td>
</tr>
</table>
</fieldset>
<% else %>
<fieldset class="cbi-section" id="cbi-baseinfo">
<h3><%:基本信息%></h3>
<table width="100%" cellspacing="10">
<tr><td width="20%"><%:模组 :%></td><td id="modem_name">
<select name="modem_select" id="modem_select">
<% at_ports = getATPort() %>
<% for key in pairs(at_ports) do %>
<option value="<%= key %>"><%= at_ports[key] %></option>
<% end %>
</select>
</td><td></td></tr>
<tr><td width="20%"><%:制造商 :%></td><td id="manufacturer"></td><td></td></tr>
<tr><td width="20%"><%:固件版本 :%></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%"><%:拨号模式 : %></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%"><%:移动网络 : %></td><td id="network"></td><td></td></tr>
<tr><td width="20%"><%:温度 : %></td><td id="temperature"></td><td></td></tr>
<tr><td width="20%"><%:更新时间 : %></td><td id="update_time"></td><td></td></tr>
</table>
</fieldset>
<% if nosms == 0 then %>
<% end %>
<fieldset class="cbi-section" id="cbi-siminfo">
<h3><%:SIM卡信息%></h3>
<table width="100%" cellspacing="10">
<tr><td width="20%"><%:运营商 : %></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%"><%: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%"><%:SIM卡号码 : %></td><td id="phone"></td><td></td></tr>
</table>
</fieldset>
<fieldset class="cbi-section" id="cbi-networkinfo">
<h3><%:网络信息%></h3>
<table width="100%" cellspacing="10">
<tr><td width="20%"><%:网络类型 :%></td><td id="net_type"></td><td></td></tr>
<tr><td width="20%"><%:CSQ : %></td><td id="csq"></td><td></td></tr>
<tr><td width="20%"><%:信号强度 : %></td><td id="per"></td><td></td></tr>
<tr><td width="20%"><%:信号接收强度 RSSI : %></td><td id="rssi"></td><td></td></tr>
<tr><td width="20%"><%:参考信号接收质量 RSRQ : %></td><td><ul><span id="ecio" class="r"></span><span id="ecio1" class="r"></span></ul></td><td></td></tr>
<tr><td width="20%"><%:参考信号接收功率 RSRP : %></td><td><ul><span id="rscp" class="r"></span><span id="rscp1" class="r"></span></ul></td><td></td></tr>
<tr><td width="20%"><%:信噪比 SINR : %></td><td id="sinr"></td><td></td></tr>
<tr><td width="20%"><%:连接状态监控 : %></td><td id="conmon"></td><td></td></tr>
</table>
</fieldset>
<fieldset class="cbi-section" id="cbi-sig">
<h3><%:基站信息%></h3>
<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%"><%: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%"><%: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%"><%:频点 Channel : %></td><td id="chan"></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>
</table>
</fieldset>
<% if havegps == 1 then %>
<fieldset class="cbi-section" id="cbi-gpsinfo">
<h3><%:GPS 定位%></h3>
<table width="550" border="0">
<tr>
<td width="30%"><div align="right"><%:纬度 :%></div></td>
<td><ul id="lat"></ul></td>
<td width="1%">&nbsp;</td>
</tr>
<tr>
<td><div align="right"><%:经度 :%></div></td>
<td><ul id="long"></ul></td>
<td>&nbsp;</td>
</tr>
</table>
</fieldset>
<% end %>
<% end %>
</div>
<%+footer%>