2023-04-01 10:00:13 +08:00

255 lines
7.8 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<title>Live Network Status</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="luci-static/bootstrap/cascade.css">
<link rel="stylesheet" media="only screen and (max-device-width: 854px)" href="luci-static/bootstrap/mobile.css" type="text/css" />
<link rel="stylesheet" href="luci-static/rooter/css/iconmoon_splash.css">
<link rel="stylesheet" href="luci-static/rooter/css/splash.css">
<link rel="SHORTCUT ICON" href="luci-static/rooter/img/favicon.gif">
<link rel="icon" type="image/gif" href="luci-static/rooter/img/favicon.gif">
</head>
<body id='rooterSplashStatus' class='rooterSplash'>
<div class='rooterPageHead'>
<div class="rooterHeadTitle">ROOter Live Network Status</div>
</div>
<div class='rooterPageContent'>
<!-- #################################################### -->
<script src="luci-static/material/js/jquery.min.js"></script>
<script language="javascript">
$( document ).ready(function() {
var def_interval = 100;
/* https://forums.whirlpool.net.au/archive/2473085 */
var levels ={};
levels.per =[101, 85, 70, 55, 40, 25, 10];
levels.rssi =[0, -75, -90, -100, -109, -113];
levels.rscp =[-50, -70, -90, -100, -112, -136, -140];
levels.csq =[-1000];
levels.ecio =[-1000];
var names ={};
names.per =['Perfect', 'Excellent', 'Good', 'Medium', 'Low', 'Bad', 'Dead'];
names.rssi =['High', 'Medium', 'Poor', 'Bad', 'None'];
names.rscp =['High (3G) :High (4G)', 'Medium (3G) : High (4G)', 'Poor (3G) : Good (4G)', 'Weak (3G) : Medium (4G)', 'None (3G) : Poor (4G)', 'None'];
var loginWarning=$('#warn_login');
var counterDiv =$('#counter_val');
var prefixDiv =$('#counter_prefix');
loginWarning.hide();
/* -------------------------------------------- */
var prefix ='';
var last_data ='';
var last_changed=UnixEpoch();
var interval = def_interval;
function doAjax() {
var url='/cgi-bin/luci/admin/modem/get_csq?' ;
url = url + 'luci_username=' + $('#luci_username').val() + '&luci_password=' + $('#luci_password').val() + '&';
url = url + 't=' + Date.now();
var tmp;
$.ajax({
type: 'GET',
url: url,
data: $(this).serialize(),
dataType: 'json',
success: function (data) {
loginWarning.hide();
interval=def_interval;
$.each( data, function( key, val ) {
tmp=val.replace(/\([^\)]+\) /g,'');
tmp=tmp.replace(/Bandwidth /g,'');
tmp=tmp.replace(/ dBm?/g,'');
tmp=tmp.replace(/%/g,'');
tmp=tmp.trim();
tmp=SetLevel(tmp,key);
$("#msCell_"+key+" > span").html(tmp);
});
tmp=data.per+';'+data.rssi+';'+data.csq+';'+data.ecio+';'+data.rscp+';'+data.rnc+';'+data.cid+';'+data.channel+';'+data.lband;
if(last_data != tmp){
last_data =tmp;
last_changed=UnixEpoch();
}
prefix='since';
if(data.per == '-' ){
prefix='Connecting... ';
}
},
statusCode: {
403: function() {
loginWarning.show();
interval=def_interval * 3;
UpdateCounter();
}
},
complete: function (data) {
UpdateCounter();
setTimeout(doAjax, interval);
}
});
}
setTimeout(doAjax, interval);
/* -------------------------------------------- */
function UpdateCounter(){
prefixDiv.html(prefix);
var count=(UnixEpoch() - last_changed) / 10;
counterDiv.html( count.toFixed(1) );
}
/* -------------------------------------------- */
function UnixEpoch(){
return Math.round(Date.now() / 100);
}
/* -------------------------------------------- */
function SetLevel(str,key){
var desc="<br><i class='msDesc'>&nbsp;</i>";
if(key in levels){
var css="";
var val = parseInt(str, 10);
if (isNaN(val)) { val = 0 ; }
var len = levels[key].length;
for (var i = 0; i < len; i++) {
if(val < levels[key][i]){
css="level_"+i;
if(key in names){
desc="<br><i class='msDesc'>"+names[key][i]+"</i>";
}
}
}
str="<b class='"+css+"'>"+str+"</b>"+desc;
}
return str;
}
});
</script>
<noscript>
<div class="alert-message warning">
<strong><i class="icon icon-warning"></i> JavaScript required!</strong><br />
You must enable JavaScript in your browser or LuCI will not work properly.
</div>
</noscript>
<div id='warn_login' class="alert-message"><i class="icon icon-warning"></i> Enter your credentials : <input name='luci_username' id='luci_username' placeholder="user name"> <input name='luci_password' id='luci_password' type='password' placeholder="password"></div>
<div class="modemStatusBlock">
<h3><div id="counter_div" class='pull-right'><span id='counter_prefix'></span> <span id='counter_val'>0</span> sec</div>
<i class="icon icon-signal"></i> Signal</h3>
<div class='modemStatusRow modemStatusRow1'>
<div class='msCell' id='msCell_per'>
<div class='msTitle'>Strength (%)</div>
<span>-</span>
</div>
<div class='msCell' id='msCell_csq'>
<div class='msTitle'>CSQ</div>
<span>-</span>
</div>
<div class='msCell' id='msCell_rssi'>
<div class='msTitle'>RSSI (dBm)</div>
<span>-</span>
</div>
<div class='msCell' id='msCell_rscp'>
<div class='msTitle'>RSCP (dBm) RSRP</div>
<span>-</span>
</div>
<div class='msCell' id='msCell_ecio'>
<div class='msTitle'>ECIO (dB) RSRQ</div>
<span>-</span>
</div>
</div>
</div>
<div class="modemStatusBlock">
<h3><i class="icon icon-podcast"></i> Network - <span class="msCell" id='msCell_cops'><span></span></span></h3>
<div class='modemStatusRow modemStatusRow2'>
<div class='msCell' id='msCell_mode'>
<div class='msTitle'>Mode</div>
<span>-</span>
</div>
<div class='msCell' id='msCell_mcc'>
<div class='msTitle'>MCC</div>
<span>-</span>
</div>
<div class='msCell' id='msCell_mnc'>
<div class='msTitle'>MNC</div>
<span>-</span>
</div>
<div class='msCell' id='msCell_rnc'>
<div class='msTitle'>RNC/eNB ID</div>
<span>-</span> <i id='msCell_rncn'><span>-</span></i>
</div>
<div class='msCell' id='msCell_lac'>
<div class='msTitle'>LAC</div>
<span>-</span> <i id='msCell_lacn'><span>-</span></i>
</div>
<div class='msCell' id='msCell_cid'>
<div class='msTitle'>Cell ID</div>
<span>-</span>
</div>
<div class='msCell' id='msCell_channel'>
<div class='msTitle'>Channel</div>
<span>-</span>
</div>
<div class='msCell' id='msCell_lband'>
<div class='msTitle'>Bands</div>
<span>-</span>
</div>
</div>
</div>
<div class="modemStatusBlock">
<h3><i class="icon icon-plug"></i> Device - <span class="msCell" id='msCell_conntype'><span></span></span></h3>
<div class='modemStatusRow modemStatusRow2'>
<div class='msCell' id='msCell_modem'>
<div class='msTitle'>Modem</div>
<span>-</span>
</div>
<div class='msCell' id='msCell_proto'>
<div class='msTitle'>Protocol</div>
<span>-</span>
</div>
<div class='msCell' id='msCell_port'>
<div class='msTitle'>Port</div>
<span>-</span>
</div>
<div class='msCell' id='msCell_tempur'>
<div class='msTitle'>Temperature</div>
<span>-</span>
</div>
</div>
</div>
</div>
<div class='rooterPageFoot'>
<div class="rooterFootMenu">
<ul>
<li><a href="splash.html"><i class='icon icon-home'></i> Home</a> | </li>
<li><a href="status.html"><i class='icon icon-signal'></i> Status</a> | </li>
<li><a href="cgi-bin/luci/"><i class='icon icon-cog'></i> Router Login</a></li>
</ul>
</div>
<div class="rooterFootCredits">
<div><strong> M2M Wireless </strong></a><i> -- Your Wireless Connection</i></div>
</div>
</div>
</body>
</html>