mirror of
https://github.com/Doodle3D/doodle3d-client.git
synced 2024-09-27 21:58:38 +02:00
85d91a2f36
Cleaning up a bit of the mess
128 lines
3.8 KiB
JavaScript
128 lines
3.8 KiB
JavaScript
function Printer() {
|
|
this.temperature = 0;
|
|
this.targetTemperature = 0;
|
|
|
|
this.wifiboxURL;
|
|
|
|
this.maxTempLastMod = 5; // max time (seconds) since the last temp info modification before the printer connection is considered lost
|
|
|
|
|
|
|
|
this.checkTemperatureInterval = 3000;
|
|
this.checkTemperatureDelay;
|
|
this.checkProgressInterval = 3000;
|
|
this.checkProgressDelay;
|
|
this.timeoutTime = 3000;
|
|
|
|
// Events
|
|
Printer.UPDATE = "update";
|
|
|
|
this.init = function() {
|
|
console.log("Printer:init");
|
|
//this.wifiboxURL = "http://" + window.location.host + "/cgi-bin/d3dapi";
|
|
//this.wifiboxURL = "http://192.168.5.1/cgi-bin/d3dapi";
|
|
this.wifiboxURL = wifiboxURL;
|
|
//this.wifiboxURL = "proxy5.php";
|
|
console.log(" wifiboxURL: ",this.wifiboxURL);
|
|
|
|
this.checkTemperature();
|
|
this.checkProgress();
|
|
}
|
|
|
|
this.preheat = function() {
|
|
console.log("Printer:preheat");
|
|
var postData = { id: 0 };
|
|
$.post( this.wifiboxURL + "/printer/heatup", postData , function(e) {
|
|
console.log("Printer:preheat response: " + e);
|
|
|
|
if (e.success = true) {
|
|
console.log(" success");
|
|
}
|
|
});
|
|
}
|
|
|
|
this.stop = function() {
|
|
console.log("Printer:stop");
|
|
var postData = { id: 0 };
|
|
$.post( this.wifiboxURL + "/printer/stop", postData , function(e) {
|
|
console.log("Printer:stop response: " + e);
|
|
|
|
if (e.success = true) {
|
|
console.log(" success");
|
|
}
|
|
});
|
|
}
|
|
|
|
this.checkTemperature = function() {
|
|
//console.log("Printer:checkTemperature");
|
|
var getData = { id: 0 };
|
|
var self = this;
|
|
$.ajax({
|
|
url: this.wifiboxURL + "/printer/temperature",
|
|
data: getData,
|
|
dataType: 'json',
|
|
timeout: this.timeoutTime,
|
|
success: function(data){
|
|
//console.log("Printer:temperature response: ",data);
|
|
if(data.status == "success") {
|
|
//console.log("temp: ",response.data.hotend+"/"+response.data.hotend_target+" ("+response.data.last_mod+")");
|
|
self.temperature = data.data.hotend;
|
|
if(data.data.hotend_target != undefined) {
|
|
self.targetTemperature = data.data.hotend_target;
|
|
}
|
|
self.alive = (data.data.last_mod < self.maxTempLastMod);
|
|
} else {
|
|
self.alive = false;
|
|
}
|
|
//console.log(" this.alive: ",self.alive);
|
|
$(document).trigger(Printer.UPDATE);
|
|
|
|
self.checkTemperatureDelay = setTimeout(function() { self.checkTemperature() },self.checkTemperatureInterval);
|
|
},
|
|
error: function(jqXHR, status, errorThrown){ //the status returned will be "timeout"
|
|
//console.log("Printer:temperature error. Status: ",status,' errorThrown: ',errorThrown);
|
|
switch(status) {
|
|
case 'timeout':
|
|
self.checkTemperature();
|
|
break;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
this.checkProgress = function() {
|
|
//console.log("Printer:checkProgress");
|
|
var getData = { id: 0 };
|
|
var self = this;
|
|
$.ajax({
|
|
url: this.wifiboxURL + "/printer/progress",
|
|
data: getData,
|
|
dataType: 'json',
|
|
timeout: this.timeoutTime,
|
|
success: function(data){
|
|
if(data.status == "success") {
|
|
|
|
self.printing = data.data.printing;
|
|
self.currentLine = data.data.current_line;
|
|
self.num_lines = data.data.num_lines;
|
|
|
|
if(self.printing) {
|
|
console.log("progress: ",data.data.current_line+"/"+data.data.num_lines+" ("+data.data.last_mod+")");
|
|
}
|
|
}
|
|
//console.log(" this.alive: ",self.alive);
|
|
$(document).trigger(Printer.UPDATE);
|
|
|
|
self.checkProgressDelay = setTimeout(function() { self.checkProgress() },self.checkProgressInterval);
|
|
},
|
|
error: function(jqXHR, status, errorThrown){ //the status returned will be "timeout"
|
|
//console.log("Printer:progress error. Status: ",status,' errorThrown: ',errorThrown);
|
|
switch(status) {
|
|
case 'timeout':
|
|
self.checkProgress();
|
|
break;
|
|
}
|
|
}
|
|
});
|
|
|
|
}
|
|
} |