diff --git a/octoprint/server.py b/octoprint/server.py index 798eb32..49ad367 100644 --- a/octoprint/server.py +++ b/octoprint/server.py @@ -480,6 +480,8 @@ def getSettings(): [movementSpeedX, movementSpeedY, movementSpeedZ, movementSpeedE] = s.get(["printerParameters", "movementSpeed", ["x", "y", "z", "e"]]) + connectionOptions = getConnectionOptions() + return jsonify({ "api": { "enabled": s.getBoolean(["api", "enabled"]), @@ -511,6 +513,10 @@ def getSettings(): "sdSupport": s.getBoolean(["feature", "sdSupport"]) }, "serial": { + "port": connectionOptions["portPreference"], + "baudrate": connectionOptions["baudratePreference"], + "portOptions": connectionOptions["ports"], + "baudrateOptions": connectionOptions["baudrates"], "autoconnect": s.getBoolean(["serial", "autoconnect"]) }, "folder": { @@ -567,6 +573,8 @@ def setSettings(): if "serial" in data.keys(): if "autoconnect" in data["serial"].keys(): s.setBoolean(["serial", "autoconnect"], data["serial"]["autoconnect"]) + if "port" in data["serial"].keys(): s.set(["serial", "port"], data["serial", "port"]) + if "baudrate" in data["serial"].keys(): s.setInt(["serial", "baudrate"], data["serial"]["baudrate"]) if "folder" in data.keys(): if "uploads" in data["folder"].keys(): s.setBaseFolder("uploads", data["folder"]["uploads"]) diff --git a/octoprint/static/js/ui.js b/octoprint/static/js/ui.js index dafdf87..eb78006 100644 --- a/octoprint/static/js/ui.js +++ b/octoprint/static/js/ui.js @@ -1340,6 +1340,10 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { self.feature_alwaysSendChecksum = ko.observable(undefined); self.feature_sdSupport = ko.observable(undefined); + self.serial_port = ko.observable(); + self.serial_baudrate = ko.observable(); + self.serial_portOptions = ko.observableArray([]); + self.serial_baudrateOptions = ko.observableArray([]); self.serial_autoconnect = ko.observable(undefined); self.folder_uploads = ko.observable(undefined); @@ -1393,6 +1397,10 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { self.feature_alwaysSendChecksum(response.feature.alwaysSendChecksum); self.feature_sdSupport(response.feature.sdSupport); + self.serial_port(response.serial.port); + self.serial_baudrate(response.serial.baudrate); + self.serial_portOptions(response.serial.portOptions); + self.serial_baudrateOptions(response.serial.baudrateOptions); self.serial_autoconnect(response.serial.autoconnect); self.folder_uploads(response.folder.uploads); @@ -1437,6 +1445,8 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { "sdSupport": self.feature_sdSupport() }, "serial": { + "port": self.serial_port(), + "baudrate": self.serial_baudrate(), "autoconnect": self.serial_autoconnect() }, "folder": { diff --git a/octoprint/templates/settings.jinja2 b/octoprint/templates/settings.jinja2 index 06879ff..db03581 100644 --- a/octoprint/templates/settings.jinja2 +++ b/octoprint/templates/settings.jinja2 @@ -6,18 +6,42 @@