base_panel and printer optimizations

This commit is contained in:
alfrix 2024-01-13 00:27:17 -03:00
parent 52fdb5d5ba
commit eecb41df93
2 changed files with 28 additions and 28 deletions

View File

@ -28,6 +28,7 @@ class Printer:
self.cameras = []
self.available_commands = {}
self.spoolman = False
self.temp_devices = self.sensors = None
def reinit(self, printer_info, data):
self.config = data['configfile']['config']
@ -45,6 +46,7 @@ class Printer:
self.store_timeout = GLib.timeout_add_seconds(1, self._update_temp_store)
self.tempstore_size = 1200
self.available_commands = {}
self.temp_devices = self.sensors = None
for x in self.config.keys():
if x[:8] == "extruder":
@ -201,15 +203,12 @@ class Printer:
fans = []
if self.config_section_exists("fan"):
fans.append("fan")
fan_types = ["controller_fan", "fan_generic", "heater_fan"]
for fan_type in fan_types:
for fan_type in ["controller_fan", "fan_generic", "heater_fan"]:
fans.extend(iter(self.get_config_section_list(f"{fan_type} ")))
return fans
def get_output_pins(self):
output_pins = []
output_pins.extend(iter(self.get_config_section_list("output_pin ")))
return output_pins
return self.get_config_section_list("output_pin ")
def get_gcode_macros(self):
macros = []
@ -235,9 +234,10 @@ class Printer:
return self.get_config_section_list("temperature_sensor")
def get_filament_sensors(self):
sensors = list(self.get_config_section_list("filament_switch_sensor "))
sensors.extend(iter(self.get_config_section_list("filament_motion_sensor ")))
return sensors
if self.sensors is None:
self.sensors = list(self.get_config_section_list("filament_switch_sensor "))
self.sensors.extend(iter(self.get_config_section_list("filament_motion_sensor ")))
return self.sensors
def get_probe(self):
probe_types = ["probe", "bltouch", "smart_effector", "dockable_probe"]
@ -372,12 +372,14 @@ class Printer:
return temp
def get_temp_devices(self):
if self.temp_devices is None:
devices = [
device
for device in self.tools
if not device.startswith('extruder_stepper')
]
return devices + self.get_heaters() + self.get_temp_sensors() + self.get_temp_fans()
self.temp_devices = devices + self.get_heaters() + self.get_temp_sensors() + self.get_temp_fans()
return self.temp_devices
def get_tools(self):
return self.tools

View File

@ -217,9 +217,7 @@ class BasePanel(ScreenPanel):
if action != "notify_status_update" or self._screen.printer is None:
return
devices = (self._printer.get_temp_devices())
if devices is not None:
for device in devices:
for device in self._printer.get_temp_devices():
temp = self._printer.get_dev_stat(device, "temperature")
if temp is not None and device in self.labels:
name = ""