aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2020-08-16 15:39:30 -0400
committerKevin O'Connor <kevin@koconnor.net>2020-08-20 21:03:22 -0400
commitb2c78d71b05690c68e4e48e6bba0c7bdebf8814d (patch)
treea7f10f1233727fb260990ad23e3d6122b81620f0 /klippy/extras
parent2caaaea9a4bdd55846cdcf24b0efba60bcdfbd51 (diff)
downloadkutter-b2c78d71b05690c68e4e48e6bba0c7bdebf8814d.tar.gz
kutter-b2c78d71b05690c68e4e48e6bba0c7bdebf8814d.tar.xz
kutter-b2c78d71b05690c68e4e48e6bba0c7bdebf8814d.zip
gcode: Remove "action_" commands from get_status() calls
Rename printer.gcode.action_emergency_stop() to action_emergency_stop(), printer.gcode.action_respond_info() to action_respond_info(), and printer.gcode.action_respond_error() to action_raise_error() in command templates. This simplifies the get_status() interface, as returning callable functions from that interface was confusing. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras')
-rw-r--r--klippy/extras/display/display.py5
-rw-r--r--klippy/extras/display/menu.cfg11
-rw-r--r--klippy/extras/display/menu.py13
-rw-r--r--klippy/extras/gcode_macro.py23
-rw-r--r--klippy/extras/homing_override.py6
5 files changed, 35 insertions, 23 deletions
diff --git a/klippy/extras/display/display.py b/klippy/extras/display/display.py
index 8e47e5a1..8034d670 100644
--- a/klippy/extras/display/display.py
+++ b/klippy/extras/display/display.py
@@ -66,9 +66,8 @@ class DisplayGroup:
template = gcode_macro.load_template(c, 'text')
self.data_items.append((row, col, template))
def show(self, display, templates, eventtime):
- swrap = self.data_items[0][2].create_status_wrapper(eventtime)
- context = { 'printer': swrap,
- 'draw_progress_bar': display.draw_progress_bar }
+ context = self.data_items[0][2].create_template_context(eventtime)
+ context['draw_progress_bar'] = display.draw_progress_bar
def render(name, **kwargs):
return templates[name].render(context, **kwargs)
context['render'] = render
diff --git a/klippy/extras/display/menu.cfg b/klippy/extras/display/menu.cfg
index 95b3c29b..c1ac2d69 100644
--- a/klippy/extras/display/menu.cfg
+++ b/klippy/extras/display/menu.cfg
@@ -137,21 +137,21 @@ type: command
enable: {printer.idle_timeout.state == "Printing"}
name: Pause printing
gcode:
- {printer.gcode.action_respond_info('action:pause')}
+ {action_respond_info('action:pause')}
[menu __main __octoprint __resume]
type: command
enable: {not printer.idle_timeout.state == "Printing"}
name: Resume printing
gcode:
- {printer.gcode.action_respond_info('action:resume')}
+ {action_respond_info('action:resume')}
[menu __main __octoprint __abort]
type: command
enable: {printer.idle_timeout.state == "Printing"}
name: Abort printing
gcode:
- {printer.gcode.action_respond_info('action:cancel')}
+ {action_respond_info('action:cancel')}
### menu virtual sdcard ###
[menu __main __sdcard]
@@ -720,8 +720,9 @@ name: Dump parameters
gcode:
{% for name1 in printer %}
{% for name2 in printer[name1] %}
- { printer.gcode.action_respond_info("printer['%s'].%s = %s" % (name1, name2, printer[name1][name2])) }
+ { action_respond_info("printer['%s'].%s = %s"
+ % (name1, name2, printer[name1][name2])) }
{% else %}
- { printer.gcode.action_respond_info("printer['%s'] = %s" % (name1, printer[name1])) }
+ { action_respond_info("printer['%s'] = %s" % (name1, printer[name1])) }
{% endfor %}
{% endfor %}
diff --git a/klippy/extras/display/menu.py b/klippy/extras/display/menu.py
index ae9209d1..3849eae2 100644
--- a/klippy/extras/display/menu.py
+++ b/klippy/extras/display/menu.py
@@ -7,7 +7,6 @@
import os, logging
from string import Template
from . import menu_keys
-from .. import gcode_macro
class sentinel:
@@ -722,13 +721,11 @@ class MenuManager:
def update_context(self, eventtime):
# menu default jinja2 context
- self.context = {
- 'printer': gcode_macro.GetStatusWrapper(self.printer, eventtime),
- 'menu': {
- 'eventtime': eventtime,
- 'back': self._action_back,
- 'exit': self._action_exit
- }
+ self.context = self.gcode_macro.create_template_context(eventtime)
+ self.context['menu'] = {
+ 'eventtime': eventtime,
+ 'back': self._action_back,
+ 'exit': self._action_exit
}
def stack_push(self, container):
diff --git a/klippy/extras/gcode_macro.py b/klippy/extras/gcode_macro.py
index 6afb3646..1cc3a5a1 100644
--- a/klippy/extras/gcode_macro.py
+++ b/klippy/extras/gcode_macro.py
@@ -45,6 +45,8 @@ class TemplateWrapper:
self.printer = printer
self.name = name
self.gcode = self.printer.lookup_object('gcode')
+ gcode_macro = self.printer.lookup_object('gcode_macro')
+ self.create_template_context = gcode_macro.create_template_context
try:
self.template = env.from_string(script)
except Exception as e:
@@ -52,11 +54,9 @@ class TemplateWrapper:
name, traceback.format_exception_only(type(e), e)[-1])
logging.exception(msg)
raise printer.config_error(msg)
- def create_status_wrapper(self, eventtime=None):
- return GetStatusWrapper(self.printer, eventtime)
def render(self, context=None):
if context is None:
- context = {'printer': self.create_status_wrapper()}
+ context = self.create_template_context()
try:
return str(self.template.render(context))
except Exception as e:
@@ -79,6 +79,21 @@ class PrinterGCodeMacro:
else:
script = config.get(option, default)
return TemplateWrapper(self.printer, self.env, name, script)
+ def _action_emergency_stop(self, msg="action_emergency_stop"):
+ self.printer.invoke_shutdown("Shutdown due to %s" % (msg,))
+ return ""
+ def _action_respond_info(self, msg):
+ self.printer.lookup_object('gcode').respond_info(msg)
+ return ""
+ def _action_raise_error(self, msg):
+ raise self.printer.command_error(msg)
+ def create_template_context(self, eventtime=None):
+ return {
+ 'printer': GetStatusWrapper(self.printer, eventtime),
+ 'action_emergency_stop': self._action_emergency_stop,
+ 'action_respond_info': self._action_respond_info,
+ 'action_raise_error': self._action_raise_error,
+ }
def load_config(config):
return PrinterGCodeMacro(config)
@@ -159,7 +174,7 @@ class GCodeMacro:
kwparams = dict(self.kwparams)
kwparams.update(params)
kwparams.update(self.variables)
- kwparams['printer'] = self.template.create_status_wrapper()
+ kwparams.update(self.template.create_template_context())
kwparams['params'] = params
self.in_script = True
try:
diff --git a/klippy/extras/homing_override.py b/klippy/extras/homing_override.py
index c5503b13..d7a9a874 100644
--- a/klippy/extras/homing_override.py
+++ b/klippy/extras/homing_override.py
@@ -52,11 +52,11 @@ class HomingOverride:
homing_axes.append(axis)
toolhead.set_position(pos, homing_axes=homing_axes)
# Perform homing
- kwparams = { 'printer': self.template.create_status_wrapper() }
- kwparams['params'] = gcmd.get_command_parameters()
+ context = self.template.create_template_context()
+ context['params'] = gcmd.get_command_parameters()
try:
self.in_script = True
- self.template.run_gcode_from_command(kwparams)
+ self.template.run_gcode_from_command(context)
finally:
self.in_script = False