From 616574ed3b53b62b841ec0e8e7a29b79ab2e2ada Mon Sep 17 00:00:00 2001 From: alfrix Date: Thu, 2 May 2024 16:22:03 -0300 Subject: [PATCH] drop set_dev_stat and get_dev_stat this creates a parallel set of data that could become desynced --- ks_includes/printer.py | 21 ++++----------------- panels/base_panel.py | 2 +- panels/extrude.py | 10 +++------- panels/job_status.py | 6 +++--- panels/main_menu.py | 9 ++++----- panels/temperature.py | 13 +++++-------- 6 files changed, 20 insertions(+), 41 deletions(-) diff --git a/ks_includes/printer.py b/ks_includes/printer.py index a2500778..2b01f5ef 100644 --- a/ks_includes/printer.py +++ b/ks_includes/printer.py @@ -116,9 +116,6 @@ class Printer: return for x in data: - if x in self.get_temp_devices() or x in self.get_filament_sensors(): - for i in data[x]: - self.set_dev_stat(x, i, data[x][i]) if x == "configfile" and 'config' in data[x]: self.config.update(data[x]['config']) if x not in self.data: @@ -298,13 +295,9 @@ class Printer: if self.data is None or stat not in self.data: return {} if substat is not None: - return self.data[stat][substat] if substat in self.data[stat] else {} - return self.data[stat] - - def get_dev_stat(self, dev, stat): - if dev in self.devices and stat in self.devices[dev]: - return self.devices[dev][stat] - return None + return self.data.get(stat, {}).get(substat, {}) + else: + return self.data.get(stat, {}) def get_fan_speed(self, fan="fan"): speed = 0 @@ -396,19 +389,13 @@ class Printer: def config_section_exists(self, section): return section in self.get_config_section_list() - def set_dev_stat(self, dev, stat, value): - if dev not in self.devices: - return - - self.devices[dev][stat] = value - def _update_temp_store(self): if self.tempstore is None: return False for device in self.tempstore: for x in self.tempstore[device]: self.tempstore[device][x].pop(0) - temp = self.get_dev_stat(device, x[:-1]) + temp = self.get_stat(device, x[:-1]) if temp is None: temp = 0 self.tempstore[device][x].append(temp) diff --git a/panels/base_panel.py b/panels/base_panel.py index f7952d63..c1a153b3 100644 --- a/panels/base_panel.py +++ b/panels/base_panel.py @@ -255,7 +255,7 @@ class BasePanel(ScreenPanel): if action != "notify_status_update" or self._screen.printer is None: return for device in self._printer.get_temp_devices(): - temp = self._printer.get_dev_stat(device, "temperature") + temp = self._printer.get_stat(device, "temperature") if temp is not None and device in self.labels: name = "" if not (device.startswith("extruder") or device.startswith("heater_bed")): diff --git a/panels/extrude.py b/panels/extrude.py index 39a3a486..43192413 100644 --- a/panels/extrude.py +++ b/panels/extrude.py @@ -190,9 +190,9 @@ class Panel(ScreenPanel): if x in data: self.update_temp( x, - self._printer.get_dev_stat(x, "temperature"), - self._printer.get_dev_stat(x, "target"), - self._printer.get_dev_stat(x, "power"), + self._printer.get_stat(x, "temperature"), + self._printer.get_stat(x, "target"), + self._printer.get_stat(x, "power"), lines=2, ) if "current_extruder" in self.labels: @@ -211,10 +211,8 @@ class Panel(ScreenPanel): for x in self._printer.get_filament_sensors(): if x in data: if 'enabled' in data[x]: - self._printer.set_dev_stat(x, "enabled", data[x]['enabled']) self.labels[x]['switch'].set_active(data[x]['enabled']) if 'filament_detected' in data[x]: - self._printer.set_dev_stat(x, "filament_detected", data[x]['filament_detected']) if self._printer.get_stat(x, "enabled"): if data[x]['filament_detected']: self.labels[x]['box'].get_style_context().remove_class("filament_sensor_empty") @@ -265,14 +263,12 @@ class Panel(ScreenPanel): def enable_disable_fs(self, switch, gparams, name, x): if switch.get_active(): - self._printer.set_dev_stat(x, "enabled", True) self._screen._ws.klippy.gcode_script(f"SET_FILAMENT_SENSOR SENSOR={name} ENABLE=1") if self._printer.get_stat(x, "filament_detected"): self.labels[x]['box'].get_style_context().add_class("filament_sensor_detected") else: self.labels[x]['box'].get_style_context().add_class("filament_sensor_empty") else: - self._printer.set_dev_stat(x, "enabled", False) self._screen._ws.klippy.gcode_script(f"SET_FILAMENT_SENSOR SENSOR={name} ENABLE=0") self.labels[x]['box'].get_style_context().remove_class("filament_sensor_empty") self.labels[x]['box'].get_style_context().remove_class("filament_sensor_detected") diff --git a/panels/job_status.py b/panels/job_status.py index ce1fb741..a7cb1bb7 100644 --- a/panels/job_status.py +++ b/panels/job_status.py @@ -478,9 +478,9 @@ class Panel(ScreenPanel): if x in data: self.update_temp( x, - self._printer.get_dev_stat(x, "temperature"), - self._printer.get_dev_stat(x, "target"), - self._printer.get_dev_stat(x, "power"), + self._printer.get_stat(x, "temperature"), + self._printer.get_stat(x, "target"), + self._printer.get_stat(x, "power"), ) if x in self.buttons['extruder']: self.buttons['extruder'][x].set_label(self.labels[x].get_text()) diff --git a/panels/main_menu.py b/panels/main_menu.py index e3e0517b..3385ad58 100644 --- a/panels/main_menu.py +++ b/panels/main_menu.py @@ -82,7 +82,7 @@ class Panel(MenuPanel): logging.info(f"Adding device: {device}") - temperature = self._printer.get_dev_stat(device, "temperature") + temperature = self._printer.get_stat(device, "temperature") if temperature is None: return False @@ -189,7 +189,6 @@ class Panel(MenuPanel): else: logging.info(f"Unknown heater: {self.active_heater}") self._screen.show_popup_message(_("Unknown Heater") + " " + self.active_heater) - self._printer.set_dev_stat(self.active_heater, "target", temp) def verify_max_temp(self, temp): temp = int(temp) @@ -259,9 +258,9 @@ class Panel(MenuPanel): if x in data: self.update_temp( x, - self._printer.get_dev_stat(x, "temperature"), - self._printer.get_dev_stat(x, "target"), - self._printer.get_dev_stat(x, "power"), + self._printer.get_stat(x, "temperature"), + self._printer.get_stat(x, "target"), + self._printer.get_stat(x, "power"), ) def show_numpad(self, widget, device): diff --git a/panels/temperature.py b/panels/temperature.py index 08e8bb89..37ddb7d2 100644 --- a/panels/temperature.py +++ b/panels/temperature.py @@ -130,7 +130,7 @@ class Panel(ScreenPanel): self._screen.show_popup_message(_("Nothing selected")) else: for heater in self.active_heaters: - target = self._printer.get_dev_stat(heater, "target") + target = self._printer.get_stat(heater, "target") name = heater.split()[1] if len(heater.split()) > 1 else heater if direction == "+": target += int(self.tempdelta) @@ -153,7 +153,6 @@ class Panel(ScreenPanel): else: logging.info(f"Unknown heater: {heater}") self._screen.show_popup_message(_("Unknown Heater") + " " + heater) - self._printer.set_dev_stat(heater, "target", int(target)) logging.info(f"Setting {heater} to {target}") def update_graph_visibility(self): @@ -256,7 +255,6 @@ class Panel(ScreenPanel): def validate(self, heater, target=None, max_temp=None): if target is not None and max_temp is not None: if 0 <= target <= max_temp: - self._printer.set_dev_stat(heater, "target", target) return True elif target > max_temp: self._screen.show_popup_message(_("Can't set above the maximum:") + f' {max_temp}') @@ -274,7 +272,7 @@ class Panel(ScreenPanel): logging.info(f"Adding device: {device}") - temperature = self._printer.get_dev_stat(device, "temperature") + temperature = self._printer.get_stat(device, "temperature") if temperature is None: return False @@ -403,7 +401,6 @@ class Panel(ScreenPanel): else: logging.info(f"Unknown heater: {self.active_heater}") self._screen.show_popup_message(_("Unknown Heater") + " " + self.active_heater) - self._printer.set_dev_stat(self.active_heater, "target", temp) def verify_max_temp(self, temp): temp = int(temp) @@ -511,9 +508,9 @@ class Panel(ScreenPanel): if x in data: self.update_temp( x, - self._printer.get_dev_stat(x, "temperature"), - self._printer.get_dev_stat(x, "target"), - self._printer.get_dev_stat(x, "power"), + self._printer.get_stat(x, "temperature"), + self._printer.get_stat(x, "target"), + self._printer.get_stat(x, "power"), ) def show_numpad(self, widget, device=None):