Skip to content

Commit

Permalink
Add a settings page to make it easier to modify
Browse files Browse the repository at this point in the history
the autoconnect delay and avoid issues like #9
  • Loading branch information
markwal committed May 9, 2020
1 parent b2f8f9e commit ef960c8
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 10 deletions.
12 changes: 8 additions & 4 deletions octoprint_portlister/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@ def on_created(self, event):
if not event.is_directory:
self._parent.on_port_created(event.src_path)

class PortListerPlugin(octoprint.plugin.StartupPlugin, octoprint.plugin.AssetPlugin, octoprint.plugin.SettingsPlugin):
class PortListerPlugin(octoprint.plugin.StartupPlugin,
octoprint.plugin.AssetPlugin,
octoprint.plugin.TemplatePlugin,
octoprint.plugin.SettingsPlugin):
def on_after_startup(self, *args, **kwargs):
self._logger.info("Port Lister %s %s" % (repr(args), repr(kwargs)))
event_handler = PortListEventHandler(self)
Expand All @@ -39,8 +42,9 @@ def on_port_created(self, port, *args, **kwargs):

# if autoconnect and the new port matches, try to connect
if self._settings.global_get_boolean(["serial", "autoconnect"]):
self._logger.info("autoconnect_delay %d", self._settings.get(["autoconnect_delay"]))
Timer(self._settings.get(["autoconnect_delay"]), self.do_auto_connect, [port]).start()
autoconnect_delay = self._settings.get_int(["autoconnect_delay"])
self._logger.info("autoconnect_delay {0}".format(autoconnect_delay))
Timer(autoconnect_delay, self.do_auto_connect, [port]).start()
else:
self._logger.info("Not autoconnecting because autoconnect is turned off.")
else:
Expand All @@ -56,7 +60,7 @@ def on_shutdown(self, *args, **kwargs):
def do_auto_connect(self, port, *args, **kwargs):
try:
self._logger.info("do_auto_connect")
(autoport, baudrate) = self._settings.global_get(["serial", "port"]), self._settings.global_get_int(["serial", "baudrate"])
(autoport, baudrate) = self._settings.global_get(["serial", "port"]), self._settings.global_get(["serial", "baudrate"])
if not autoport:
autoport = "AUTO"
if not port:
Expand Down
15 changes: 10 additions & 5 deletions octoprint_portlister/static/js/portlister.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,22 @@ $(function () {
var self = this;

self.connection = parameters[0];
self.settingsViewModel = parameters[1];

self.onDataUpdaterPluginMessage = function(plugin, message) {
if (plugin == "PortLister") {
self.connection.requestData();
}
}

self.onBeforeBinding = function() {
self.settings = self.settingsViewModel.settings;
};
}

OCTOPRINT_VIEWMODELS.push([
PortListerViewModel,
["connectionViewModel"],
[]
]);
OCTOPRINT_VIEWMODELS.push({
construct: PortListerViewModel,
dependencies: ["connectionViewModel", "settingsViewModel"],
elements: ["#settings_plugin_portlister"]
});
});
11 changes: 11 additions & 0 deletions octoprint_portlister/templates/portlister_settings.jinja2
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<form id="settings_plugin_portlister" class="form-horizontal">
<div class="control-group">
<label class="control-label">{{ _('Autoconnect delay:') }}</label>
<div class="controls" data-toggle="tooltip" title="{{ _('The port is often detected before the printer is ready to connect. Delay this number of seconds before trying.') }}">
<div class="input-append">
<input type="number" step="1" class="input-mini text-right" data-bind="value: settings.plugins.portlister.autoconnect_delay">
<span class="add-on">secs</span>
</div>
</div>
</div>
</form>
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
plugin_identifier = "portlister"
plugin_package = "octoprint_portlister"
plugin_name = "OctoPrint-PortLister"
plugin_version = "0.1.9"
plugin_version = "0.1.10"
plugin_description = """PortLister notices when printers get turned on and tells the list of ports to refresh"""
plugin_author = "Mark Walker"
plugin_author_email = "markwal@hotmail.com"
Expand Down

0 comments on commit ef960c8

Please sign in to comment.