diff options
author | Pedro Lamas <pedrolamas@gmail.com> | 2023-07-17 10:39:34 +0100 |
---|---|---|
committer | KevinOConnor <kevin@koconnor.net> | 2023-08-01 20:32:03 -0400 |
commit | ed66982b8eb06ce8843d8b5163c6bd290e1754c9 (patch) | |
tree | 34d702412a368fdd7deadb178cc50e771a3aebff | |
parent | 55d09771b1083981fab6695987d375eced5d9feb (diff) | |
download | kutter-ed66982b8eb06ce8843d8b5163c6bd290e1754c9.tar.gz kutter-ed66982b8eb06ce8843d8b5163c6bd290e1754c9.tar.xz kutter-ed66982b8eb06ce8843d8b5163c6bd290e1754c9.zip |
heaters: adds temperature monitors
Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
-rw-r--r-- | docs/Status_Reference.md | 5 | ||||
-rw-r--r-- | klippy/extras/heaters.py | 6 | ||||
-rw-r--r-- | klippy/extras/tmc.py | 3 |
3 files changed, 13 insertions, 1 deletions
diff --git a/docs/Status_Reference.md b/docs/Status_Reference.md index 036c7dec..13139dd0 100644 --- a/docs/Status_Reference.md +++ b/docs/Status_Reference.md @@ -245,6 +245,11 @@ object is available if any heater is defined): temperature sensors by their full config section names, e.g. `["extruder", "heater_bed", "heater_generic my_custom_heater", "temperature_sensor electronics_temp"]`. +- `available_monitors`: Returns a list of all currently available + temperature monitors by their full config section names, + e.g. `["tmc2240 stepper_x"]`. While a temperature sensor is always + available to read, a temperature monitor may not be available and + will return null in such case. ## idle_timeout diff --git a/klippy/extras/heaters.py b/klippy/extras/heaters.py index b0b2c16d..0e9411c9 100644 --- a/klippy/extras/heaters.py +++ b/klippy/extras/heaters.py @@ -230,6 +230,7 @@ class PrinterHeaters: self.gcode_id_to_sensor = {} self.available_heaters = [] self.available_sensors = [] + self.available_monitors = [] self.has_started = self.have_load_sensors = False self.printer.register_event_handler("klippy:ready", self._handle_ready) self.printer.register_event_handler("gcode:request_restart", @@ -293,9 +294,12 @@ class PrinterHeaters: raise self.printer.config_error( "G-Code sensor id %s already registered" % (gcode_id,)) self.gcode_id_to_sensor[gcode_id] = psensor + def register_monitor(self, config): + self.available_monitors.append(config.get_name()) def get_status(self, eventtime): return {'available_heaters': self.available_heaters, - 'available_sensors': self.available_sensors} + 'available_sensors': self.available_sensors, + 'available_monitors': self.available_monitors} def turn_off_all_heaters(self, print_time=0.): for heater in self.heaters.values(): heater.set_temp(0.) diff --git a/klippy/extras/tmc.py b/klippy/extras/tmc.py index 28f7be6f..c3ece070 100644 --- a/klippy/extras/tmc.py +++ b/klippy/extras/tmc.py @@ -125,6 +125,9 @@ class TMCErrorCheck: # Setup for temperature query self.adc_temp = None self.adc_temp_reg = self.fields.lookup_register("adc_temp") + if self.adc_temp_reg is not None: + pheaters = self.printer.load_object(config, 'heaters') + pheaters.register_monitor(config) def _query_register(self, reg_info, try_clear=False): last_value, reg_name, mask, err_mask, cs_actual_mask = reg_info cleared_flags = 0 |