New temperature profile settings and hooked into ui. WIP: add and remove profiles

master
Richard Mitchell 2013-02-23 17:47:01 +00:00
parent 42838f8b58
commit 9ba88a7d1a
4 changed files with 24 additions and 51 deletions

View File

@ -169,19 +169,11 @@ def setTargetTemperature():
elif request.values.has_key("temp"):
# set target temperature
temp = request.values["temp"]
if "ABS" == temp:
temp = settings().get(["temperature","extruderABS"])
elif "PLA" == temp:
temp = settings().get(["temperature","extruderPLA"])
printer.command("M104 S" + temp)
elif request.values.has_key("bedTemp"):
# set target bed temperature
bedTemp = request.values["bedTemp"]
if "ABS" == bedTemp:
bedTemp = settings().get(["temperature","bedABS"])
elif "PLA" == bedTemp:
bedTemp = settings().get(["temperature","bedPLA"])
printer.command("M140 S" + bedTemp)
return jsonify(SUCCESS)
@ -363,11 +355,8 @@ def getSettings():
"logs": s.getBaseFolder("logs")
},
"temperature": {
"extruderABS": s.get(["temperature", "extruderABS"]),
"bedABS": s.get(["temperature", "bedABS"]),
"extruderPLA": s.get(["temperature", "extruderPLA"]),
"bedPLA": s.get(["temperature", "bedPLA"])
}
"profiles": s.get(["temperature", "profiles"])
}
})
@app.route(BASEURL + "settings", methods=["POST"])
@ -399,10 +388,7 @@ def setSettings():
if "logs" in data["folder"].keys(): s.setBaseFolder("logs", data["folder"]["logs"])
if "temperature" in data.keys():
if "extruderABS" in data["temperature"].keys(): s.set(["temperature", "extruderABS"], data["temperature"]["extruderABS"])
if "bedABS" in data["temperature"].keys(): s.set(["temperature", "bedABS"], data["temperature"]["bedABS"])
if "extruderPLA" in data["temperature"].keys(): s.set(["temperature", "extruderPLA"], data["temperature"]["extruderPLA"])
if "bedPLA" in data["temperature"].keys(): s.set(["temperature", "bedPLA"], data["temperature"]["bedPLA"])
if "profiles" in data["temperature"].keys(): s.set(["temperature", "profiles"], data["temperature"]["profiles"])
s.save()

View File

@ -58,10 +58,11 @@ default_settings.update({
}
},
"temperature": {
"extruderABS": 210,
"bedABS": 100,
"extruderPLA": 180,
"bedPLA": 60
"profiles":
[
{"name": "ABS", "extruder" : 210, "bed" : 100 },
{"name": "PLA", "extruder" : 180, "bed" : 60 }
]
}
})

View File

@ -202,7 +202,7 @@ function PrinterStateViewModel() {
}
}
function TemperatureViewModel() {
function TemperatureViewModel(settingsViewModel) {
var self = this;
self.temp = ko.observable(undefined);
@ -218,25 +218,27 @@ function TemperatureViewModel() {
self.isReady = ko.observable(undefined);
self.isLoading = ko.observable(undefined);
self.temperature_profiles = settingsViewModel.temperature_profiles;
self.tempString = ko.computed(function() {
if (!self.temp())
return "-";
return self.temp() + " °C";
return self.temp() + " °C";
});
self.bedTempString = ko.computed(function() {
if (!self.bedTemp())
return "-";
return self.bedTemp() + " °C";
return self.bedTemp() + " °C";
});
self.targetTempString = ko.computed(function() {
if (!self.targetTemp())
return "-";
return self.targetTemp() + " °C";
return self.targetTemp() + " °C";
});
self.bedTargetTempString = ko.computed(function() {
if (!self.bedTargetTemp())
return "-";
return self.bedTargetTemp() + " °C";
return self.bedTargetTemp() + " °C";
});
self.temperatures = [];
@ -1019,10 +1021,7 @@ function SettingsViewModel() {
self.folder_timelapseTmp = ko.observable(undefined);
self.folder_logs = ko.observable(undefined);
self.temperature_extruderABS = ko.observable(undefined);
self.temperature_bedABS = ko.observable(undefined);
self.temperature_extruderPLA = ko.observable(undefined);
self.temperature_bedPLA = ko.observable(undefined);
self.temperature_profiles = ko.observable(undefined);
self.requestData = function() {
$.ajax({
@ -1052,10 +1051,7 @@ function SettingsViewModel() {
self.folder_timelapseTmp(response.folder.timelapseTmp);
self.folder_logs(response.folder.logs);
self.temperature_extruderABS(response.temperature.extruderABS);
self.temperature_bedABS(response.temperature.bedABS);
self.temperature_extruderPLA(response.temperature.extruderPLA);
self.temperature_bedPLA(response.temperature.bedPLA);
self.temperature_profiles(response.temperature.profiles);
}
self.saveData = function() {
@ -1083,10 +1079,7 @@ function SettingsViewModel() {
"logs": self.folder_logs()
},
"temperature": {
"extruderABS": self.temperature_extruderABS(),
"bedABS": self.temperature_bedABS(),
"extruderPLA": self.temperature_extruderPLA(),
"bedPLA": self.temperature_bedPLA()
"profiles": self.temperature_profiles(),
},
}
@ -1174,14 +1167,14 @@ $(function() {
//~~ View models
var connectionViewModel = new ConnectionViewModel();
var printerStateViewModel = new PrinterStateViewModel();
var temperatureViewModel = new TemperatureViewModel();
var settingsViewModel = new SettingsViewModel();
var temperatureViewModel = new TemperatureViewModel(settingsViewModel);
var controlsViewModel = new ControlsViewModel();
var speedViewModel = new SpeedViewModel();
var terminalViewModel = new TerminalViewModel();
var gcodeFilesViewModel = new GcodeFilesViewModel();
var webcamViewModel = new WebcamViewModel();
var gcodeViewModel = new GcodeViewModel();
var settingsViewModel = new SettingsViewModel();
var dataUpdater = new DataUpdater(
connectionViewModel,

View File

@ -175,12 +175,8 @@
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<!-- Tried using data-bind="attr: {'data-temp': temperatureABS}" however I don't have access to the settingsViewModel -->
<li>
<a class="temp_newTemp_set" data-temp="ABS">Set ABS</a>
</li>
<li>
<a class="temp_newTemp_set" data-temp="PLA">Set PLA</a>
<li data-bind="foreach: temperature_profiles">
<a class="temp_newTemp_set" data-bind="attr: {'data-temp' : extruder}, text: 'Set ' + name + ' (' + extruder + '&deg;C)'"></a>
</li>
<li class="divider"></li>
<li>
@ -207,11 +203,8 @@
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li>
<a class="temp_newBedTemp_set" data-temp="ABS">Set ABS</a>
</li>
<li>
<a class="temp_newBedTemp_set" data-temp="PLA">Set PLA</a>
<li data-bind="foreach: temperature_profiles">
<a class="temp_newBedTemp_set" data-bind="attr: {'data-temp' : bed}, text: 'Set ' + name + ' (' + bed + '&deg;C)'"></a>
</li>
<li class="divider"></li>
<li>