107 lines
2.8 KiB
JavaScript
107 lines
2.8 KiB
JavaScript
import Doodle3DAPI from 'src/doodle3dapi.js';
|
|
import rest from 'src/restapi.js';
|
|
|
|
var api = 'http://connect.doodle3d.com/api/';
|
|
|
|
var addBox = (function () {
|
|
var known = [];
|
|
|
|
return function (boxData) {
|
|
if (known.indexOf(boxData.localip) === -1) {
|
|
known.push(boxData.localip);
|
|
|
|
var row = document.createElement('tr');
|
|
row.style.color = 'gray';
|
|
|
|
var id = document.createElement('td');
|
|
var state = document.createElement('td');
|
|
var localIP = document.createElement('td');
|
|
var bed = document.createElement('td');
|
|
var bedTarget = document.createElement('td');
|
|
var bufferedLines = document.createElement('td');
|
|
var currentLine = document.createElement('td');
|
|
var hasControl = document.createElement('td');
|
|
var hotend = document.createElement('td');
|
|
var hotendTarget = document.createElement('td');
|
|
var totalLines = document.createElement('td');
|
|
|
|
row.appendChild(id);
|
|
row.appendChild(localIP);
|
|
row.appendChild(state);
|
|
row.appendChild(currentLine);
|
|
row.appendChild(bufferedLines);
|
|
row.appendChild(totalLines);
|
|
row.appendChild(hotend);
|
|
row.appendChild(hotendTarget);
|
|
row.appendChild(bed);
|
|
row.appendChild(bedTarget);
|
|
row.appendChild(hasControl);
|
|
|
|
id.innerHTML = boxData.wifiboxid;
|
|
localIP.innerHTML = boxData.localip;
|
|
|
|
document.getElementById('table').appendChild(row);
|
|
|
|
var doodle3DAPI = new Doodle3DAPI(boxData.localip);
|
|
doodle3DAPI.onconnect = function () {
|
|
row.style.color = 'black';
|
|
};
|
|
doodle3DAPI.ondisconnect = function () {
|
|
row.style.color = 'gray';
|
|
};
|
|
doodle3DAPI.onupdate = function (data) {
|
|
state.innerHTML = data.state;
|
|
if (data.state !== 'disconnected' && data.state !== 'connecting' && data.state !== 'unknown') {
|
|
bed.innerHTML = data.bed;
|
|
bedTarget.innerHTML = data.bed_target;
|
|
bufferedLines.innerHTML = data.buffered_lines;
|
|
currentLine.innerHTML = data.current_line;
|
|
hasControl.innerHTML = data.has_control;
|
|
hotend.innerHTML = data.hotend;
|
|
hotendTarget.innerHTML = data.hotend_target;
|
|
state.innerHTML = data.state;
|
|
totalLines.innerHTML = data.total_lines;
|
|
}
|
|
else {
|
|
bed.innerHTML = '';
|
|
bedTarget.innerHTML = '';
|
|
bufferedLines.innerHTML = '';
|
|
currentLine.innerHTML = '';
|
|
hasControl.innerHTML = '';
|
|
hotend.innerHTML = '';
|
|
hotendTarget.innerHTML = '';
|
|
state.innerHTML = '';
|
|
totalLines.innerHTML = '';
|
|
}
|
|
};
|
|
doodle3DAPI.startUpdateLoop();
|
|
}
|
|
}
|
|
})();
|
|
|
|
function searchBoxes () {
|
|
rest.get(api + 'list.php', function (error, boxes) {
|
|
if (error) {
|
|
return;
|
|
console.warn(error);
|
|
}
|
|
|
|
for (var i = 0; i < boxes.length; i ++) {
|
|
var box = boxes[i];
|
|
|
|
addBox(box);
|
|
}
|
|
});
|
|
}
|
|
setInterval(searchBoxes, 5000);
|
|
searchBoxes();
|
|
|
|
addBox({
|
|
localip: '127.0.0.1:3000',
|
|
wifiboxid: 'Node Server'
|
|
});
|
|
|
|
addBox({
|
|
localip: '192.168.5.1',
|
|
wifiboxid: 'Wired Printer'
|
|
}); |