diff --git a/css/settings.css b/css/settings.css new file mode 100644 index 0000000..135d31e --- /dev/null +++ b/css/settings.css @@ -0,0 +1,60 @@ +form { + margin: 10px; +} +input { + margin: 1px; +} + +body,th,td { + font-family: Arial; + font-size: 13px; +} +#advancedSettings { + width: 96.3%; + height: 300px; + padding: 10px; +} +fieldset { + width: 600px; + border: 1px solid black; + border-radius: 10px; + margin-bottom: 20px; + /*padding-left: 20px;*/ +} +fieldset legend { + margin-left: 10px; +} +label { + min-width: 150px; + display: inline-block; +} +textarea { + border-radius: 10px; +} +input[type="text"] { + border: 1px solid black; + margin-right: 5px; +} +input[type="text"].small { + width: 50px; +} +input[type="text"].large { + width: 250px; +} +legend { + font-weight: bold; + font-family: Arial; +} +select { + margin-left: -4px; +} +textarea.gcode { + width: 270px; + height: 150px; + margin-right: 20px; +} + +.retractionSettings { + display: none; + margin-top: 5px; +} diff --git a/css/settingsPopup.css b/css/settingsPopup.css new file mode 100644 index 0000000..898a4d6 --- /dev/null +++ b/css/settingsPopup.css @@ -0,0 +1,73 @@ +#contentOverlay { + background-color: rgba(255, 255, 255, 0.65); + top: 0px; + left: 0px; + width: 1024px; + height: 100%; + z-index: 10; + position: absolute; + display:table; +} +.contentOverlayHidden { + display:none; +} +#settingsContainer { + display: table-cell; + /*text-align: center;*/ + vertical-align: middle; +} +#settings { + position: relative; + background-color: #fff; + border: 2px solid #222; + border-radius: 15px; + -moz-border-radius: 15px; + -webkit-border-radius: 15px; + z-index: 15; + margin: 0 auto; + padding: 25px; + width: 850px; + height: 450px; + /*overflow: scroll;*/ + /*overflow-y: hidden;*/ + -moz-box-shadow: 0px 2px 6px 0px rgba(16, 16, 16, 0.65); + -webkit-box-shadow: 0px 2px 6px 0px rgba(16, 16, 16, 0.65); + box-shadow: 0px 2px 6px 0px rgba(16, 16, 16, 0.65); + overflow: hidden; +} + + +#settings header { + height: 44px; +} + +div.content { + margin: 15px 0px; + height: 388px; + display: table; +} + +div.content > div { + height: 100%; +} + +div.content > div.settings { + border: 1px solid #333; + width: 725px; + overflow: scroll; + max-height: 368px; + overflow-x: hidden; + padding: 10px 10px 10px 10px; +} +div.content > div.buttons { + display: table-cell; + vertical-align: bottom; + width: 125px; +} + +div.content .btnOK { + width: 85px; + height: 86px; + background: url('../img/buttons/btnOk_settings.png') no-repeat; + margin: 10px auto; +} diff --git a/img/settings_lable.png b/img/settings_lable.png new file mode 100644 index 0000000..a8efaba Binary files /dev/null and b/img/settings_lable.png differ diff --git a/js/settings.js b/js/settings.js index f230fbd..eae1a8d 100644 --- a/js/settings.js +++ b/js/settings.js @@ -1,3 +1,139 @@ +var wifiboxURL = "http://192.168.5.1/cgi-bin/d3dapi"; + +var settings = { + layerHeight: 0.2, + wallThickness: 0.6, + filamentThickness: 2.89, + speed: 50, + travelSpeed: 200, + autoWarmup: true, + firstLayerSlow: true, + useSubLayers: true, + useRetraction: true, + retractionAmount: 2, + retractionMinDistance: 1, + retractionSpeed: 250, + networkIP: "192.168.10.1", + networkNetmask: "255.255.255.0", + networkSsid: "d3d-ap-%%MAC_ADDR_TAIL%%" +} + +var settingsForm = $("#settingsForm"); +settingsForm.submit(function(e) { + e.preventDefault(); + saveSettings(); + return false; +}) + +function initSettingsPopup() { + console.log("f:initSettingsPopup()"); + + $("#contentOverlay").hide(); + + $("div.content .btnOK").click(function(e) { + e.preventDefault(); + e.stopPropagation(); + // TODO something like a callback or feedback that saving went well / or failed + saveSettings(); + + $("#contentOverlay").fadeOut(375, function() { + document.body.addEventListener('touchmove',prevent,false); + }); + + console.log("button OK in settings popup pressed"); + }); +} + +function showSettings() { + console.log("f:showSettings()"); + $("#contentOverlay").fadeIn(375, function() { + console.log("#contentOverlay faded in..."); + loadSettings(); + document.body.removeEventListener('touchmove',prevent,false); + }); +} + +function loadSettings() { + console.log("f:loadSettings() >> getting new data..."); + $.get(wifiboxURL + "/config/all", {}, function(data) { +// console.log("f:loadSettings()"); + var settings = JSON.parse(data).data; + // var printer_layerHeight = settings["printer.layerHeight"]; + // var printer_autoWarmup = settings["printer.autoWarmUp"]; + console.log("print_layerHeight = " + settings["printer.layerHeight"]); + console.log("printer_autoWarmup = " + settings["printer.autoWarmUp"] + ", type: " + (typeof settings["printer.autoWarmUp"])); + console.log("printer_useSubLayers = " + settings["printer.useSubLayers"] + " type: " + (typeof settings["printer.useSubLayers"])); + $("#formpje input[name='printer.layerHeight']").attr('value', settings["printer.layerHeight"]); + + // printer settings + $('#autoWarmUp').prop('checked', settings["printer.autoWarmUp"]); + $('#firstLayerSlow').prop('checked', settings["printer.firstLayerSlow"]); + $('#useSubLayers').prop('checked', settings["printer.useSubLayers"]); + $("#layerHeight").attr('value', settings["printer.layerHeight"]); + $("#wallThickness").attr('value', settings["printer.wallThickness"]); + $("#filamentThickness").attr('value', settings["printer.filamentThickness"]); + $("#speed").attr('value', settings["printer.speed"]); + $("#travelSpeed").attr('value', settings["printer.travelSpeed"]); + $("#retractionAmount").attr('value', settings["printer.retraction.amount"]); + $("#retractionMinDistance").attr('value', settings["printer.retraction.minDistance"]); + $("#retractionSpeed").attr('value', settings["printer.retraction.speed"]); + + // wifi settings + $("#ipaddress").attr('value', settings["network.ap.address"]); + $("#netmask").attr('value', settings["network.ap.netmask"]); + $("#ssid").attr('value', settings["network.ap.ssid"]); + // network.ap.address: "192.168.10.1" + // network.ap.netmask: "255.255.255.0" + // network.ap.ssid: "d3d-ap-%%MAC_ADDR_TAIL%%" + + }); +} + +function saveSettings(callback) { + console.log("settings form submitted"); + console.log(" printer.layerHeight:" + $("#formpje input[name='printer.layerHeight']").attr('value')); + console.log(" first layer slow (checkbox):" + $('#firstLayerSlow').prop('checked')); + console.log(" use sublayers (checkbox):" + $('#useSubLayers').prop('checked')); + $.post( + wifiboxURL + "/config", + { + "printer.autoWarmUp" : ($('#autoWarmUp').prop('checked') == true) ? 1 : 0, + "printer.firstLayerSlow": ($('#firstLayerSlow').prop('checked') == true) ? 1 : 0, + "printer.useSubLayers": ($('#useSubLayers').prop('checked') == true) ? true : false, + // "printer.useSubLayers": $('#useSubLayers').prop('checked'), + "printer.layerHeight": $("#layerHeight").attr('value'), + "printer.wallThickness": $("#wallThickness").attr('value'), + "printer.filamentThickness": $("#filamentThickness").attr('value'), + "printer.speed": $("#speed").attr('value'), + "printer.travelSpeed": $("#travelSpeed").attr('value'), + "printer.retraction.amount": $("#retractionAmount").attr('value'), + "printer.retraction.minDistance": $("#retractionMinDistance").attr('value'), + "printer.retraction.speed": $("#retractionSpeed").attr('value') + }, + function(data) { + var res = JSON.parse(data).data; + $.each(res, function(index, val) { + if (val != "ok") { + console.log("ERROR: value '" + index + "' not successfully set. Message: " + val); + } + }); + if (callback != undefined) { + callback(); + } + // console.log(JSON.stringify(data)); + // console.log(JSON.parse(data).data); + } + ); +} + + + +/************************* + * + * + * FROM DOODLE3D.INI + * + */ var objectHeight = 20; var layerHeight = .2; var wallThickness = .5; diff --git a/settings.html b/settings.html new file mode 100755 index 0000000..a7db2f9 --- /dev/null +++ b/settings.html @@ -0,0 +1,247 @@ + + + + settings + + + + + + + + + + + + + + + + +
+

+ Not all fields are saveable at the moment +

+ +
+
+ 3D printer + + +
+ + +
+ + + +
+ +
+ Print settings + mm
+ mm
+ mm
+
+ mm/s
+ mm/s
+
+
+
+
+
+
+ mm
+ mm
+ mm/s
+
+ +
+ Access point settings +
+
+
+
+ * The macro %%MAC_ADDR_TAIL%% will be replaced by the last 6 digits of your Doodle3D Wi-Fi box's MAC address.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ GCODE settings
+ + + + + + +
+
+ + +
+
+ +
+
+
+ +
+ Advanced settings + +
+ + +
+
+ + + + + + + +