Doodle3D-API/example/app.js

107 lines
2.8 KiB
JavaScript
Raw Normal View History

2015-07-23 16:39:24 +02:00
import Doodle3DAPI from 'src/index.js';
2015-07-23 16:12:11 +02:00
import rest from 'src/restapi.js';
2015-07-15 15:06:18 +02:00
var api = 'http://connect.doodle3d.com/api/';
2015-07-15 15:06:18 +02:00
2015-07-23 16:12:11 +02:00
var addBox = (function () {
var known = [];
2015-07-15 15:06:18 +02:00
2015-07-23 16:12:11 +02:00
return function (boxData) {
if (known.indexOf(boxData.localip) === -1) {
known.push(boxData.localip);
2015-07-15 15:06:18 +02:00
2015-07-23 16:12:11 +02:00
var row = document.createElement('tr');
row.style.color = 'gray';
2015-07-15 15:06:18 +02:00
2015-07-23 16:12:11 +02:00
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');
2015-07-15 15:06:18 +02:00
2015-07-23 16:12:11 +02:00
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);
2015-07-15 15:06:18 +02:00
2015-07-23 16:12:11 +02:00
id.innerHTML = boxData.wifiboxid;
localIP.innerHTML = boxData.localip;
2015-07-15 15:06:18 +02:00
2015-07-23 16:12:11 +02:00
document.getElementById('table').appendChild(row);
2015-07-16 13:55:13 +02:00
2015-07-23 16:12:11 +02:00
var doodle3DAPI = new Doodle3DAPI(boxData.localip);
doodle3DAPI.onconnect = function () {
row.style.color = 'black';
};
doodle3DAPI.ondisconnect = function () {
row.style.color = 'gray';
};
doodle3DAPI.onupdate = function (data) {
2015-07-16 13:55:13 +02:00
state.innerHTML = data.state;
2015-07-23 16:12:11 +02:00
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();
}
2015-07-16 13:55:13 +02:00
}
2015-07-23 16:12:11 +02:00
})();
2015-07-16 13:55:13 +02:00
function searchBoxes () {
rest.get(api + 'list.php', function (error, boxes) {
2015-07-16 13:55:13 +02:00
if (error) {
return;
console.warn(error);
2015-07-15 15:06:18 +02:00
}
2015-07-16 13:55:13 +02:00
for (var i = 0; i < boxes.length; i ++) {
var box = boxes[i];
addBox(box);
2015-07-15 15:06:18 +02:00
}
2015-07-16 13:55:13 +02:00
});
2015-07-15 15:06:18 +02:00
}
2015-07-16 13:55:13 +02:00
setInterval(searchBoxes, 5000);
searchBoxes();
2015-07-15 15:06:18 +02:00
2015-07-16 13:55:13 +02:00
addBox({
2015-07-23 16:12:11 +02:00
localip: '127.0.0.1:3000',
wifiboxid: 'Node Server'
2015-07-15 15:06:18 +02:00
});
addBox({
localip: '192.168.5.1',
wifiboxid: 'Wired Printer'
2015-07-15 15:06:18 +02:00
});