stash
This commit is contained in:
parent
be01d6b985
commit
9de089083c
8 changed files with 191 additions and 144 deletions
|
@ -259,17 +259,23 @@
|
|||
</header>
|
||||
<footer>
|
||||
<label>
|
||||
<input type="checkbox" name="onoffswitch" id="led-switch" onclick="gpio(this.value)">
|
||||
<input type="checkbox" name="onoffswitch" id="led-switch" onclick="gpio(this.checked)">
|
||||
<span class="toggle button">toggle signal led</span>
|
||||
</label>
|
||||
<label>
|
||||
<span>toggle signal led</span>
|
||||
<input type="color" onchange="colorTop(this.value)">
|
||||
<input type="color" oninput="colorTop(this.value)">
|
||||
</label>
|
||||
<label>
|
||||
<span>toggle signal led</span>
|
||||
<input type="color" onchange="colorBottom(this.value)">
|
||||
<input type="color" oninput="colorBottom(this.value)">
|
||||
</label>
|
||||
<label>
|
||||
<span>toggle signal led</span>
|
||||
<input type="range" min="0" max="4096" value="0" class="slider"
|
||||
oninput="lightSlider(this.value)">
|
||||
</label>
|
||||
|
||||
</footer>
|
||||
</article>
|
||||
</div>
|
||||
|
@ -279,12 +285,18 @@
|
|||
<div id="unused_values" style="display:none;"></div>
|
||||
<script type="text/javascript" src="js/smoothie_min.js"></script>
|
||||
<script>
|
||||
var menu = document.getElementById("bmenub");
|
||||
var voltage = document.getElementById("out_voltage");
|
||||
var syslog = document.getElementById("syslog");
|
||||
var menu = document.getElementById("bmenub");
|
||||
var onoffswitch = document.getElementById("led-switch");
|
||||
var sbox = document.getElementById('status_box');
|
||||
|
||||
var unused_values = {};
|
||||
|
||||
var ws;
|
||||
var retries;
|
||||
var series = new TimeSeries();
|
||||
|
||||
DataView.prototype.setChar = function (pos, char) {
|
||||
this.setInt8(pos++, char.charCodeAt(0));
|
||||
return pos;
|
||||
|
@ -309,17 +321,20 @@
|
|||
return pos;
|
||||
};
|
||||
|
||||
function htons(n) {
|
||||
return ((n & 0xFF) << 8) | ((n >> 8) & 0xFF);
|
||||
}
|
||||
|
||||
function htonl(n) {
|
||||
return ((n & 0xFF) << 24) | ((n & 0xFF00) << 8) | ((n >> 8) & 0xFF00) | ((n >> 24) & 0xFF);
|
||||
}
|
||||
|
||||
function colorStringToVec(hex) {
|
||||
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
||||
return result ? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)] : null;
|
||||
}
|
||||
|
||||
var ws;
|
||||
var retries;
|
||||
var series = new TimeSeries();
|
||||
|
||||
function setMsg(cls, text) {
|
||||
sbox = document.getElementById('status_box');
|
||||
sbox.className = "label " + cls;
|
||||
sbox.innerHTML = text;
|
||||
console.info(text);
|
||||
|
@ -344,30 +359,40 @@
|
|||
retries = 0;
|
||||
if (typeof evt.data == 'string') {
|
||||
var data = JSON.parse(evt.data);
|
||||
for (const [key, value] of Object.entries(data)) {
|
||||
const elements = document.querySelectorAll(".postfill_" + key);
|
||||
if (!elements.length)
|
||||
unused_values[key] = value;
|
||||
else
|
||||
for (i = 0; i < elements.length; ++i) {
|
||||
elements[i].innerHTML = value;
|
||||
}
|
||||
}
|
||||
document.getElementById("unused_values").innerHTML = JSON.stringify(unused_values);
|
||||
console.log("deprecated json:", data);
|
||||
} else {
|
||||
var data = {};
|
||||
var dv = new DataView(evt.data);
|
||||
console.log("[0]", dv.getUint8(0));
|
||||
var cmd = String.fromCharCode(dv.getUint8(0));
|
||||
let cmds = ["NONE", "RESTART", "CLEAR_CONFIG", "FIRMWARE_FRAME", "FIRMWARE_CHECK", "VOLTAGE_INFO", "SYSTEM_INFO"];
|
||||
//console.log("[0]", dv.getUint8(0));
|
||||
let fst = dv.getUint8(0);
|
||||
var cmd;
|
||||
if (fst < cmds.length) {
|
||||
cmd = cmds[fst];
|
||||
} else {
|
||||
cmd = String.fromCharCode(fst);
|
||||
}
|
||||
var val = dv.getUint16(1);
|
||||
|
||||
if (cmd === 'G')
|
||||
if (cmd === "SYSTEM_INFO") {
|
||||
data.walltime = htonl(dv.getUint32(1));
|
||||
data.uptime = htonl(dv.getUint32(5));
|
||||
data.heap = htonl(dv.getInt32(9));
|
||||
data.chipid = Number(htonl(dv.getUint32(13))).toString(16);
|
||||
data.flashid = Number(htonl(dv.getUint32(17))).toString(16);
|
||||
data.flashsize = htonl(dv.getUint32(21));
|
||||
} else if (cmd === "VOLTAGE_INFO") {
|
||||
console.log(cmd, buf2hex(evt.data));
|
||||
} else if (cmd === "G") {
|
||||
console.log("LED switched", val);
|
||||
else if ((cmd === 'F') || (cmd === "C")) {
|
||||
onoffswitch.checked = !!val;
|
||||
console.log("LED ", onoffswitch);
|
||||
} else if ((cmd === "F") || (cmd === "C")) {
|
||||
receive_chunk_confirmation(dv);
|
||||
} else if (cmd === 'V') {
|
||||
} else if (cmd === "V") {
|
||||
voltage.innerHTML = (val * 13 / 1024).toFixed(2);
|
||||
series.append(new Date().getTime(), val);
|
||||
} else if (cmd === 'L') {
|
||||
} else if (cmd === "L") {
|
||||
var len = dv.getUint8(1);
|
||||
var offset = dv.getUint16(2);
|
||||
var str = "";
|
||||
|
@ -376,9 +401,22 @@
|
|||
syslog.innerHTML = syslog.innerHTML.slice(0, offset) + str;
|
||||
const scrollingElement = (document.scrollingElement || document.body);
|
||||
scrollingElement.scrollTop = scrollingElement.scrollHeight;
|
||||
} else
|
||||
} else {
|
||||
console.log("[0]", dv.getUint8(0));
|
||||
console.log('unknown command', cmd, val);
|
||||
console.log(cmd);
|
||||
}
|
||||
}
|
||||
for (const [key, value] of Object.entries(data)) {
|
||||
const elements = document.querySelectorAll(".postfill_" + key);
|
||||
if (!elements.length)
|
||||
unused_values[key] = value;
|
||||
else
|
||||
for (i = 0; i < elements.length; ++i) {
|
||||
elements[i].innerHTML = value;
|
||||
}
|
||||
}
|
||||
document.getElementById("unused_values").innerHTML = JSON.stringify(unused_values);
|
||||
}
|
||||
|
||||
function wsOpen() {
|
||||
|
@ -448,11 +486,23 @@
|
|||
wsWrite(header);
|
||||
}
|
||||
|
||||
function lightSlider(val) {
|
||||
var header = new ArrayBuffer(8);
|
||||
var headerview = new DataView(header);
|
||||
headerview.setChar(0, 'J');
|
||||
headerview.setInt32(4, val);
|
||||
console.log(buf2hex(header));
|
||||
wsWrite(header);
|
||||
}
|
||||
|
||||
window.onload = function () {
|
||||
wsOpen();
|
||||
startPolling();
|
||||
}
|
||||
|
||||
var firmware_file;
|
||||
const chunk_size = 512;
|
||||
|
||||
var makeCRCTable = function () {
|
||||
var c;
|
||||
var crcTable = [];
|
||||
|
@ -478,8 +528,6 @@
|
|||
return (crc ^ (-1)) >>> 0;
|
||||
};
|
||||
|
||||
var firmware_file;
|
||||
|
||||
function load_firmware(evt) {
|
||||
var file = evt.target.files[0];
|
||||
if (!file) {
|
||||
|
@ -493,8 +541,6 @@
|
|||
reader.readAsArrayBuffer(file)
|
||||
}
|
||||
|
||||
const chunk_size = 512;
|
||||
|
||||
function transmit_firmware_chunk(buf, i) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const begin = i * chunk_size;
|
||||
|
@ -556,6 +602,13 @@
|
|||
}
|
||||
}
|
||||
|
||||
function update_progress(progressBar, progress) {
|
||||
var iP = Math.floor(progress);
|
||||
var dBar = document.getElementById("progress_bar_" + progressBar);
|
||||
dBar.innerText = iP + "%";
|
||||
dBar.style.width = progress + "%";
|
||||
}
|
||||
|
||||
var sta_toggle = document.getElementById("sta_toggle");
|
||||
var sta_ssid = document.getElementById("sta_ssid");
|
||||
var sta_pw = document.getElementById("sta_pw");
|
||||
|
@ -597,13 +650,6 @@
|
|||
tx_len = view1.setInt8Vec(tx_len, [255, 255, 255, 0]);
|
||||
wsWrite(buffer);
|
||||
}
|
||||
|
||||
function update_progress(progressBar, progress) {
|
||||
var iP = Math.floor(progress);
|
||||
var dBar = document.getElementById("progress_bar_" + progressBar);
|
||||
dBar.innerText = iP + "%";
|
||||
dBar.style.width = progress + "%";
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
Loading…
Add table
Add a link
Reference in a new issue