Moved axes inverting to printer settings, changed naming and data format a bit

This commit is contained in:
Gina Häußge 2013-10-20 22:22:58 +02:00
parent 47f8ab24d9
commit 9008a2fb7f
5 changed files with 45 additions and 43 deletions

View file

@ -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"])

View file

@ -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": "",

View file

@ -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;
}

View file

@ -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(),

View file

@ -118,6 +118,20 @@
</div>
</div>
</div>
<div class="control-group">
<div class="controls">
Invert controls
<label class="checkbox">
<input type="checkbox" data-bind="checked: printer_invertX" id="settings-printerInvertX"> X axis
</label>
<label class="checkbox">
<input type="checkbox" data-bind="checked: printer_invertY" id="settings-printerInvertY"> Y axis
</label>
<label class="checkbox">
<input type="checkbox" data-bind="checked: printer_invertZ" id="settings-printerInvertZ"> Z axis
</label>
</div>
</div>
</form>
</div>
<div class="tab-pane" id="settings_webcam">
@ -207,21 +221,7 @@
<div class="control-group">
<div class="controls">
<label class="checkbox">
<input type="checkbox" data-bind="checked: feature_swallowOkAfterResend" id="settings-swallowOkAfterResend"> Swallow the first "ok" after a resend response <span class="label">Repetier</span>
</label>
</div>
</div>
<div class="control-group">
<div class="controls">
Invert controls
<label class="checkbox">
<input type="checkbox" data-bind="checked: feature_invertX" id="settings-featureInvertX"> X axis
</label>
<label class="checkbox">
<input type="checkbox" data-bind="checked: feature_invertY" id="settings-featureInvertY"> Y axis
</label>
<label class="checkbox">
<input type="checkbox" data-bind="checked: feature_invertZ" id="settings-featureInvertZ"> Z axis
<input type="checkbox" data-bind="checked: feature_swallowOkAfterResend" id="settings-swallowOkAfterResend"> Swallow the first "ok" after a resend response
</label>
</div>
</div>