diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2020-08-16 15:39:30 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2020-08-20 21:03:22 -0400 |
commit | b2c78d71b05690c68e4e48e6bba0c7bdebf8814d (patch) | |
tree | a7f10f1233727fb260990ad23e3d6122b81620f0 /klippy/extras | |
parent | 2caaaea9a4bdd55846cdcf24b0efba60bcdfbd51 (diff) | |
download | kutter-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.py | 5 | ||||
-rw-r--r-- | klippy/extras/display/menu.cfg | 11 | ||||
-rw-r--r-- | klippy/extras/display/menu.py | 13 | ||||
-rw-r--r-- | klippy/extras/gcode_macro.py | 23 | ||||
-rw-r--r-- | klippy/extras/homing_override.py | 6 |
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 |