From a7477e018479b97238f6692d9e0f5e6f019005a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Sun, 22 Sep 2013 12:52:39 +0200 Subject: [PATCH] Added option to invert Z axis controls --- src/octoprint/server.py | 2 ++ src/octoprint/settings.py | 1 + src/octoprint/static/js/app/viewmodels/control.js | 5 +++++ src/octoprint/static/js/app/viewmodels/settings.js | 3 +++ src/octoprint/templates/settings.jinja2 | 7 +++++++ 5 files changed, 18 insertions(+) diff --git a/src/octoprint/server.py b/src/octoprint/server.py index 82d34cf0..c4a6cbcc 100644 --- a/src/octoprint/server.py +++ b/src/octoprint/server.py @@ -665,6 +665,7 @@ def getSettings(): "feature": { "gcodeViewer": s.getBoolean(["feature", "gCodeVisualizer"]), "temperatureGraph": s.getBoolean(["feature", "temperatureGraph"]), + "invertZ": s.getBoolean(["feature", "invertZ"]), "waitForStart": s.getBoolean(["feature", "waitForStartOnConnect"]), "alwaysSendChecksum": s.getBoolean(["feature", "alwaysSendChecksum"]), "sdSupport": s.getBoolean(["feature", "sdSupport"]), @@ -736,6 +737,7 @@ 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 "invertZ" in data["feature"].keys(): s.setBoolean(["feature", "invertZ"], data["feature"]["invertZ"]) 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 fba8805b..9853800b 100644 --- a/src/octoprint/settings.py +++ b/src/octoprint/settings.py @@ -56,6 +56,7 @@ default_settings = { "feature": { "gCodeVisualizer": True, "temperatureGraph": True, + "invertZ": False, "waitForStartOnConnect": False, "alwaysSendChecksum": False, "sdSupport": True, diff --git a/src/octoprint/static/js/app/viewmodels/control.js b/src/octoprint/static/js/app/viewmodels/control.js index 3f89d570..97d66600 100644 --- a/src/octoprint/static/js/app/viewmodels/control.js +++ b/src/octoprint/static/js/app/viewmodels/control.js @@ -80,6 +80,11 @@ function ControlViewModel(loginStateViewModel, settingsViewModel) { self.sendJogCommand = function(axis, multiplier, distance) { if (typeof distance === "undefined") distance = $('#jog_distance button.active').data('distance'); + + if (axis == "z" && self.settings.feature_invertZ()) { + multiplier *= -1; + } + $.ajax({ url: AJAX_BASEURL + "control/jog", type: "POST", diff --git a/src/octoprint/static/js/app/viewmodels/settings.js b/src/octoprint/static/js/app/viewmodels/settings.js index 2561e535..4bbcee8f 100644 --- a/src/octoprint/static/js/app/viewmodels/settings.js +++ b/src/octoprint/static/js/app/viewmodels/settings.js @@ -28,6 +28,7 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { self.feature_gcodeViewer = ko.observable(undefined); self.feature_temperatureGraph = ko.observable(undefined); + self.feature_invertZ = ko.observable(undefined); self.feature_waitForStart = ko.observable(undefined); self.feature_alwaysSendChecksum = ko.observable(undefined); self.feature_sdSupport = ko.observable(undefined); @@ -105,6 +106,7 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { self.feature_gcodeViewer(response.feature.gcodeViewer); self.feature_temperatureGraph(response.feature.temperatureGraph); + self.feature_invertZ(response.feature.invertZ); self.feature_waitForStart(response.feature.waitForStart); self.feature_alwaysSendChecksum(response.feature.alwaysSendChecksum); self.feature_sdSupport(response.feature.sdSupport); @@ -164,6 +166,7 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { "feature": { "gcodeViewer": self.feature_gcodeViewer(), "temperatureGraph": self.feature_temperatureGraph(), + "invertZ": self.feature_invertZ(), "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 c8187a7c..d9316fc2 100644 --- a/src/octoprint/templates/settings.jinja2 +++ b/src/octoprint/templates/settings.jinja2 @@ -183,6 +183,13 @@ +
+
+ +
+