doodle3d-client/js/Printer.js

79 lines
2.4 KiB
JavaScript

function Printer() {
this.temperature = 0;
this.targetTemperature = 0;
this.wifiboxURL;
this.checkTemperatureIntervalTime = 1000;
this.checkTemperatureInterval;
this.maxTempLastMod = 5; // max time (seconds) since the last temp info modification before the printer connection is considered lost
// 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);
var self = this;
this.checkTemperatureInterval = setInterval(function() { self.checkTemperature(); },this.checkTemperatureIntervalTime);
}
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;
$.get( this.wifiboxURL + "/printer/temperature", getData , function(e) {
//console.log("Printer:temperature response: " + e);
if (e.success = true) {
var response = jQuery.parseJSON(e);
//console.log("response: ",response);
if(response.status == "success") {
//console.log("temp: ",response.data.hotend+"/"+response.data.hotend_target+" ("+response.data.last_mod+")");
self.temperature = response.data.hotend;
if(response.data.hotend_target != undefined) {
self.targetTemperature = response.data.hotend_target;
}
self.alive = (response.data.last_mod < self.maxTempLastMod);
} else {
self.alive = false;
}
//console.log(" this.alive: ",self.alive);
$(document).trigger(Printer.UPDATE);
}
});
}
}