404 lines
18 KiB
HTML
404 lines
18 KiB
HTML
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
|
||
<link rel="stylesheet" href="../files/bootstrap.min.css">
|
||
<link rel="stylesheet" href="../files/layout.css">
|
||
<script src="../files/jquery-3.3.1.min.js"></script>
|
||
<script src="../files/popper.min.js"></script>
|
||
<script src="../files/bootstrap.min.js"></script>
|
||
<script src="./base.js"></script>
|
||
<title id="pt_v">iForte</title>
|
||
</head>
|
||
<body>
|
||
<nav class="navbar fixed-top navbar-expand-md navbar-dark bg-dark">
|
||
<div class="container">
|
||
<a class="navbar-brand" href="./index.html">
|
||
<img src="../files/robe_logo_white.svg">
|
||
</a>
|
||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar">
|
||
<span class="navbar-toggler-icon"></span>
|
||
</button>
|
||
<div class="collapse navbar-collapse" id="navbar">
|
||
<ul class="navbar-nav mr-auto">
|
||
<li class="nav-item active">
|
||
<a class="nav-link" href="./index.html">Status</a>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="./personality.html">Personality</a>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="./logs.html">Logs</a>
|
||
</li>
|
||
<li class="nav-item snz">
|
||
<a class="nav-link" href="./sensors.html">RAINS logs</a>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="./discovery.html">Discovery</a>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="#" id="scfg">Settings</a>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="#" id="idnt">
|
||
<img class="rdmi" src="../files/identify.svg">
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
<div class="fixed-top text-center device-label" id="pth">iForte</div>
|
||
<div class="container-fluid in">
|
||
<h1>Device status</h1>
|
||
<div class="row" id="boxes">
|
||
<div class="col-md-6 col-xl-4 box-c">
|
||
<h2>DMX/RDM settings <a class="cfg" onclick="open_modal(0);">
|
||
<img src="../files/settings.svg">
|
||
</a>
|
||
</h2>
|
||
<div class="box">
|
||
<ul class="group">
|
||
<li>DMX address</li>
|
||
<li>DMX preset</li>
|
||
<li>DMX input</li>
|
||
<li class="mt-2">IP address</li>
|
||
<li>MAC address</li>
|
||
<li class="mt-2">RDM UID</li>
|
||
<li>RDM label</li>
|
||
</ul>
|
||
<ul class="group vals" id="">
|
||
<li>
|
||
<div id="dmxa_v">350</div>
|
||
</li>
|
||
<li>
|
||
<div id="dmxp_v">Mode 1</div>
|
||
<small id="dmxf_v">(54 channels)</small>
|
||
</li>
|
||
<li>
|
||
<div id="dmxi_v">wired</div>
|
||
</li>
|
||
<li class="mt-2">
|
||
<div id="ip_v">2.247.136.14</div>
|
||
</li>
|
||
<li>
|
||
<div id="mac_v">00:0d:19:06:88:0e</div>
|
||
</li>
|
||
<li class="mt-2">
|
||
<div id="rdmu_v">52:53:01:2c:00:0e</div>
|
||
</li>
|
||
<li>
|
||
<div id="rdmn_v">iForte</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="col-md-6 col-xl-4 box-c">
|
||
<h2>Device times <a class="cfg" onclick="open_modal(1);">
|
||
<img src="../files/settings.svg">
|
||
</a>
|
||
</h2>
|
||
<div class="box">
|
||
<ul class="group">
|
||
<li>Power on time</li>
|
||
</ul>
|
||
<ul class="group vals" id="">
|
||
<li>
|
||
<div id="h0_v">164</div>h / <div id="hr0_v">161</div>h
|
||
</li>
|
||
</ul>
|
||
<p>
|
||
<small>total / resettable</small>
|
||
</p>
|
||
<ul class="group">
|
||
<li>LED on time total</li>
|
||
<li>LED on time adaptive</li>
|
||
</ul>
|
||
<ul class="group vals">
|
||
<li>
|
||
<div id="h1_v">21</div>h
|
||
</li>
|
||
<li>
|
||
<div id="hr1_v">19</div>h
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="col-md-6 col-xl-4 box-c">
|
||
<h2>Device temperatures <a class="cfg" onclick="open_modal(2);">
|
||
<img src="../files/settings.svg">
|
||
</a>
|
||
</h2>
|
||
<div class="box">
|
||
<ul class="group">
|
||
<li>LEDs</li>
|
||
<li>PSU</li>
|
||
<li>Driver</li>
|
||
<li>Base</li>
|
||
</ul>
|
||
<ul class="group vals" id="">
|
||
<li>
|
||
<div id="t0_v">34</div>° <div class="tu">C</div> / <div id="tm0_v">65</div>° <div class="tu">C</div> / <div id="tmr0_v">65</div>° <div class="tu">C</div>
|
||
</li>
|
||
<li>
|
||
<div id="t3_v">36</div>° <div class="tu">C</div> / <div id="tm3_v">65</div>° <div class="tu">C</div> / <div id="tmr3_v">65</div>° <div class="tu">C</div>
|
||
</li>
|
||
<li>
|
||
<div id="t1_v">49</div>° <div class="tu">C</div> / <div id="tm1_v">97</div>° <div class="tu">C</div> / <div id="tmr1_v">97</div>° <div class="tu">C</div>
|
||
</li>
|
||
<li>
|
||
<div id="t2_v">34</div>° <div class="tu">C</div> / <div id="tm2_v">59</div>° <div class="tu">C</div> / <div id="tmr2_v">59</div>° <div class="tu">C</div>
|
||
</li>
|
||
</ul>
|
||
<p>
|
||
<small>current / maximum / resettable</small>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div class="col-md-6 col-xl-4 box-c">
|
||
<h2>Wireless state <a class="cfg" onclick="open_modal(3);">
|
||
<img src="../files/settings.svg">
|
||
</a>
|
||
</h2>
|
||
<div class="box">
|
||
<ul class="group">
|
||
<li>State</li>
|
||
<li>Signal strength</li>
|
||
</ul>
|
||
<ul class="group vals" id="">
|
||
<li>
|
||
<div id="lwc_v">linked</div>
|
||
</li>
|
||
<li>
|
||
<div id="lws_v">0.0%</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="col-md-6 col-xl-4 box-c">
|
||
<h2>Software versions</h2>
|
||
<div class="box">
|
||
<ul class="group">
|
||
<li>Display System</li>
|
||
<li>Module M</li>
|
||
<li>Module L1</li>
|
||
<li>Module L2</li>
|
||
<li>Module O</li>
|
||
<li>Module F-A</li>
|
||
<li>Module F-B</li>
|
||
<li>Module G1</li>
|
||
<li>Module G2</li>
|
||
<li>Module P</li>
|
||
<li>Module C1</li>
|
||
<li>Module C2</li>
|
||
<li>Module DL</li>
|
||
</ul>
|
||
<ul class="group vals" id="sw_vers">
|
||
<li>1.9</li>
|
||
<li>1.4</li>
|
||
<li>1.6</li>
|
||
<li>1.5</li>
|
||
<li>1.3</li>
|
||
<li>1.1</li>
|
||
<li>1.1</li>
|
||
<li>1.5</li>
|
||
<li>1.5</li>
|
||
<li>1.2</li>
|
||
<li>1.2</li>
|
||
<li>1.2</li>
|
||
<li>1.2</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="col-md-6 col-xl-4 box-c">
|
||
<h2>Device state</h2>
|
||
<div class="box">
|
||
<ul class="group">
|
||
<li>Device status</li>
|
||
</ul>
|
||
<ul class="group vals" id="">
|
||
<li>
|
||
<div id="devs_v">active</div>
|
||
</li>
|
||
</ul>
|
||
<button class="btn btn-primary btn-block esm dn btn-success" value="0" style="display: inline-block;">Enter standby mode</button>
|
||
<div>Current RAINS status</div>
|
||
<div>
|
||
<small class="fl">WET</small>
|
||
<small class="fr">DRY</small>
|
||
</div>
|
||
<div id="rai" class="rains">
|
||
<div style="width: 63%;"></div>
|
||
</div>
|
||
<div>MAX WET/resettable</div>
|
||
<div>
|
||
<small class="fl">WET</small>
|
||
<small class="fr">DRY</small>
|
||
</div>
|
||
<div id="rair" class="rains">
|
||
<div style="width: 63%;"></div>
|
||
</div>
|
||
<button class="btn btn-primary btn-block mwr" value="0">MAX WET reset</button>
|
||
<p>
|
||
<small id="wrt">last reset: 2.3.2023 16:19:57</small>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div class="col-12 box-c">
|
||
<h2 id="sta_err">Status messages</h2>
|
||
<div class="box">
|
||
<ul class="group" id="err_v"></ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div id="cfg-modal" class="modal fade" tabindex="-1" role="dialog">
|
||
<div class="modal-dialog" role="document">
|
||
<div class="modal-content">
|
||
<div class="modal-header">
|
||
<img src="../files/settings.svg">
|
||
<h5 class="modal-title" id="m-t"></h5>
|
||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||
<span aria-hidden="true">×</span>
|
||
</button>
|
||
</div>
|
||
<div class="modal-body" id="m-b"></div>
|
||
<div class="modal-footer" id="m-f">
|
||
<button type="button" class="btn btn-primary sb">Save</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<script>
|
||
var a_m = -1;
|
||
var m_t = ['DMX/RDM settings', 'Reset timers', 'Reset temperatures', 'Wireless settings', ];
|
||
|
||
function open_modal(i) {
|
||
a_m = i;
|
||
mhdr_status('');
|
||
if (a_m < m_t.length) {
|
||
$('#m-t').html(m_t[a_m])
|
||
}
|
||
$('.sb').unbind();
|
||
$('#m-f').empty();
|
||
$('#m-f').append(' < button type = "button"
|
||
class = "btn btn-primary sb" > Save < /button>');if(a_m==0) $('#m-f').show();else $('#m-f').hide();var h='';if(a_m==0){h+=c_txt('dmxa','DMX address','Please put DMX address from 1 to 512');h+=c_opt('dmxp','DMX preset',[1],'Mode ',0,1,'');h+=c_opt('dmxi','DMX input',['wired','wireless','wireless XLR out'],'',0,1,'Can not set wireless input now!');h+=c_txt('rdmn','RDM label','Please insert label,max 32 characters')} else if(a_m==1){h+=c_btn('Power on time reset',0,' rh')} else if(a_m==2){h+=c_btn('LEDs temperature reset',0,' rt');h+=c_btn('PSU temperature reset',3,' rt');h+=c_btn('Driver temperature reset',1,' rt');h+=c_btn('Base temperature reset',2,' rt')} else if(a_m==3){h+=c_btn('Unlink Wireless module',0,' lwu')}$('#m-b').html(h);copy_form_values(1);$('#cfg-modal').modal();$('.sb').bind('click',function(){loader(1);var par=['dmxa','dmxp','dmxi','rdmn'];do_ajax('/set_dmx
|
||
',pv(par),function (json){if(json){if(json['
|
||
status ']==0){mhdr_status('
|
||
suc ');copy_form_values(0);if(a_m==0){console.log(json['
|
||
dmxf ']);fill_values(json,['
|
||
dmxf '])}ptit(json['
|
||
pt ']);close_modal()}show_errors(json['
|
||
status '],par);loader(0)}})});$('.rh ').bind('
|
||
click ',function(){loader(1);do_ajax(' / reset_hours ',{index:$(this).attr('
|
||
value ')},function (json){if(json){mhdr_status('
|
||
suc ');fill_values(json,['
|
||
hr0 ','
|
||
hr1 ','
|
||
hr2 ','
|
||
hr3 '])}loader(0)})});$('.rt ').bind('
|
||
click ',function(){loader(1);do_ajax(' / reset_temps ',{index:$(this).attr('
|
||
value ')},function (json){if(json){mhdr_status('
|
||
suc ');fill_values(json,['
|
||
tmr0 ','
|
||
tmr1 ','
|
||
tmr2 '])}loader(0)})});$('.lwu ').bind('
|
||
click ',function(){loader(1);do_ajax(' / lwm ',{unlink:1},function (json){if(json){fill_values(json,['
|
||
lwc ','
|
||
lws ']);mhdr_status('
|
||
suc ');close_modal()}loader(0)})})}$(document).ready(function(){$('
|
||
h1 ').html('
|
||
Device status ');var boxes='
|
||
';boxes+=box(m_t[0],0,[['
|
||
',['
|
||
DMX address; dmxa ','
|
||
DMX preset; dmxp; < li > < div id = "dmxp_v" > - < /div> < small id = "dmxf_v" > < /small> < /li>','DMX input;dmxi',' < li class = "mt-2" > IP address < /li>;;; < li class = "mt-2" > < div id = "ip_v" > - < /div> < /li>','MAC address;mac',' < li class = "mt-2" > RDM UID < /li>;;; < li class = "mt-2" > < div id = "rdmu_v" > - < /div> < /li>','RDM label;rdmn',]],]);var lot_ta='';lot_ta=' < ul class = "group" > < li > LED on time total < /li> < li > LED on time adaptive < /li> < /ul>',lot_ta+=' < ul class = "group vals" > < li > < div id = "h1_v" > - < /div>h < /li> < li > < div id = "hr1_v" > - < /div>h < /li> < /ul>',boxes+=box('Device times',1,[['',[' < li > Power on time < /li>;;; < li > < div id = "h0_v" > - < /div>h / < div id = "hr0_v" > - < /div>h < /li>',]],],' < p > < small > total / resettable < /small> < /p>'+lot_ta);boxes+=box('Device temperatures',2,[['',[' < li > LEDs < /li>;;; < li > < div id = "t0_v" > - < /div>&DG < div class = "tu" > < /div> / < div id = "tm0_v" > - < /div>&DG < div class = "tu" > < /div> / < div id = "tmr0_v" > - < /div>&DG < div class = "tu" > < /div> < /li>',' < li > PSU < /li>;;; < li > < div id = "t3_v" > - < /div>&DG < div class = "tu" > < /div> / < div id = "tm3_v" > - < /div>&DG < div class = "tu" > < /div> / < div id = "tmr3_v" > - < /div>&DG < div class = "tu" > < /div> < /li>',' < li > Driver < /li>;;; < li > < div id = "t1_v" > - < /div>&DG < div class = "tu" > < /div> / < div id = "tm1_v" > - < /div>&DG < div class = "tu" > < /div> / < div id = "tmr1_v" > - < /div>&DG < div class = "tu" > < /div> < /li>',' < li > Base < /li>;;; < li > < div id = "t2_v" > - < /div>&DG < div class = "tu" > < /div> / < div id = "tm2_v" > - < /div>&DG < div class = "tu" > < /div> / < div id = "tmr2_v" > - < /div>&DG < div class = "tu" > < /div> < /li>',]],],' < p > < small > current / maximum / resettable < /small> < /p>');boxes+=box('Wireless state',3,[['',['State;lwc','Signal strength;lws',]],]);boxes+=box('Software versions',-1,[['',['Display System','Module M','Module L1','Module L2','Module O','Module F-A','Module F-B','Module G1','Module G2','Module P','Module C1','Module C2','Module DL',]],],'','sw_vers');boxes+=box('Device state',-1,[['',['Device status;devs',]],],c_btn('',0,' esm dn')+' < div > Current RAINS status < /div> < div > < small class = "fl" > WET < /small> < small class = "fr" > DRY < /small> < /div> < div id = "rai"
|
||
class = "rains" > < div > < /div> < /div> < div > MAX WET / resettable < /div> < div > < small class = "fl" > WET < /small> < small class = "fr" > DRY < /small> < /div> < div id = "rair"
|
||
class = "rains" > < div > < /div> < /div>'+c_btn('MAX WET reset',0,' mwr')+' < p > < small id = "wrt" > < /small> < /p>');boxes+=' < div class = "col-12 box-c" > ';boxes+=' < h2 id = "sta_err" > Status messages < /h2>';boxes+=' < div class = "box" > ';boxes+=' < ul class = "group"
|
||
id = "err_v" > ';boxes+=' < /ul>';boxes+=' < /div>';boxes+=' < /div>';$('#boxes').html(boxes);var emb=$('button.esm');emb.addClass('btn-success');function ems_btn(v){if(v==0){emb.removeClass('sa btn-warning').html('Enter standby mode').show()} else {emb.addClass('sa btn-warning').html('Escape standby mode').show()}}emb.click(function(){var run=true;var s_v=(emb.hasClass('sa') ? 0:1);if((s_v==1)&&!confirm('Are you sure you want to enter standby mode?')) run=false;if(run){do_ajax('/sbm
|
||
',{s:s_v},function (json){ems_btn(json['
|
||
sm ']);fill_values(json,['
|
||
devs '])})}});var bussy=0;function do_5s(){bussy|=(1< < 0);
|
||
do_ajax('/lwm', {}, function(json) {
|
||
if (json) {
|
||
fill_values(json, ['lwc', 'lws'])
|
||
}
|
||
bussy &= ~(1 < < 0)
|
||
});
|
||
bussy |= (1 < < 1);
|
||
do_ajax('/reset_temps', {}, function(json) {
|
||
if (json) {
|
||
fill_values(json, ['t0', 't1', 't2', 't3', 'tm0', 'tm1', 'tm2', 'tm3', 'tmr0', 'tmr1', 'tmr2', 'tmr3']);
|
||
$('.tu').html(json['tu'])
|
||
}
|
||
bussy &= ~(1 < < 1)
|
||
});
|
||
bussy |= (1 < < 3);
|
||
do_ajax('/reset_hours', {}, function(json) {
|
||
if (json) {
|
||
fill_values(json, ['h0', 'h1', 'h2', 'h3', 'hr0', 'hr1', 'hr2', 'hr3'])
|
||
}
|
||
bussy &= ~(1 < < 3)
|
||
});
|
||
bussy |= (1 < < 4);
|
||
do_ajax('/devsta', {}, function(json) {
|
||
if (json) {
|
||
fill_values(json, ['devs']);
|
||
$('#rai>div').css('width', json['rains']);
|
||
$('#rair>div').css('width', json['maxw']);
|
||
$('#wrt').html('last reset: ' + json['maxwt']);
|
||
ems_btn(json['sm'])
|
||
} else {
|
||
fill_values({
|
||
devs: 'disconnected'
|
||
}, ['devs'])
|
||
}
|
||
bussy &= ~(1 < < 4)
|
||
});
|
||
bussy |= (1 < < 7);
|
||
do_ajax('/errors', {}, function(json) {
|
||
if (json) {
|
||
if (json['err']) {
|
||
if (json['err'].length) $('#sta_err').addClass('err');
|
||
else $('#sta_err').removeClass('err');
|
||
var html = '';
|
||
for (i = 0; i < json['err'].length; i++) html += ' < li > '+json['
|
||
err '][i]+' < /li>';$('#err_v').html(html)}}bussy&=~(1< < 7)
|
||
})
|
||
}
|
||
do_ajax('/status_i', {}, function(json) {
|
||
if (json) {
|
||
fill_values(json, ['dmxa', 'dmxp', 'dmxf', 'dmxi', 'pt', 'ip', 'mac', 'rdmu', 'rdmn']);
|
||
ptit(json['pt']);
|
||
$('.tu').html(json['tu'])
|
||
}
|
||
});
|
||
do_ajax('/reset_hours', {}, function(json) {
|
||
if (json) {
|
||
fill_values(json, ['h0', 'h1', 'h2', 'h3', 'hr0', 'hr1', 'hr2', 'hr3'])
|
||
}
|
||
});
|
||
do_ajax('/sw_ver', {}, function(json) {
|
||
if (json) {
|
||
$('#sw_vers li').each(function(i) {
|
||
var v = json['vers'][i];
|
||
$(this).html(v == 0 ? '-' : Math.floor(v / 10) + '.' + (v % 10))
|
||
})
|
||
}
|
||
});
|
||
do_5s();
|
||
setInterval(function() {
|
||
if (bussy == 0) do_5s()
|
||
}, 5000);
|
||
$('button.mwr').click(function() {
|
||
do_ajax('/mwres', {}, function(json) {
|
||
if (json) {
|
||
$('#rair>div').css('width', json['maxw']);
|
||
$('#wrt').html('last reset: ' + json['maxwt'])
|
||
}
|
||
})
|
||
})
|
||
});
|
||
</script>
|
||
</body>
|
||
</html> |