Compare commits
17 Commits
1136ad52b4
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| d9ae5f8c2b | |||
| 116458feda | |||
| 238dec4050 | |||
|
|
0b8f06099a | ||
|
|
ea5680b473 | ||
|
|
c7fbc0f50c | ||
|
|
4f427eda4e | ||
|
|
b306a982de | ||
|
|
8800fc6c97 | ||
|
|
1af18ea84c | ||
|
|
e31b85246c | ||
|
|
05387f7bec | ||
|
|
df2d53dbca | ||
|
|
c61d29e0dc | ||
|
|
232b9ecf08 | ||
|
|
105a472398 | ||
|
|
c22ef45f38 |
18
deploy.ps1
Normal file
@@ -0,0 +1,18 @@
|
||||
# Define variables
|
||||
$localFolder = "./src/."
|
||||
$remoteUser = "debian"
|
||||
$remoteHost = "robe.vincent-bouquet.fr"
|
||||
$remotePath = "/var/www/html/public/reap"
|
||||
$port = 22 # Change this if your SSH server uses a different port
|
||||
|
||||
# Build the SCP commands
|
||||
$sshCommand = "ssh -p ${port} ${remoteUser}@${remoteHost} 'mkdir -p `"${remotePath}`" && sudo rm -rf `"${remotePath}/*`"'"
|
||||
$scpCommand = "scp -r -P ${port} `"${localFolder}`" ${remoteUser}@${remoteHost}:`"${remotePath}`""
|
||||
|
||||
# Execute SSH command to clean remote directory
|
||||
Write-Host "Cleaning remote directory: $remotePath"
|
||||
Invoke-Expression $sshCommand
|
||||
|
||||
# Execute the command
|
||||
Write-Host "Executing: $scpCommand"
|
||||
Invoke-Expression $scpCommand
|
||||
565
iforte/base.js
@@ -1,565 +0,0 @@
|
||||
$(document).ready(function() {
|
||||
|
||||
initSessionStorage()
|
||||
populateUIFromSessionStorage()
|
||||
|
||||
loopRainsSimulator()
|
||||
|
||||
// Sets the proper fixture name in the header and title
|
||||
var fixturename = "Robin iForte - Simulated";
|
||||
$('#pth').html(fixturename)
|
||||
$(document).prop('title', fixturename)
|
||||
|
||||
// handle RDM ident
|
||||
var idntb = $('#idnt img');
|
||||
var idnt_status = sessionStorage.getItem('iforte_idnt')
|
||||
if (idnt_status == 1) {
|
||||
idntb.addClass("a");
|
||||
}
|
||||
$('#idnt').click(function() {
|
||||
var idnt_status = sessionStorage.getItem('iforte_idnt')
|
||||
if (idnt_status == 1) {
|
||||
idntb.removeClass("a");
|
||||
sessionStorage.setItem('iforte_idnt', '0')
|
||||
} else {
|
||||
idntb.addClass("a")
|
||||
sessionStorage.setItem('iforte_idnt', '1')
|
||||
}
|
||||
});
|
||||
|
||||
//handle settings
|
||||
$(document).on('click','#scfg',function() {
|
||||
mhdr_status('');
|
||||
$('#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 += "<br><h3>Simulator</h3>";
|
||||
h += c_btn('Reset demo values', 'btnresetdemo', ' btnresetdemo');
|
||||
h += c_rad('iforte_demo_rains_age', 'RAINS tubes age', ['New', 'Average', 'Old'], '','');
|
||||
h += c_rad('iforte_demo_pressure_test', 'Pressure test', ['OK', 'Failing'], '', '');
|
||||
$('#m-b').html(h);
|
||||
$('.sb').unbind();
|
||||
copy_form_values(2);
|
||||
$('#cfg-modal').modal();
|
||||
|
||||
$('.sb').bind('click',function() {
|
||||
loader(1);
|
||||
var par = ['opswd','npswd','npsch', 'iforte_demo_rains_age','iforte_demo_pressure_test'];
|
||||
do_ajax('/set_cfg',pv(par),function (json) {
|
||||
if (json) {
|
||||
if (json['status'] == 0) {
|
||||
mhdr_status('suc');
|
||||
close_modal();
|
||||
location = '/';
|
||||
}
|
||||
show_errors(json['status'],par);
|
||||
loader(0);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// handle reset demo values
|
||||
$(document).on('click','.btnresetdemo',function() {
|
||||
$('.sb').html('OK')
|
||||
sessionStorage.clear()
|
||||
initSessionStorage()
|
||||
populateUIFromSessionStorage()
|
||||
showCustomModal('Cleared', 'Simulated page reset to default settings.')
|
||||
});
|
||||
});
|
||||
|
||||
function loopRainsSimulator() {
|
||||
|
||||
console.log("hello");
|
||||
|
||||
setTimeout(() => {
|
||||
loopRainsSimulator()
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
// 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()
|
||||
});
|
||||
}
|
||||
|
||||
function mhdr_status(c) {
|
||||
|
||||
if (c.length == 0) $('#cfg-modal .modal-header').removeClass('suc err');
|
||||
else $('#cfg-modal .modal-header').addClass(c);
|
||||
}
|
||||
|
||||
function loader(showheader) {
|
||||
if (showheader) $('#cfg-modal .modal-header img').addClass('loader');
|
||||
else $('#cfg-modal .modal-header img').removeClass('loader');
|
||||
}
|
||||
|
||||
function do_ajax(p_url,p_data,f,i = -1,a = true) {
|
||||
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('iforte_hr0', '0')
|
||||
} else if (p_data.rh == 1){
|
||||
sessionStorage.setItem('iforte_hr1', '0')
|
||||
}
|
||||
break;
|
||||
case '/reset_temps':
|
||||
if (p_data.rt == 0) {
|
||||
sessionStorage.setItem('iforte_tmr0', sessionStorage.getItem('iforte_t0'))
|
||||
} else if (p_data.rt == 3){
|
||||
sessionStorage.setItem('iforte_tmr3', sessionStorage.getItem('iforte_t3'))
|
||||
} else if (p_data.rt == 2){
|
||||
sessionStorage.setItem('iforte_tmr2', sessionStorage.getItem('iforte_t2'))
|
||||
} else if (p_data.rt == 1){
|
||||
sessionStorage.setItem('iforte_tmr1', sessionStorage.getItem('iforte_t1'))
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
for (const [key, value] of Object.entries(p_data)) {
|
||||
//sessionStorage.setItem(key, value)
|
||||
console.log("key: %o", key)
|
||||
console.log("val: %o", value)
|
||||
|
||||
if (key == 'iforte_tmpu') {
|
||||
if (value == 0) {
|
||||
sessionStorage.setItem('iforte_tu', 'C')
|
||||
} else if (value == 1) {
|
||||
sessionStorage.setItem('iforte_tu', 'F')
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
populateUIFromSessionStorage()
|
||||
loader(0)
|
||||
close_modal()
|
||||
}
|
||||
|
||||
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>');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// if opening settings window
|
||||
if (dir == 2) {
|
||||
$('input[name=iforte_demo_rains_age]').eq(sessionStorage.getItem('iforte_demo_rains_age')).attr('checked','checked');
|
||||
$('input[name=iforte_demo_pressure_test]').eq(sessionStorage.getItem('iforte_demo_pressure_test')).attr('checked','checked');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function fill_values(d,ids) {
|
||||
|
||||
for (i = 0; i < ids.length; i++) {
|
||||
$('#' + ids[i] + '_v').html(d[ids[i]]);
|
||||
}
|
||||
}
|
||||
|
||||
function show_errors(s,ids) {
|
||||
|
||||
if (s) mhdr_status('err');
|
||||
for (i = 0; i < ids.length; i++) {
|
||||
if (s & (1 << i)) $('#' + ids[i]).addClass('is-invalid').removeClass('is-valid');
|
||||
else $('#' + ids[i]).removeClass('is-invalid').addClass('is-valid');
|
||||
}
|
||||
}
|
||||
|
||||
function close_modal() {
|
||||
setTimeout(function() {
|
||||
$('#m-b').empty();
|
||||
$('#cfg-modal').modal('hide');
|
||||
},500);
|
||||
}
|
||||
|
||||
function pv(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;
|
||||
}
|
||||
|
||||
function c_txt(n,t,e,c = '',it = 'text') {
|
||||
|
||||
var html = '<div class="form-group' + c + '">';
|
||||
html += '<label for="' + n + '" class="col-form-label">' + t + '</label>';
|
||||
html += '<input type="'+ it +'" class="form-control" id="' + n + '">';
|
||||
html += e.length > 0 ? '<div class="invalid-feedback">' + e + '</div>' : '';
|
||||
html += '</div>';
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
function c_btn(t,v,c) {
|
||||
|
||||
return '<button class="btn btn-primary btn-block' + c + '" value="' + v + '">' + t + '</button>';
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
function c_rad(name,legend,options,invalid_feedback_text,group_class) {
|
||||
|
||||
var html = '<div class="form-group' + group_class + '">';
|
||||
html += '<legend class="col-form-label">' + legend + '</legend>';
|
||||
for (i = 0; i < options.length; i++) {
|
||||
html += '<div class="form-check form-check-inline">';
|
||||
html += '<input class="form-check-input" type="radio" name="' + name + '" value="' + i + '" id="' + name + (i + 1) + '">';
|
||||
html += '<label class="form-check-label" for="' + name + (i + 1) + '">' + options[i] + '</label>';
|
||||
html += '</div>';
|
||||
}
|
||||
html += invalid_feedback_text.length > 0 ? '<div class="invalid-feedback">' + invalid_feedback_text + '</div>' : '';
|
||||
html += '</div>';
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
var pre = '';
|
||||
var dmxsnf = '';
|
||||
|
||||
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_fsens(i,t,u) {
|
||||
|
||||
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">=</option><option value="2"><</option><option value="3">></option>';
|
||||
html += '<option value="4"><=</option><option value="5">>=</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 + '">' + u + '</label></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() {
|
||||
|
||||
if (sessionStorage.getItem('iforte_dmxa') == null) {
|
||||
console.log("sessionStorage empty, populating with demo data")
|
||||
var currentTime = new Date();
|
||||
|
||||
/* CONSTANTS */
|
||||
sessionStorage.setItem('iforte_ip', '2.246.16.203') // ip addr
|
||||
sessionStorage.setItem('iforte_mac', '00:00:00:00:00:00') //
|
||||
sessionStorage.setItem('iforte_rdmu', '52:53:00:00:00:00') //
|
||||
|
||||
/* DEMO */
|
||||
sessionStorage.setItem('iforte_demo_rains_age', '1') // rains tubes age 0new 1avg 2old
|
||||
sessionStorage.setItem('iforte_demo_pressure_test', '0') // type of pressure test, 0ok 1failing
|
||||
|
||||
|
||||
/* VARIABLES */
|
||||
sessionStorage.setItem('iforte_dmxa', '1') // dmx addr
|
||||
sessionStorage.setItem('iforte_dmxp', '2') // dmx mode
|
||||
sessionStorage.setItem('iforte_dmxi', '0') // input (wired0 wireless1 wirelessout2)
|
||||
sessionStorage.setItem('iforte_rdmn', 'Robin iForte') // rdm name
|
||||
sessionStorage.setItem('iforte_idnt', '0') // rdm idnt
|
||||
|
||||
sessionStorage.setItem('iforte_lwc', 'unlinked') // wireless link
|
||||
sessionStorage.setItem('iforte_lws', '0') // wireless signal
|
||||
|
||||
|
||||
sessionStorage.setItem('iforte_h0', '1206') // power on time
|
||||
sessionStorage.setItem('iforte_hr0', '1206') // resetable
|
||||
sessionStorage.setItem('iforte_h1', '213') // leds on time
|
||||
sessionStorage.setItem('iforte_hr1', '180') // leds adaptative
|
||||
|
||||
sessionStorage.setItem('iforte_cdimc', '0') // dim curve
|
||||
|
||||
sessionStorage.setItem('iforte_fsmo', '0') // followspot mode
|
||||
sessionStorage.setItem('iforte_frq', '4928') // led freq
|
||||
sessionStorage.setItem('iforte_gind', '0') // gobo index mode
|
||||
sessionStorage.setItem('iforte_btns', '0') // display buttons
|
||||
|
||||
sessionStorage.setItem('iforte_t0', '28') // leds now
|
||||
sessionStorage.setItem('iforte_tm0', '62') // max
|
||||
sessionStorage.setItem('iforte_tmr0', '62') // resetable
|
||||
sessionStorage.setItem('iforte_t3', '26') // psu now
|
||||
sessionStorage.setItem('iforte_tm3', '64') // max
|
||||
sessionStorage.setItem('iforte_tmr3', '64') // resetable
|
||||
sessionStorage.setItem('iforte_t1', '54') // driver now
|
||||
sessionStorage.setItem('iforte_tm1', '80') // max
|
||||
sessionStorage.setItem('iforte_tmr1', '80') // resetable
|
||||
sessionStorage.setItem('iforte_t2', '25') // base now
|
||||
sessionStorage.setItem('iforte_tm2', '56') // max
|
||||
sessionStorage.setItem('iforte_tmr2', '56') // resetable
|
||||
|
||||
sessionStorage.setItem('iforte_fanm', '0') // iforte_fanmode 0auto 1high
|
||||
sessionStorage.setItem('iforte_tmpu', '0') //temp unit 0c 1f
|
||||
sessionStorage.setItem('iforte_tu', 'C') // temp unit string
|
||||
|
||||
sessionStorage.setItem('iforte_pr', '0') // pan rev
|
||||
sessionStorage.setItem('iforte_ptf', '1') // pt feedback
|
||||
sessionStorage.setItem('iforte_pte', '1') // pt EMS
|
||||
sessionStorage.setItem('iforte_tr', '0') // tilt rev
|
||||
sessionStorage.setItem('iforte_ptm', '0') // pt mode 0speed 1time
|
||||
|
||||
sessionStorage.setItem('iforte_bldmc', '0') // blackout dmc
|
||||
sessionStorage.setItem('iforte_blptm', '0') // blackout pt
|
||||
sessionStorage.setItem('iforte_blgwm', '0') // blackout gobo mv
|
||||
sessionStorage.setItem('iforte_blprm', '0') // blackout color wheel mv
|
||||
|
||||
sessionStorage.setItem('iforte_dty', currentTime.getFullYear()) // date year
|
||||
sessionStorage.setItem('iforte_dtmo', addLeadingZeros(currentTime.getMonth() + 1)) // date month
|
||||
sessionStorage.setItem('iforte_dtd', addLeadingZeros(currentTime.getDay())) // date day
|
||||
|
||||
sessionStorage.setItem('iforte_dth', addLeadingZeros(currentTime.getHours())) // time hour
|
||||
sessionStorage.setItem('iforte_dtmi', addLeadingZeros(currentTime.getMinutes())) // time minute
|
||||
sessionStorage.setItem('iforte_dts', addLeadingZeros(currentTime.getSeconds())) // time seconds
|
||||
|
||||
sessionStorage.setItem('iforte_emod', '0') //ethmode 0dis 1art 2gma1 3gma2 4sacn
|
||||
sessionStorage.setItem('iforte_ee2d', '0') //eth to dmx
|
||||
sessionStorage.setItem('iforte_eanu', '0') //art uni
|
||||
sessionStorage.setItem('iforte_emau', '1') //ma uni
|
||||
sessionStorage.setItem('iforte_emas', '1') //ma session
|
||||
sessionStorage.setItem('iforte_esau', '1') //sacn uni
|
||||
|
||||
sessionStorage.setItem('iforte_dint', '9') //disp int
|
||||
sessionStorage.setItem('iforte_dsd', '0') //disp screensave
|
||||
sessionStorage.setItem('iforte_dtl', '0') //disp lock
|
||||
sessionStorage.setItem('iforte_dor', '2') //disp orientation 0norm 1inv 2auto
|
||||
|
||||
sessionStorage.setItem('iforte_mics', '9') // mic sens
|
||||
}
|
||||
}
|
||||
|
||||
function populateUIFromSessionStorage() {
|
||||
for (var i = 0; i < sessionStorage.length; i++) {
|
||||
var valueToLoad = '';
|
||||
switch (sessionStorage.key(i)) {
|
||||
case 'iforte_dmxp':
|
||||
var valueToLoad = "Mode " + (parseInt(sessionStorage.getItem(sessionStorage.key(i))) + 1)
|
||||
break;
|
||||
case 'iforte_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 'iforte_bldmc':
|
||||
case 'iforte_blptm':
|
||||
case 'iforte_ee2d':
|
||||
case 'iforte_pr':
|
||||
case 'iforte_tr':
|
||||
case 'iforte_ptf':
|
||||
case 'iforte_pte':
|
||||
case 'iforte_hpwrm':
|
||||
case 'iforte_blgwm':
|
||||
case 'iforte_blprm':
|
||||
case 'iforte_btns':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "off"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "on"
|
||||
}
|
||||
break;
|
||||
case 'iforte_lws':
|
||||
var valueToLoad = sessionStorage.getItem(sessionStorage.key(i)) + "%"
|
||||
break;
|
||||
case 'iforte_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 'iforte_dint':
|
||||
case 'iforte_mics':
|
||||
var valueToLoad = (parseInt(sessionStorage.getItem(sessionStorage.key(i))) + 1)
|
||||
break;
|
||||
|
||||
case 'iforte_dsd':
|
||||
case 'iforte_dtl':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "off"
|
||||
} else {
|
||||
var valueToLoad = (parseInt(sessionStorage.getItem(sessionStorage.key(i))) + " min")
|
||||
}
|
||||
break;
|
||||
case 'iforte_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 'iforte_fanm':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "auto"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "high"
|
||||
}
|
||||
break;
|
||||
case 'iforte_tmpu':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "°C"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "°F"
|
||||
}
|
||||
break;
|
||||
case 'iforte_ptm':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "speed"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "time"
|
||||
}
|
||||
break;
|
||||
case 'iforte_cdimc':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "linear"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "square law"
|
||||
}
|
||||
break;
|
||||
case 'iforte_fsmo':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "off"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "soft"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 2) {
|
||||
var valueToLoad = "medium"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 3) {
|
||||
var valueToLoad = "hard"
|
||||
}
|
||||
break;
|
||||
case 'iforte_gind':
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "max. speed & shortcut"
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "follow spd. & dir."
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 2) {
|
||||
var valueToLoad = "max spd. & follow dir."
|
||||
}
|
||||
break;
|
||||
case 'iforte_frq':
|
||||
var valueToLoad = iforte_frq_s(sessionStorage.getItem('iforte_frq'))
|
||||
break;
|
||||
default:
|
||||
|
||||
var valueToLoad = sessionStorage.getItem(sessionStorage.key(i))
|
||||
break;
|
||||
}
|
||||
|
||||
console.log('key ' + i + " : " + valueToLoad);
|
||||
$("#" + 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('iforte_tu'))
|
||||
}
|
||||
}
|
||||
|
||||
// calc proper frequency to be displayed
|
||||
function iforte_frq_s(t1_frq) {
|
||||
var f = 360000000000;
|
||||
var k = (0x700) - (t1_frq & 0xfff);
|
||||
var arr = 465 + ((k >> 8) & 0x0f);
|
||||
var x = k & 0xff;
|
||||
f = f * (1 << (t1_frq >> 12)) / (arr * (256 - x) + (arr + 1) * (x));
|
||||
return Math.floor(f / 10000) + '.' + ('0000' + Math.floor(f % 10000)).slice(-4)
|
||||
}
|
||||
@@ -1,456 +0,0 @@
|
||||
<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>
|
||||
</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="./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" 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" onclick="window.location = ('../index.html')"></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="iforte_dmxa_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_dmxp_v"></div>
|
||||
<small id="iforte_dmxf_v"></small>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_dmxi_v"></div>
|
||||
</li>
|
||||
<li class="mt-2">
|
||||
<div id="iforte_ip_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_mac_v"></div>
|
||||
</li>
|
||||
<li class="mt-2">
|
||||
<div id="iforte_rdmu_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_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>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="iforte_h0_v"></div>h / <div id="iforte_hr0_v"></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="iforte_h1_v"></div>h
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_hr1_v"></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="iforte_t0_v"></div>° <div class="iforte_tu"></div> / <div id="iforte_tm0_v"></div>° <div class="iforte_tu"></div> / <div id="iforte_tmr0_v"></div>° <div class="iforte_tu"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_t3_v"></div>° <div class="iforte_tu"></div> / <div id="iforte_tm3_v"></div>° <div class="iforte_tu"></div> / <div id="iforte_tmr3_v"></div>° <div class="iforte_tu"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_t1_v"></div>° <div class="iforte_tu"></div> / <div id="iforte_tm1_v"></div>° <div class="iforte_tu"></div> / <div id="iforte_tmr1_v"></div>° <div class="iforte_tu"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_t2_v"></div>° <div class="iforte_tu"></div> / <div id="iforte_tm2_v"></div>° <div class="iforte_tu"></div> / <div id="iforte_tmr2_v"></div>° <div class="iforte_tu"></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="iforte_lwc_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_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 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="iforte_devs_v"></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="iforte_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="iforte_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="iforte_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">
|
||||
<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;
|
||||
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(){
|
||||
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>
|
||||
@@ -1,591 +0,0 @@
|
||||
<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>
|
||||
</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="./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" 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" onclick="window.location = ('../index.html')"></div>
|
||||
<div class="container-fluid 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="iforte_dmxa_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_dmxp_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_dmxi_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_rdmn_v"></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="iforte_emod_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_ee2d_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_eanu_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_emau_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_emas_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_esau_v"></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="iforte_pr_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_tr_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_ptf_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_ptm_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_pte_v"></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="iforte_bldmc_v"></div>
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Active blackout while</h3>
|
||||
<ul class="group">
|
||||
<li>Pan/Tilt moving</li>
|
||||
<li>Gobo wheel moving</li>
|
||||
<li>Color wheel moving</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="iforte_blptm_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_blgwm_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_blprm_v"></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="iforte_dint_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_dsd_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_dtl_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_dor_v"></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>Dimmer curve</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="iforte_cdimc_v"></div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>Date & 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="iforte_dtd_v"></div>.<div id="iforte_dtmo_v"></div>.<div id="iforte_dty_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_dth_v"></div>:<div id="iforte_dtmi_v"></div>:<div id="iforte_dts_v"></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>Follow spot mode</li>
|
||||
<li>LEDs output frequency (Hz)</li>
|
||||
<li>Fan mode</li>
|
||||
<li>Gobo indexing</li>
|
||||
<li>Temperature unit</li>
|
||||
<li>Display buttons</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="iforte_fsmo_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_frq_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_fanm_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_gind_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_tmpu_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_btns_v"></div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c" style="display: block;"><h2>Pressure test</h2><div class="box prst text-center"><span></span><span></span><span></span><button class="btn btn-success btn-block" id="pt_b">Start test</button></div></div>
|
||||
<div class="col-md-6 col-xl-4 box-c" style="display: block;"><h2>Pressure test</h2><div class="box prst text-center"><span></span><span class="ptok">OK</span><span></span><button class="btn btn-block btn-success" id="pt_b">Start test</button></div></div>
|
||||
<div class="col-md-6 col-xl-4 box-c" style="display: block;"><h2>Pressure test</h2><div class="box prst text-center"><span></span><span class="ptf">FAIL</span><span></span><button class="btn btn-block btn-success" id="pt_b">Start test</button></div></div>
|
||||
<div class="col-md-6 col-xl-4 box-c" style="display: block;"><h2>Pressure test</h2><div class="box prst text-center"><span>Measuring Pressure</span><span>Remaining Time 04:37</span><span>42 °C / delta 3.34 hPa</span><button class="btn btn-block btn-danger" id="pt_b">Stop test</button></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 = [
|
||||
['iforte_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', 'gind', 'gwhm'],
|
||||
['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;
|
||||
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>');
|
||||
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',[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_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 / Tilt 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,'','');
|
||||
h+=c_rad('blgwm','Gobo wheel moving',off_on_l,'','');
|
||||
h+=c_rad('blprm','Color wheel 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('fsmo','Follow spot mode',['off','soft','medium','hard'],'',0,0,'');
|
||||
h+=c_rad('frqs','LEDs output frequency (Hz)',['300','600','1200','2400'],'','');
|
||||
h+='<div class="form-group">';
|
||||
h+='<label for="frqa" class="col-form-label">LEDs 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','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_opt('gind','Gobo indexing',['max. speed & shortcut','follow spd. & dir.','max. spd. & follow dir.'],'',0,0,'');
|
||||
h+=c_rad('tmpu','Temperature unit',['°C','°F'],'','');
|
||||
h+=c_rad('btns','Display buttons',off_on_l,'','')
|
||||
} else if(a_m==7){
|
||||
h+='<div class="row">';
|
||||
h+=c_rad('cdimc','Dimmer curve',['linear','square law'],'','col-6');
|
||||
h+=c_rad('hpwrm','High power mode',off_on_l,'','')
|
||||
} 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],pv(params[a_m])+p_add,function (json){
|
||||
if(json){
|
||||
if(json['status']==0){
|
||||
mhdr_status('suc');
|
||||
copy_form_values(0);
|
||||
if(a_m==0){
|
||||
fill_values(json,['dmxf']);
|
||||
ptit(json['pt'])
|
||||
} else if(a_m==6){
|
||||
if(json['fanm']=='quiet'){
|
||||
$('#themq').show();
|
||||
} else {
|
||||
$('#themq').hide();
|
||||
}
|
||||
$('#frqs_v').html(frq_s(frq))
|
||||
} else if(a_m==8){
|
||||
if($('#ligde').val()==0) {
|
||||
$('#ligde_v').html('off')
|
||||
}
|
||||
}
|
||||
close_modal()
|
||||
}
|
||||
show_errors(json['status'],params[a_m]);loader(0)
|
||||
}
|
||||
})
|
||||
});
|
||||
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=fanm]').on('change',function(){
|
||||
if($('input[name=fanm]:checked').val()==2) {
|
||||
$('#fannl_fg').show();
|
||||
} else {
|
||||
$('#fannl_fg').hide()
|
||||
}
|
||||
});
|
||||
$('input[name=fanm]').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)
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
var bussy = false;
|
||||
|
||||
function do_1s() {
|
||||
bussy = true;
|
||||
do_ajax('/ldt_s', {}, function(json) {
|
||||
if (json) {
|
||||
fill_values(json, ['dtd', 'dtmo', 'dty', 'dth', 'dtmi', 'dts'])
|
||||
}
|
||||
bussy = false
|
||||
})
|
||||
}
|
||||
do_ajax('/status_i', {}, function(json) {
|
||||
if (json) {
|
||||
fill_values(json, ['dmxa', 'dmxp', 'dmxf', 'dmxi', 'pt', 'rdmn']);
|
||||
ptit(json['pt'])
|
||||
}
|
||||
});
|
||||
for (var i in addrs) {
|
||||
if (i == 0) continue;
|
||||
do_ajax('/' + addrs[i], {}, function(json, i) {
|
||||
if (json) {
|
||||
fill_values(json, params[i]);
|
||||
if (i == 6) {
|
||||
if (json['fanm'] == 'quiet') $('#themq').show();
|
||||
frq = json['frq'];
|
||||
$('#frqs_v').html(frq_s(frq))
|
||||
} else if (i == 8) {
|
||||
if (json['ligde'] == 0) $('#ligde_v').html('off')
|
||||
}
|
||||
}
|
||||
}, i)
|
||||
}
|
||||
do_1s();
|
||||
var pt_d = 5;
|
||||
var pt_t = pt_t;
|
||||
var ptl = $('.box.prst span');
|
||||
var pt_b = $('#pt_b');
|
||||
|
||||
function press_w(json) {
|
||||
if (!json) return;
|
||||
if (json[' ts '] == 1) {
|
||||
pt_d = 1;
|
||||
ptl.eq(0).html(json['l1']);
|
||||
ptl.eq(1).removeAttr('class').html(json['l2'].replace('\u007f', '°'));
|
||||
ptl.eq(2).html(json['l3'].replace('\u007f', '°'));
|
||||
if (pt_b.hasClass('btn-success')) {
|
||||
pt_b.toggleClass('btn-danger btn-success');
|
||||
pt_b.html('Stop test')
|
||||
}
|
||||
} else {
|
||||
pt_d = 5;
|
||||
if (pt_b.hasClass('btn-danger')) {
|
||||
pt_b.toggleClass('btn-danger btn-success');
|
||||
pt_b.html('Start test');
|
||||
if (json['res'] > 0) {
|
||||
ptl.eq(0).html('');
|
||||
ptl.eq(2).html('');
|
||||
if (json['res'] == 1) ptl.eq(1).addClass('ptok').html('OK');
|
||||
else ptl.eq(1).addClass('ptf').html('FAIL')
|
||||
} else if (json['ts'] == 0) ptl.html('')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function press_t() {
|
||||
pt_t++;
|
||||
if (pt_t < pt_d) return;
|
||||
pt_t = 0;
|
||||
do_ajax('/prst', {}, function(json) {
|
||||
press_w(json)
|
||||
})
|
||||
}
|
||||
$('#pt_b').click(function() {
|
||||
var b = 1;
|
||||
if (pt_b.hasClass('btn-danger')) b = 2;
|
||||
else pt_d = 1;
|
||||
var run = true;
|
||||
if (!confirm('Are you sure you want to ' + (b == 1 ? 'run' : 'cancel') + ' a pressure test?')) run = false;
|
||||
if (run) {
|
||||
do_ajax('/prst', 'btn=' + b, function(json) {});
|
||||
setTimeout(function() {
|
||||
do_ajax('/prst', {}, function(json) {
|
||||
press_w(json)
|
||||
})
|
||||
}, 200)
|
||||
}
|
||||
});
|
||||
setInterval(function() {
|
||||
if (!bussy) do_1s();
|
||||
press_t()
|
||||
}, 1000);
|
||||
press_t()
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
Before Width: | Height: | Size: 314 B After Width: | Height: | Size: 314 B |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 7.0 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
749
src/iforte/base.js
Normal file
@@ -0,0 +1,749 @@
|
||||
// GLOBAL VARIABLES
|
||||
var is_pressure_test_ongoing = false;
|
||||
var rains_value = 0;
|
||||
var rains_loop_timing = 2000;
|
||||
|
||||
$(document).ready(function () {
|
||||
initSessionStorage();
|
||||
populateUIFromSessionStorage();
|
||||
|
||||
loop_rains_simulator();
|
||||
|
||||
// Sets the proper fixture name in the header and title
|
||||
var fixturename = "Robin iForte - Simulated";
|
||||
$("#pth").html(fixturename);
|
||||
$(document).prop("title", fixturename);
|
||||
|
||||
// handle RDM ident
|
||||
var idntb = $("#idnt img");
|
||||
$("#idnt").click(function () {
|
||||
var idnt_status = sessionStorage.getItem("iforte_idnt");
|
||||
if (idnt_status == 1) {
|
||||
idntb.removeClass("a");
|
||||
sessionStorage.setItem("iforte_idnt", "0");
|
||||
} else {
|
||||
idntb.addClass("a");
|
||||
sessionStorage.setItem("iforte_idnt", "1");
|
||||
}
|
||||
});
|
||||
|
||||
//handle settings
|
||||
$(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 += "<br><h3>Simulator</h3>";
|
||||
h += c_btn("Reset demo values", "btnresetdemo", " btnresetdemo");
|
||||
h += c_rad("iforte_demo_rains_age","RAINS tubes age",["New", "Average", "Old"],"","");
|
||||
h += c_rad("iforte_demo_pressure_test","Pressure test",["OK", "Failing"],"","");
|
||||
$("#m-b").html(h);
|
||||
$(".sb").unbind();
|
||||
copy_form_values(2);
|
||||
$("#cfg-modal").modal();
|
||||
|
||||
$(".sb").bind("click", function () {
|
||||
loader(1);
|
||||
var par = [
|
||||
"iforte_demo_rains_age",
|
||||
"iforte_demo_pressure_test",
|
||||
];
|
||||
do_ajax("/set_cfg", serialize_parameters(par));
|
||||
});
|
||||
});
|
||||
|
||||
// handle reset demo values
|
||||
$(document).on("click", ".btnresetdemo", function () {
|
||||
$(".sb").html("OK");
|
||||
sessionStorage.clear();
|
||||
initSessionStorage();
|
||||
populateUIFromSessionStorage();
|
||||
showCustomModal("Cleared", "Simulated page reset to default settings.");
|
||||
});
|
||||
});
|
||||
|
||||
function toggleStandbyMode() {
|
||||
var standby_mode = sessionStorage.getItem("iforte_devs");
|
||||
|
||||
if (standby_mode == 0) {
|
||||
$("#esm").addClass("btn-warning");
|
||||
$("#esm").removeClass("btn-success");
|
||||
$("#esm").html("Exit standby mode");
|
||||
sessionStorage.setItem("iforte_devs", "1");
|
||||
} else {
|
||||
$("#esm").removeClass("btn-warning");
|
||||
$("#esm").addClass("btn-success");
|
||||
$("#esm").html("Enter standby mode");
|
||||
sessionStorage.setItem("iforte_devs", "0");
|
||||
}
|
||||
|
||||
populateUIFromSessionStorage();
|
||||
}
|
||||
|
||||
function loop_rains_simulator() {
|
||||
var rains_tube_age = sessionStorage.getItem("iforte_demo_rains_age");
|
||||
var rains_lowest = sessionStorage.getItem("iforte_demo_rains_lowest");
|
||||
|
||||
if (rains_tube_age == 0) {
|
||||
// new
|
||||
rains_value = Math.floor(Math.random() * 19) + 80;
|
||||
} else if (rains_tube_age == 1) {
|
||||
// average
|
||||
rains_value = Math.floor(Math.random() * 21) + 40;
|
||||
} else {
|
||||
// old
|
||||
rains_value = Math.floor(Math.random() * 20) + 1;
|
||||
}
|
||||
|
||||
$("#iforte_rains_bar_current").width(rains_value + "%");
|
||||
$("#iforte_rains_bar_max").width(rains_lowest + "%");
|
||||
|
||||
if (rains_value < rains_lowest) {
|
||||
sessionStorage.setItem("iforte_demo_rains_lowest", rains_value);
|
||||
$("#iforte_rains_bar_max").width(rains_value + "%");
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
loop_rains_simulator();
|
||||
}, rains_loop_timing);
|
||||
}
|
||||
|
||||
function pressureTest() {
|
||||
$("#pt-l2").removeClass("ptok");
|
||||
$("#pt-l2").removeClass("ptf");
|
||||
if (!is_pressure_test_ongoing) {
|
||||
is_pressure_test_ongoing = true;
|
||||
$("#pt-l1").html("Measuring Pressure");
|
||||
$("#pt_b").html("Stop test");
|
||||
$("#pt_b").removeClass("btn-success");
|
||||
$("#pt_b").addClass("btn-danger");
|
||||
pressure_test_loop(20, 40, 0.0);
|
||||
} else {
|
||||
is_pressure_test_ongoing = false;
|
||||
$("#pt-l1").html("");
|
||||
$("#pt-l2").html("");
|
||||
$("#pt-l3").html("");
|
||||
$("#pt_b").html("Start test");
|
||||
$("#pt_b").addClass("btn-success");
|
||||
$("#pt_b").removeClass("btn-danger");
|
||||
}
|
||||
}
|
||||
|
||||
function pressure_test_loop(time, temp, pressure) {
|
||||
var is_test_failing = sessionStorage.getItem("iforte_demo_pressure_test");
|
||||
|
||||
if (is_pressure_test_ongoing) {
|
||||
if (time == 0) {
|
||||
is_pressure_test_ongoing = false;
|
||||
$("#pt-l1").html("");
|
||||
$("#pt-l3").html("");
|
||||
|
||||
if (is_test_failing == 1) {
|
||||
$('#pt-l2').html('FAIL')
|
||||
$('#pt-l2').addClass('ptf')
|
||||
} else {
|
||||
$("#pt-l2").html("OK");
|
||||
$("#pt-l2").addClass("ptok");
|
||||
}
|
||||
|
||||
$("#pt_b").html("Start test");
|
||||
$("#pt_b").addClass("btn-success");
|
||||
$("#pt_b").removeClass("btn-danger");
|
||||
|
||||
setTimeout(() => {
|
||||
$("#pt-l2").html("");
|
||||
$("#pt-l2").removeClass("ptok");
|
||||
$("#pt-l2").removeClass("ptf");
|
||||
}, 20000);
|
||||
} else {
|
||||
$("#pt-l2").html(
|
||||
"Remaining Time " +
|
||||
new Date(time * 1000).toISOString().substring(14, 19)
|
||||
);
|
||||
|
||||
if (is_test_failing == 1) {
|
||||
$("#pt-l3").html(temp + " °C / delta 0.00 hPa");
|
||||
} else {
|
||||
$("#pt-l3").html(temp + " °C / delta " + pressure.toFixed(2) + " hPa");
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
temp = temp + 1;
|
||||
pressure = pressure + Math.random();
|
||||
pressure_test_loop(time - 1, temp, pressure);
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 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();
|
||||
});
|
||||
}
|
||||
|
||||
function loader(showheader) {
|
||||
if (showheader) $("#cfg-modal .modal-header img").addClass("loader");
|
||||
else $("#cfg-modal .modal-header img").removeClass("loader");
|
||||
}
|
||||
|
||||
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("iforte_hr0", "0");
|
||||
} else if (p_data.rh == 1) {
|
||||
sessionStorage.setItem("iforte_hr1", "0");
|
||||
}
|
||||
break;
|
||||
|
||||
case "/reset_temps":
|
||||
if (p_data.rt == 0) {
|
||||
sessionStorage.setItem("iforte_tmr0", sessionStorage.getItem("iforte_t0"));
|
||||
} else if (p_data.rt == 3) {
|
||||
sessionStorage.setItem("iforte_tmr3",sessionStorage.getItem("iforte_t3"));
|
||||
} else if (p_data.rt == 2) {
|
||||
sessionStorage.setItem("iforte_tmr2",sessionStorage.getItem("iforte_t2"));
|
||||
} else if (p_data.rt == 1) {
|
||||
sessionStorage.setItem("iforte_tmr1",sessionStorage.getItem("iforte_t1"));
|
||||
}
|
||||
break;
|
||||
|
||||
case "/max_wet":
|
||||
sessionStorage.setItem("iforte_demo_rains_lowest", "100");
|
||||
$("#iforte_rains_bar_max").width("100%");
|
||||
var now = new Date();
|
||||
var reset_string = "last reset: " + now.getDate() + "." + (now.getMonth() + 1) + "." + now.getFullYear() + " " + now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds()
|
||||
sessionStorage.setItem("iforte_demo_rains_last_reset", reset_string);
|
||||
$("#iforte_demo_rains_last_reset").html(sessionStorage.getItem("iforte_demo_rains_last_reset"));
|
||||
break;
|
||||
|
||||
default:
|
||||
for (const [key, value] of Object.entries(p_data)) {
|
||||
sessionStorage.setItem(key, value)
|
||||
console.log("set key: " + key + " to val: " + value);
|
||||
|
||||
if (key == "iforte_tmpu") {
|
||||
if (value == 0) {
|
||||
sessionStorage.setItem("iforte_tu", "C");
|
||||
} else if (value == 1) {
|
||||
sessionStorage.setItem("iforte_tu", "F");
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
populateUIFromSessionStorage();
|
||||
loader(0);
|
||||
close_modal();
|
||||
}
|
||||
|
||||
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>');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// if opening settings window
|
||||
if (dir == 2) {
|
||||
$("input[name=iforte_demo_rains_age]")
|
||||
.eq(sessionStorage.getItem("iforte_demo_rains_age"))
|
||||
.attr("checked", "checked");
|
||||
$("input[name=iforte_demo_pressure_test]")
|
||||
.eq(sessionStorage.getItem("iforte_demo_pressure_test"))
|
||||
.attr("checked", "checked");
|
||||
}
|
||||
}
|
||||
|
||||
function fill_values(d, ids) {
|
||||
for (i = 0; i < ids.length; i++) {
|
||||
$("#" + ids[i] + "_v").html(d[ids[i]]);
|
||||
}
|
||||
}
|
||||
|
||||
function close_modal() {
|
||||
setTimeout(function () {
|
||||
$("#m-b").empty();
|
||||
$("#cfg-modal").modal("hide");
|
||||
}, 500);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
function c_txt(n, t, e, c = "", it = "text") {
|
||||
var html = '<div class="form-group' + c + '">';
|
||||
html += '<label for="' + n + '" class="col-form-label">' + t + "</label>";
|
||||
html += '<input type="' + it + '" class="form-control" id="' + n + '">';
|
||||
html += e.length > 0 ? '<div class="invalid-feedback">' + e + "</div>" : "";
|
||||
html += "</div>";
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
function c_btn(t, v, c) {
|
||||
return (
|
||||
'<button class="btn btn-primary btn-block' +
|
||||
c +
|
||||
'" value="' +
|
||||
v +
|
||||
'">' +
|
||||
t +
|
||||
"</button>"
|
||||
);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
function c_rad(name, legend, options, invalid_feedback_text, group_class) {
|
||||
var html = '<div class="form-group' + group_class + '">';
|
||||
html += '<legend class="col-form-label">' + legend + "</legend>";
|
||||
for (i = 0; i < options.length; i++) {
|
||||
html += '<div class="form-check form-check-inline">';
|
||||
html +=
|
||||
'<input class="form-check-input" type="radio" name="' +
|
||||
name +
|
||||
'" value="' +
|
||||
i +
|
||||
'" id="' +
|
||||
name +
|
||||
(i + 1) +
|
||||
'">';
|
||||
html +=
|
||||
'<label class="form-check-label" for="' +
|
||||
name +
|
||||
(i + 1) +
|
||||
'">' +
|
||||
options[i] +
|
||||
"</label>";
|
||||
html += "</div>";
|
||||
}
|
||||
html +=
|
||||
invalid_feedback_text.length > 0
|
||||
? '<div class="invalid-feedback">' + invalid_feedback_text + "</div>"
|
||||
: "";
|
||||
html += "</div>";
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
var pre = "";
|
||||
var dmxsnf = "";
|
||||
|
||||
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_fsens(i, t, u) {
|
||||
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">=</option><option value="2"><</option><option value="3">></option>';
|
||||
html += '<option value="4"><=</option><option value="5">>=</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 +
|
||||
'">' +
|
||||
u +
|
||||
"</label></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() {
|
||||
if (sessionStorage.getItem("iforte_dmxa") == null) {
|
||||
console.log("sessionStorage empty, populating with demo data");
|
||||
var currentTime = new Date();
|
||||
|
||||
/* CONSTANTS */
|
||||
sessionStorage.setItem("iforte_ip", "2.246.16.203"); // ip addr
|
||||
sessionStorage.setItem("iforte_mac", "00:00:00:00:00:00"); //
|
||||
sessionStorage.setItem("iforte_rdmu", "52:53:00:00:00:00"); //
|
||||
|
||||
/* DEMO */
|
||||
sessionStorage.setItem("iforte_demo_rains_age", "1"); // rains tubes age 0new 1avg 2old
|
||||
sessionStorage.setItem("iforte_demo_pressure_test", "0"); // type of pressure test, 0ok 1failing
|
||||
sessionStorage.setItem("iforte_demo_rains_lowest", "100");
|
||||
sessionStorage.setItem("iforte_demo_rains_last_reset", "last reset: 2.3.2023 16:19:57");
|
||||
|
||||
|
||||
/* VARIABLES */
|
||||
sessionStorage.setItem("iforte_dmxa", "1"); // dmx addr
|
||||
sessionStorage.setItem("iforte_dmxp", "0"); // dmx mode
|
||||
sessionStorage.setItem("iforte_dmxi", "0"); // input (wired0 wireless1 wirelessout2)
|
||||
sessionStorage.setItem("iforte_rdmn", "Robin iForte"); // rdm name
|
||||
sessionStorage.setItem("iforte_idnt", "0"); // rdm idnt
|
||||
|
||||
sessionStorage.setItem("iforte_lwc", "unlinked"); // wireless link
|
||||
sessionStorage.setItem("iforte_lws", "0"); // wireless signal
|
||||
|
||||
sessionStorage.setItem("iforte_devs", "0"); // device status 0active 1standby
|
||||
|
||||
sessionStorage.setItem("iforte_h0", "1206"); // power on time
|
||||
sessionStorage.setItem("iforte_hr0", "1206"); // resetable
|
||||
sessionStorage.setItem("iforte_h1", "213"); // leds on time
|
||||
sessionStorage.setItem("iforte_hr1", "180"); // leds adaptative
|
||||
|
||||
sessionStorage.setItem("iforte_cdimc", "0"); // dim curve
|
||||
|
||||
sessionStorage.setItem("iforte_fsmo", "0"); // followspot mode
|
||||
sessionStorage.setItem("iforte_frq", "4928"); // led freq
|
||||
sessionStorage.setItem("iforte_gind", "0"); // gobo index mode
|
||||
sessionStorage.setItem("iforte_btns", "0"); // display buttons
|
||||
|
||||
sessionStorage.setItem("iforte_t0", "28"); // leds now
|
||||
sessionStorage.setItem("iforte_tm0", "62"); // max
|
||||
sessionStorage.setItem("iforte_tmr0", "62"); // resetable
|
||||
sessionStorage.setItem("iforte_t3", "26"); // psu now
|
||||
sessionStorage.setItem("iforte_tm3", "64"); // max
|
||||
sessionStorage.setItem("iforte_tmr3", "64"); // resetable
|
||||
sessionStorage.setItem("iforte_t1", "54"); // driver now
|
||||
sessionStorage.setItem("iforte_tm1", "80"); // max
|
||||
sessionStorage.setItem("iforte_tmr1", "80"); // resetable
|
||||
sessionStorage.setItem("iforte_t2", "25"); // base now
|
||||
sessionStorage.setItem("iforte_tm2", "56"); // max
|
||||
sessionStorage.setItem("iforte_tmr2", "56"); // resetable
|
||||
|
||||
sessionStorage.setItem("iforte_fanm", "0"); // fanmode 0auto 1high
|
||||
sessionStorage.setItem('iforte_fannl', '0') // fan noise level percent
|
||||
sessionStorage.setItem("iforte_tmpu", "0"); // temp unit 0c 1f
|
||||
sessionStorage.setItem("iforte_tu", "C"); // temp unit string
|
||||
|
||||
sessionStorage.setItem("iforte_pr", "0"); // pan rev
|
||||
sessionStorage.setItem("iforte_ptf", "1"); // pt feedback
|
||||
sessionStorage.setItem("iforte_pte", "1"); // pt EMS
|
||||
sessionStorage.setItem("iforte_tr", "0"); // tilt rev
|
||||
sessionStorage.setItem("iforte_ptm", "0"); // pt mode 0speed 1time
|
||||
|
||||
sessionStorage.setItem("iforte_bldmc", "0"); // blackout dmc
|
||||
sessionStorage.setItem("iforte_blptm", "0"); // blackout pt
|
||||
sessionStorage.setItem("iforte_blgwm", "0"); // blackout gobo mv
|
||||
sessionStorage.setItem("iforte_blprm", "0"); // blackout color wheel mv
|
||||
|
||||
sessionStorage.setItem("iforte_dty", currentTime.getFullYear()); // date year
|
||||
sessionStorage.setItem(
|
||||
"iforte_dtmo",
|
||||
addLeadingZeros(currentTime.getMonth() + 1)
|
||||
); // date month
|
||||
sessionStorage.setItem("iforte_dtd", addLeadingZeros(currentTime.getDay())); // date day
|
||||
|
||||
sessionStorage.setItem(
|
||||
"iforte_dth",
|
||||
addLeadingZeros(currentTime.getHours())
|
||||
); // time hour
|
||||
sessionStorage.setItem(
|
||||
"iforte_dtmi",
|
||||
addLeadingZeros(currentTime.getMinutes())
|
||||
); // time minute
|
||||
sessionStorage.setItem(
|
||||
"iforte_dts",
|
||||
addLeadingZeros(currentTime.getSeconds())
|
||||
); // time seconds
|
||||
|
||||
sessionStorage.setItem("iforte_emod", "0"); //ethmode 0dis 1art 2gma1 3gma2 4sacn
|
||||
sessionStorage.setItem("iforte_ee2d", "0"); //eth to dmx
|
||||
sessionStorage.setItem("iforte_eanu", "0"); //art uni
|
||||
sessionStorage.setItem("iforte_emau", "1"); //ma uni
|
||||
sessionStorage.setItem("iforte_emas", "1"); //ma session
|
||||
sessionStorage.setItem("iforte_esau", "1"); //sacn uni
|
||||
|
||||
sessionStorage.setItem("iforte_dint", "9"); //disp int
|
||||
sessionStorage.setItem("iforte_dsd", "0"); //disp screensave
|
||||
sessionStorage.setItem("iforte_dtl", "0"); //disp lock
|
||||
sessionStorage.setItem("iforte_dor", "2"); //disp orientation 0norm 1inv 2auto
|
||||
|
||||
sessionStorage.setItem("iforte_mics", "9"); // mic sens
|
||||
}
|
||||
}
|
||||
|
||||
function populateUIFromSessionStorage() {
|
||||
// check stdby mode
|
||||
if (sessionStorage.getItem("iforte_devs") == 1) {
|
||||
$("#esm").addClass("btn-warning");
|
||||
$("#esm").removeClass("btn-success");
|
||||
$("#esm").html("Exit standby mode");
|
||||
} else {
|
||||
$("#esm").removeClass("btn-warning");
|
||||
$("#esm").addClass("btn-success");
|
||||
$("#esm").html("Enter standby mode");
|
||||
}
|
||||
|
||||
// check rdm ident
|
||||
var idntb = $("#idnt img");
|
||||
var idnt_status = sessionStorage.getItem("iforte_idnt");
|
||||
if (idnt_status == 1) {
|
||||
idntb.addClass("a");
|
||||
} else {
|
||||
idntb.removeClass("a");
|
||||
}
|
||||
|
||||
for (var i = 0; i < sessionStorage.length; i++) {
|
||||
var valueToLoad = "";
|
||||
switch (sessionStorage.key(i)) {
|
||||
case "iforte_dmxp":
|
||||
var valueToLoad =
|
||||
"Mode " +
|
||||
(parseInt(sessionStorage.getItem(sessionStorage.key(i))) + 1);
|
||||
break;
|
||||
case "iforte_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 "iforte_devs":
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "active";
|
||||
} else {
|
||||
var valueToLoad = "standby";
|
||||
}
|
||||
break;
|
||||
|
||||
case "iforte_bldmc":
|
||||
case "iforte_blptm":
|
||||
case "iforte_ee2d":
|
||||
case "iforte_pr":
|
||||
case "iforte_tr":
|
||||
case "iforte_ptf":
|
||||
case "iforte_pte":
|
||||
case "iforte_hpwrm":
|
||||
case "iforte_blgwm":
|
||||
case "iforte_blprm":
|
||||
case "iforte_btns":
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "off";
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "on";
|
||||
}
|
||||
break;
|
||||
case "iforte_lws":
|
||||
var valueToLoad = sessionStorage.getItem(sessionStorage.key(i)) + "%";
|
||||
break;
|
||||
case "iforte_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 "iforte_dint":
|
||||
case "iforte_mics":
|
||||
var valueToLoad =
|
||||
parseInt(sessionStorage.getItem(sessionStorage.key(i))) + 1;
|
||||
break;
|
||||
|
||||
case "iforte_dsd":
|
||||
case "iforte_dtl":
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "off";
|
||||
} else {
|
||||
var valueToLoad =
|
||||
parseInt(sessionStorage.getItem(sessionStorage.key(i))) + " min";
|
||||
}
|
||||
break;
|
||||
case "iforte_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 "iforte_fanm":
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "auto";
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "high";
|
||||
}
|
||||
break;
|
||||
case "iforte_tmpu":
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "°C";
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "°F";
|
||||
}
|
||||
break;
|
||||
case "iforte_ptm":
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "speed";
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "time";
|
||||
}
|
||||
break;
|
||||
case "iforte_cdimc":
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "linear";
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "square law";
|
||||
}
|
||||
break;
|
||||
case "iforte_fsmo":
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "off";
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "soft";
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 2) {
|
||||
var valueToLoad = "medium";
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 3) {
|
||||
var valueToLoad = "hard";
|
||||
}
|
||||
break;
|
||||
case "iforte_gind":
|
||||
if (sessionStorage.getItem(sessionStorage.key(i)) == 0) {
|
||||
var valueToLoad = "max. speed & shortcut";
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 1) {
|
||||
var valueToLoad = "follow spd. & dir.";
|
||||
} else if (sessionStorage.getItem(sessionStorage.key(i)) == 2) {
|
||||
var valueToLoad = "max spd. & follow dir.";
|
||||
}
|
||||
break;
|
||||
case "iforte_frq":
|
||||
var valueToLoad = iforte_frq_s(sessionStorage.getItem("iforte_frq"));
|
||||
break;
|
||||
case "iforte_demo_rains_last_reset":
|
||||
$("#iforte_demo_rains_last_reset").html(sessionStorage.getItem("iforte_demo_rains_last_reset"));
|
||||
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^="iforte_tu_v"]').html(sessionStorage.getItem("iforte_tu"));
|
||||
}
|
||||
}
|
||||
|
||||
// calc proper frequency to be displayed
|
||||
function iforte_frq_s(iforte_frq) {
|
||||
var f = 360000000000;
|
||||
var k = 0x700 - (iforte_frq & 0xfff);
|
||||
var arr = 465 + ((k >> 8) & 0x0f);
|
||||
var x = k & 0xff;
|
||||
f = (f * (1 << (iforte_frq >> 12))) / (arr * (256 - x) + (arr + 1) * x);
|
||||
return (
|
||||
Math.floor(f / 10000) + "." + ("0000" + Math.floor(f % 10000)).slice(-4)
|
||||
);
|
||||
}
|
||||
@@ -26,7 +26,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="fixed-top text-center device-label" id="pth" onclick="window.location = ('../index.html')"></div>
|
||||
<div class="fixed-top text-center device-label" id="pth" ></div>
|
||||
<div class="container-fluid in">
|
||||
<h1>Discovery</h1>
|
||||
<div class="row" id="boxes">
|
||||
@@ -34,7 +34,7 @@
|
||||
<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>
|
||||
<label for="w-ot" class="pl04">Move devices with warning to top</label>
|
||||
</div>
|
||||
<button class="btn btn-primary float-right" id="scan">Discover (1)</button>
|
||||
</div>
|
||||
@@ -127,19 +127,19 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>iForte</td>
|
||||
<td>350</td>
|
||||
<td>Mode 1 (54 channels)</td>
|
||||
<td>52:53:01:2c:00:0e</td>
|
||||
<td id="iforte_dmxa_v">1</td>
|
||||
<td id="iforte_dmxp_v">Mode 1</td>
|
||||
<td id="iforte_rdmu_v">52:53:01:2c:00:0e</td>
|
||||
<td><a href="../iforte/index.html">2.247.136.14</a></td>
|
||||
<td style="display: none;">47</td>
|
||||
<td style="display: none;">14.0</td>
|
||||
<td>
|
||||
<div class="rains sl">
|
||||
<div style="width:63%"></div>
|
||||
<div id="iforte_rains_bar_max" style="width:63%"></div>
|
||||
</div>
|
||||
</td>
|
||||
<td style="display: none;">2.3.2023 16:19:02 - OK</td>
|
||||
<td>active</td>
|
||||
<td id="iforte_devs_v">active</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Robin T1 Wash</td>
|
||||
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
426
src/iforte/index.html
Normal file
@@ -0,0 +1,426 @@
|
||||
<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>
|
||||
</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="./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" 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"
|
||||
|
||||
></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="iforte_dmxa_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_dmxp_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_dmxi_v"></div>
|
||||
</li>
|
||||
<li class="mt-2">
|
||||
<div id="iforte_ip_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_mac_v"></div>
|
||||
</li>
|
||||
<li class="mt-2">
|
||||
<div id="iforte_rdmu_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_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>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="iforte_h0_v"></div>
|
||||
h /
|
||||
<div id="iforte_hr0_v"></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="iforte_h1_v"></div>
|
||||
h
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_hr1_v"></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="iforte_t0_v"></div>
|
||||
°
|
||||
<div id="iforte_tu_v"></div>
|
||||
/
|
||||
<div id="iforte_tm0_v"></div>
|
||||
°
|
||||
<div id="iforte_tu_v"></div>
|
||||
/
|
||||
<div id="iforte_tmr0_v"></div>
|
||||
°
|
||||
<div id="iforte_tu_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_t3_v"></div>
|
||||
°
|
||||
<div id="iforte_tu_v"></div>
|
||||
/
|
||||
<div id="iforte_tm3_v"></div>
|
||||
°
|
||||
<div id="iforte_tu_v"></div>
|
||||
/
|
||||
<div id="iforte_tmr3_v"></div>
|
||||
°
|
||||
<div id="iforte_tu_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_t1_v"></div>
|
||||
°
|
||||
<div id="iforte_tu_v"></div>
|
||||
/
|
||||
<div id="iforte_tm1_v"></div>
|
||||
°
|
||||
<div id="iforte_tu_v"></div>
|
||||
/
|
||||
<div id="iforte_tmr1_v"></div>
|
||||
°
|
||||
<div id="iforte_tu_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_t2_v"></div>
|
||||
°
|
||||
<div id="iforte_tu_v"></div>
|
||||
/
|
||||
<div id="iforte_tm2_v"></div>
|
||||
°
|
||||
<div id="iforte_tu_v"></div>
|
||||
/
|
||||
<div id="iforte_tmr2_v"></div>
|
||||
°
|
||||
<div id="iforte_tu_v"></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="iforte_lwc_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_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 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="iforte_devs_v"></div>
|
||||
</li>
|
||||
</ul>
|
||||
<button
|
||||
class="btn btn-primary btn-block esm dn btn-success"
|
||||
value="0"
|
||||
style="display: inline-block"
|
||||
id="esm"
|
||||
>
|
||||
Enter standby mode
|
||||
</button>
|
||||
<div>Current RAINS status</div>
|
||||
<div>
|
||||
<small class="fl">WET</small>
|
||||
<small class="fr">DRY</small>
|
||||
</div>
|
||||
<div class="rains">
|
||||
<div id="iforte_rains_bar_current" style="width: 50%"></div>
|
||||
</div>
|
||||
<div>MAX WET/resettable</div>
|
||||
<div>
|
||||
<small class="fl">WET</small>
|
||||
<small class="fr">DRY</small>
|
||||
</div>
|
||||
<div class="rains">
|
||||
<div id="iforte_rains_bar_max" style="width: 50%"></div>
|
||||
</div>
|
||||
<button class="btn btn-primary btn-block" id="maxwetreset">MAX WET reset</button>
|
||||
<p>
|
||||
<small id="iforte_demo_rains_last_reset"></small>
|
||||
</p>
|
||||
</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("iforte_dmxa","DMX address","Please put DMX address from 1 to 512");
|
||||
h += c_opt("iforte_dmxp", "DMX preset", [2], "Mode ", 0, 1, "");
|
||||
h += c_opt("iforte_dmxi","DMX input",["wired", "wireless", "wireless XLR out"],"",0,1,"Can not set wireless input now!");
|
||||
h += c_txt("iforte_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");
|
||||
}
|
||||
|
||||
// pers set
|
||||
$("#m-b").html(h);
|
||||
copy_form_values(1);
|
||||
$("#cfg-modal").modal();
|
||||
$(".sb").bind("click", function () {
|
||||
loader(1);
|
||||
var par = ["iforte_dmxa","iforte_dmxp","iforte_dmxi","iforte_rdmn"];
|
||||
do_ajax("/set_dmx", serialize_parameters(par));
|
||||
});
|
||||
|
||||
// hours reset
|
||||
$(".rh").bind("click", function () {
|
||||
loader(1);
|
||||
do_ajax('/reset_hours', "rh=" + this.value)
|
||||
});
|
||||
|
||||
// max temp reset
|
||||
$(".rt").bind("click", function () {
|
||||
loader(1);
|
||||
do_ajax('/reset_temps', "rt=" + this.value)
|
||||
});
|
||||
|
||||
// wireless unlink
|
||||
$(".lwu").bind("click", function () {
|
||||
loader(1);
|
||||
close_modal();
|
||||
loader(0);
|
||||
});
|
||||
}
|
||||
|
||||
// standby mode
|
||||
$("#esm").on("click", function () {
|
||||
toggleStandbyMode();
|
||||
});
|
||||
// max wet reset
|
||||
$("#maxwetreset").on("click", function () {
|
||||
do_ajax('/max_wet', "0");
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,39 +1,39 @@
|
||||
<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>
|
||||
</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="./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" 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>
|
||||
<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>
|
||||
</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="./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" 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>
|
||||
</nav>
|
||||
<div class="fixed-top text-center device-label" id="pth" onclick="window.location = ('../index.html')"></div>
|
||||
<div class="container-fluid 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>
|
||||
</nav>
|
||||
<div class="fixed-top text-center device-label" id="pth" ></div>
|
||||
<div class="container-fluid 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">
|
||||
<small>Logs filters not functionnal on this simulator.</small>
|
||||
<br>
|
||||
@@ -362,7 +362,7 @@
|
||||
<li class="">37°C</li>
|
||||
<li class="dn">-32°C</li>
|
||||
</ul>
|
||||
<h3>Display orientation</h3>Side Botom
|
||||
<h3>Display orientation</h3>Side Bottom
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -386,7 +386,7 @@
|
||||
<li class="">34°C</li>
|
||||
<li class="">33°C</li>
|
||||
</ul>
|
||||
<h3>Display orientation</h3>Side Botom
|
||||
<h3>Display orientation</h3>Side Bottom
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -407,7 +407,7 @@
|
||||
<li class="">21°C</li>
|
||||
<li class="dn">-32°C</li>
|
||||
</ul>
|
||||
<h3>Display orientation</h3>Side Botom
|
||||
<h3>Display orientation</h3>Side Bottom
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -459,83 +459,99 @@
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
|
||||
var is_sniffing = false;
|
||||
|
||||
// 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 cfgm() {
|
||||
$('#m-t').html('Logs tools');
|
||||
$('#m-f').empty();
|
||||
$('.sb').unbind();
|
||||
var tl = c_btn('Download log file', 0, ' dlog');
|
||||
if (!is_sniffing) {
|
||||
tl += c_btn('Start DMX sniff', 0, ' ddmx');
|
||||
} else {
|
||||
tl += c_btn('Stop DMX sniff', 0, ' ddmx');
|
||||
}
|
||||
$('#m-b').html(tl);
|
||||
$('#cfg-modal').modal();
|
||||
$('.dlog').bind('click', function () {
|
||||
// download logs
|
||||
close_modal()
|
||||
});
|
||||
$('.ddmx').bind('click', function () {
|
||||
// start sniff
|
||||
if (is_sniffing) {
|
||||
$('.ddmx').html('Start DMX sniff');
|
||||
is_sniffing = false;
|
||||
} else {
|
||||
$('.ddmx').html('Stop DMX sniff');
|
||||
is_sniffing = true;
|
||||
}
|
||||
|
||||
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 + '">';
|
||||
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) {
|
||||
}
|
||||
|
||||
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 +
|
||||
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"><=</option><option value="2">>=</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 +
|
||||
'">°<span class="tu" t1_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>
|
||||
html += '<div class="form-group col-auto"><select class="form-control" id="fts' + i + '">';
|
||||
html += '<option value="0">-</option><option value="1"><=</option><option value="2">>=</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 +
|
||||
'">°<span class="tu" t1_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>
|
||||
636
src/iforte/personality.html
Normal file
@@ -0,0 +1,636 @@
|
||||
<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>
|
||||
</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="./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" 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"
|
||||
|
||||
></div>
|
||||
<div class="container-fluid 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="iforte_dmxa_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_dmxp_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_dmxi_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_rdmn_v"></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="iforte_emod_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_ee2d_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_eanu_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_emau_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_emas_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_esau_v"></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="iforte_pr_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_tr_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_ptf_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_ptm_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_pte_v"></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="iforte_bldmc_v"></div>
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Active blackout while</h3>
|
||||
<ul class="group">
|
||||
<li>Pan/Tilt moving</li>
|
||||
<li>Gobo wheel moving</li>
|
||||
<li>Color wheel moving</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="iforte_blptm_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_blgwm_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_blprm_v"></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="iforte_dint_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_dsd_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_dtl_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_dor_v"></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>Dimmer curve</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="iforte_cdimc_v"></div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c">
|
||||
<h2>
|
||||
Date & 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="iforte_dtd_v"></div>
|
||||
.
|
||||
<div id="iforte_dtmo_v"></div>
|
||||
.
|
||||
<div id="iforte_dty_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_dth_v"></div>
|
||||
:
|
||||
<div id="iforte_dtmi_v"></div>
|
||||
:
|
||||
<div id="iforte_dts_v"></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>Follow spot mode</li>
|
||||
<li>LEDs output frequency (Hz)</li>
|
||||
<li>Fan mode</li>
|
||||
<li>Gobo indexing</li>
|
||||
<li>Temperature unit</li>
|
||||
<li>Display buttons</li>
|
||||
</ul>
|
||||
<ul class="group vals" id="">
|
||||
<li>
|
||||
<div id="iforte_fsmo_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_frq_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_fanm_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_gind_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_tmpu_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="iforte_btns_v"></div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-xl-4 box-c" style="display: block">
|
||||
<h2>Pressure test</h2>
|
||||
<div class="box prst text-center">
|
||||
<span id="pt-l1"></span><span id="pt-l2"></span><span id="pt-l3"></span><button class="btn btn-success btn-block"
|
||||
id="pt_b" onclick="pressureTest()">
|
||||
Start test
|
||||
</button>
|
||||
</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",
|
||||
];
|
||||
var addrs = [
|
||||
"set_dmx",
|
||||
"eth_s",
|
||||
"pt_s",
|
||||
"bl_s",
|
||||
"dis_s",
|
||||
"ldt_s",
|
||||
"oth_s",
|
||||
"col_s",
|
||||
];
|
||||
var params = [
|
||||
["iforte_dmxa", "iforte_dmxp", "iforte_dmxi", "iforte_rdmn"],
|
||||
["iforte_emod", "iforte_ee2d", "iforte_eanu", "iforte_emau", "iforte_emas", "iforte_esau"],
|
||||
["iforte_pr", "iforte_tr", "iforte_ptf", "iforte_ptm", "iforte_pte"],
|
||||
["iforte_bldmc", "iforte_blptm", "iforte_blprm", "iforte_blgwm", "iforte_bltim"],
|
||||
["iforte_dint", "iforte_dsd", "iforte_dtl", "iforte_dor"],
|
||||
["iforte_dtd", "iforte_dtmo", "iforte_dty", "iforte_dth", "iforte_dtmi", "iforte_dts"],
|
||||
[
|
||||
"iforte_fanm",
|
||||
"iforte_tmpu",
|
||||
"iforte_cpm",
|
||||
"iforte_fannl",
|
||||
"iforte_fsmo",
|
||||
"iforte_btns",
|
||||
"iforte_freq",
|
||||
"iforte_freqa",
|
||||
"iforte_gind",
|
||||
"iforte_gwhm",
|
||||
],
|
||||
[
|
||||
"iforte_cdimc"
|
||||
]
|
||||
];
|
||||
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(
|
||||
"iforte_dmxa",
|
||||
"DMX address",
|
||||
"Please put DMX address from 1 to 512"
|
||||
);
|
||||
h += c_opt("iforte_dmxp", "DMX preset", [2], "Mode ", 0, 1, "");
|
||||
h += c_opt(
|
||||
"iforte_dmxi",
|
||||
"DMX input",
|
||||
["wired", "wireless", "wireless XLR out"],
|
||||
"",
|
||||
0,
|
||||
1,
|
||||
"Can not set wireless input now!"
|
||||
);
|
||||
h += c_txt(
|
||||
"iforte_rdmn",
|
||||
"RDM label",
|
||||
"Please insert label,max 32 characters"
|
||||
);
|
||||
} else if (a_m == 1) {
|
||||
h += c_rad(
|
||||
"iforte_emod",
|
||||
"Ethernet mode",
|
||||
["disable", "ArtNet", "gMA1", "gMA2", "sACN"],
|
||||
"",
|
||||
""
|
||||
);
|
||||
h += c_rad("iforte_ee2d", "Ethernet to DMX", off_on_l, "", "");
|
||||
h += c_txt(
|
||||
"iforte_eanu",
|
||||
"ArtNet universe",
|
||||
"Please put ArtNet universe from 0 to 255"
|
||||
);
|
||||
h += c_txt(
|
||||
"iforte_emau",
|
||||
"MANet I/II universe",
|
||||
"Please put MANet I / II universe from 1 to 256 (64 for MANet I)"
|
||||
);
|
||||
h += c_txt(
|
||||
"iforte_emas",
|
||||
"MANet session ID",
|
||||
"Please put MANet session ID from 1 to 32"
|
||||
);
|
||||
h += c_txt(
|
||||
"iforte_esau",
|
||||
"sACN universe",
|
||||
"Please put sACN universe from 1 to 32000"
|
||||
);
|
||||
} else if (a_m == 2) {
|
||||
h += c_rad("iforte_pr", "Pan reverse", off_on_l, "", "");
|
||||
h += c_rad("iforte_tr", "Tilt reverse", off_on_l, "", "");
|
||||
h += c_rad("iforte_ptf", "Pan / Tilt feedback", off_on_l, "", "");
|
||||
h += c_rad("iforte_ptm", "Pan / Tilt Mode", ["speed", "time"], "", "");
|
||||
h += c_rad("iforte_pte", "Pan / Tilt EMS", off_on_l, "", "");
|
||||
} else if (a_m == 3) {
|
||||
h += c_rad("iforte_bldmc", "Blackout DMC", off_on_l, "", "");
|
||||
h += "<h3>Active blackout while</h3>";
|
||||
h += c_rad("iforte_blptm", "Pan/Tilt moving", off_on_l, "", "");
|
||||
h += c_rad("iforte_blgwm", "Gobo wheel moving", off_on_l, "", "");
|
||||
h += c_rad("iforte_blprm", "Color wheel moving", off_on_l, "", "");
|
||||
} else if (a_m == 4) {
|
||||
h += c_opt("iforte_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("iforte_dsd", "Screensaver delay", dsd_dtl_l, "", 0, 0, "");
|
||||
h += c_opt("iforte_dtl", "Touchscreen lock", dsd_dtl_l, "", 0, 0, "");
|
||||
h += c_rad(
|
||||
"iforte_dor",
|
||||
"Display orientation",
|
||||
["normal", "inverted", "auto"],
|
||||
""
|
||||
);
|
||||
} else if (a_m == 5) {
|
||||
h += '<div class="row">';
|
||||
h += c_txt("iforte_dtd", "Day", "", "col-4");
|
||||
h += c_txt("iforte_dtmo", "Month", "", "col-4");
|
||||
h += c_txt("iforte_dty", "Year", "", "col-4");
|
||||
h += c_txt("iforte_dth", "Hour", "", "col-4");
|
||||
h += c_txt("iforte_dtmi", "Minute", "", "col-4");
|
||||
h += c_txt("iforte_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(
|
||||
"iforte_fsmo",
|
||||
"Follow spot mode",
|
||||
["off", "soft", "medium", "hard"],
|
||||
"",
|
||||
0,
|
||||
0,
|
||||
""
|
||||
);
|
||||
h += c_rad(
|
||||
"iforte_frqs",
|
||||
"LEDs output frequency (Hz)",
|
||||
["300", "600", "1200", "2400"],
|
||||
"",
|
||||
""
|
||||
);
|
||||
h += '<div class="form-group">';
|
||||
h +=
|
||||
'<label for="iforte_frqa" class="col-form-label">LEDs 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="iforte_frqa"></div>';
|
||||
h += '<div class="col-5 col-sm-4 mt06 text-right" id="iforte_frq_bv"></div>';
|
||||
h += "</div>";
|
||||
h += "</div>";
|
||||
h += c_rad("iforte_fanm", "Fan mode", ["auto", "high", "quiet"], "", "");
|
||||
h += '<div class="form-group" id="iforte_fannl_fg">';
|
||||
h +=
|
||||
'<label for="iforte_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="iforte_fannl"></div>';
|
||||
h += '<div class="col-3 col-sm-2 mt06 text-right">100 %</div>';
|
||||
h += "</div>";
|
||||
h += "</div>";
|
||||
h += c_opt(
|
||||
"iforte_gind",
|
||||
"Gobo indexing",
|
||||
[
|
||||
"max. speed & shortcut",
|
||||
"follow spd. & dir.",
|
||||
"max. spd. & follow dir.",
|
||||
],
|
||||
"",
|
||||
0,
|
||||
0,
|
||||
""
|
||||
);
|
||||
h += c_rad("iforte_tmpu", "Temperature unit", ["°C", "°F"], "", "");
|
||||
h += c_rad("iforte_btns", "Display buttons", off_on_l, "", "");
|
||||
} else if (a_m == 7) {
|
||||
h += c_rad("iforte_cdimc", "Dimmer curve", ["linear", "square law"], "", "");
|
||||
}
|
||||
|
||||
$("#m-b").html(h);
|
||||
$("#m-f").show();
|
||||
copy_form_values(1);
|
||||
$("#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, function (json) {
|
||||
if (json) {
|
||||
if (json["status"] == 0) {
|
||||
copy_form_values(0);
|
||||
if (a_m == 0) {
|
||||
ptit(json["pt"]);
|
||||
} else if (a_m == 6) {
|
||||
if (json["iforte_fanm"] == "quiet") {
|
||||
$("#iforte_themq").show();
|
||||
} else {
|
||||
$("#iforte_themq").hide();
|
||||
}
|
||||
$("#iforte_frqs_v").html(iforte_frq_s(frq));
|
||||
}
|
||||
close_modal();
|
||||
}
|
||||
show_errors(json["status"], params[a_m]);
|
||||
loader(0);
|
||||
}
|
||||
});
|
||||
});
|
||||
if (a_m == 5) {
|
||||
$(".uldt").bind("click", function () {
|
||||
var date = new Date();
|
||||
$("#iforte_dtd").val(date.getDate());
|
||||
$("#iforte_dtmo").val(date.getMonth() + 1);
|
||||
$("#iforte_dty").val(date.getFullYear());
|
||||
$("#iforte_dth").val(("0" + date.getHours()).slice(-2));
|
||||
$("#iforte_dtmi").val(("0" + date.getMinutes()).slice(-2));
|
||||
$("#iforte_dts").val(("0" + date.getSeconds()).slice(-2));
|
||||
});
|
||||
} else if (a_m == 6) {
|
||||
$("#iforte_fannl").on("input change", function () {
|
||||
$(this)
|
||||
.parent()
|
||||
.next()
|
||||
.html($(this).val() + "%");
|
||||
});
|
||||
$("#iforte_fannl").change();
|
||||
$("input[name=iforte_fanm]").on("change", function () {
|
||||
if ($("input[name=iforte_fanm]:checked").val() == 2) {
|
||||
$("#iforte_fannl_fg").show();
|
||||
} else {
|
||||
$("#iforte_fannl_fg").hide();
|
||||
}
|
||||
});
|
||||
$("input[name=iforte_fanm]").change();
|
||||
$("input[name=iforte_frqs]")
|
||||
.eq(frq >> 12)
|
||||
.attr("checked", "checked");
|
||||
$("#iforte_frqa").val(frq & 0xfff);
|
||||
$("input[name=iforte_frqs]").on("change", function () {
|
||||
frq = $("input[name=iforte_frqs]:checked").val() << 12;
|
||||
frq |= 0x340;
|
||||
$("#iforte_frqa").val(0x340);
|
||||
$("#iforte_frq_bv").html(iforte_frq_s(frq) + " Hz");
|
||||
});
|
||||
$("#iforte_frqa").on("input change", function () {
|
||||
frq &= 0xf000;
|
||||
frq |= $("#iforte_frqa").val();
|
||||
$("#iforte_frq_bv").html(iforte_frq_s(frq) + " Hz");
|
||||
});
|
||||
$("#iforte_frqa").change();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -26,7 +26,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="fixed-top text-center device-label" id="pth" onclick="window.location = ('../index.html')"></div>
|
||||
<div class="fixed-top text-center device-label" id="pth" ></div>
|
||||
<div class="container-fluid in">
|
||||
<h1>RAINS logs</h1>
|
||||
<div class="row" id="boxes">
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="fixed-top text-center device-label" id="pth" onclick="window.location = ('../index.html')"></div>
|
||||
<div class="fixed-top text-center device-label" id="pth" ></div>
|
||||
<div class="container in">
|
||||
<h1>Discovery</h1>
|
||||
<div class="row" id="boxes">
|
||||
@@ -23,7 +23,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="fixed-top text-center device-label" id="pth" onclick="window.location = ('../index.html')"></div>
|
||||
<div class="fixed-top text-center device-label" id="pth" ></div>
|
||||
<div class="container in">
|
||||
<h1>Device status</h1>
|
||||
<div class="row" id="boxes">
|
||||
@@ -117,7 +117,7 @@
|
||||
<div id="t1_t2_v"></div> °<div class="t1_tu" id="t1_tu_v"></div> / <div id="t1_tm2_v"></div> °<div class="t1_tu" id="t1_tu_v"></div> / <div id="t1_tmr2_v"></div> °<div class="t1_tu" id="t1_tu_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="t1_lt0_v"></div> °<div class="tu" id="t1_tu_v"></div> / <div id="t1_ltm0_v"></div> °<div class="t1_tu" id="t1_tu_v"></div> / <div id="t1_ltmr0_v"></div> °<div class="t1_tu" id="t1_tu_v"></div>
|
||||
<div id="t1_lt0_v"></div> °<div class="t1_tu" id="t1_tu_v"></div> / <div id="t1_ltm0_v"></div> °<div class="t1_tu" id="t1_tu_v"></div> / <div id="t1_ltmr0_v"></div> °<div class="t1_tu" id="t1_tu_v"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="t1_lt1_v"></div> °<div class="t1_tu" id="t1_tu_v"></div> / <div id="t1_ltm1_v"></div> °<div class="t1_tu" id="t1_tu_v"></div> / <div id="t1_ltmr1_v"></div> °<div class="t1_tu" id="t1_tu_v"></div>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="fixed-top text-center device-label" id="pth" onclick="window.location = ('../index.html')"></div>
|
||||
<div class="fixed-top text-center device-label" id="pth" ></div>
|
||||
<div class="container in">
|
||||
<h1>Device logs</h1>
|
||||
<div class="row" id="boxes">
|
||||
@@ -323,22 +323,38 @@
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
// 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()
|
||||
})
|
||||
|
||||
var is_sniffing = false;
|
||||
|
||||
// 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');
|
||||
if (!is_sniffing) {
|
||||
tl += c_btn('Start DMX sniff', 0, ' ddmx');
|
||||
} else {
|
||||
tl += c_btn('Stop DMX sniff', 0, ' ddmx');
|
||||
}
|
||||
$('#m-b').html(tl);
|
||||
$('#cfg-modal').modal();
|
||||
$('.dlog').bind('click', function () {
|
||||
// download logs
|
||||
close_modal()
|
||||
});
|
||||
$('.ddmx').bind('click', function () {
|
||||
// start sniff
|
||||
if (is_sniffing) {
|
||||
$('.ddmx').html('Start DMX sniff');
|
||||
is_sniffing = false;
|
||||
} else {
|
||||
$('.ddmx').html('Stop DMX sniff');
|
||||
is_sniffing = true;
|
||||
}
|
||||
close_modal()
|
||||
})
|
||||
}
|
||||
|
||||
function lfix(l) {
|
||||
return l.charAt(0).toUpperCase() + l.slice(1).toLowerCase().replace('ems', 'EMS')
|
||||
@@ -25,18 +25,18 @@
|
||||
<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>
|
||||
<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" onclick="window.location = ('../index.html')"></div>
|
||||
<div class="fixed-top text-center device-label" id="pth" ></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>
|
||||
<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>
|
||||
@@ -61,8 +61,7 @@
|
||||
</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>
|
||||
<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>
|
||||
@@ -95,8 +94,7 @@
|
||||
</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>
|
||||
<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>
|
||||
@@ -125,8 +123,7 @@
|
||||
</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>
|
||||
<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>
|
||||
@@ -148,8 +145,7 @@
|
||||
</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>
|
||||
<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>
|
||||
@@ -174,8 +170,7 @@
|
||||
</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>
|
||||
<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>
|
||||
@@ -222,8 +217,7 @@
|
||||
</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>
|
||||
<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>
|
||||
@@ -238,7 +232,8 @@
|
||||
</li>
|
||||
<li>
|
||||
<div id="t1_them_v"></div>
|
||||
<div id="t1_themq" class="pl03 dn" style="display: none;">(<div id="t1_fannl_v"></div>%)</div>
|
||||
<div id="t1_themq" class="pl03 dn" style="display: none;">(<div id="t1_fannl_v"></div>%)
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="t1_frq_v"></div>
|
||||
@@ -269,7 +264,7 @@
|
||||
<script>
|
||||
var modal_id = -1;
|
||||
var modal_titles = ['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 addrs = ['set_dmx', 'eth_s', 'pt_s', 'bl_s', 'dis_s', 'ldt_s', 'oth_s', 'col_s', 'lamp_s',];
|
||||
var params = [
|
||||
['t1_dmxa', 't1_dmxp', 't1_dmxi', 't1_rdmn'],
|
||||
['t1_emod', 't1_ee2d', 't1_eanu', 't1_emau', 't1_emas', 't1_esau'],
|
||||
@@ -281,12 +276,12 @@
|
||||
['t1_ccri', 't1_cdimc', 't1_hpwrm', 't1_ccalm', 't1_mixm', 't1_chrwh', 't1_thefs', 't1_whip83z'],
|
||||
['t1_lonof', 't1_lpwr', 't1_ligde', 't1_llise', 't1_lonpon', 't1_lofvd', 't1_londp', 't1_lofdm'],
|
||||
];
|
||||
|
||||
|
||||
function open_modal(i) {
|
||||
var t1_frq = sessionStorage.getItem('t1_frq');
|
||||
var t1_them = sessionStorage.getItem('t1_them');
|
||||
var t1_fannl = sessionStorage.getItem('t1_fannl');
|
||||
|
||||
|
||||
modal_id = i;
|
||||
if (modal_id < modal_titles.length) {
|
||||
$('#m-t').html(modal_titles[modal_id])
|
||||
@@ -373,7 +368,7 @@
|
||||
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="t1_ligde"></div>';
|
||||
'<div class="col-9 col-sm-10"><input type="range" min="0" max="90" class="form-control" id="t1_ligde"></div>';
|
||||
h += '<div class="col-3 col-sm-2 mt06 text-right"></div>';
|
||||
h += '</div>';
|
||||
h += '</div>';
|
||||
@@ -421,10 +416,10 @@
|
||||
$('#t1_fannl').change();
|
||||
$('input[name=t1_them]').on('change', function () {
|
||||
if ($('input[name=t1_them]:checked').val() == 1) {
|
||||
$('#t1_fannl_fg').show();
|
||||
$('#t1_fannl_fg').show();
|
||||
} else {
|
||||
$('#t1_fannl_fg').hide();
|
||||
}
|
||||
}
|
||||
});
|
||||
$('input[name=t1_them]').change();
|
||||
$('input[name=t1_frqs]').eq(t1_frq >> 12).attr('checked', 'checked'); // checks the radio of the proper
|
||||
@@ -441,13 +436,6 @@
|
||||
$('#t1_frq_bv').html(t1_frq_s(t1_frq) + ' Hz')
|
||||
});
|
||||
$('#t1_frqa').change()
|
||||
} else if (modal_id == 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()
|
||||
}
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |