initial push

This commit is contained in:
2023-03-02 17:44:00 +01:00
commit 7a22aa3f7d
25 changed files with 3303 additions and 0 deletions

461
t1/base.js Normal file
View File

@@ -0,0 +1,461 @@
$(document).ready(function() {
initSessionStorage()
populateUIFromSessionStorage()
// Sets the proper fixture name in the header and title
var fixturename = "Robin T1 Wash - Simulated";
$('#pth').html(fixturename)
$(document).prop('title', fixturename)
//handle settins modal
$(document).on('click','#scfg',function() {
$('#m-t').html('Site settings');
var h = '<h3>Password settings</h3>';
h += c_txt('opswd','Old password','Please put old password (four digits)','','password');
h += c_txt('npswd','New password','Please put new password (four digits)','','password');
h += c_txt('npsch','New password check','New passwords check failed','','password');
h += c_btn('Reset demo values', 'btnresetdemo', ' btnresetdemo')
$('#m-b').html(h);
$('.sb').unbind();
$('#cfg-modal').modal();
$('.sb').bind('click',function() {
loader(1);
setTimeout(function() {
close_modal();
loader(0);
}, 500);
});
});
// handle reset demo values
$(document).on('click','.btnresetdemo',function() {
$('.sb').html('OK')
sessionStorage.clear()
initSessionStorage()
populateUIFromSessionStorage()
showCustomModal('Cleared', 'Simulated page reset to default settings.')
});
});
// custom modal
function showCustomModal(title, text) {
loader(0)
$('#m-t').html(title);
var h = '<h3>' + text +'</h3>';
$('#m-b').html(h);
$('.sb').unbind();
$('#cfg-modal').modal();
$('.sb').bind('click',function() {
close_modal()
});
}
// turns loader animation on or off (0 or 1)
function loader(a) {
if (a) $('#cfg-modal .modal-header img').addClass('loader');
else $('#cfg-modal .modal-header img').removeClass('loader');
}
// called on modal saves
function do_ajax(p_url,p_data) {
loader(1)
// convert p_data to an Object
const data_object = {}
p_data.toString().split('&').forEach(element => {
var kvp = element.split('=');
data_object[kvp[0]] = kvp[1]
});
p_data = data_object
switch (p_url) {
case '/reset_hours':
if (p_data.rh == 0) {
sessionStorage.setItem('hr0', '0')
} else if (p_data.rh == 1){
sessionStorage.setItem('hr1', '0')
} else if (p_data.rh == 3){
sessionStorage.setItem('hr3', sessionStorage.getItem('h3'))
}
break;
case '/reset_temps':
if (p_data.rt == 0) {
sessionStorage.setItem('tmr0', sessionStorage.getItem('t0'))
} else if (p_data.rt == 3){
sessionStorage.setItem('tmr3', sessionStorage.getItem('t3'))
} else if (p_data.rt == 2){
sessionStorage.setItem('tmr2', sessionStorage.getItem('t2'))
}
break;
case '/ltemps':
if (p_data.rlt == 0) {
sessionStorage.setItem('ltmr0', sessionStorage.getItem('lt0'))
} else if (p_data.rlt == 1){
sessionStorage.setItem('ltmr1', sessionStorage.getItem('lt1'))
} else if (p_data.rlt == 2){
sessionStorage.setItem('ltmr2', sessionStorage.getItem('lt2'))
}
break;
default:
for (const [key, value] of Object.entries(p_data)) {
sessionStorage.setItem(key, value)
if (key == 'tmpu') {
if (value == 0) {
sessionStorage.setItem('tu', 'C')
} else if (value == 1) {
sessionStorage.setItem('tu', 'F')
}
}
}
break;
}
populateUIFromSessionStorage()
loader(0)
close_modal()
}
// closes the currently open modal
function close_modal() {
loader(0)
setTimeout(function() {
$('#m-b').empty();
$('#cfg-modal').modal('hide');
},500);
}
// fills modals with form values
function copy_form_values(dir) {
$('#m-b input:text, #m-b input[type=range]').each(function() {
var id = $(this).attr('id');
if (dir == 0) $('#' + id + '_v').html($('#' + id).val());
else $('#' + id).val($('#' + id + '_v').html());
});
$('#m-b select').each(function() {
var id = $(this).attr('id');
text = $('#' + id + '_v').html();
if (dir == 1) {
$(this).find('option').filter(function () { return $(this).html() == text; }).attr('selected', 'selected');
} else {
$('#' + id + '_v').html($(this).find('option:selected').html());
}
});
$('#m-b input:radio').each(function() {
var id = $(this).attr('name');
text = $('#' + id + '_v').html();
label = $(this).parent().find('label').html();
if (dir == 1) {
if (label == text) $(this).attr('checked','checked');
} else {
if ($(this).is(':checked')) $('#' + id + '_v').html(label);
}
});
if (dir == 1) {
$('#m-b div.form-group').each(function() {
var len = $(this).find('div.invalid-feedback').length;
if (len == 0) {
$(this).append('<div class="invalid-feedback">Wrong value!</div>');
}
});
}
}
// creates a parameter-like url format from an array
function serialize_parameters(p) {
var s = '';
for (var i in p) {
var o = p[i];
if (i == 0) s += o + '=';
else s += '&' + o + '=';
if ($('#' + o).val() != undefined) s += $('#' + o).val();
else if ($('input[name=' + o + ']:checked').val() != undefined) s += $('input[name=' + o + ']:checked').val();
}
return s;
}
// returns txt field
function c_txt(input_id,label,e,form_div_class = '',input_text = 'text') {
var html = '<div class="form-group' + form_div_class + '">';
html += '<label for="' + input_id + '" class="col-form-label">' + label + '</label>';
html += '<input type="'+ input_text +'" class="form-control" id="' + input_id + '">';
html += e.length > 0 ? '<div class="invalid-feedback">' + e + '</div>' : '';
html += '</div>';
return html;
}
// returns btn field
function c_btn(text, btnvalue, btnclass) {
return '<button class="btn btn-primary btn-block' + btnclass + '" value="' + btnvalue + '">' + text + '</button>';
}
// returns select field
function c_opt(n,t,o,pl,vp,lp,e) {
var html = '<div class="form-group">';
html += '<label for="' + n + '" class="col-form-label">' + t + '</label>';
html += '<select class="form-control" id="' + n + '">';
var l = o.length;
var li = l;
if (l == 1) li = o[0];
for (i = 0; i < li; i++) {
if (l == 1) html += '<option value="' + (i + vp) + '">'+ pl + (i + lp) + '</option>';
else html += '<option value="' + (i + vp) + '">'+ o[i] + '</option>';
}
html += '</select>';
html += e.length > 0 ? '<div class="invalid-feedback">' + e + '</div>' : '';
html += '</div>';
return html;
}
// returns radio field
function c_rad(n,t,r,e,c) {
var html = '<div class="form-group' + c + '">';
html += '<legend class="col-form-label">' + t + '</legend>';
for (i = 0; i < r.length; i++) {
html += '<div class="form-check form-check-inline">';
html += '<input class="form-check-input" type="radio" name="' + n + '" value="' + i + '" id="' + n + (i + 1) + '">';
html += '<label class="form-check-label" for="' + n + (i + 1) + '">' + r[i] + '</label>';
html += '</div>';
}
html += e.length > 0 ? '<div class="invalid-feedback">' + e + '</div>' : '';
html += '</div>';
return html;
}
// add leading zeros to single digit hours, minutes, etc...
function addLeadingZeros(num) {
return String(num).padStart(2, '0');
}
function initSessionStorage() {
var currentTime = new Date();
if (sessionStorage.getItem('dmxa') == null) {
/* CONSTANTS */
sessionStorage.setItem('ip', '2.246.16.203') // ip addr
sessionStorage.setItem('mac', '00:00:00:00:00:00') //
sessionStorage.setItem('rdmu', '52:53:00:00:00:00') //
/* VARIABLES */
sessionStorage.setItem('dmxa', '1') // dmx addr
sessionStorage.setItem('dmxp', '2') // dmx mode
sessionStorage.setItem('dmxi', '0') // input (wired0 wireless1 wirelessout2)
sessionStorage.setItem('rdmn', 'Robin T1 Wash') // rdm name
sessionStorage.setItem('bldmc', '0') // blackout dmc
sessionStorage.setItem('blptm', '0') // blackout pt
sessionStorage.setItem('dty', currentTime.getFullYear()) // date year
sessionStorage.setItem('dtmo', addLeadingZeros(currentTime.getMonth() + 1)) // date month
sessionStorage.setItem('dtd', addLeadingZeros(currentTime.getDay())) // date day
sessionStorage.setItem('dth', addLeadingZeros(currentTime.getHours())) // time hour
sessionStorage.setItem('dtmi', addLeadingZeros(currentTime.getMinutes())) // time minute
sessionStorage.setItem('dts', addLeadingZeros(currentTime.getSeconds())) // time seconds
sessionStorage.setItem('emod', '0') //ethmode 0dis 1art 2gma1 3gma2 4sacn
sessionStorage.setItem('ee2d', '0') //eth to dmx
sessionStorage.setItem('eanu', '0') //art uni
sessionStorage.setItem('emau', '1') //ma uni
sessionStorage.setItem('emas', '1') //ma session
sessionStorage.setItem('esau', '1') //sacn uni
sessionStorage.setItem('dint', '9') //disp int
sessionStorage.setItem('dsd', '0') //disp screensave
sessionStorage.setItem('dtl', '0') //disp lock
sessionStorage.setItem('dor', '2') //disp orientation 0norm 1inv 2auto
sessionStorage.setItem('mics', '9') // mic sens
sessionStorage.setItem('them', '0') // theatre mode
sessionStorage.setItem('fannl', '0') // fan noise level percent
sessionStorage.setItem('frq', '4928') // cpulse frequency, use frq_s to calculate. 4928 = 600.0000Hz
sessionStorage.setItem('fanm', '0') // fanmode 0auto 1high
sessionStorage.setItem('tmpu', '0') //temp unit 0c 1f
sessionStorage.setItem('tu', 'C') // temp unit string
sessionStorage.setItem('pr', '0') // pan rev
sessionStorage.setItem('ptf', '1') // pt feedback
sessionStorage.setItem('pte', '1') // pt EMS
sessionStorage.setItem('tr', '0') // tilt rev
sessionStorage.setItem('ptm', '0') // pt mode 0speed 1time
sessionStorage.setItem('ccalm', '1') // col cal mode
sessionStorage.setItem('cmixm', '0') // color mix mode 0rgb 1cmy
sessionStorage.setItem('chrwh', '0') // chromatic white
sessionStorage.setItem('cdimc', '1') //dim curve 0linear 1squarelaw
sessionStorage.setItem('thefs', '0') //tungsten dimming 0off 1_750 2_1000 3_1200 4_2000 5_2500
sessionStorage.setItem('h0', '1206') // power on time
sessionStorage.setItem('hr0', '1206') // resetable
sessionStorage.setItem('h1', '213') // leds on time
sessionStorage.setItem('hr1', '213') // resetable
sessionStorage.setItem('h3', '300') // airfilters
sessionStorage.setItem('hr3', '45') // resetable
sessionStorage.setItem('t0', '28') // led brd top now
sessionStorage.setItem('tm0', '62') // max
sessionStorage.setItem('tmr0', '62') // resetable
sessionStorage.setItem('t3', '26') // led brd bottom now
sessionStorage.setItem('tm3', '64') // max
sessionStorage.setItem('tmr3', '64') // resetable
sessionStorage.setItem('t2', '25') // base now
sessionStorage.setItem('tm2', '56') // max
sessionStorage.setItem('tmr2', '56') // resetable
sessionStorage.setItem('lt0', '22.3') // red amber now
sessionStorage.setItem('ltm0', '53') // max
sessionStorage.setItem('ltmr0', '53') // resetable
sessionStorage.setItem('lt1', '22.9') // green yellow now
sessionStorage.setItem('ltm1', '67') // max
sessionStorage.setItem('ltmr1', '67') // resetable
sessionStorage.setItem('lt2', '23.1') // blue now
sessionStorage.setItem('ltm2', '65') // max
sessionStorage.setItem('ltmr2', '65') // resetable
}
}
function populateUIFromSessionStorage() {
for (var i = 0; i < sessionStorage.length; i++) {
var valueToLoad = '';
switch (sessionStorage.key(i)) {
case 'dmxp':
var valueToLoad = "Mode " + (parseInt(sessionStorage.getItem(sessionStorage.key(i))) + 1)
break;
case 'dmxi':
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
var valueToLoad = "wired"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
var valueToLoad = "wireless"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 2) {
var valueToLoad = "wireless XLR out"
}
break;
case 'bldmc':
case 'blptm':
case 'ee2d':
case 'them':
case 'pr':
case 'tr':
case 'ptf':
case 'pte':
case 'ccalm':
case 'chrwh':
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
var valueToLoad = "off"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
var valueToLoad = "on"
}
break;
case 'emod':
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
var valueToLoad = "disable"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
var valueToLoad = "ArtNet"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 2) {
var valueToLoad = "gMA1"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 3) {
var valueToLoad = "gMA2"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 4) {
var valueToLoad = "sACN"
}
break;
case 'dint':
case 'mics':
var valueToLoad = (parseInt(sessionStorage.getItem(sessionStorage.key(i))) + 1)
break;
case 'dsd':
case 'dtl':
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
var valueToLoad = "off"
} else {
var valueToLoad = (parseInt(sessionStorage.getItem(sessionStorage.key(i))) + " min")
}
break;
case 'dor':
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
var valueToLoad = "normal"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
var valueToLoad = "inverted"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 2) {
var valueToLoad = "auto"
}
break;
case 'fanm':
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
var valueToLoad = "auto"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
var valueToLoad = "high"
}
break;
case 'tmpu':
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
var valueToLoad = "°C"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
var valueToLoad = "°F"
}
break;
case 'ptm':
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
var valueToLoad = "speed"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
var valueToLoad = "time"
}
break;
case 'cmixm':
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
var valueToLoad = "rgb"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
var valueToLoad = "cmy"
}
break;
case 'thefs':
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
var valueToLoad = "off"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
var valueToLoad = "750 W"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 2) {
var valueToLoad = "1000 W"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 3) {
var valueToLoad = "1200 W"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 4) {
var valueToLoad = "2000 W"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 5) {
var valueToLoad = "2500 W"
}
break;
case 'cdimc':
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
var valueToLoad = "linear"
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
var valueToLoad = "square law"
}
break;
default:
var valueToLoad = sessionStorage.getItem(sessionStorage.key(i))
break;
}
$("#" + sessionStorage.key(i) + "_v").html(valueToLoad)
// for each element with id tu_v sets html to string of temp unit
$('div[id^="tu_v"]').html(sessionStorage.getItem('tu'))
}
}

98
t1/discovery.html Normal file
View File

@@ -0,0 +1,98 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; 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">Robin T1 Wash</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"><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 active"><a class="nav-link" href="./discovery.html">Discovery</a>
</li>
<li class="nav-item"><a class="nav-link" id="scfg">Settings</a></li>
<li class="nav-item"><a class="nav-link" 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">Robin T1 Wash</div>
<div class="container in">
<h1>Discovery</h1>
<div class="row" id="boxes">
<div class="col-12">
<div class="clearfix">
<div class="float-left pt02"><input type="checkbox" id="w-ot"><label for="w-ot" class="pl04"> Move
devices with warning to top</label></div><button class="btn btn-primary float-right"
id="scan">Discover (0)</button>
</div>
<div class="table-responsive">
<table class="table mt-2" id="d-t">
<thead id="dmax">
<tr>
<th><i class="as"></i><i class="ab"></i> Device</th>
<th><i></i><i class="ab"></i> DMX address</th>
<th><i></i><i class="ab"></i> DMX preset</th>
<th><i></i><i class="ab"></i> RDM UID</th>
<th><i></i><i class="ab"></i> IP address</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody id="scd">
<tr>
<td>Robin T1 Wash</td>
<td>100</td>
<td>Mode 3</td>
<td>52:53:00:00:00</td>
<td><a href="">2.146.200.16</a></td>
</tr>
<tr>
<td>Robin EspriTE</td>
<td>200</td>
<td>Mode 1</td>
<td>52:53:00:00:00</td>
<td><a href="">2.146.12.146</a></td>
</tr>
<tr>
<td>Robin T2 Profile</td>
<td>300</td>
<td>Mode 3</td>
<td>52:53:00:00:00</td>
<td><a href="">2.146.28.123</a></td>
</tr>
</tbody>
</table>
</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>
</body>
</html>

320
t1/index.html Normal file
View File

@@ -0,0 +1,320 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; 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">Robin T1 Wash</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"><a class="nav-link" href="./discovery.html">Discovery</a></li>
<li class="nav-item"><a class="nav-link" id="scfg">Settings</a></li>
<li class="nav-item"><a class="nav-link" 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">Robin T1 Wash</div>
<div class="container 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"></div>
</li>
<li>
<div id="dmxp_v"></div>
</li>
<li>
<div id="dmxi_v"></div>
</li>
<li class="mt-2">
<div id="ip_v"></div>
</li>
<li>
<div id="mac_v"></div>
</li>
<li class="mt-2">
<div id="rdmu_v"></div>
</li>
<li>
<div id="rdmn_v"></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>
<li>LEDs on time</li>
<li>Air filters</li>
</ul>
<ul class="group vals" id="">
<li>
<div id="h0_v"></div>
h /
<div id="hr0_v"></div>
h
</li>
<li>
<div id="h1_v"></div>
h /
<div id="hr1_v"></div>
h
</li>
<li>
<div id="h3_v"></div>
h /
<div id="hr3_v"></div>
h
</li>
</ul>
<p><small>total / resetable</small></p>
</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 board top</li>
<li>LEDs board bottom</li>
<li>Base</li>
<li>Red/Amber leds</li>
<li>Green/Yellow leds</li>
<li>Blue led</li>
</ul>
<ul class="group vals" id="">
<li>
<div id="t0_v"></div>
°
<div class="tu" id="tu_v"></div>
/
<div id="tm0_v"></div>
°
<div class="tu" id="tu_v"></div>
/
<div id="tmr0_v"></div>
°
<div class="tu" id="tu_v"></div>
</li>
<li>
<div id="t3_v"></div>
°
<div class="tu" id="tu_v"></div>
/
<div id="tm3_v"></div>
°
<div class="tu" id="tu_v"></div>
/
<div id="tmr3_v"></div>
°
<div class="tu" id="tu_v"></div>
</li>
<li>
<div id="t2_v"></div>
°
<div class="tu" id="tu_v"></div>
/
<div id="tm2_v"></div>
°
<div class="tu" id="tu_v"></div>
/
<div id="tmr2_v"></div>
°
<div class="tu" id="tu_v"></div>
</li>
<li>
<div id="lt0_v"></div>
°
<div class="tu" id="tu_v"></div>
/
<div id="ltm0_v"></div>
°
<div class="tu" id="tu_v"></div>
/
<div id="ltmr0_v"></div>
°
<div class="tu" id="tu_v"></div>
</li>
<li>
<div id="lt1_v"></div>
°
<div class="tu" id="tu_v"></div>
/
<div id="ltm1_v"></div>
°
<div class="tu" id="tu_v"></div>
/
<div id="ltmr1_v"></div>
°
<div class="tu" id="tu_v"></div>
</li>
<li>
<div id="lt2_v"></div>
°
<div class="tu" id="tu_v"></div>
/
<div id="ltm2_v"></div>
°
<div class="tu" id="tu_v"></div>
/
<div id="ltmr2_v"></div>
°
<div class="tu" id="tu_v"></div>
</li>
</ul>
<p><small>current / maximum / resetable</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">not installed</div>
</li>
<li>
<div id="lws_v">...</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 L3</li>
<li>Module O</li>
<li>Module F-A</li>
<li>Module SC</li>
</ul>
<ul class="group vals" id="sw_vers">
<li>2.2</li>
<li>1.3</li>
<li>2.0</li>
<li>1.4</li>
<li>1.4</li>
<li>2.3</li>
<li>1.1</li>
<li>1.1</li>
</ul>
</div>
</div>
<div class="col-12 box-c">
<h2 id="sta_err">Status messages</h2>
<div class="box">
<li> This is a simulated REAP™ page for demo purposes. Some content might be different on real fixtures.</li>
<li>Big thanks to Vincent BOUQUET for creating this simulator.</li>
</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;
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', [3], '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');
h += c_btn('LEDs on time reset', 1, ' rh')
h += c_btn('Air filters reset', 3, ' rh')
} else if (a_m == 2) {
h += c_btn('Led board top temperature reset', 0, ' rt');
h += c_btn('Led board bottom temperature reset', 3, ' rt');
h += c_btn('Base temperature reset', 2, ' rt');
h += c_btn('Red/Amber temperature reset', 0, ' rlt');
h += c_btn('Green/Yellow temperature reset', 1, ' rlt');
h += c_btn('Blue temperature reset', 2, ' rlt')
} 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', serialize_parameters(par))
});
$('.rh').bind('click', function() {
loader(1);
do_ajax('/reset_hours', "rh=" + this.value)
});
$('.rt').bind('click', function() {
loader(1);
do_ajax('/reset_temps', "rt=" + this.value)
});
$('.rlt').bind('click', function() {
loader(1);
do_ajax('/ltemps', "rlt=" + this.value)
});
$('.lwu').bind('click', function() {
// on unlink wireless module
loader(1)
close_modal()
})
}
</script>
</body>
</html>

412
t1/logs.html Normal file
View File

@@ -0,0 +1,412 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; 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">Robin T1 Wash</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"><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 active"><a class="nav-link" href="./logs.html">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" id="scfg">Settings</a></li>
<li class="nav-item"><a class="nav-link" 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">Robin T1 Wash</div>
<div class="container in">
<h1>Device logs</h1>
<div class="row" id="boxes">
<div class="col-12 box-c">
<h2 id="sta_err"><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse"
data-target="#lfb"><i class="blue"></i></button> Logs filter<a class="cfg"
onclick="cfgm();"><img src="../files/settings.svg"></a></h2>
<div class="box collapse clearfix" id="lfb">
<h3><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse"
data-target="#f_me"><i></i></button> Mechanical errors<div class="fall"><input
type="checkbox" id="f_me_p"> all must pass</div>
</h3>
<div class="collapse" id="f_me">
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_0" value="0"><label class="form-check-label" for="fe_0">Pan error</label></div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_1" value="1"><label class="form-check-label" for="fe_1">Tilt error</label></div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_2" value="2"><label class="form-check-label" for="fe_2">Focus error</label></div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_3" value="3"><label class="form-check-label" for="fe_3">Zoom error</label></div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_4" value="4"><label class="form-check-label" for="fe_4">BD. Rotation
error</label></div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_5" value="5"><label class="form-check-label" for="fe_5">BD. 1 error</label></div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_6" value="6"><label class="form-check-label" for="fe_6">BD. 2 error</label></div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_7" value="7"><label class="form-check-label" for="fe_7">BD. 3 error</label></div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_8" value="8"><label class="form-check-label" for="fe_8">BD. 4 error</label></div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_9" value="9"><label class="form-check-label" for="fe_9">Scrim error</label></div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_10" value="10"><label class="form-check-label" for="fe_10">Scrim Rot.
error</label></div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_11" value="11"><label class="form-check-label" for="fe_11">Frost 1 error</label>
</div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_12" value="12"><label class="form-check-label" for="fe_12">Frost 2 error</label>
</div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_13" value="13"><label class="form-check-label" for="fe_13">Leds error</label>
</div>
</div>
<h3><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse"
data-target="#f_se"><i></i></button> System errors<div class="fall"><input type="checkbox"
id="f_se_p"> all must pass</div>
</h3>
<div class="collapse" id="f_se">
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_14" value="0"><label class="form-check-label" for="fe_14">Fans failure</label>
</div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_15" value="2"><label class="form-check-label" for="fe_15">Powerdown mode</label>
</div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_16" value="6"><label class="form-check-label" for="fe_16">Temperature sensor
error</label></div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_17" value="8"><label class="form-check-label" for="fe_17">Eeprom error</label>
</div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_18" value="9"><label class="form-check-label" for="fe_18">Recharge the
battery</label></div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_19" value="10"><label class="form-check-label" for="fe_19">Battery faulty.
replace it</label></div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_20" value="11"><label class="form-check-label" for="fe_20">Pan/tilt EMS cal.
error</label></div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_21" value="12"><label class="form-check-label" for="fe_21">Pan/tilt EMS
error</label></div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_22" value="13"><label class="form-check-label" for="fe_22">Internal error
1</label></div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_23" value="14"><label class="form-check-label" for="fe_23">Internal error
2</label></div>
</div>
<h3><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse"
data-target="#f_sst"><i></i></button> Statuses<div class="fall"><input type="checkbox"
id="f_sst_p"> all must pass</div>
</h3>
<div class="collapse" id="f_sst">
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_24" value="0"><label class="form-check-label" for="fe_24">Power on</label></div>
<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input"
id="fe_25" value="3"><label class="form-check-label" for="fe_25">Power off</label></div>
</div>
<h3><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse"
data-target="#f_te"><i></i></button> Temperatures<div class="fall"><input type="checkbox"
id="f_te_p"> all must pass</div>
</h3>
<div class="collapse" id="f_te">
<div class="form-row">
<div class="form-group col-auto"><label class="col-form-label" id="tl0" for="fts0">LEDs
board 1</label></div>
<div class="form-group col-auto"><select class="form-control" id="fts0">
<option value="0">-</option>
<option value="1">&lt;=</option>
<option value="2">&gt;=</option>
</select></div>
<div class="form-group col-auto"><input type="text" class="form-control" size="5" id="ftv0">
</div>
<div class="form-group col-auto"><label class="col-form-label" for="ftv0">°<span
class="tu" id="tu_v">C</span></label></div>
</div>
<div class="form-row">
<div class="form-group col-auto"><label class="col-form-label" id="tl1"
for="fts1">Ambient</label></div>
<div class="form-group col-auto"><select class="form-control" id="fts1">
<option value="0">-</option>
<option value="1">&lt;=</option>
<option value="2">&gt;=</option>
</select></div>
<div class="form-group col-auto"><input type="text" class="form-control" size="5" id="ftv1">
</div>
<div class="form-group col-auto"><label class="col-form-label" for="ftv1">°<span
class="tu" id="tu_v">C</span></label></div>
</div>
<div class="form-row">
<div class="form-group col-auto"><label class="col-form-label" id="tl2"
for="fts2">Base</label></div>
<div class="form-group col-auto"><select class="form-control" id="fts2">
<option value="0">-</option>
<option value="1">&lt;=</option>
<option value="2">&gt;=</option>
</select></div>
<div class="form-group col-auto"><input type="text" class="form-control" size="5" id="ftv2">
</div>
<div class="form-group col-auto"><label class="col-form-label" for="ftv2">°<span
class="tu" id="tu_v">C</span></label></div>
</div>
<div class="form-row">
<div class="form-group col-auto"><label class="col-form-label" id="tl3" for="fts3">LEDs
board 2</label></div>
<div class="form-group col-auto"><select class="form-control" id="fts3">
<option value="0">-</option>
<option value="1">&lt;=</option>
<option value="2">&gt;=</option>
</select></div>
<div class="form-group col-auto"><input type="text" class="form-control" size="5" id="ftv3">
</div>
<div class="form-group col-auto"><label class="col-form-label" for="ftv3">°<span
class="tu" id="tu_v">C</span></label></div>
</div>
</div>
<h3><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse"
data-target="#f_dt"><i></i></button> Start date/time</h3>
<div class="collapse" id="f_dt">
<div class="form-row">
<div class="form-group col-auto"><label for="fsd" class="col-form-label">Date</label></div>
<div class="form-group col-auto"><input type="date" class="form-control" id="fsd" step="1">
</div>
<div class="form-group col-auto"><label for="fst" class="col-form-label">Time</label></div>
<div class="form-group col-auto"><input type="time" class="form-control" id="fst" step="1">
</div>
</div>
</div>
<h3><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse"
data-target="#f_cfg"><i></i></button> Sorting,filter pass</h3>
<div class="collapse" id="f_cfg">
<div class="form-row">
<div class="form-group col-auto"><label class="col-form-label" for="fso">Sorting</label>
</div>
<div class="form-group col-auto"><select class="form-control" id="fso">
<option value="0">descending</option>
<option value="1">ascending</option>
</select></div>
<div class="form-group col-auto"><label class="col-form-label" for="fpas">Filter
pass</label></div>
<div class="form-group col-auto"><select class="form-control" id="fpas">
<option value="0">single groups</option>
<option value="1">all groups</option>
</select></div>
</div>
</div>
<div id="ferr"></div>
<div class="float-right"><button type="button" class="btn btn-primary mr06" id="fap">Apply
filter</button><button type="button" class="btn btn-primary" id="fcl">Clear filter</button>
</div>
</div>
</div>
</div>
<div class="row" id="logs">
<div class="col-md-6 box-c log">
<h2>Log 13.05.2022 11:07:53</h2>
<div class="box">
<div class="lse">
<h3>Statuses</h3>Power Off
</div>
<div>
<h3>Temperatures</h3>
<ul class="group">
<li>LEDs board 1</li>
<li class="">Ambient</li>
<li>Base</li>
<li>LEDs board 2</li>
</ul>
<ul class="group vals">
<li class="">31°C</li>
<li class="">25°C</li>
<li class="">27°C</li>
<li class="">32°C</li>
</ul>
<h3>Display orientation</h3>Side Bottom
</div>
</div>
</div>
<div class="col-md-6 box-c log">
<h2>Log 13.05.2022 11:08:41</h2>
<div class="box">
<div class="lse">
<h3>Statuses</h3>Power On
</div>
<div>
<h3>Temperatures</h3>
<ul class="group">
<li class="">LEDs board 1</li>
<li class="">Ambient</li>
<li>Base</li>
<li class="">LEDs board 2</li>
</ul>
<ul class="group vals">
<li class="">27°C</li>
<li class="">31°C</li>
<li class="">25°C</li>
<li class="">28°C</li>
</ul>
<h3>Display orientation</h3>Side Bottom
</div>
</div>
</div>
<div class="col-md-6 box-c log">
<h2>Log 13.05.2022 11:08:46</h2>
<div class="box">
<div>
<h3>Temperatures</h3>
<ul class="group">
<li class="">LEDs board 1</li>
<li class="">Ambient</li>
<li>Base</li>
<li class="">LEDs board 2</li>
</ul>
<ul class="group vals">
<li class="">31°C</li>
<li class="">35°C</li>
<li class="">26°C</li>
<li class="">24°C</li>
</ul>
<h3>Display orientation</h3>Side Bottom
</div>
</div>
</div>
<div class="col-md-6 box-c log">
<h2>Log 13.05.2022 11:04:49</h2>
<div class="box">
<div>
<h3>Temperatures</h3>
<ul class="group">
<li class="">LEDs board 1</li>
<li class="">Ambient</li>
<li>Base</li>
<li class="">LEDs board 2</li>
</ul>
<ul class="group vals">
<li class="">29°C</li>
<li class="">22°C</li>
<li class="">22°C</li>
<li class="">35°C</li>
</ul>
<h3>Display orientation</h3>Side Bottom
</div>
</div>
</div>
</div>
<div class="text-center" id="nxtl"><button class="btn btn-primary nlb"><strong>+</strong></button></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 lfn = 'data';
// CREATES MODAL FOR LOG TOOLS
function cfgm() {
$('#m-t').html('Logs tools');
$('#m-f').empty();
$('.sb').unbind();
var tl = c_btn('Download log file', 0, ' dlog');
tl += c_btn('Start DMX sniff', 0, ' ddmx');
$('#m-b').html(tl);
$('#cfg-modal').modal();
$('.dlog').bind('click', function () {
close_modal()
});
$('.ddmx').bind('click', function () {
close_modal()
})
}
function lfix(l) {
return l.charAt(0).toUpperCase() + l.slice(1).toLowerCase().replace('ems', 'EMS')
}
function c_chb(id, t, v, ch) {
var html =
'<div class="form-check form-check-inline"><input type="checkbox" class="form-check-input" id="' + id +
'" value="' + v + '"' + ch + '>';
html += '<label class="form-check-label" for="' + id + '">' + t + '</label></div>';
return html
}
function c_tit(id, t, e, c, p) {
var html =
'<h3><button class="btn btn-primary btn-pm" type="button" data-toggle="collapse" data-target="#' + id +
'"><i></i></button>';
html += ' ' + t;
if (p) html += '<div class="fall"><input type="checkbox" id="' + id + '_p"> all must pass</div>';
html += '</h3>';
html += '<div class="collapse' + c + '" id="' + id + '">';
if (e) html += '</div>';
return html
}
function c_ftmp(i, t) {
var html = '';
html += '<div class="form-row">';
html += '<div class="form-group col-auto"><label class="col-form-label" id="tl' + i + '" for="fts' + i +
'">' + t + '</label></div>';
html += '<div class="form-group col-auto"><select class="form-control" id="fts' + i + '">';
html += '<option value="0">-</option><option value="1">&lt;=</option><option value="2">&gt;=</option>';
html += '</select></div>';
html += '<div class="form-group col-auto"><input type="text" class="form-control" size="5" id="ftv' + i +
'"></div>';
html += '<div class="form-group col-auto"><label class="col-form-label" for="ftv' + i +
'">&deg;<span class="tu" id="tu_v"></span></label></div>';
html += '</div>';
return html
}
function c_dt(n, t, e, c, it) {
var html = '<div class="form-group' + c + '">';
html += '<label for="' + n + '" class="col-form-label">' + t + '</label>';
html += '</div><div class="form-group' + c + '">';
html += '<input type="' + it + '" class="form-control" id="' + n + '" step="1">';
html += e.length > 0 ? '<div class="invalid-feedback">' + e + '</div>' : '';
html += '</div>';
return html
}
function c_sil(id, t, o) {
var html = '<div class="form-group col-auto"><label class="col-form-label" for="' + id + '">' + t +
'</label></div>';
html += '<div class="form-group col-auto"><select class="form-control" id="' + id + '">';
for (i = 0; i < o.length; i++) {
html += '<option value="' + i + '">' + o[i] + '</option>'
}
html += '</select></div>';
return html
}
</script>
</body>
</html>

465
t1/personality.html Normal file
View File

@@ -0,0 +1,465 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; 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">Robin T1 Wash</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"><a class="nav-link" href="./index.html">Status</a></li>
<li class="nav-item active"><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"><a class="nav-link" href="./discovery.html">Discovery</a>
</li>
<li class="nav-item"><a class="nav-link" id="scfg">Settings</a></li>
<li class="nav-item"><a class="nav-link" 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">Robin T1 Wash</div>
<div class="container in">
<h1>Personality</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>RDM label</li>
</ul>
<ul class="group vals" id="">
<li>
<div id="dmxa_v">1</div>
</li>
<li>
<div id="dmxp_v">Mode 3</div>
</li>
<li>
<div id="dmxi_v">wired</div>
</li>
<li>
<div id="rdmn_v">Robin T1 Wash</div>
</li>
</ul>
</div>
</div>
<div class="col-md-6 col-xl-4 box-c">
<h2>Ethernet settings<a class="cfg" onclick="open_modal(1);"><img
src="../files/settings.svg"></a></h2>
<div class="box">
<ul class="group">
<li>Ethernet mode</li>
<li>Ethernet to DMX</li>
<li>ArtNet universe</li>
<li>MANet I/II universe</li>
<li>MaNet session ID</li>
<li>sACN universe</li>
</ul>
<ul class="group vals" id="">
<li>
<div id="emod_v">disable</div>
</li>
<li>
<div id="ee2d_v">off</div>
</li>
<li>
<div id="eanu_v">0</div>
</li>
<li>
<div id="emau_v">1</div>
</li>
<li>
<div id="emas_v">1</div>
</li>
<li>
<div id="esau_v">1</div>
</li>
</ul>
</div>
</div>
<div class="col-md-6 col-xl-4 box-c">
<h2>Pan/Tilt settings<a class="cfg" onclick="open_modal(2);"><img
src="../files/settings.svg"></a></h2>
<div class="box">
<ul class="group">
<li>Pan reverse</li>
<li>Tilt reverse</li>
<li>Pan/Tilt feedback</li>
<li>Pan/Tilt mode</li>
<li>Pan/Tilt EMS</li>
</ul>
<ul class="group vals" id="">
<li>
<div id="pr_v">off</div>
</li>
<li>
<div id="tr_v">off</div>
</li>
<li>
<div id="ptf_v">on</div>
</li>
<li>
<div id="ptm_v">speed</div>
</li>
<li>
<div id="pte_v">on</div>
</li>
</ul>
</div>
</div>
<div class="col-md-6 col-xl-4 box-c">
<h2>Blackout settings<a class="cfg" onclick="open_modal(3);"><img
src="../files/settings.svg"></a></h2>
<div class="box">
<ul class="group">
<li>Blackout DMC</li>
</ul>
<ul class="group vals" id="">
<li>
<div id="bldmc_v">off</div>
</li>
</ul>
<h3>Active blackout while</h3>
<ul class="group">
<li>Pan/Tilt moving</li>
</ul>
<ul class="group vals" id="">
<li>
<div id="blptm_v">off</div>
</li>
</ul>
</div>
</div>
<div class="col-md-6 col-xl-4 box-c">
<h2>Screen settings<a class="cfg" onclick="open_modal(4);"><img
src="../files/settings.svg"></a></h2>
<div class="box">
<ul class="group">
<li>Display intensity</li>
<li>Screensaver delay</li>
<li>Touchscreen lock</li>
<li>Display orientation</li>
</ul>
<ul class="group vals" id="">
<li>
<div id="dint_v">10</div>
</li>
<li>
<div id="dsd_v">5 min</div>
</li>
<li>
<div id="dtl_v">off</div>
</li>
<li>
<div id="dor_v">auto</div>
</li>
</ul>
</div>
</div>
<div class="col-md-6 col-xl-4 box-c">
<h2>Color settings<a class="cfg" onclick="open_modal(7);"><img
src="../files/settings.svg"></a></h2>
<div class="box">
<ul class="group">
<li>Colour calibration mode</li>
<li>Colour mixing mode</li>
<li>Chromatic white</li>
<li>Thungsten effect simulation</li>
<li>Dimmer curve</li>
</ul>
<ul class="group vals" id="">
<li>
<div id="ccalm_v">on</div>
</li>
<li>
<div id="cmixm_v">cmy</div>
</li>
<li>
<div id="chrwh_v">off</div>
</li>
<li>
<div id="thefs_v">off</div>
</li>
<li>
<div id="cdimc_v">square law</div>
</li>
</ul>
</div>
</div>
<div class="col-md-6 col-xl-4 box-c">
<h2>Date &amp; time settings<a class="cfg" onclick="open_modal(5);"><img
src="../files/settings.svg"></a></h2>
<div class="box">
<ul class="group">
<li>Date</li>
<li>Time</li>
</ul>
<ul class="group vals" id="">
<li>
<div id="dtd_v">13</div>.<div id="dtmo_v">05</div>.<div id="dty_v">2022</div>
</li>
<li>
<div id="dth_v">11</div>:<div id="dtmi_v">09</div>:<div id="dts_v">21</div>
</li>
</ul>
</div>
</div>
<div class="col-md-6 col-xl-4 box-c">
<h2>Other settings<a class="cfg" onclick="open_modal(6);"><img
src="../files/settings.svg"></a></h2>
<div class="box">
<ul class="group">
<li>Microphone sensitivity</li>
<li>Theatre mode</li>
<li>Frequency (Hz)</li>
<li>Fan mode</li>
<li>Temperature unit</li>
</ul>
<ul class="group vals" id="">
<li>
<div id="mics_v">10</div>
</li>
<li>
<div id="them_v">off</div>
<div id="themq" class="pl03 dn" style="display: none;">(<div id="fannl_v">0</div>%)</div>
</li>
<li>
<div id="frqs_v">600.0000</div>
</li>
<li>
<div id="fanm_v">auto</div>
</li>
<li>
<div id="tmpu_v">°C</div>
</li>
</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', 'Ethernet settings', 'Pan/Tilt settings', 'Blackout settings', 'Screen settings',
'Date & time settings', 'Other settings', 'Color settings', 'Lamp settings',
];
var addrs = ['set_dmx', 'eth_s', 'pt_s', 'bl_s', 'dis_s', 'ldt_s', 'oth_s', 'col_s', 'lamp_s', ];
var params = [
['dmxa', 'dmxp', 'dmxi', 'rdmn'],
['emod', 'ee2d', 'eanu', 'emau', 'emas', 'esau'],
['pr', 'tr', 'ptf', 'ptm', 'pte'],
['bldmc', 'blptm', 'blprm', 'blgwm', 'bltim'],
['dint', 'dsd', 'dtl', 'dor'],
['dtd', 'dtmo', 'dty', 'dth', 'dtmi', 'dts'],
['mics', 'fanm', 'tmpu', 'them', 'cpm', 'fannl', 'fsmo', 'btns', 'freq', 'freqa'],
['ccri', 'cdimc', 'hpwrm', 'ccalm', 'cmixm', 'chrwh', 'thefs', 'whip83z'],
['lonof', 'lpwr', 'ligde', 'llise', 'lonpon', 'lofvd', 'londp', 'lofdm'],
];
var frq = 0;
function open_modal(i) {
a_m = i;
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>');
var off_on_l = ['off', 'on'];
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', [3], '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_rad('emod', 'Ethernet mode', ['disable', 'ArtNet', 'gMA1', 'gMA2', 'sACN'], '', '');
h += c_rad('ee2d', 'Ethernet to DMX', off_on_l, '', '');
h += c_txt('eanu', 'ArtNet universe', 'Please put ArtNet universe from 0 to 255');
h += c_txt('emau', 'MANet I/II universe',
'Please put MANet I/II universe from 1 to 256 (64 for MANet I)');
h += c_txt('emas', 'MANet session ID', 'Please put MANet session ID from 1 to 32');
h += c_txt('esau', 'sACN universe', 'Please put sACN universe from 1 to 32000')
} else if (a_m == 2) {
h += '<div class="row">';
h += c_rad('pr', 'Pan reverse', off_on_l, '', ' col-6');
h += c_rad('tr', 'Tilt reverse', off_on_l, '', ' col-6');
h += c_rad('ptf', 'Pan/Tilt feedback', off_on_l, '', ' col-6');
h += c_rad('ptm', 'Pan/Tilt Mode', ['speed', 'time'], '', ' col-6');
h += c_rad('pte', 'Pan/Titl EMS', off_on_l, '', ' col-6');
h += '</div>'
} else if (a_m == 3) {
h += c_rad('bldmc', 'Blackout DMC', off_on_l, '', '');
h += '<h3>Active blackout while</h3>';
h += c_rad('blptm', 'Pan/Tilt moving', off_on_l, '', '')
} else if (a_m == 4) {
h += c_opt('dint', 'Display intensity', [10], '', 0, 1, '');
var dsd_dtl_l = ['off', '1 min', '2 min', '3 min', '4 min', '5 min', '6 min', '7 min', '8 min', '9 min',
'10 min'
];
h += c_opt('dsd', 'Screensaver delay', dsd_dtl_l, '', 0, 0, '');
h += c_opt('dtl', 'Touchscreen lock', dsd_dtl_l, '', 0, 0, '');
h += c_rad('dor', 'Display orientation', ['normal', 'inverted', 'auto'], '')
} else if (a_m == 5) {
h += '<div class="row">';
h += c_txt('dtd', 'Day', '', ' col-4');
h += c_txt('dtmo', 'Month', '', ' col-4');
h += c_txt('dty', 'Year', '', ' col-4');
h += c_txt('dth', 'Hour', '', ' col-4');
h += c_txt('dtmi', 'Minute', '', ' col-4');
h += c_txt('dts', 'Second', '', ' col-4');
h += '</div>';
h += '<button class="btn btn-primary btn-block uldt">Use local date & time</button>'
} else if (a_m == 6) {
h += c_opt('mics', 'Microphone sensitivity', [20], '', 0, 1, '');
h += c_rad('them', 'Theatre mode', ['off', 'quiet'], '', '');
h += '<div class="form-group" id="fannl_fg">';
h += '<label for="fannl" class="col-form-label">Fan noise level</label>';
h += '<div class="row">';
h +=
'<div class="col-9 col-sm-10"><input type="range" min="0" max="100" class="form-control" id="fannl"></div>';
h += '<div class="col-3 col-sm-2 mt06 text-right">100%</div>';
h += '</div>';
h += '</div>';
h += c_rad('frqs', 'Frequency setup (Hz)', ['300', '600', '1200', '2400'], '', '');
h += '<div class="form-group">';
h += '<label for="frqa" class="col-form-label">Frequency Adjust</label>';
h += '<div class="row">';
h +=
'<div class="col-7 col-sm-8"><input type="range" min="0" max="1663" class="form-control" id="frqa"></div>';
h += '<div class="col-5 col-sm-4 mt06 text-right" id="frq_bv"></div>';
h += '</div>';
h += '</div>';
h += c_rad('fanm', 'Fan mode', ['auto', 'high'], '', '');
h += c_rad('tmpu', 'Temperature unit', ['&deg;C', '&deg;F'], '', '')
} else if (a_m == 7) {
h += '<div class="row">';
h += c_rad('ccalm', 'Colour calibration mode', off_on_l, '', ' col-6');
h += c_rad('cmixm', 'Colour mixing mode', ['rgb', 'cmy'], '', ' col-6');
h += c_rad('chrwh', 'Chromatic white', off_on_l, '', ' col-12');
h += c_rad('thefs', 'Thungsten effect simulation', ['off', '750 W', '1000 W', '1200 W', '2000 W',
'2500 W'
], '', ' col-12');
h += c_rad('cdimc', 'Dimmer curve', ['linear', 'square law'], '', ' col-6')
} else if (a_m == 8) {
h += c_rad('lonof', 'Lamp status', off_on_l, '', '');
h += '<div class="form-group" id="ligde_fg">';
h += '<label for="ligde" class="col-form-label">Lamp ignition delay</label>';
h += '<div class="row">';
h +=
'<div class="col-9 col-sm-10"><input type="range" min="0" max="90" class="form-control" id="ligde"></div>';
h += '<div class="col-3 col-sm-2 mt06 text-right"></div>';
h += '</div>';
h += '</div>';
h += '<div class="row">';
h += c_rad('llise', 'Lamp light sensor', off_on_l, '', ' col-6');
h += c_rad('lonpon', 'Lamp on power on', off_on_l, '', ' col-6');
h += c_rad('lofvd', 'Lamp off via DMX', off_on_l, '', ' col-6');
h += c_rad('londp', 'Lamp on if DMX present', off_on_l, '', ' col-6');
h += c_rad('lofdm', 'Lamp off if DMX missing', off_on_l, '', ' col-6');
h += '</div>'
}
$('#m-b').html(h);
$('#m-f').show();
copy_form_values(1);
if (a_m == 8) {
if ($('#ligde_v').html() == 'off') {
$('#ligde').val(0)
}
}
$('#cfg-modal').modal();
$('.sb').bind('click', function () {
loader(1);
var p_add = '';
if (a_m == 6) {
p_add = '&frq=' + frq
}
do_ajax(addrs[a_m], serialize_parameters(params[a_m]) + p_add)
});
if (a_m == 5) {
$('.uldt').bind('click', function () {
var date = new Date();
$('#dtd').val(date.getDate());
$('#dtmo').val(date.getMonth() + 1);
$('#dty').val(date.getFullYear());
$('#dth').val(('0' + date.getHours()).slice(-2));
$('#dtmi').val(('0' + date.getMinutes()).slice(-2));
$('#dts').val(('0' + date.getSeconds()).slice(-2))
})
} else if (a_m == 6) {
$('#fannl').on('input change', function () {
$(this).parent().next().html($(this).val() + '%')
});
$('#fannl').change();
$('input[name=them]').on('change', function () {
if ($('input[name=them]:checked').val() == 1) $('#fannl_fg').show();
else $('#fannl_fg').hide()
});
$('input[name=them]').change();
$('input[name=frqs]').eq(frq >> 12).attr('checked', 'checked');
$('#frqa').val(frq & 0xfff);
$('input[name=frqs]').on('change', function () {
frq = $('input[name=frqs]:checked').val() << 12;
frq |= 0x340;
$('#frqa').val(0x340);
$('#frq_bv').html(frq_s(frq) + ' Hz')
});
$('#frqa').on('input change', function () {
frq &= 0xf000;
frq |= $('#frqa').val();
$('#frq_bv').html(frq_s(frq) + ' Hz')
});
$('#frqa').change()
} else if (a_m == 8) {
$('#ligde').on('input change', function () {
var o = $(this).parent().next();
if ($(this).val() == 0) o.html('off');
else o.html($(this).val() + 's')
});
$('#ligde').change()
}
}
function frq_s(frq) {
var f = 360000000000;
var k = (0x700) - (frq & 0xfff);
var arr = 465 + ((k >> 8) & 0x0f);
var x = k & 0xff;
f = f * (1 << (frq >> 12)) / (arr * (256 - x) + (arr + 1) * (x));
return Math.floor(f / 10000) + '.' + ('0000' + Math.floor(f % 10000)).slice(-4)
}
</script>
</body>
</html>