Files

951 lines
26 KiB
HTML

<%+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
%>
<style>
g {color:grey; font-size:75%; vertical-align: super;}
/*移动端显示优化*/
/* @media (max-width: 768px) {
tr td:first-child {
width: 30%;
}
} */
/* 消息样式 */
#info_message {
text-align: left;
font-size: 1.8em;
}
#info_message img {
vertical-align: middle;
}
#info_message a {
color: rgb(61, 143, 173);
font-size: 50%;
}
/* 信号样式 */
.signal-view {
position: relative;
min-width: 11rem;
height: 1.5rem;
margin: 0 0;
border: thin solid #999;
background: #eee;
border-radius: 4px;
overflow: hidden;
}
/* 信号百分比样式 */
.signal-percent {
width: 0;
height: 100%;
/* transition: width .25s ease-in; */
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
/* border-top-right-radius: 4px;
border-bottom-right-radius: 4px; */
}
/* 信号文字内容样式 */
.signal-context{
font-family: monospace;
/* font-size: 1em; */
font-weight: bold;
font-size-adjust: .38;
line-height: 1.5rem;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
overflow: hidden;
content: attr(title);
text-align: center;
white-space: pre;
text-overflow: ellipsis;
/* color:#000000; */
}
.signal-context small{
font-family: monospace;
/* font-size: 1em; */
font-weight: bold;
font-size-adjust: .38;
line-height: 1.5rem;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
overflow: hidden;
content: attr(title);
text-align: center;
white-space: pre;
text-overflow: ellipsis;
/* color:#000000; */
}
table {
width: 100%;
border-spacing: 10px;
border: 0px;
}
tr td:first-child {
width: 33%;
}
/* 清除表格标题的样式 */
/* caption {
all: unset;
} */
</style>
<script type="text/javascript" src="<%=resource%>/xhr.js"></script>
<script type="text/javascript">//<![CDATA[
window.onload=function()
{
//获取模组选择框元素
var modem_select = document.getElementById('modem_select');
//更换模组(AT串口)时触发
modem_select.addEventListener('change', function() {
//更新数据
update();
});
}
//获取SIM卡信息视图
function get_rate_view(rate)
{
const b=parseFloat(rate);
const kb=b/1024;
const mb=kb/1024;
var rate_view;
if (mb>=1) {
rate_view=mb.toFixed(2)+" MB/s";
}
else if (kb>=1) {
rate_view=kb.toFixed(2)+" KB/s";
}
else {
rate_view=b+" B/s";
}
return rate_view;
}
//获取SIM卡信息视图
function get_sim_info_view(sim_info,translation)
{
//初始化视图
var sim_info_view='';
//遍历每一条信息
for (var info of sim_info)
{
//遍历每一条信息里的键
for (var key in info)
{
//跳过全名
if (key=="full_name")
{
continue;
}
//获取全名
var full_name=info["full_name"];
if (full_name==null)
{
full_name='';
}
//写入视图(不显示空的信息)
var value=info[key];
if (value!="-"&&value!=""&&value!="ready")
{
// value=translation[value]; //是否翻译
sim_info_view+='<tr class="tr"><td class="td left" title="'+full_name+'">'+translation[key]+'</td><td class="td left" id="'+key+'">'+value+'</td></tr>';
break;
}
}
}
return sim_info_view;
}
//设置SIM卡信息
function set_sim_info(sim_info,translation)
{
//获取SIM卡信息视图
var sim_info_view=get_sim_info_view(sim_info,translation);
//获取SIM卡信息表格
var sim_info_Element=document.getElementById("sim_info");
sim_info_Element.innerHTML=sim_info_view;
}
//获取网络信息视图
function get_network_info_view(network_info,translation)
{
//初始化视图
var network_info_view='';
//遍历每一条信息
for (var info of network_info)
{
//遍历每一条信息里的键
for (var key in info)
{
//跳过全名
if (key=="full_name")
{
continue;
}
//获取全名
var full_name=info["full_name"];
if (full_name==null)
{
full_name='';
}
//写入视图(不显示空的信息)
var value=info[key];
if (value!="-"&&value!="")
{
//添加单位
if (key=="AMBR UL"||key=="AMBR DL") {
value=value+" Mbps";
}
else if (key=="Tx Rate"||key=="Rx Rate")
{
value=get_rate_view(value);
}
// value=translation[value]; //是否翻译
network_info_view+='<tr class="tr"><td class="td left" title="'+full_name+'">'+translation[key]+'</td><td class="td left" id="'+key+'">'+value+'</td></tr>';
break;
}
}
}
return network_info_view;
}
//设置网络信息
function set_network_info(network_info,translation)
{
//获取网络信息视图
var network_info_view=get_network_info_view(network_info,translation);
//获取网络信息表格
var network_info_Element=document.getElementById("network_info");
network_info_Element.innerHTML=network_info_view;
}
// 获取一个范围的百分比
function get_percent(value, min, max)
{
var percent;
if (value <= min) {
percent=0;
} else if (value >= max) {
percent=100;
} else {
percent=((value - min) / (max - min)) * 100;
}
return percent.toFixed(2);
}
// 获取参考信号的信息视图
function get_signal_info_view(network_type,key,value) {
value=parseFloat(value);
var signal_info_view={percent:100,quality:"Unknown",style:"width:100.00%;background-color: gray;"};
// 获取参考信号接收功率(RSRP)的信息视图'
if (key=="RSRP") {
set_rsrp_info_view(network_type,value,signal_info_view);
}
else if (key=="RSRQ") {
set_rsrq_info_view(network_type,value,signal_info_view);
}
else if (key=="SINR") {
set_sinr_info_view(network_type,value,signal_info_view);
}
else if (key=="RxLev") {
set_rxlev_info_view(network_type,value,signal_info_view);
}
//添加100%时候的样式
if (signal_info_view.percent==100) {
signal_info_view.style+="border-top-right-radius: 4px;border-bottom-right-radius: 4px;";
}
return signal_info_view;
}
// 获取参考信号接收功率(RSRP)的信息视图
function set_rsrp_info_view(network_type,value,signal_info_view)
{
// 获取百分比
if (network_type.includes("NR"))
{
signal_info_view.percent=get_percent(value,-153,31);
}
else if (network_type.includes("LTE"))
{
signal_info_view.percent=get_percent(value,-140,-44);
}
else if (network_type.includes("WCDMA"))
{
// signal_info_view.percent=get_percent(value,-140,-44);
}
// 获取样式
var color="gray";
if (value>=-70)
{
signal_info_view.quality="Excellent";
color="limegreen";
}
else if (value>=-80&&value<-70)
{
signal_info_view.quality="Good";
color="lime";
}
else if (value>=-90&&value<-80)
{
signal_info_view.quality="Fair";
color="gold";
}
else if (value<-90)
{
signal_info_view.quality="Bad";
color="red";
}
signal_info_view.style='width:'+signal_info_view.percent+'%;background-color: '+color+';';
}
// 获取参考信号接收质量(RSRQ)的信息视图
function set_rsrq_info_view(network_type,value,signal_info_view)
{
// 获取百分比
if (network_type.includes("NR"))
{
signal_info_view.percent=get_percent(value,-43,20);
}
else if (network_type.includes("LTE"))
{
signal_info_view.percent=get_percent(value,-19.5,-3);
}
else if (network_type.includes("WCDMA"))
{
// signal_info_view.percent=get_percent(value,-19.5,-3);
}
// 获取样式
var color="gray";
if (value>=-10)
{
signal_info_view.quality="Excellent";
color="limegreen";
}
else if (value>=-15&&value<-10)
{
signal_info_view.quality="Good";
color="lime";
}
else if (value>=-20&&value<-15)
{
signal_info_view.quality="Fair";
color="gold";
}
else if (value<-20)
{
signal_info_view.quality="Bad";
color="red";
}
signal_info_view.style='width:'+signal_info_view.percent+'%;background-color: '+color+';';
}
// 获取信噪比(SINR)的信息视图
function set_sinr_info_view(network_type,value,signal_info_view)
{
// 获取百分比
if (network_type.includes("NR"))
{
signal_info_view.percent=get_percent(value,-23,40);
}
else if (network_type.includes("LTE"))
{
signal_info_view.percent=get_percent(value,-20,-30);
}
else if (network_type.includes("WCDMA"))
{
// signal_info_view.percent=get_percent(value,-20,-30);
}
// 获取样式
var color="gray";
if (value>=25)
{
signal_info_view.quality="Excellent";
color="limegreen";
}
else if (value>=15&&value<25)
{
signal_info_view.quality="Good";
color="lime";
}
else if (value>=10&&value<15)
{
signal_info_view.quality="Fair";
color="gold";
}
else if (value<10)
{
signal_info_view.quality="Bad";
color="red";
}
signal_info_view.style='width:'+signal_info_view.percent+'%;background-color: '+color+';';
}
// 获取接收信号功率(RxLev)的信息视图
function set_rxlev_info_view(network_type,value,signal_info_view)
{
// 获取百分比
if (network_type.includes("NR"))
{
signal_info_view.percent=get_percent(value,-153,31);
}
else if (network_type.includes("LTE"))
{
signal_info_view.percent=get_percent(value,-140,-44);
}
else if (network_type.includes("WCDMA"))
{
signal_info_view.percent=get_percent(value,-120,-25);
}
else if (network_type.includes("GSM"))
{
signal_info_view.percent=get_percent(value,-110,-48);
}
// 获取样式
var color="gray";
if (value>=-70)
{
signal_info_view.quality="Excellent";
color="limegreen";
}
else if (value>=-80&&value<-70)
{
signal_info_view.quality="Good";
color="lime";
}
else if (value>=-90&&value<-80)
{
signal_info_view.quality="Fair";
color="gold";
}
else if (value<-90)
{
signal_info_view.quality="Bad";
color="red";
}
signal_info_view.style='width:'+signal_info_view.percent+'%;background-color: '+color+';';
}
//获取小区信息视图
function get_cell_info_view(network_mode_info,network_type,translation)
{
//初始化视图
var cell_info_view='';
//遍历每一条信息
for (var info of network_mode_info)
{
//遍历每一条信息里的键
for (var key in info)
{
//跳过全名
if (key=="full_name")
{
continue;
}
//获取全名
var full_name=info["full_name"];
if (full_name==null)
{
full_name='';
}
//写入视图(不显示空的信息)
var value=info[key];
if (value!="-"&&value!="")
{
//添加单位
if (key=="Band") {
if (network_type.includes("NR")) {
value="N"+value;
}
else if (network_type.includes("LTE")) {
value="B"+value;
}
else if (network_type.includes("WCDMA")) {
value="B"+value;
}
}
else if (key=="UL Bandwidth"||key=="DL Bandwidth") {
value=value+" MHz";
}
else if (key=="RSRP"||key=="TX Power"||key=="RxLev") {
if (key=="RSRP")
{
var unit="dBm";
var signal_info_view=get_signal_info_view(network_type,"RSRP",value);
// value='<div class="cbi-progressbar" title="'+value+' dBm | '+translation[signal_info_view.quality]+' ('+signal_info_view.percent+'%)"><div style="'+signal_info_view.style+'"></div></div>';
value='<div class="signal-view"><div class="signal-percent" style="'+signal_info_view.style+'"><div class="signal-context"><small title="'+value+' '+unit+' | '+translation[signal_info_view.quality]+' ('+signal_info_view.percent+'%)"><div style="'+signal_info_view.style+'">'+value+' dB | '+translation[signal_info_view.quality]+' ('+signal_info_view.percent+'%)</small></div></div></div>';
}
else if (key=="RxLev")
{
var unit="dBm";
var signal_info_view=get_signal_info_view(network_type,"RxLev",value);
value='<div class="signal-view"><div class="signal-percent" style="'+signal_info_view.style+'"><div class="signal-context"><small title="'+value+' '+unit+' | '+translation[signal_info_view.quality]+' ('+signal_info_view.percent+'%)"><div style="'+signal_info_view.style+'">'+value+' dB | '+translation[signal_info_view.quality]+' ('+signal_info_view.percent+'%)</small></div></div></div>';
}
else
{
value=value+" dBm";
}
}
else if (key=="RSRQ"||key=="SINR"||key=="RSSNR"||key=="Srxlev"||key=="Ec/Io") {
if (key=="RSRQ")
{
var unit="dB";
var signal_info_view=get_signal_info_view(network_type,"RSRQ",value);
value='<div class="signal-view"><div class="signal-percent" style="'+signal_info_view.style+'"><div class="signal-context"><small title="'+value+' '+unit+' | '+translation[signal_info_view.quality]+' ('+signal_info_view.percent+'%)"><div style="'+signal_info_view.style+'">'+value+' dB | '+translation[signal_info_view.quality]+' ('+signal_info_view.percent+'%)</small></div></div></div>';
}
else if (key=="SINR")
{
var unit="dB";
var signal_info_view=get_signal_info_view(network_type,"SINR",value);
value='<div class="signal-view"><div class="signal-percent" style="'+signal_info_view.style+'"><div class="signal-context"><small title="'+value+' '+unit+' | '+translation[signal_info_view.quality]+' ('+signal_info_view.percent+'%)"><div style="'+signal_info_view.style+'">'+value+' dB | '+translation[signal_info_view.quality]+' ('+signal_info_view.percent+'%)</small></div></div></div>';
}
else
{
value=value+" dB";
}
}
else if (key=="SCS") {
value=value+" kHz";
}
cell_info_view+='<tr class="tr"><td class="td left" title="'+full_name+'">'+translation[key]+'</td><td class="td left" id="'+key+'">'+value+'</td></tr>';
break;
}
}
}
return cell_info_view;
}
//设置小区信息
function set_cell_info(cell_info,translation)
{
//获取网络模式
var network_mode=Object.keys(cell_info)[0];
//获取视图
var cell_info_view='<caption>'+translation[network_mode]+'</caption>'; //网络模式视图
// var cell_info_view='<tr class="tr"><td class="td center" colspan="2">'+translation[network_mode]+'</td></tr>'; //网络模式视图
//获取网络模式下的信息
var network_mode_info=cell_info[network_mode];
if (network_mode=="EN-DC Mode")
{
var lte=network_mode_info[0]["LTE"];
cell_info_view+='<tr class="tr"><td class="td left" colspan="2">LTE</td></tr>';
cell_info_view+=get_cell_info_view(lte,"LTE",translation);
var nsa=network_mode_info[1]["NR5G-NSA"];
cell_info_view+='<tr class="tr"><td class="td left" colspan="2">NR5G-NSA</td></tr>';
cell_info_view+=get_cell_info_view(nsa,"NR",translation);
}
else
{
// cell_info_view+='<tr><td colspan="3">NR5G-NSA</td></tr>';
cell_info_view+=get_cell_info_view(network_mode_info,network_mode,translation);
}
//获取表格
var cell_info_Element=document.getElementById("cell_info");
cell_info_Element.innerHTML=cell_info_view;
}
//显示信息
function set_info(info)
{
for (var key in info)
{
var info_Element=document.getElementById(key);
if (info_Element!=null)
{
info_Element.innerHTML=info[key];
}
}
}
//基本信息界面
function base_info_view(manufacturer)
{
if (manufacturer!="unknown")
{
// 隐藏提示信息
document.getElementById("cbi-info").style.display="none";
// 显示基本信息
document.getElementById("cbi-baseinfo").style.display="block";
}
else //未适配模组
{
// 更新提示信息
document.getElementById("info_message").innerHTML='<strong><%:Not adapted to this modem%></strong> <a href="https://github.com/Siriling/5G-Modem-Support/blob/main/luci-app-modem/README.md" target="_blank"><%:(Check adapted modem)%></a>';
// 显示提示信息
document.getElementById("cbi-info").style.display="block";
// 显示基本信息
document.getElementById("cbi-baseinfo").style.display="block";
// 隐藏SIM卡信息
document.getElementById("cbi-siminfo").style.display="none";
// 隐藏网络信息
document.getElementById("cbi-networkinfo").style.display="none";
// 隐藏小区信息
document.getElementById("cbi-cellinfo").style.display="none";
}
}
//SIM卡信息界面
function sim_info_view(sim_status,connect_status)
{
//SIM卡状态未知
if (sim_status=="unknown")
{
// 更新提示信息
document.getElementById("info_message").innerHTML="<strong><%:Unknown SIM card status%></strong>";
// 显示提示信息
document.getElementById("cbi-info").style.display="block";
// 显示SIM卡信息
document.getElementById("cbi-siminfo").style.display="block";
}
//未插入SIM卡
else if (sim_status=="miss")
{
// 更新提示信息
document.getElementById("info_message").innerHTML="<strong><%:SIM card not inserted%></strong>";
// 显示提示信息
document.getElementById("cbi-info").style.display="block";
// 显示SIM卡信息
document.getElementById("cbi-siminfo").style.display="block";
}
//SIM卡就绪
else if (sim_status=="ready")
{
// 隐藏提示信息
document.getElementById("cbi-info").style.display="none";
// 显示SIM卡信息
document.getElementById("cbi-siminfo").style.display="block";
}
//SIM卡其他状态(锁定等)
else
{
// 更新提示信息
document.getElementById("info_message").innerHTML="<strong>"+sim_status+"</strong>";
// 显示提示信息
document.getElementById("cbi-info").style.display="block";
// 显示SIM卡信息
document.getElementById("cbi-siminfo").style.display="block";
}
//SIM卡未准备或网络未连接
if (sim_status!="ready"||connect_status!="connect")
{
// 隐藏网络信息
document.getElementById("cbi-networkinfo").style.display="none";
// 隐藏小区信息
document.getElementById("cbi-cellinfo").style.display="none";
}
}
//网络信息界面和小区信息界面
function network_info_view(connect_status)
{
//已连接
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";
}
}
// 更新模组信息
function update()
{
//获取选中的AT串口
var at_port=modem_select.options[modem_select.selectedIndex].value;
//获取模组信息
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "modem", "get_modem_info")%>', {"port":at_port},
function(x, data)
{
console.log(data);
var modem_info=data["modem_info"];
var translation=data["translation"];
// 设备信息
var device_info=modem_info["device_info"];
set_info(device_info);
// 更多信息
var more_info=modem_info["more_info"];
//基本信息
var base_info=more_info["base_info"];
set_info(base_info);
//基本信息界面控制
base_info_view(base_info["manufacturer"]);
//未适配模组
if (base_info["manufacturer"]=="unknown") {
return
}
//SIM卡信息
var sim_info=more_info["sim_info"];
set_sim_info(sim_info,translation);
//SIM卡信息显示控制
var sim_status=sim_info[0]["SIM Status"];
sim_info_view(sim_status,device_info["connect_status"]);
//SIM卡未插入或SIM卡被锁定
if (sim_status!="ready"||device_info["connect_status"]!="connect") {
return
}
//网络信息
var network_info=more_info["network_info"];
set_network_info(network_info,translation);
//小区信息
var cell_info=more_info["cell_info"];
set_cell_info(cell_info,translation);
//网络信息和小区信息界面显示控制
network_info_view(device_info["connect_status"]);
}
);
}
// 设置AT串口选项
function set_at_port(at_ports,translation)
{
//获取模块选择框元素
var modem_select = document.getElementById('modem_select');
// 记录所选
var selected=modem_select.value;
// 删除原来的选项
modem_select.options.length=0;
//遍历每一个AT串口
for (var port of at_ports)
{
//更新(key:AT串口,value:模块名称)
for (var key in port)
{
var option = document.createElement('option');
option.value = key;
var language=navigator.language;
if (port[key].includes("unknown"))
{
option.text = translation[port[key]];
}
else
{
option.text = port[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;
}
}
}
// 定时触发更新AT串口和模组数据
XHR.poll(5,'<%=luci.dispatcher.build_url("admin", "network", "modem", "get_at_port")%>', null,
function(x, data)
{
var at_ports=data["at_ports"];
var translation=data["translation"];
//设置AT串口选项
set_at_port(at_ports,translation);
//更新模组信息
if (Object.keys(at_ports).length==0)
{
no_modems_view();
}
else
{
update();
}
}
);
//无模组界面
function no_modems_view()
{
// 更新提示信息
document.getElementById("info_message").innerHTML='<strong><%:No modems found%></strong> <a href="https://blog.siriling.com:81/2023/03/18/openwrt-5g-modem/#zi-dong-sao-miao-shi-bie-gong-neng" target="_blank"><%:(Check the reason)%></a>';
// 显示提示信息
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";
}
//]]>
</script>
<div class="cbi-map" id="cbi-modem">
<h2 name="content"><%:Modem Information%></h2>
<div class="cbi-map-descr"><%:Check the information of the adapted modem%></div>
<fieldset class="cbi-section" id="cbi-info" style="display: block;">
<div class="cbi-section fade-in">
<h3><%:Message%></h3>
<table class="table">
<tbody id="message">
<tr class="tr">
<td class="td left">
<div id="info_message">
<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>"/>
<%:Loading modem information%>...
</div>
</td>
<td class="td left"></td>
</tr>
</tbody>
</table>
</div>
</fieldset>
<fieldset class="cbi-section" id="cbi-baseinfo" style="display: none;">
<div class="cbi-section fade-in">
<h3><%:Base Information%></h3>
<table class="table" id="base_info">
<tbody>
<tr class="tr">
<td class="td left"><%:Modem Name%></td>
<td class="td left" id="modem_name">
<select name="modem_select" id="modem_select"></select>
</td>
</tr>
<tr class="tr"><td class="td left"><%:Manufacturer%></td><td class="td left" id="manufacturer"></td></tr>
<tr class="tr"><td class="td left"><%:Revision%></td><td class="td left" id="revision"></td></tr>
<tr class="tr"><td class="td left"><%:Data Interface%></td><td class="td left" id="data_interface"></td></tr>
<tr class="tr"><td class="td left"><%:Network Driver%></td><td class="td left" id="net_driver"></td></tr>
<tr class="tr"><td class="td left"><%:Mode%></td><td class="td left" id="mode"></td></tr>
<tr class="tr"><td class="td left"><%:AT Port%></td><td class="td left" id="at_port"></td></tr>
<tr class="tr"><td class="td left"><%:Mobile Network%></td><td class="td left" id="network"></td></tr>
<tr class="tr"><td class="td left"><%:Temperature%></td><td class="td left" id="temperature"></td></tr>
<tr class="tr"><td class="td left"><%:Update Time%></td><td class="td left" id="update_time"></td></tr>
</tbody>
</table>
</div>
</fieldset>
<% if nosms == 0 then %>
<% end %>
<fieldset class="cbi-section" id="cbi-siminfo" style="display: none;">
<div class="cbi-section fade-in">
<h3><%:SIM Information%></h3>
<table class="table" id="sim_info"></table>
</div>
</fieldset>
<fieldset class="cbi-section" id="cbi-networkinfo" style="display: none;">
<div class="cbi-section fade-in">
<h3><%:Network Information%></h3>
<table id="network_info" class="table"></table>
</div>
</fieldset>
<fieldset class="cbi-section" id="cbi-cellinfo" style="display: none;">
<div class="cbi-section fade-in">
<h3><%:Cell Information%></h3>
<table class="table" id="cell_info"></table>
</div>
</fieldset>
<!-- <fieldset class="cbi-section" id="cbi-stationinfo" style="display: none;">
<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="channel"></td><td></td></tr>
<tr><td width="20%"><%:PCI 物理小区标识 : %></td><td id="pci"></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>
</fieldset> -->
<% if havegps == 1 then %>
<!-- <fieldset class="cbi-section" id="cbi-gpsinfo">
<h3><%:GPS 定位%></h3>
<table>
<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 %>
</div>
<%+footer%>