extrude: fix filament sensor showing status when disabled

alongside the initialization fixes this should be enough to close #825
This commit is contained in:
alfrix 2022-11-30 10:08:13 -03:00
parent 2bacac7efb
commit 4dceeb77b6

View File

@ -141,10 +141,6 @@ class ExtrudePanel(ScreenPanel):
self.labels[x]['box'].pack_start(self.labels[x]['switch'], False, False, 5)
self.labels[x]['box'].get_style_context().add_class("filament_sensor")
self.labels[x]['box'].set_hexpand(True)
if self._printer.get_dev_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")
sensors.attach(self.labels[x]['box'], s, 0, 1, 1)
grid = Gtk.Grid()
@ -203,16 +199,16 @@ class ExtrudePanel(ScreenPanel):
if 'enabled' in data[x]:
self._printer.set_dev_stat(x, "enabled", data[x]['enabled'])
self.labels[x]['switch'].set_active(data[x]['enabled'])
logging.info(f"{x} Enabled: {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")
self.labels[x]['box'].get_style_context().add_class("filament_sensor_detected")
else:
self.labels[x]['box'].get_style_context().remove_class("filament_sensor_detected")
self.labels[x]['box'].get_style_context().add_class("filament_sensor_empty")
logging.info(f"{x}: Filament detected: {data[x]['filament_detected']}")
logging.info(f"{x}: {self._printer.get_stat(x)}")
def change_distance(self, widget, distance):
logging.info(f"### Distance {distance}")
@ -254,6 +250,10 @@ class ExtrudePanel(ScreenPanel):
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")