aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras/filament_switch_sensor.py
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2019-06-07 11:29:22 -0400
committerKevin O'Connor <kevin@koconnor.net>2019-06-07 11:38:43 -0400
commitf1c6d043764a26eacd88bcd5b29c7262c586c4cb (patch)
treeab547c3a6ecef6d4727793533876f4467c2477bb /klippy/extras/filament_switch_sensor.py
parentd0be48da741416369496279d19a71dc2e790cdf9 (diff)
downloadkutter-f1c6d043764a26eacd88bcd5b29c7262c586c4cb.tar.gz
kutter-f1c6d043764a26eacd88bcd5b29c7262c586c4cb.tar.xz
kutter-f1c6d043764a26eacd88bcd5b29c7262c586c4cb.zip
filament_switch_sensor: Use template evaluation on gcode
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras/filament_switch_sensor.py')
-rw-r--r--klippy/extras/filament_switch_sensor.py24
1 files changed, 14 insertions, 10 deletions
diff --git a/klippy/extras/filament_switch_sensor.py b/klippy/extras/filament_switch_sensor.py
index fbe9b4c1..59cbf315 100644
--- a/klippy/extras/filament_switch_sensor.py
+++ b/klippy/extras/filament_switch_sensor.py
@@ -10,15 +10,17 @@ class BaseSensor(object):
self.name = config.get_name().split()[1]
self.printer = config.get_printer()
self.gcode = self.printer.lookup_object('gcode')
- self.runout_gcode = config.get('runout_gcode', None)
- self.insert_gcode = config.get('insert_gcode', None)
self.runout_pause = config.getboolean('pause_on_runout', True)
if self.runout_pause:
self.printer.try_load_module(config, 'pause_resume')
- if self.runout_gcode is None:
- self.runout_gcode = "PAUSE"
- else:
- self.runout_gcode = "PAUSE\n" + self.runout_gcode
+ self.runout_gcode = self.insert_gcode = None
+ gcode_macro = self.printer.try_load_module(config, 'gcode_macro')
+ if self.runout_pause or config.get('runout_gcode', None) is not None:
+ self.runout_gcode = gcode_macro.load_template(
+ config, 'runout_gcode', '')
+ if config.get('insert_gcode', None) is not None:
+ self.insert_gcode = gcode_macro.load_template(
+ config, 'insert_gcode')
self.runout_enabled = False
self.insert_enabled = self.insert_gcode is not None
self.event_running = False
@@ -47,20 +49,22 @@ class BaseSensor(object):
self.event_running = True
# Pausing from inside an event requires that the pause portion
# of pause_resume execute immediately.
+ pause_prefix = ""
if self.runout_pause:
pause_resume = self.printer.lookup_object('pause_resume')
pause_resume.send_pause_command()
- self._exec_gcode(self.runout_gcode)
+ pause_prefix = "PAUSE\n"
+ self._exec_gcode(pause_prefix, self.runout_gcode)
self.event_running = False
def _insert_event_handler(self, eventtime):
if self.event_running:
return
self.event_running = True
- self._exec_gcode(self.insert_gcode)
+ self._exec_gcode("", self.insert_gcode)
self.event_running = False
- def _exec_gcode(self, script):
+ def _exec_gcode(self, prefix, template):
try:
- self.gcode.run_script(script)
+ self.gcode.run_script(prefix + template.render())
except Exception:
logging.exception("Script running error")
def set_enable(self, runout, insert):