diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2019-02-25 20:12:32 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2019-02-25 20:32:30 -0500 |
commit | cf6c5e6f180587924f9c46bb1db141089823da3a (patch) | |
tree | a55401eea3a263bf76f7e4516862de28be57ac8f /klippy/gcode.py | |
parent | 13b2e091b88c929f5e6c25ceb85fad3e280e5eb7 (diff) | |
download | kutter-cf6c5e6f180587924f9c46bb1db141089823da3a.tar.gz kutter-cf6c5e6f180587924f9c46bb1db141089823da3a.tar.xz kutter-cf6c5e6f180587924f9c46bb1db141089823da3a.zip |
gcode: A set temperature request should use the heater name, not the gcode id
When setting a temperature, lookup the heater via
self.heaters.lookup_heater() and do not use the gcode ids. This fixes
temperature setting when multiple extruders share the same heater.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/gcode.py')
-rw-r--r-- | klippy/gcode.py | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/klippy/gcode.py b/klippy/gcode.py index c734d684..d6662152 100644 --- a/klippy/gcode.py +++ b/klippy/gcode.py @@ -389,22 +389,18 @@ class GCodeParser: eventtime = self.reactor.pause(eventtime + 1.) def set_temp(self, params, is_bed=False, wait=False): temp = self.get_float('S', params, 0.) - heater = None if is_bed: - heater = self.heaters.get_heater_by_gcode_id('B') - elif 'T' in params: - index = self.get_int('T', params, minval=0) - heater = self.heaters.get_heater_by_gcode_id('T%d' % (index,)) + heater_name = 'heater_bed' else: - heater = self.heaters.get_heater_by_gcode_id('T0') - if heater is None: - if temp > 0.: - self.respond_error("Heater not configured") - return + index = self.get_int('T', params, 0, minval=0) + heater_name = 'extruder%d' % (index,) print_time = self.toolhead.get_last_move_time() try: + heater = self.heaters.lookup_heater(heater_name) heater.set_temp(print_time, temp) except heater.error as e: + if not temp: + return raise error(str(e)) if wait and temp: self.bg_temp(heater) |