Added features for quick setting of temperatures for PLA and ABS - configured via new settings.
Not perfect, I'd like to show temperature to be set in UI. On clicking it always moves to the top of the page. The overflow and temp layout changes are to allow the drop down to display outside of the tab. Is it worth having more temp boxes e.g. Nylon? - array like similar to move speeds?master
parent
1c9854b6c1
commit
9e351339a4
|
@ -166,14 +166,22 @@ def setTargetTemperature():
|
||||||
if not printer.isOperational():
|
if not printer.isOperational():
|
||||||
return jsonify(SUCCESS)
|
return jsonify(SUCCESS)
|
||||||
|
|
||||||
if request.values.has_key("temp"):
|
elif request.values.has_key("temp"):
|
||||||
# set target temperature
|
# set target temperature
|
||||||
temp = request.values["temp"]
|
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)
|
printer.command("M104 S" + temp)
|
||||||
|
|
||||||
if request.values.has_key("bedTemp"):
|
elif request.values.has_key("bedTemp"):
|
||||||
# set target bed temperature
|
# set target bed temperature
|
||||||
bedTemp = request.values["bedTemp"]
|
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)
|
printer.command("M140 S" + bedTemp)
|
||||||
|
|
||||||
return jsonify(SUCCESS)
|
return jsonify(SUCCESS)
|
||||||
|
@ -353,7 +361,13 @@ def getSettings():
|
||||||
"timelapse": s.getBaseFolder("timelapse"),
|
"timelapse": s.getBaseFolder("timelapse"),
|
||||||
"timelapseTmp": s.getBaseFolder("timelapse_tmp"),
|
"timelapseTmp": s.getBaseFolder("timelapse_tmp"),
|
||||||
"logs": s.getBaseFolder("logs")
|
"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"])
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@app.route(BASEURL + "settings", methods=["POST"])
|
@app.route(BASEURL + "settings", methods=["POST"])
|
||||||
|
@ -384,6 +398,12 @@ def setSettings():
|
||||||
if "timelapseTmp" in data["folder"].keys(): s.setBaseFolder("timelapse_tmp", data["folder"]["timelapseTmp"])
|
if "timelapseTmp" in data["folder"].keys(): s.setBaseFolder("timelapse_tmp", data["folder"]["timelapseTmp"])
|
||||||
if "logs" in data["folder"].keys(): s.setBaseFolder("logs", data["folder"]["logs"])
|
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"])
|
||||||
|
|
||||||
s.save()
|
s.save()
|
||||||
|
|
||||||
return getSettings()
|
return getSettings()
|
||||||
|
|
|
@ -56,6 +56,12 @@ default_settings.update({
|
||||||
"z": 200,
|
"z": 200,
|
||||||
"e": 300
|
"e": 300
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"temperature": {
|
||||||
|
"extruderABS": 210,
|
||||||
|
"bedABS": 100,
|
||||||
|
"extruderPLA": 180,
|
||||||
|
"bedPLA": 60
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -278,4 +284,4 @@ def _resolveSettingsDir(applicationName):
|
||||||
elif sys.platform == "win32":
|
elif sys.platform == "win32":
|
||||||
return os.path.join(os.environ["APPDATA"], applicationName)
|
return os.path.join(os.environ["APPDATA"], applicationName)
|
||||||
else:
|
else:
|
||||||
return os.path.expanduser(os.path.join("~", "." + applicationName.lower()))
|
return os.path.expanduser(os.path.join("~", "." + applicationName.lower()))
|
||||||
|
|
|
@ -98,8 +98,12 @@ table th.timelapse_files_action, table td.timelapse_files_action {
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
#temp {
|
.tab-content, .tab-pane {
|
||||||
overflow: hidden;
|
overflow: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tempInput {
|
||||||
|
width: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#temp_newTemp, #temp_newBedTemp, #speed_innerWall, #speed_outerWall, #speed_fill, #speed_support, #webcam_timelapse_interval {
|
#temp_newTemp, #temp_newBedTemp, #speed_innerWall, #speed_outerWall, #speed_fill, #speed_support, #webcam_timelapse_interval {
|
||||||
|
|
|
@ -1019,6 +1019,11 @@ function SettingsViewModel() {
|
||||||
self.folder_timelapseTmp = ko.observable(undefined);
|
self.folder_timelapseTmp = ko.observable(undefined);
|
||||||
self.folder_logs = 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.requestData = function() {
|
self.requestData = function() {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: AJAX_BASEURL + "settings",
|
url: AJAX_BASEURL + "settings",
|
||||||
|
@ -1046,6 +1051,11 @@ function SettingsViewModel() {
|
||||||
self.folder_timelapse(response.folder.timelapse);
|
self.folder_timelapse(response.folder.timelapse);
|
||||||
self.folder_timelapseTmp(response.folder.timelapseTmp);
|
self.folder_timelapseTmp(response.folder.timelapseTmp);
|
||||||
self.folder_logs(response.folder.logs);
|
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.saveData = function() {
|
self.saveData = function() {
|
||||||
|
@ -1071,7 +1081,13 @@ function SettingsViewModel() {
|
||||||
"timelapse": self.folder_timelapse(),
|
"timelapse": self.folder_timelapse(),
|
||||||
"timelapseTmp": self.folder_timelapseTmp(),
|
"timelapseTmp": self.folder_timelapseTmp(),
|
||||||
"logs": self.folder_logs()
|
"logs": self.folder_logs()
|
||||||
}
|
},
|
||||||
|
"temperature": {
|
||||||
|
"extruderABS": self.temperature_extruderABS(),
|
||||||
|
"bedABS": self.temperature_bedABS(),
|
||||||
|
"extruderPLA": self.temperature_extruderPLA(),
|
||||||
|
"bedPLA": self.temperature_bedPLA()
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
|
@ -1207,8 +1223,10 @@ $(function() {
|
||||||
|
|
||||||
//~~ Temperature control
|
//~~ Temperature control
|
||||||
|
|
||||||
$("#temp_newTemp_set").click(function() {
|
$("#temp_newTemp_set, .temp_newTemp_set").click(function() {
|
||||||
var newTemp = $("#temp_newTemp").val();
|
var newTemp = $("#temp_newTemp").val();
|
||||||
|
if ($(this).data('temp') != null)
|
||||||
|
newTemp = $(this).data('temp');
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: AJAX_BASEURL + "control/temperature",
|
url: AJAX_BASEURL + "control/temperature",
|
||||||
type: "POST",
|
type: "POST",
|
||||||
|
@ -1217,8 +1235,10 @@ $(function() {
|
||||||
success: function() {$("#temp_newTemp").val("")}
|
success: function() {$("#temp_newTemp").val("")}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
$("#temp_newBedTemp_set").click(function() {
|
$("#temp_newBedTemp_set, .temp_newBedTemp_set").click(function() {
|
||||||
var newBedTemp = $("#temp_newBedTemp").val();
|
var newBedTemp = $("#temp_newBedTemp").val();
|
||||||
|
if ($(this).data('temp') != null)
|
||||||
|
newBedTemp = $(this).data('temp');
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: AJAX_BASEURL + "control/temperature",
|
url: AJAX_BASEURL + "control/temperature",
|
||||||
type: "POST",
|
type: "POST",
|
||||||
|
|
|
@ -156,8 +156,8 @@
|
||||||
<div class="row" style="padding-left: 20px">
|
<div class="row" style="padding-left: 20px">
|
||||||
<div id="temperature-graph"></div>
|
<div id="temperature-graph"></div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div class="row-fluid" style="margin-bottom: 20px">
|
||||||
<div class="form-horizontal" style="width: 49%; float: left; margin-bottom: 20px;">
|
<div class="form-horizontal span6">
|
||||||
<h1>Temperature</h1>
|
<h1>Temperature</h1>
|
||||||
|
|
||||||
<label>Current: <strong data-bind="text: tempString"></strong></label>
|
<label>Current: <strong data-bind="text: tempString"></strong></label>
|
||||||
|
@ -166,12 +166,30 @@
|
||||||
|
|
||||||
<label for="temp_newTemp">New Target</label>
|
<label for="temp_newTemp">New Target</label>
|
||||||
<div class="input-append">
|
<div class="input-append">
|
||||||
<input class="span1" type="text" id="temp_newTemp" data-bind="attr: {placeholder: targetTemp}">
|
<input type="text" id="temp_newTemp" data-bind="attr: {placeholder: targetTemp}" class="tempInput">
|
||||||
<span class="add-on">°C</span>
|
<span class="add-on">°C</span>
|
||||||
</div>
|
</div>
|
||||||
<button type="submit" class="btn" id="temp_newTemp_set">Set</button>
|
<div class="btn-group">
|
||||||
|
<button type="submit" class="btn" id="temp_newTemp_set">Set</button>
|
||||||
|
<button class="btn dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<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 href="#" class="temp_newTemp_set" data-temp="ABS">Set ABS</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#" class="temp_newTemp_set" data-temp="PLA">Set PLA</a>
|
||||||
|
</li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li>
|
||||||
|
<a href="#" class="temp_newTemp_set" data-temp="0">Off</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-horizontal" style="width: 49%; margin-left: 2%; float: left; margin-bottom: 20px;">
|
<div class="form-horizontal span6">
|
||||||
<h1>Bed Temperature</h1>
|
<h1>Bed Temperature</h1>
|
||||||
|
|
||||||
<label>Current: <strong data-bind="text: bedTempString"></strong></label>
|
<label>Current: <strong data-bind="text: bedTempString"></strong></label>
|
||||||
|
@ -180,10 +198,27 @@
|
||||||
|
|
||||||
<label for="temp_newBedTemp">New Target</label>
|
<label for="temp_newBedTemp">New Target</label>
|
||||||
<div class="input-append">
|
<div class="input-append">
|
||||||
<input class="span1" type="text" id="temp_newBedTemp" data-bind="attr: {placeholder: bedTargetTemp}">
|
<input type="text" id="temp_newBedTemp" data-bind="attr: {placeholder: bedTargetTemp}" class="tempInput">
|
||||||
<span class="add-on">°C</span>
|
<span class="add-on">°C</span>
|
||||||
</div>
|
</div>
|
||||||
<button type="submit" class="btn" id="temp_newBedTemp_set">Set</button>
|
<div class="btn-group">
|
||||||
|
<button type="submit" class="btn" id="temp_newBedTemp_set">Set</button>
|
||||||
|
<button class="btn dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<span class="caret"></span>
|
||||||
|
</button>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li>
|
||||||
|
<a href="#" class="temp_newBedTemp_set" data-temp="ABS">Set ABS</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#" class="temp_newBedTemp_set" data-temp="PLA">Set PLA</a>
|
||||||
|
</li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li>
|
||||||
|
<a href="#" class="temp_newBedTemp_set" data-temp="0">Off</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -489,6 +524,7 @@
|
||||||
<li><a href="#settings_webcam" data-toggle="tab">Webcam</a></li>
|
<li><a href="#settings_webcam" data-toggle="tab">Webcam</a></li>
|
||||||
<li><a href="#settings_features" data-toggle="tab">Features</a></li>
|
<li><a href="#settings_features" data-toggle="tab">Features</a></li>
|
||||||
<li><a href="#settings_folder" data-toggle="tab">Folder</a></li>
|
<li><a href="#settings_folder" data-toggle="tab">Folder</a></li>
|
||||||
|
<li><a href="#settings_temperature" data-toggle="tab">Temperature</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
|
@ -594,6 +630,34 @@
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="tab-pane" id="settings_temperature">
|
||||||
|
<form class="form-horizontal">
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="control-label" for="settings-temperatureExtruderABS">Extruder Temperature (ABS)</label>
|
||||||
|
<div class="controls">
|
||||||
|
<input type="number" class="input-mini text-right" data-bind="value: temperature_extruderABS" id="settings-temperatureExtruderABS">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="control-label" for="settings-temperatureBedABS">Bed Temperature (ABS)</label>
|
||||||
|
<div class="controls">
|
||||||
|
<input type="number" class="input-mini text-right" data-bind="value: temperature_bedABS" id="settings-temperatureBedABS">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="control-label" for="settings-temperatureExtruderPLA">Extruder Temperature (PLA)</label>
|
||||||
|
<div class="controls">
|
||||||
|
<input type="number" class="input-mini text-right" data-bind="value: temperature_extruderPLA" id="settings-temperatureExtruderPLA">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="control-label" for="settings-temperatureBedPLA">Bed Temperature (PLA)</label>
|
||||||
|
<div class="controls">
|
||||||
|
<input type="number" class="input-mini text-right" data-bind="value: temperature_bedPLA" id="settings-temperatureBedPLA">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue