drop set_dev_stat and get_dev_stat

this creates a parallel set of data that could become desynced
This commit is contained in:
alfrix 2024-05-02 16:22:03 -03:00
parent 80668faa3e
commit 616574ed3b
6 changed files with 20 additions and 41 deletions

View File

@ -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)

View File

@ -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")):

View File

@ -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")

View File

@ -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())

View File

@ -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):

View File

@ -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):