todays work

This commit is contained in:
2023-03-04 17:50:23 +01:00
parent 164b847425
commit 8e2605877f
3 changed files with 343 additions and 127 deletions

View File

@@ -1,5 +1,8 @@
$(document).ready(function() {
initSessionStorage()
populateUIFromSessionStorage()
// Sets the proper fixture name in the header and title
var fixturename = "Robin iForte - Simulated";
$('#pth').html(fixturename)
@@ -24,12 +27,18 @@ $(document).ready(function() {
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'];
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) {
@@ -44,6 +53,15 @@ $(document).ready(function() {
});
});
// handle reset demo values
$(document).on('click','.btnresetdemo',function() {
$('.sb').html('OK')
sessionStorage.clear()
initSessionStorage()
populateUIFromSessionStorage()
showCustomModal('Cleared', 'Simulated page reset to default settings.')
});
// handle RDM ident
var idntb = $('#idnt img');
$('#idnt').click(function() {
@@ -51,22 +69,17 @@ $(document).ready(function() {
});
});
function get_cookie(n,d,ti=false) {
var r = d;
var c = document.cookie.split(';');
c.forEach(function(v,i) {
v = v.split('=');
if (v[0].trim() == n) {
if (ti) {
const par = parseInt(v[1].trim());
if (!isNaN(par)) {
r = par;
}
} else r = v[1].trim();
}
// 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()
});
return r;
}
function mhdr_status(c) {
@@ -81,11 +94,11 @@ function loader(showheader) {
}
function do_ajax(p_url,p_data,f,i = -1,a = true) {
console.log("url : " + p_url);
/*console.log("url : " + p_url);
console.log("data : " + p_data);
console.log("callback function : " + f);
console.log("callback params : " + i);
console.log("async : " + a);
console.log("async : " + a);*/
}
function copy_form_values(dir) {
@@ -123,6 +136,13 @@ function copy_form_values(dir) {
}
});
}
// 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) {
@@ -199,17 +219,17 @@ function c_opt(n,t,o,pl,vp,lp,e) {
return html;
}
function c_rad(n,t,r,e,c) {
function c_rad(name,legend,options,invalid_feedback_text,group_class) {
var html = '<div class="form-group' + c + '">';
html += '<legend class="col-form-label">' + t + '</legend>';
for (i = 0; i < r.length; i++) {
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="' + n + '" value="' + i + '" id="' + n + (i + 1) + '">';
html += '<label class="form-check-label" for="' + n + (i + 1) + '">' + r[i] + '</label>';
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 += e.length > 0 ? '<div class="invalid-feedback">' + e + '</div>' : '';
html += invalid_feedback_text.length > 0 ? '<div class="invalid-feedback">' + invalid_feedback_text + '</div>' : '';
html += '</div>';
return html;
@@ -289,7 +309,7 @@ function generateNavBar() {
o += '</div>';
o += '</div>';
o += '</nav>';
o += '<div id="cfg-modal" class="modal fade" tabindex="-1" role="dialog">';
o += '<div class="modal-dialog" role="document">';
o += '<div class="modal-content">';
@@ -317,17 +337,14 @@ var pre = '';
var dmxsnf = '';
function ptit(t) {
// console.log('setting title to ' + t);
if (t == $('#pth').data('title')) return;
// console.log('set');
if (t.length) $('#pth').data('title',t);
$('#pth').html($('#pth').data('title') + dmxsnf);
$('#pt_v').html(pre + $('#pth').html());
// console.log($('#pth').html());
}
function c_dt(n,t,e,c,it) {
@@ -356,4 +373,242 @@ function c_fsens(i,t,u) {
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_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_hpwrm', '0') // high pwr mode
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_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;
}
$("#" + 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)
}