Skip to content

Commit 61988f7

Browse files
author
Roberto Martins
committed
bugfix: wrong filament state
1 parent 892d2e5 commit 61988f7

2 files changed

Lines changed: 22 additions & 13 deletions

File tree

BlocksScreen.cfg

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,7 @@ timeout: 5000
77

88
[usb_manager]
99
gcodes_dir: ~/printer_data/gcodes/
10+
11+
[filament_presence]
12+
object: cutter_sensor
13+
name: extruder_cutter

BlocksScreen/lib/panels/filamentTab.py

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
import enum
22
from functools import partial
33

4-
4+
import logging
55
from lib.printer import Printer
66
from lib.filament import Filament
77
from lib.ui.filamentStackedWidget_ui import Ui_filamentStackedWidget
8-
8+
from configfile import get_configparser
99
from lib.panels.widgets.popupDialogWidget import Popup
1010
from PyQt6 import QtCore, QtGui, QtWidgets
1111

12+
logger = logging.getLogger(__name__)
13+
1214

1315
class FilamentTypes(enum.Enum):
1416
PLA = Filament(name="PLA", temperature=220)
@@ -51,8 +53,14 @@ def __init__(self, parent: QtWidgets.QWidget, printer: Printer, ws, /) -> None:
5153
self.popup = Popup(self)
5254
self.has_load_unload_objects = None
5355
self._filament_state = self.FilamentStates.UNKNOWN
54-
self._sensor_states = {}
5556
self.filament_type = FilamentTypes.UNKNOWN
57+
58+
cfg = get_configparser()
59+
if cfg.has_section("filament_presence"):
60+
i = cfg.get_section("filament_presence", None)
61+
self.filament_sensor = i.get("name", str, None)
62+
else:
63+
self.filament_sensor = None
5664
self.panel.filament_page_load_btn.clicked.connect(
5765
partial(self.change_page, self.indexOf(self.panel.load_page))
5866
)
@@ -144,16 +152,13 @@ def on_filament_sensor_update(self, sensor_name: str, parameter: str, value: boo
144152
self._filament_state = self.FilamentStates.UNKNOWN
145153
self.handle_filament_state()
146154
return
147-
self._sensor_states[sensor_name] = value
148-
if not self._sensor_states:
149-
new_state = self.FilamentStates.UNKNOWN
150-
elif all(self._sensor_states.values()):
151-
new_state = self.FilamentStates.LOADED
152-
else:
153-
new_state = self.FilamentStates.UNLOADED
154-
if self._filament_state != new_state:
155-
self._filament_state = new_state
156-
self.handle_filament_state()
155+
if sensor_name == self.filament_sensor:
156+
if value:
157+
self._filament_state = self.FilamentStates.LOADED
158+
else:
159+
self._filament_state = self.FilamentStates.UNLOADED
160+
return
161+
self.handle_filament_state()
157162

158163
@QtCore.pyqtSlot(str, str, float, name="on_extruder_update")
159164
def on_extruder_update(

0 commit comments

Comments
 (0)