diff --git a/html/eee.html b/html/eee.html new file mode 100644 index 0000000..5e2eb5e --- /dev/null +++ b/html/eee.html @@ -0,0 +1,26 @@ + + + + + + FreeSwitchOS Port Statistics + + + +
+
+

EEE Status

+ + + +
Advertising Link-Partner advertises
Port 2.5G 1G 100M 2.5G 1G 100M Active?
+
+ + +
+ + +
+ + + diff --git a/html/eee.js b/html/eee.js new file mode 100644 index 0000000..0bb89b1 --- /dev/null +++ b/html/eee.js @@ -0,0 +1,48 @@ +function createEEE() { + var tbl = document.getElementById('eeetable'); + if (tbl.rows.length <= 2) { + console.log("CREATING TABLE ", tbl.rows.length); + for (let i = 2; i < 8; i++) { + console.log("Table row: " + i + "pState: " + pState[i-2]); + const tr = tbl.insertRow(); + let td = tr.insertCell(); td.appendChild(document.createTextNode(`Port ${i-1}`)); + for (let j = 0; j < 7; j++) { + td = tr.insertCell(); td.appendChild(document.createTextNode(" ")); + } + } + } +} + +function getEEE() { + var xhttp = new XMLHttpRequest(); + xhttp.onreadystatechange = function() { + if (this.readyState == 4 && this.status == 200) { + const s = JSON.parse(xhttp.responseText); + console.log("EEE: ", JSON.stringify(s)); + var tbl = document.getElementById('eeetable'); + if (tbl.rows.length > 2) { + for (let i = 2; i < 8; i++) { + p = s[i-2]; + let n = p.portNum; + console.log("Table Update row: " + i + " portNum is " + n + ", pState is " + pState[i-2]); + let tr = tbl.rows[n+1]; + if (!p.isSFP) { + let eee = parseInt(p.eee,2); let lp = parseInt(p.eee_lp,2); + tr.cells[1].innerHTML = `${eee&4?"ON":"OFF"}`; tr.cells[2].innerHTML = `${eee&2?"ON":"OFF"}`; tr.cells[3].innerHTML = `${eee&1?"ON":"OFF"}`; + tr.cells[4].innerHTML = `${lp&4?"ON":"OFF"}`; tr.cells[5].innerHTML = `${lp&2?"ON":"OFF"}`; tr.cells[6].innerHTML = `${lp&1?"ON":"OFF"}`; + tr.cells[7].innerHTML = `${p.active}`; + tr.classList.toggle('disabled', pState[i-2] < 0); tr.classList.toggle('isNOK', !p.active); tr.classList.toggle('isOK', p.active); + } + tr.classList.toggle('isSFP', p.isSFP); + } + } + } + }; + xhttp.open("GET", "/eee.json", true); + xhttp.send(); +} + +window.addEventListener("load", function() { + const iCount = setInterval(getEEE, 1000); +}); +const stat = setInterval(createEEE, 500); diff --git a/html/eee_sub.js b/html/eee_sub.js new file mode 100644 index 0000000..6a72f92 --- /dev/null +++ b/html/eee_sub.js @@ -0,0 +1,18 @@ +async function eeeSub(port, enable) { + var cmd = "eee "; + if (enable) + cmd = cmd + "on"; + else + cmd = cmd + "off"; + console.log("eeeSub port " + port, ", value " + enable); + try { + const response = await fetch('/cmd', { + method: 'POST', + body: cmd + }); + console.log('Completed!', response); + } catch(err) { + console.error(`Error: ${err}`); + } +} +