mirror of
https://github.com/Klipper3d/klipper.git
synced 2025-08-08 22:35:17 -06:00
heater: Add PrinterHeaters class that stores all sensors and heaters
Add a PrinterHeaters class that can stores references to available temperature sensors and stores references to instantiated heaters. Add a extras/heater_bed.py file and delay instantiation of the heater_bed object. This allows the heater.py module to be imported earlier during the setup phase, and allows the PrinterHeaters class to be available for registering sensors and heaters. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
4eeb43b191
commit
aed958eb5c
7 changed files with 67 additions and 31 deletions
8
klippy/extras/heater_bed.py
Normal file
8
klippy/extras/heater_bed.py
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Support for a heated bed
|
||||
#
|
||||
# Copyright (C) 2018 Kevin O'Connor <kevin@koconnor.net>
|
||||
#
|
||||
# This file may be distributed under the terms of the GNU GPLv3 license.
|
||||
|
||||
def load_config(config):
|
||||
return config.get_printer().lookup_object('heater').setup_heater(config)
|
|
@ -3,7 +3,7 @@
|
|||
# Copyright (C) 2016-2018 Kevin O'Connor <kevin@koconnor.net>
|
||||
#
|
||||
# This file may be distributed under the terms of the GNU GPLv3 license.
|
||||
import fan, extruder
|
||||
import fan
|
||||
|
||||
PIN_MIN_TIME = 0.100
|
||||
|
||||
|
@ -20,8 +20,8 @@ class PrinterHeaterFan:
|
|||
self.fan.mcu_fan.setup_start_value(0., max_power)
|
||||
def printer_state(self, state):
|
||||
if state == 'ready':
|
||||
self.heater = extruder.get_printer_heater(
|
||||
self.printer, self.heater_name)
|
||||
pheater = self.printer.lookup_object('heater')
|
||||
self.heater = pheater.lookup_heater(self.heater_name)
|
||||
reactor = self.printer.get_reactor()
|
||||
reactor.register_timer(self.callback, reactor.NOW)
|
||||
def callback(self, eventtime):
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#
|
||||
# This file may be distributed under the terms of the GNU GPLv3 license.
|
||||
import math, logging
|
||||
import extruder, heater
|
||||
import heater
|
||||
|
||||
class PIDCalibrate:
|
||||
def __init__(self, config):
|
||||
|
@ -18,8 +18,9 @@ class PIDCalibrate:
|
|||
heater_name = self.gcode.get_str('HEATER', params)
|
||||
target = self.gcode.get_float('TARGET', params)
|
||||
write_file = self.gcode.get_int('WRITE_FILE', params, 0)
|
||||
pheater = self.printer.lookup_object('heater')
|
||||
try:
|
||||
heater = extruder.get_printer_heater(self.printer, heater_name)
|
||||
heater = pheater.lookup_heater(heater_name)
|
||||
except self.printer.config_error as e:
|
||||
raise self.gcode.error(str(e))
|
||||
print_time = self.printer.lookup_object('toolhead').get_last_move_time()
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
#
|
||||
# This file may be distributed under the terms of the GNU GPLv3 license.
|
||||
import logging
|
||||
import extruder
|
||||
|
||||
HINT_THERMAL = """
|
||||
See the 'verify_heater' section in config/example-extras.cfg
|
||||
|
@ -29,8 +28,8 @@ class HeaterCheck:
|
|||
self.fault_systime = self.printer.get_reactor().NEVER
|
||||
def printer_state(self, state):
|
||||
if state == 'connect':
|
||||
self.heater = extruder.get_printer_heater(
|
||||
self.printer, self.heater_name)
|
||||
pheater = self.printer.lookup_object('heater')
|
||||
self.heater = pheater.lookup_heater(self.heater_name)
|
||||
logging.info("Starting heater checks for %s", self.heater_name)
|
||||
reactor = self.printer.get_reactor()
|
||||
reactor.register_timer(self.check_event, reactor.NOW)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue