diff options
author | john-- <john@gprime.net> | 2019-01-02 17:44:02 -0500 |
---|---|---|
committer | KevinOConnor <kevin@koconnor.net> | 2019-01-02 17:44:02 -0500 |
commit | f6c9150349d3ffb364a990132a16afa64c890b2e (patch) | |
tree | b85a7e6c402deca6a479d074246a7ada6a148205 /klippy/heater.py | |
parent | f4d323adbce7b82f44d6813a0fea0f1537ae234f (diff) | |
download | kutter-f6c9150349d3ffb364a990132a16afa64c890b2e.tar.gz kutter-f6c9150349d3ffb364a990132a16afa64c890b2e.tar.xz kutter-f6c9150349d3ffb364a990132a16afa64c890b2e.zip |
heater: take a gcode_id when setting up a heater (#1028)
Allow an arbitrary gcode_id to be supplied during heater setup. This allows future extras to register additional IDs beyond B, and T#.
Signed-off-by: John Jardine <john@gprime.net>
Diffstat (limited to 'klippy/heater.py')
-rw-r--r-- | klippy/heater.py | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/klippy/heater.py b/klippy/heater.py index 4a5873da..a3915b67 100644 --- a/klippy/heater.py +++ b/klippy/heater.py @@ -20,9 +20,10 @@ class error(Exception): class Heater: error = error - def __init__(self, config, sensor): + def __init__(self, config, sensor, gcode_id): printer = config.get_printer() self.name = config.get_name() + self.gcode_id = gcode_id # Setup sensor self.sensor = sensor self.min_temp = config.getfloat('min_temp', minval=KELVIN_TO_CELCIUS) @@ -220,13 +221,14 @@ class PrinterHeaters: self.printer = config.get_printer() self.sensors = {} self.heaters = {} + self.heaters_gcode_id = {} # Register TURN_OFF_HEATERS command gcode = self.printer.lookup_object('gcode') gcode.register_command("TURN_OFF_HEATERS", self.cmd_TURN_OFF_HEATERS, desc=self.cmd_TURN_OFF_HEATERS_help) def add_sensor(self, sensor_type, sensor_factory): self.sensors[sensor_type] = sensor_factory - def setup_heater(self, config): + def setup_heater(self, config, gcode_id): heater_name = config.get_name() if heater_name == 'extruder': heater_name = 'extruder0' @@ -235,7 +237,8 @@ class PrinterHeaters: # Setup sensor sensor = self.setup_sensor(config) # Create heater - self.heaters[heater_name] = heater = Heater(config, sensor) + self.heaters[heater_name] = heater = Heater(config, sensor, gcode_id) + self.heaters_gcode_id[heater.gcode_id] = heater_name return heater def lookup_heater(self, heater_name): if heater_name == 'extruder': @@ -258,6 +261,13 @@ class PrinterHeaters: print_time = self.printer.lookup_object('toolhead').get_last_move_time() for heater in self.heaters.values(): heater.set_temp(print_time, 0.) + def get_all_heaters(self): + return self.heaters.values() + def get_heater_by_gcode_id(self, gcode_id): + if gcode_id in self.heaters_gcode_id: + heater_name = self.heaters_gcode_id[gcode_id] + return self.heaters[heater_name] + return None def add_printer_objects(config): config.get_printer().add_object('heater', PrinterHeaters(config)) |