6 Commits
0.1.0 ... 0.1.2

Author SHA1 Message Date
175f13bbde increment version 2017-12-02 07:44:42 +10:00
8a9a2fe401 icon tweak
not sure how I managed to screw that icon up so badly
2017-12-02 07:43:36 +10:00
8a2e732663 repo info thing 2017-12-02 07:42:58 +10:00
e8f9badc65 increment version 2017-11-10 00:22:58 +10:00
4f37707acb Update icon + add command setting
Update icon to new FA icon to be compatible with octoprint 1.3.5's move to an update font awesome

Add a setting to allow changing of the command in situations where the user may wish to issue some other command other than M112
2017-11-10 00:22:35 +10:00
33b2352afb Update README.md
remove the plugin manager bit from the install instructions as plugin isn't registered.
2017-08-12 12:50:19 +10:00
7 changed files with 51 additions and 14 deletions

View File

@ -10,8 +10,7 @@ That's the point of an EMERGENCY stop!
## Setup ## Setup
Install via the bundled [Plugin Manager](https://github.com/foosel/OctoPrint/wiki/Plugin:-Plugin-Manager) Install manually using this URL:
or manually using this URL:
https://github.com/ntoff/OctoPrint-Estop/archive/master.zip https://github.com/ntoff/OctoPrint-Estop/archive/master.zip

View File

@ -3,11 +3,11 @@ layout: plugin
id: estop id: estop
title: Emergency STOP! button title: Emergency STOP! button
description: Adds an emergency stop (gcode M112) button to the sidebar. description: Adds an emergency stop button to the sidebar.
author: ntoff author: ntoff
license: AGPLv3 license: AGPLv3
date: 2017-03-23 date: 2017-12-02
homepage: https://github.com/ntoff/OctoPrint-Estop homepage: https://github.com/ntoff/OctoPrint-Estop
source: https://github.com/ntoff/OctoPrint-Estop source: https://github.com/ntoff/OctoPrint-Estop
@ -21,10 +21,10 @@ tags:
screenshots: screenshots:
- /assets/img/plugins/estop/enabled.PNG - url: /assets/img/plugins/estop/enabled.PNG
alt: enabled alt: enabled
caption: Enabled (logged in and operational) caption: Enabled (logged in and operational)
- /assets/img/plugins/estop/disabled.PNG - url: /assets/img/plugins/estop/disabled.PNG
alt: disabled alt: disabled
caption: Disabled (logged out or non operational) caption: Disabled (logged out or non operational)
@ -42,4 +42,6 @@ compatibility:
- macos - macos
--- ---
Adds a nice big emergency stop button that sends M112 to the printer in the case of an emergency. Adds a nice big emergency stop button that (by default) sends M112 to the printer in the case of an emergency. If your printer uses a different E-Stop command, there's a settings page entry to allow changing the command sent.
Please do be aware that this button is no substitute for human interaction in the case of a real emergency. How your printer responds to M112 depends entirely on its firmware.

View File

@ -3,8 +3,18 @@ from __future__ import absolute_import
import octoprint.plugin import octoprint.plugin
class EstopPlugin(octoprint.plugin.AssetPlugin, class EstopPlugin(octoprint.plugin.StartupPlugin,
octoprint.plugin.TemplatePlugin): octoprint.plugin.AssetPlugin,
octoprint.plugin.TemplatePlugin,
octoprint.plugin.SettingsPlugin):
def get_settings_defaults(self):
return dict(estopCommand = "M112")
def on_after_startup(self):
self.estopCommand = self._settings.get(["estopCommand"])
if (self.estopCommand != "M112"):
self._logger.warn("WARNING! EMERGENCY STOP COMMAND HAS BEEN CHANGED FROM DEFAULT \"M112\" TO \"" + self.estopCommand + "\"")
def get_assets(self): def get_assets(self):
return dict( return dict(
@ -13,7 +23,8 @@ class EstopPlugin(octoprint.plugin.AssetPlugin,
) )
def get_template_configs(self): def get_template_configs(self):
return [ return [
dict(type="sidebar", name="Emergency STOP!", icon="fa icon-print", template="estop_sidebar.jinja2", styles=["display: none"], data_bind="visible: loginState.isUser") dict(type="sidebar", name="Emergency STOP!", icon="close", template="estop_sidebar.jinja2", styles=["display: none"], data_bind="visible: loginState.isUser"),
dict(type="settings", name="E-Stop Settings", template="estop_settings.jinja2", custom_bindings=False)
] ]
def get_update_information(self): def get_update_information(self):

View File

@ -8,6 +8,9 @@ $(function() {
self.loginState = parameters[0]; self.loginState = parameters[0];
self.printerState = parameters[1]; self.printerState = parameters[1];
self.settings = parameters[2];
self.estopCommand = ko.observable("M112");
self.enableEstop = ko.pureComputed(function() { self.enableEstop = ko.pureComputed(function() {
return self.printerState.isOperational() && self.loginState.isUser(); return self.printerState.isOperational() && self.loginState.isUser();
@ -25,9 +28,18 @@ $(function() {
} }
}); });
self.buttonTitle = ko.pureComputed(function() {
self.estopCommand(self.settings.settings.plugins.estop.estopCommand());
return gettext("Sends " + self.estopCommand() + " to the printer IMMEDIATELY");
});
self.onBeforeBinding = function () {
//self.estopCommand(self.settings.settings.plugins.estop.estopCommand());
}
self.sendEstopCommand = function () { self.sendEstopCommand = function () {
if (self.enableEstop()) { if (self.enableEstop()) {
OctoPrint.control.sendGcode("M112"); self.estopCommand(self.settings.settings.plugins.estop.estopCommand());
OctoPrint.control.sendGcode(self.estopCommand());
}; };
}; };
} }
@ -37,7 +49,7 @@ $(function() {
dependencies: [ dependencies: [
"loginStateViewModel", "loginStateViewModel",
"printerStateViewModel", "printerStateViewModel",
], "settingsViewModel"],
elements: ["#sidebar_plugin_estop_wrapper"] elements: ["#sidebar_plugin_estop_wrapper"]
}); });
}); });

View File

@ -0,0 +1,13 @@
<h3>{{ _('E-Stop Settings') }}</h3>
<div>
<p>Here you can change the command issued to your printer when you press the emergency stop button.</p>
<form class="form-horizontal">
<div class="control-group">
<label class="control-label">{{ _('Emergency STOP! Command') }}</label>
<div class="controls">
<input type="text" class="input-block" data-bind="value: settings.plugins.estop.estopCommand">
<span class="help-block">Usually this is M112. Only change if you know what you're doing.</span>
</div>
</div>
</form>
</div>

View File

@ -1,4 +1,4 @@
<div id="sidebar_estop_background" class="estop_sidebar" data-bind="css: estopState"> <div id="sidebar_estop_background" class="estop_sidebar" data-bind="css: estopState">
<button type="button" id="emergemcy_stop" title="send M112 estop gcode command" class="btn-estop" data-bind="text: buttonText, enable: enableEstop, click: function() { sendEstopCommand() }"></button> <button type="button" id="emergemcy_stop" class="btn-estop" data-bind="attr: { title: buttonTitle }, text: buttonText, enable: enableEstop, click: function() { sendEstopCommand() }"></button>
</div> </div>

View File

@ -14,7 +14,7 @@ plugin_package = "octoprint_estop"
plugin_name = "OctoPrint-Estop" plugin_name = "OctoPrint-Estop"
# The plugin's version. Can be overwritten within OctoPrint's internal data via __plugin_version__ in the plugin module # The plugin's version. Can be overwritten within OctoPrint's internal data via __plugin_version__ in the plugin module
plugin_version = "0.1.0" plugin_version = "0.1.2"
# The plugin's description. Can be overwritten within OctoPrint's internal data via __plugin_description__ in the plugin # The plugin's description. Can be overwritten within OctoPrint's internal data via __plugin_description__ in the plugin
# module # module