diff --git a/iforte/base.js b/iforte/base.js index 3069b7b..cbb7ed7 100644 --- a/iforte/base.js +++ b/iforte/base.js @@ -1,565 +1,759 @@ -$(document).ready(function() { - - initSessionStorage() - populateUIFromSessionStorage() - - loopRainsSimulator() +var is_pressure_test_ongoing = false; - // Sets the proper fixture name in the header and title - var fixturename = "Robin iForte - Simulated"; - $('#pth').html(fixturename) - $(document).prop('title', fixturename) +$(document).ready(function () { + initSessionStorage(); + populateUIFromSessionStorage(); - // 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 = '

Password settings

'; - 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 += "

Simulator

"; - 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.') - }); + 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"); + $("#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 = "

Password settings

"; + 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 += "

Simulator

"; + 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) { + 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"); +function toggleStandbyMode() { + var standby_mode = sessionStorage.getItem("iforte_devs"); - setTimeout(() => { - loopRainsSimulator() - }, 1000); + 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 loopRainsSimulator() { + setTimeout(() => { + loopRainsSimulator(); + }, 1000); +} + +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) { + if (is_pressure_test_ongoing) { + if (time == 0) { + is_pressure_test_ongoing = false; + $("#pt-l1").html(""); + $("#pt-l3").html(""); + + // TODO : implement pressure failing here + $("#pt-l2").html("OK"); + $("#pt-l2").addClass("ptok"); + /* + $('#pt-l2').html('FAIL') + $('#pt-l2').addClass('ptf') + */ + + $("#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) + ); + $("#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 = '

' + text +'

'; - $('#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); + loader(0); + $("#m-t").html(title); + var h = "

" + text + "

"; + $("#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'); + 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) +function do_ajax(p_url, p_data) { + loader(1); - 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() + // 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('
Wrong value!
'); - } - }); - } - - // 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'); - } - + $("#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('
Wrong value!
'); + } + }); + } + + // 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 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); + 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; + 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 = '
'; - html += ''; - html += ''; - html += e.length > 0 ? '
' + e + '
' : ''; - html += '
'; - - return html; +function c_txt(n, t, e, c = "", it = "text") { + var html = '
'; + html += '"; + html += ''; + html += e.length > 0 ? '
' + e + "
" : ""; + html += "
"; + + return html; } -function c_btn(t,v,c) { - - return ''; +function c_btn(t, v, c) { + return ( + '" + ); } -function c_opt(n,t,o,pl,vp,lp,e) { - - var html = '
'; - html += ''; - html += ''; - html += e.length > 0 ? '
' + e + '
' : ''; - html += '
'; - - return html; +function c_opt(n, t, o, pl, vp, lp, e) { + var html = '
'; + html += '"; + html += '"; + html += e.length > 0 ? '
' + e + "
" : ""; + html += "
"; + + return html; } -function c_rad(name,legend,options,invalid_feedback_text,group_class) { - - var html = '
'; - html += '' + legend + ''; - for (i = 0; i < options.length; i++) { - html += '
'; - html += ''; - html += ''; - html += '
'; - } - html += invalid_feedback_text.length > 0 ? '
' + invalid_feedback_text + '
' : ''; - html += '
'; - - return html; +function c_rad(name, legend, options, invalid_feedback_text, group_class) { + var html = '
'; + html += '' + legend + ""; + for (i = 0; i < options.length; i++) { + html += '
'; + html += + ''; + html += + '"; + html += "
"; + } + html += + invalid_feedback_text.length > 0 + ? '
' + invalid_feedback_text + "
" + : ""; + html += "
"; + + return html; } -var pre = ''; -var dmxsnf = ''; +var pre = ""; +var dmxsnf = ""; -function c_dt(n,t,e,c,it) { - - var html = '
'; - html += ''; - html += '
'; - html += ''; - html += e.length > 0 ? '
' + e + '
' : ''; - html += '
'; - - return html; +function c_dt(n, t, e, c, it) { + var html = '
'; + html += '"; + html += '
'; + html += + ''; + html += e.length > 0 ? '
' + e + "
" : ""; + html += "
"; + + return html; } -function c_fsens(i,t,u) { - - var html = ''; - html += '
'; - html += '
'; - html += '
'; - html += '
'; - html += '
'; - html += '
'; - - return html; +function c_fsens(i, t, u) { + var html = ""; + html += '
'; + html += + '
"; + html += + '
"; + html += + '
'; + html += + '
"; + html += "
"; + + return html; } // add leading zeros to single digit hours, minutes, etc... function addLeadingZeros(num) { - return String(num).padStart(2, '0'); + 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 - } + 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", "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() { - 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')) - } + // 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; + 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(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) -} +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) + ); +} \ No newline at end of file diff --git a/iforte/index.html b/iforte/index.html index 18e611e..14d720a 100644 --- a/iforte/index.html +++ b/iforte/index.html @@ -1,456 +1,480 @@ - - - - - - - - - - - - -
- -
-

Device status

-
-
-

DMX/RDM settings - - -

-
-
    -
  • DMX address
  • -
  • DMX preset
  • -
  • DMX input
  • -
  • IP address
  • -
  • MAC address
  • -
  • RDM UID
  • -
  • RDM label
  • -
-
    -
  • -
    -
  • -
  • -
    - -
  • -
  • -
    -
  • -
  • -
    -
  • -
  • -
    -
  • -
  • -
    -
  • -
  • -
    -
  • -
-
-
-
-

Device times - - -

-
-
    -
  • Power on time
  • -
-
    -
  • -
    h /
    h -
  • -
-

- total / resettable -

-
    -
  • LED on time total
  • -
  • LED on time adaptive
  • -
-
    -
  • -
    h -
  • -
  • -
    h -
  • -
-
-
-
-

Device temperatures - - -

-
-
    -
  • LEDs
  • -
  • PSU
  • -
  • Driver
  • -
  • Base
  • -
-
    -
  • -
    °
    /
    °
    /
    °
    -
  • -
  • -
    °
    /
    °
    /
    °
    -
  • -
  • -
    °
    /
    °
    /
    °
    -
  • -
  • -
    °
    /
    °
    /
    °
    -
  • -
-

- current / maximum / resettable -

-
-
-
-

Wireless state - - -

-
-
    -
  • State
  • -
  • Signal strength
  • -
-
    -
  • -
    -
  • -
  • -
    %
    -
  • -
-
-
-
-

Software versions

-
-
    -
  • Display System
  • -
  • Module M
  • -
  • Module L1
  • -
  • Module L2
  • -
  • Module O
  • -
  • Module F-A
  • -
  • Module F-B
  • -
  • Module G1
  • -
  • Module G2
  • -
  • Module P
  • -
  • Module C1
  • -
  • Module C2
  • -
  • Module DL
  • -
-
    -
  • 1.9
  • -
  • 1.4
  • -
  • 1.6
  • -
  • 1.5
  • -
  • 1.3
  • -
  • 1.1
  • -
  • 1.1
  • -
  • 1.5
  • -
  • 1.5
  • -
  • 1.2
  • -
  • 1.2
  • -
  • 1.2
  • -
  • 1.2
  • -
-
-
-
-

Device state

-
-
    -
  • Device status
  • -
-
    -
  • -
    -
  • -
- -
Current RAINS status
-
- WET - DRY -
-
-
-
-
MAX WET/resettable
-
- WET - DRY -
-
-
-
- -

- last reset: 2.3.2023 16:19:57 -

-
-
-
-

Status messages

-
-
  • This is a simulated REAP™ page for demo purposes. Some content might be different on real fixtures.
  • -
  • Big thanks to Vincent BOUQUET for creating this simulator.
  • -
    -
    -
    -
    -