mirror of
https://github.com/Doodle3D/doodle3d-connect.git
synced 2024-12-26 02:23:48 +01:00
157 lines
4.9 KiB
JavaScript
157 lines
4.9 KiB
JavaScript
/*
|
|
* This file is part of the Doodle3D project (http://doodle3d.com).
|
|
*
|
|
* Copyright (c) 2013, Doodle3D
|
|
* This software is licensed under the terms of the GNU GPL v2 or later.
|
|
* See file LICENSE.txt or visit http://www.gnu.org/licenses/gpl.html for full license details.
|
|
*/
|
|
|
|
function ConfigAPI() {
|
|
|
|
var _apiPath = "/d3dapi";
|
|
var _apiCGIPath = "/cgi-bin"+_apiPath;
|
|
var _wifiboxURL;
|
|
var _wifiboxCGIBinURL;
|
|
|
|
var _timeoutTime = 3000;
|
|
var _saveSettingsTimeoutTime = 8000;
|
|
|
|
var _self = this;
|
|
|
|
this.init = function(wifiboxURL) {
|
|
//console.log("ConfigAPI:init");
|
|
|
|
_wifiboxURL = wifiboxURL+_apiPath;
|
|
_wifiboxCGIBinURL = wifiboxURL+_apiCGIPath;
|
|
}
|
|
this.loadAll = function(completeHandler,failedHandler) {
|
|
//console.log("ConfigAPI:loadAll");
|
|
$.ajax({
|
|
url: _wifiboxURL + "/config/all",
|
|
type: "GET",
|
|
dataType: 'json',
|
|
timeout: _timeoutTime,
|
|
success: function(response){
|
|
if(response.status == "error" || response.status == "fail") {
|
|
if(failedHandler) failedHandler(response);
|
|
} else {
|
|
completeHandler(response.data);
|
|
}
|
|
}
|
|
}).fail(function() {
|
|
if(failedHandler) failedHandler();
|
|
});
|
|
};
|
|
this.load = function(targetSettings,completeHandler,failedHandler) {
|
|
//console.log("ConfigAPI:load");
|
|
$.ajax({
|
|
url: _wifiboxURL + "/config/",
|
|
type: "GET",
|
|
dataType: 'json',
|
|
data: targetSettings,
|
|
timeout: _timeoutTime,
|
|
success: function(response){
|
|
if(response.status == "error" || response.status == "fail") {
|
|
if(failedHandler) failedHandler(response);
|
|
} else {
|
|
completeHandler(response.data);
|
|
}
|
|
}
|
|
}).fail(function() {
|
|
if(failedHandler) failedHandler();
|
|
});
|
|
};
|
|
|
|
this.loadSetting = function(settingName,completeHandler,failedHandler) {
|
|
this.load(settingName+"=",function(successData) {
|
|
completeHandler(successData[settingName]);
|
|
},failedHandler);
|
|
}
|
|
|
|
this.loadPrinterType = function(completeHandler,failedHandler) {
|
|
this.loadSetting("printer.type",completeHandler,failedHandler);
|
|
}
|
|
|
|
this.save = function(newSettings,completeHandler,failedHandler) {
|
|
//console.log("ConfigAPI:save");
|
|
$.ajax({
|
|
url: _wifiboxCGIBinURL + "/config",
|
|
type: "POST",
|
|
data: newSettings,
|
|
dataType: 'json',
|
|
timeout: _saveSettingsTimeoutTime,
|
|
success: function(response){
|
|
//console.log("ConfigAPI:save response: ",response);
|
|
if(response.status == "error" || response.status == "fail") {
|
|
if (failedHandler) failedHandler(response);
|
|
} else {
|
|
console.log("ConfigAPI.save",newSettings,response.data);
|
|
if (completeHandler) completeHandler(response.data);
|
|
}
|
|
}
|
|
}).fail(function() {
|
|
if(failedHandler) failedHandler();
|
|
});
|
|
};
|
|
|
|
this.savePrinterType = function(printerType,completeHandler,failedHandler) {
|
|
var settings = {"printer.type": printerType};
|
|
this.save(settings,function(successData) {
|
|
if (successData.validation["printer.type"]==="ok") {
|
|
if (completeHandler) completeHandler(successData);
|
|
} else {
|
|
if (failedHandler) failedHandler(successData); //passing successData because it contains valiation error
|
|
}
|
|
},function(failData) {
|
|
if (failedHandler) failedHandler(failData);
|
|
});
|
|
};
|
|
|
|
this.resetAll = function(completeHandler,failedHandler) {
|
|
//console.log("ConfigAPI:resetAll");
|
|
$.ajax({
|
|
url: _wifiboxCGIBinURL + "/config/resetall",
|
|
type: "POST",
|
|
dataType: 'json',
|
|
timeout: _timeoutTime,
|
|
success: function(response){
|
|
if(response.status == "error" || response.status == "fail") {
|
|
if(failedHandler) failedHandler(response);
|
|
} else {
|
|
completeHandler(response.data);
|
|
}
|
|
}
|
|
}).fail(function() {
|
|
if(failedHandler) failedHandler();
|
|
});
|
|
};
|
|
|
|
this.subsituteVariables = function(gcode,settings) {
|
|
//,temperature,bedTemperature,preheatTemperature,preheatBedTemperature
|
|
var temperature = settings["printer.temperature"];
|
|
var bedTemperature = settings["printer.bed.temperature"];
|
|
var preheatTemperature = settings["printer.heatup.temperature"];
|
|
var preheatBedTemperature = settings["printer.heatup.bed.temperature"];
|
|
var printerType = settings["printer.type"];
|
|
var heatedbed = settings["printer.heatedbed"];
|
|
|
|
switch (printerType) {
|
|
case "makerbot_replicator2": printerType = "r2"; break;
|
|
case "makerbot_replicator2x": printerType = "r2x"; break;
|
|
case "makerbot_thingomatic": printerType = "t6"; break;
|
|
case "makerbot_generic": printerType = "r2"; break;
|
|
case "wanhao_duplicator4": printerType = "r2x"; break;
|
|
case "_3Dison_plus": printerType = "r2"; break;
|
|
}
|
|
var heatedBedReplacement = (heatedbed)? "" : ";";
|
|
|
|
gcode = gcode.replace(/{printingTemp}/gi ,temperature);
|
|
gcode = gcode.replace(/{printingBedTemp}/gi ,bedTemperature);
|
|
gcode = gcode.replace(/{preheatTemp}/gi ,preheatTemperature);
|
|
gcode = gcode.replace(/{preheatBedTemp}/gi ,preheatBedTemperature);
|
|
gcode = gcode.replace(/{printerType}/gi ,printerType);
|
|
gcode = gcode.replace(/{if heatedBed}/gi ,heatedBedReplacement);
|
|
|
|
return gcode;
|
|
}
|
|
} |