From 9ba88a7d1a0fbf7fabb7c8f6bd19f5fe8f628b6e Mon Sep 17 00:00:00 2001 From: Richard Mitchell Date: Sat, 23 Feb 2013 17:47:01 +0000 Subject: [PATCH] New temperature profile settings and hooked into ui. WIP: add and remove profiles --- octoprint/server.py | 20 +++----------------- octoprint/settings.py | 9 +++++---- octoprint/static/js/ui.js | 31 ++++++++++++------------------- octoprint/templates/index.html | 15 ++++----------- 4 files changed, 24 insertions(+), 51 deletions(-) diff --git a/octoprint/server.py b/octoprint/server.py index 8375a9a..26ca801 100644 --- a/octoprint/server.py +++ b/octoprint/server.py @@ -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() diff --git a/octoprint/settings.py b/octoprint/settings.py index 8f2c586..c2013bc 100644 --- a/octoprint/settings.py +++ b/octoprint/settings.py @@ -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 } + ] } }) diff --git a/octoprint/static/js/ui.js b/octoprint/static/js/ui.js index f77d509..59a321d 100644 --- a/octoprint/static/js/ui.js +++ b/octoprint/static/js/ui.js @@ -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, diff --git a/octoprint/templates/index.html b/octoprint/templates/index.html index 82a1443..d49a60d 100644 --- a/octoprint/templates/index.html +++ b/octoprint/templates/index.html @@ -175,12 +175,8 @@