Compare commits

..

No commits in common. "master" and "0.1.0" have entirely different histories.

7 changed files with 20 additions and 57 deletions

View File

@ -10,7 +10,8 @@ That's the point of an EMERGENCY stop!
## Setup ## Setup
Install via the bundled plugin manager, or manually using this URL: Install via the bundled [Plugin Manager](https://github.com/foosel/OctoPrint/wiki/Plugin:-Plugin-Manager)
or manually using this URL:
https://github.com/ntoff/OctoPrint-Estop/archive/master.zip https://github.com/ntoff/OctoPrint-Estop/archive/master.zip
@ -20,11 +21,12 @@ Once installed, you may wish to move the button to the top of the sidebar, you c
Find the "appearance" section, and add the plugin to the top of the sidebar order. If no other components have been previously rearranged, you may end up with only the plugin in the order list, this is fine, you don't need to add every item to the list (not adding them won't stop them from showing up). Find the "appearance" section, and add the plugin to the top of the sidebar order. If no other components have been previously rearranged, you may end up with only the plugin in the order list, this is fine, you don't need to add every item to the list (not adding them won't stop them from showing up).
appearance: appearance:
components: color: violet
order: components:
sidebar: order:
- plugin_estop sidebar:
- plugin_estop
Please note: White spaces are critical inside the config.yaml file, special care must be taken when adding or removing entries that the correct layout is maintained. For more information on config.yaml and its appearance section, see here: http://docs.octoprint.org/en/master/configuration/config_yaml.html#appearance Please note: White spaces are critical inside the config.yaml file, special care must be taken when adding or removing entries that the correct layout is maintained. For more information on config.yaml and its appearance section, see here: http://docs.octoprint.org/en/master/configuration/config_yaml.html#appearance

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 button to the sidebar. description: Adds an emergency stop (gcode M112) button to the sidebar.
author: ntoff author: ntoff
license: AGPLv3 license: AGPLv3
date: 2017-12-02 date: 2017-03-23
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:
- url: /assets/img/plugins/estop/enabled.PNG - /assets/img/plugins/estop/enabled.PNG
alt: enabled alt: enabled
caption: Enabled (logged in and operational) caption: Enabled (logged in and operational)
- url: /assets/img/plugins/estop/disabled.PNG - /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,6 +42,4 @@ compatibility:
- macos - macos
--- ---
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. Adds a nice big emergency stop button that sends M112 to the printer in the case of an emergency.
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,18 +3,8 @@ from __future__ import absolute_import
import octoprint.plugin import octoprint.plugin
class EstopPlugin(octoprint.plugin.StartupPlugin, class EstopPlugin(octoprint.plugin.AssetPlugin,
octoprint.plugin.AssetPlugin, octoprint.plugin.TemplatePlugin):
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(
@ -23,8 +13,7 @@ class EstopPlugin(octoprint.plugin.StartupPlugin,
) )
def get_template_configs(self): def get_template_configs(self):
return [ return [
dict(type="sidebar", name="Emergency STOP!", icon="close", template="estop_sidebar.jinja2", styles=["display: none"], data_bind="visible: loginState.isUser"), dict(type="sidebar", name="Emergency STOP!", icon="fa icon-print", 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):
@ -45,7 +34,6 @@ class EstopPlugin(octoprint.plugin.StartupPlugin,
) )
__plugin_name__ = "Emergency Stop Button" __plugin_name__ = "Emergency Stop Button"
__plugin_pythoncompat__ = ">=2.7,<4"
def __plugin_load__(): def __plugin_load__():
global __plugin_implementation__ global __plugin_implementation__

View File

@ -8,9 +8,6 @@ $(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();
@ -28,18 +25,9 @@ $(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()) {
self.estopCommand(self.settings.settings.plugins.estop.estopCommand()); OctoPrint.control.sendGcode("M112");
OctoPrint.control.sendGcode(self.estopCommand());
}; };
}; };
} }
@ -49,7 +37,7 @@ $(function() {
dependencies: [ dependencies: [
"loginStateViewModel", "loginStateViewModel",
"printerStateViewModel", "printerStateViewModel",
"settingsViewModel"], ],
elements: ["#sidebar_plugin_estop_wrapper"] elements: ["#sidebar_plugin_estop_wrapper"]
}); });
}); });

View File

@ -1,13 +0,0 @@
<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" class="btn-estop" data-bind="attr: { title: buttonTitle }, text: buttonText, enable: enableEstop, click: function() { sendEstopCommand() }"></button> <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>
</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.2" plugin_version = "0.1.0"
# 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