@@ -42,6 +42,10 @@ class Printer(QtCore.QObject):
4242 print_stats_update = QtCore .pyqtSignal (
4343 [str , dict ], [str , float ], [str , str ], name = "print_stats_update"
4444 )
45+ mmu_update = QtCore .pyqtSignal (
46+ [str , dict ], [str , list ], [str , int ], [str , str ], name = "mmu_update"
47+ )
48+
4549 display_update = QtCore .pyqtSignal ([str , str ], [str , float ], name = "display_update" )
4650 temperature_sensor_update = QtCore .pyqtSignal (
4751 str , str , float , name = "temperature_sensor_update"
@@ -373,6 +377,25 @@ def _webhooks_object_updated(self, value: dict, name: str = "webhooks") -> None:
373377 e ,
374378 )
375379
380+ def _mmu_object_updated (self , value : dict , name : str = "mmu" ) -> None :
381+ if "action" in value :
382+ self .mmu_update [str , str ].emit ("action" , value ["action" ])
383+
384+ if "filament" in value :
385+ self .mmu_update [str , str ].emit (
386+ "filament" , value ["filament" ]
387+ ) # THIS IS EXTRUDER SENSOR ONLY
388+
389+ if "gate" in value :
390+ self .mmu_update [str , int ].emit ("gate" , value ["gate" ])
391+
392+ if "active_filament" in value :
393+ self .mmu_update [str , dict ].emit ("active_filament" , value ["active_filament" ])
394+
395+ if "gate_status" in value :
396+ self .mmu_update [str , list ].emit ("gate_status" , value ["gate_status" ])
397+ # i only putted the most relevant ones, there are some other parameters that can be added later if needed
398+
376399 def _gcode_move_object_updated (self , value : dict , name : str = "gcode_move" ) -> None :
377400 if "speed_factor" in value .keys ():
378401 self .gcode_move_update [str , float ].emit (
0 commit comments