aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2019-12-16 19:35:49 -0500
committerKevin O'Connor <kevin@koconnor.net>2019-12-16 20:02:48 -0500
commit9654816abf5c0c5cff3bc0c65a44c3f0ebe55399 (patch)
tree360742b7c95b24452650d07db250a586bd620d8b
parent0e2d1a190e2f26197a4ebc3f5eaaa87c5b8d71ab (diff)
downloadkutter-9654816abf5c0c5cff3bc0c65a44c3f0ebe55399.tar.gz
kutter-9654816abf5c0c5cff3bc0c65a44c3f0ebe55399.tar.xz
kutter-9654816abf5c0c5cff3bc0c65a44c3f0ebe55399.zip
heater_bed: Move M140/M190 commands from gcode.py to heater_bed.py
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--klippy/extras/heater_bed.py29
-rw-r--r--klippy/gcode.py17
2 files changed, 32 insertions, 14 deletions
diff --git a/klippy/extras/heater_bed.py b/klippy/extras/heater_bed.py
index 4dd11ec4..f20c157b 100644
--- a/klippy/extras/heater_bed.py
+++ b/klippy/extras/heater_bed.py
@@ -1,9 +1,32 @@
# Support for a heated bed
#
-# Copyright (C) 2018 Kevin O'Connor <kevin@koconnor.net>
+# Copyright (C) 2018-2019 Kevin O'Connor <kevin@koconnor.net>
#
# This file may be distributed under the terms of the GNU GPLv3 license.
+class PrinterHeaterBed:
+ def __init__(self, config):
+ self.printer = config.get_printer()
+ pheater = self.printer.lookup_object('heater')
+ self.heater = pheater.setup_heater(config, 'B')
+ self.get_status = self.heater.get_status
+ self.stats = self.heater.stats
+ # Register commands
+ gcode = self.printer.lookup_object('gcode')
+ gcode.register_command("M140", self.cmd_M140)
+ gcode.register_command("M190", self.cmd_M190)
+ def cmd_M140(self, params, wait=False):
+ # Set Bed Temperature
+ gcode = self.printer.lookup_object('gcode')
+ temp = gcode.get_float('S', params, 0.)
+ toolhead = self.printer.lookup_object('toolhead')
+ print_time = toolhead.get_last_move_time()
+ self.heater.set_temp(print_time, temp)
+ if wait and temp:
+ gcode.wait_for_temperature(self.heater)
+ def cmd_M190(self, params):
+ # Set Bed Temperature and Wait
+ self.cmd_M140(params, wait=True)
+
def load_config(config):
- pheater = config.get_printer().lookup_object('heater')
- return pheater.setup_heater(config, 'B')
+ return PrinterHeaterBed(config)
diff --git a/klippy/gcode.py b/klippy/gcode.py
index 324208aa..86481789 100644
--- a/klippy/gcode.py
+++ b/klippy/gcode.py
@@ -399,12 +399,10 @@ class GCodeParser:
print_time = self.toolhead.get_last_move_time()
self.respond(self._get_temp(eventtime))
eventtime = self.reactor.pause(eventtime + 1.)
- def _set_temp(self, params, is_bed=False, wait=False):
+ def _set_temp(self, params, wait=False):
temp = self.get_float('S', params, 0.)
heater = None
- if is_bed:
- heater = self.printer.lookup_object('heater_bed', None)
- elif 'T' in params:
+ if 'T' in params:
index = self.get_int('T', params, minval=0)
section = 'extruder'
if index:
@@ -437,6 +435,9 @@ class GCodeParser:
if handler is not None:
handler(params)
return
+ elif cmd == 'M140' and not self.get_float('S', params, 0.):
+ # Don't warn about requests to turn off heaters when not present
+ return
elif cmd == 'M107' or (cmd == 'M106' and (
not self.get_float('S', params, 1.) or self.is_fileinput)):
# Don't warn about requests to turn off fan when fan not present
@@ -456,7 +457,7 @@ class GCodeParser:
'G1', 'G4', 'G28', 'M400',
'G20', 'M82', 'M83', 'G90', 'G91', 'G92', 'M114', 'M220', 'M221',
'SET_GCODE_OFFSET', 'SAVE_GCODE_STATE', 'RESTORE_GCODE_STATE',
- 'M105', 'M104', 'M109', 'M140', 'M190',
+ 'M105', 'M104', 'M109',
'M112', 'M115', 'IGNORE', 'GET_POSITION',
'RESTART', 'FIRMWARE_RESTART', 'ECHO', 'STATUS', 'HELP']
# G-Code movement commands
@@ -627,12 +628,6 @@ class GCodeParser:
def cmd_M109(self, params):
# Set Extruder Temperature and Wait
self._set_temp(params, wait=True)
- def cmd_M140(self, params):
- # Set Bed Temperature
- self._set_temp(params, is_bed=True)
- def cmd_M190(self, params):
- # Set Bed Temperature and Wait
- self._set_temp(params, is_bed=True, wait=True)
# G-Code miscellaneous commands
cmd_M112_when_not_ready = True
def cmd_M112(self, params):