From 9008a2fb7fd3bd346468a42de27bbf6b560c361a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Sun, 20 Oct 2013 22:22:58 +0200 Subject: [PATCH] Moved axes inverting to printer settings, changed naming and data format a bit --- src/octoprint/server.py | 4 +- src/octoprint/settings.py | 4 +- .../static/js/app/viewmodels/control.js | 2 +- .../static/js/app/viewmodels/settings.js | 48 ++++++++++--------- src/octoprint/templates/settings.jinja2 | 30 ++++++------ 5 files changed, 45 insertions(+), 43 deletions(-) diff --git a/src/octoprint/server.py b/src/octoprint/server.py index beb21f78..e4795c94 100644 --- a/src/octoprint/server.py +++ b/src/octoprint/server.py @@ -652,6 +652,7 @@ def getSettings(): "movementSpeedY": movementSpeedY, "movementSpeedZ": movementSpeedZ, "movementSpeedE": movementSpeedE, + "invertAxes": s.get(["printerParameters", "invertAxes"]) }, "webcam": { "streamUrl": s.get(["webcam", "stream"]), @@ -665,7 +666,6 @@ def getSettings(): "feature": { "gcodeViewer": s.getBoolean(["feature", "gCodeVisualizer"]), "temperatureGraph": s.getBoolean(["feature", "temperatureGraph"]), - "invertAxes": s.get(["feature", "invertAxes"]), "waitForStart": s.getBoolean(["feature", "waitForStartOnConnect"]), "alwaysSendChecksum": s.getBoolean(["feature", "alwaysSendChecksum"]), "sdSupport": s.getBoolean(["feature", "sdSupport"]), @@ -724,6 +724,7 @@ def setSettings(): if "movementSpeedY" in data["printer"].keys(): s.setInt(["printerParameters", "movementSpeed", "y"], data["printer"]["movementSpeedY"]) if "movementSpeedZ" in data["printer"].keys(): s.setInt(["printerParameters", "movementSpeed", "z"], data["printer"]["movementSpeedZ"]) if "movementSpeedE" in data["printer"].keys(): s.setInt(["printerParameters", "movementSpeed", "e"], data["printer"]["movementSpeedE"]) + if "invertAxes" in data["printer"].keys(): s.set(["printerParameters", "invertAxes"], data["printer"]["invertAxes"]) if "webcam" in data.keys(): if "streamUrl" in data["webcam"].keys(): s.set(["webcam", "stream"], data["webcam"]["streamUrl"]) @@ -737,7 +738,6 @@ def setSettings(): if "feature" in data.keys(): if "gcodeViewer" in data["feature"].keys(): s.setBoolean(["feature", "gCodeVisualizer"], data["feature"]["gcodeViewer"]) if "temperatureGraph" in data["feature"].keys(): s.setBoolean(["feature", "temperatureGraph"], data["feature"]["temperatureGraph"]) - if "invertAxes" in data["feature"].keys(): s.set(["feature", "invertAxes"], data["feature"]["invertAxes"]) if "waitForStart" in data["feature"].keys(): s.setBoolean(["feature", "waitForStartOnConnect"], data["feature"]["waitForStart"]) if "alwaysSendChecksum" in data["feature"].keys(): s.setBoolean(["feature", "alwaysSendChecksum"], data["feature"]["alwaysSendChecksum"]) if "sdSupport" in data["feature"].keys(): s.setBoolean(["feature", "sdSupport"], data["feature"]["sdSupport"]) diff --git a/src/octoprint/settings.py b/src/octoprint/settings.py index cf726941..ef1a0f2b 100644 --- a/src/octoprint/settings.py +++ b/src/octoprint/settings.py @@ -56,7 +56,6 @@ default_settings = { "feature": { "gCodeVisualizer": True, "temperatureGraph": True, - "invertAxes": "", "waitForStartOnConnect": False, "alwaysSendChecksum": False, "sdSupport": True, @@ -83,7 +82,8 @@ default_settings = { "z": 200, "e": 300 }, - "pauseTriggers": [] + "pauseTriggers": [], + "invertAxes": [] }, "appearance": { "name": "", diff --git a/src/octoprint/static/js/app/viewmodels/control.js b/src/octoprint/static/js/app/viewmodels/control.js index 1298a329..a22d9793 100644 --- a/src/octoprint/static/js/app/viewmodels/control.js +++ b/src/octoprint/static/js/app/viewmodels/control.js @@ -81,7 +81,7 @@ function ControlViewModel(loginStateViewModel, settingsViewModel) { if (typeof distance === "undefined") distance = $('#jog_distance button.active').data('distance'); - if (self.settings.getFeature_InvertAxis(axis)) { + if (self.settings.getPrinterInvertAxis(axis)) { multiplier *= -1; } diff --git a/src/octoprint/static/js/app/viewmodels/settings.js b/src/octoprint/static/js/app/viewmodels/settings.js index 5d8bccf8..d0ffd224 100644 --- a/src/octoprint/static/js/app/viewmodels/settings.js +++ b/src/octoprint/static/js/app/viewmodels/settings.js @@ -17,6 +17,7 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { self.printer_movementSpeedY = ko.observable(undefined); self.printer_movementSpeedZ = ko.observable(undefined); self.printer_movementSpeedE = ko.observable(undefined); + self.printer_invertAxes = ko.observable(undefined); self.webcam_streamUrl = ko.observable(undefined); self.webcam_snapshotUrl = ko.observable(undefined); @@ -28,7 +29,6 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { self.feature_gcodeViewer = ko.observable(undefined); self.feature_temperatureGraph = ko.observable(undefined); - self.feature_invertAxes = ko.observable(undefined); self.feature_waitForStart = ko.observable(undefined); self.feature_alwaysSendChecksum = ko.observable(undefined); self.feature_sdSupport = ko.observable(undefined); @@ -75,28 +75,30 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { self.terminalFilters.remove(filter); }; - self.getFeature_InvertAxis = function(axis) { - return (self.feature_invertAxes() || "").indexOf(axis) != -1; - }; + self.getPrinterInvertAxis = function(axis) { + return _.contains((self.printer_invertAxes() || []), axis.toLowerCase()); + }; - self.setFeature_InvertAxis = function(axis, value) { - var currInvert = self.feature_invertAxes() || ""; - var currValue = self.getFeature_InvertAxis(axis); - if (value && !currValue) - self.feature_invertAxes(currInvert + axis); - else if (!value && currValue) - self.feature_invertAxes(currInvert.replace(axis, "")); - }; + self.setPrinterInvertAxis = function(axis, value) { + var currInvert = self.printer_invertAxes() || []; + var currValue = self.getPrinterInvertAxis(axis); + if (value && !currValue) { + currInvert.push(axis.toLowerCase()); + } else if (!value && currValue) { + currInvert = _.without(currInvert, axis.toLowerCase()); + } + self.printer_invertAxes(currInvert); + }; - self.koInvertAxis = function (axis) { return ko.computed({ - read: function () { return self.getFeature_InvertAxis(axis); }, - write: function (value) { self.setFeature_InvertAxis(axis, value); }, - owner: self - })}; + self.koInvertAxis = function (axis) { return ko.computed({ + read: function () { return self.getPrinterInvertAxis(axis); }, + write: function (value) { self.setPrinterInvertAxis(axis, value); }, + owner: self + })}; - self.feature_invertX = self.koInvertAxis('x'); - self.feature_invertY = self.koInvertAxis('y'); - self.feature_invertZ = self.koInvertAxis('z'); + self.printer_invertX = self.koInvertAxis('x'); + self.printer_invertY = self.koInvertAxis('y'); + self.printer_invertZ = self.koInvertAxis('z'); self.requestData = function() { $.ajax({ @@ -118,6 +120,7 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { self.printer_movementSpeedY(response.printer.movementSpeedY); self.printer_movementSpeedZ(response.printer.movementSpeedZ); self.printer_movementSpeedE(response.printer.movementSpeedE); + self.printer_invertAxes(response.printer.invertAxes); self.webcam_streamUrl(response.webcam.streamUrl); self.webcam_snapshotUrl(response.webcam.snapshotUrl); @@ -129,7 +132,6 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { self.feature_gcodeViewer(response.feature.gcodeViewer); self.feature_temperatureGraph(response.feature.temperatureGraph); - self.feature_invertAxes(response.feature.invertAxes); self.feature_waitForStart(response.feature.waitForStart); self.feature_alwaysSendChecksum(response.feature.alwaysSendChecksum); self.feature_sdSupport(response.feature.sdSupport); @@ -175,7 +177,8 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { "movementSpeedX": self.printer_movementSpeedX(), "movementSpeedY": self.printer_movementSpeedY(), "movementSpeedZ": self.printer_movementSpeedZ(), - "movementSpeedE": self.printer_movementSpeedE() + "movementSpeedE": self.printer_movementSpeedE(), + "invertAxes": self.printer_invertAxes() }, "webcam": { "streamUrl": self.webcam_streamUrl(), @@ -189,7 +192,6 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { "feature": { "gcodeViewer": self.feature_gcodeViewer(), "temperatureGraph": self.feature_temperatureGraph(), - "invertAxes": self.feature_invertAxes(), "waitForStart": self.feature_waitForStart(), "alwaysSendChecksum": self.feature_alwaysSendChecksum(), "sdSupport": self.feature_sdSupport(), diff --git a/src/octoprint/templates/settings.jinja2 b/src/octoprint/templates/settings.jinja2 index 62f138a8..32ab33ec 100644 --- a/src/octoprint/templates/settings.jinja2 +++ b/src/octoprint/templates/settings.jinja2 @@ -118,6 +118,20 @@ +
+
+ Invert controls + + + +
+
@@ -207,21 +221,7 @@
-
-
-
-
- Invert controls - - -