Skip to content

Commit c3f4edb

Browse files
committed
fix circular loop and removed register klippy callback
1 parent 2420480 commit c3f4edb

3 files changed

Lines changed: 12 additions & 19 deletions

File tree

BlocksScreen/devices/amu/manager.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66

77
from PyQt6 import QtCore
88

9-
from BlocksScreen.devices.amu.config_toggler import ConfigToggler
10-
9+
from .config_toggler import ConfigToggler
1110
from .models import MMUState, SpoolmanSupport
1211

1312
if typing.TYPE_CHECKING:
@@ -218,6 +217,15 @@ def update_mmu_state(self, data: dict, name: str = "") -> None:
218217
self._mmu_state = self._mmu_state.apply_diff(data)
219218
self.mmu_state_changed.emit(self._mmu_state)
220219

220+
def on_object_updated(
221+
self, object_type: str, object_name: str, values: dict
222+
) -> None:
223+
"""Route object_updated signal from Printer to the appropriate handler."""
224+
if object_type == "mmu":
225+
self.update_mmu_state(values)
226+
elif object_type == "filament_switch_detected":
227+
self.on_pre_gate_update(values, object_name)
228+
221229
def on_klippy_state(self, state: str) -> None:
222230
"""React to changes in klippy states"""
223231
if state.lower() != "ready":

BlocksScreen/lib/panels/mainWindow.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import events
66
from configfile import BlocksScreenConfig, get_configparser
7-
from devices.amu.manager import AMUManager
7+
from devices.amu import AMUManager
88
from devices.storage import USBManager
99
from lib.files import Files
1010
from lib.machine import MachineControl
@@ -201,11 +201,7 @@ def __init__(self):
201201
self.query_object_list.connect(self.utilitiesPanel.on_object_list)
202202
self.printer.extruder_update.connect(self.on_extruder_update)
203203
self.printer.heater_bed_update.connect(self.on_heater_bed_update)
204-
self.printer.register_callback("mmu", self.amu_manager.update_mmu_state)
205-
self.printer.register_callback(
206-
"filament_switch_sensor", self.amu_manager.on_pre_gate_update
207-
)
208-
self.printer.register_klippy_callback(self.amu_manager.on_klippy_state)
204+
self.printer.object_updated.connect(self.amu_manager.on_object_updated)
209205
self.amu_manager.run_gcode_signal.connect(self.ws.api.run_gcode)
210206
self.run_gcode_signal.connect(self.ws.api.run_gcode)
211207

BlocksScreen/lib/printer.py

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -175,17 +175,6 @@ def register_callback(
175175
"""
176176
self.__inject_callback(object_type, callback)
177177

178-
def register_klippy_callback(self, callback: typing.Callable[[str], None]) -> None:
179-
"""Register a callback for klippy lifecycle state changes.
180-
181-
Args:
182-
callback: Callable with signature ``(state: str) -> None``.
183-
"""
184-
if not callable(callback):
185-
logger.warning("register_klippy_callback: not callable")
186-
return
187-
self._klippy_callback = callback
188-
189178
@QtCore.pyqtSlot(str, name="on_klippy_status")
190179
def on_klippy_status(self, state: str):
191180
"""Handles klippy update status

0 commit comments

Comments
 (0)