@@ -44,6 +44,10 @@ class Printer(QtCore.QObject):
4444 print_stats_update = QtCore .pyqtSignal (
4545 [str , dict ], [str , float ], [str , str ], name = "print_stats_update"
4646 )
47+ mmu_update = QtCore .pyqtSignal (
48+ [str , dict ], [str , list ], [str , int ], [str , str ], name = "mmu_update"
49+ )
50+
4751 display_update = QtCore .pyqtSignal ([str , str ], [str , float ], name = "display_update" )
4852 temperature_sensor_update = QtCore .pyqtSignal (
4953 str , str , float , name = "temperature_sensor_update"
@@ -380,6 +384,25 @@ def _save_variables_object_updated(
380384 ) -> None :
381385 self .save_variables_update .emit (value )
382386
387+ def _mmu_object_updated (self , value : dict , name : str = "mmu" ) -> None :
388+ if "action" in value :
389+ self .mmu_update [str , str ].emit ("action" , value ["action" ])
390+
391+ if "filament" in value :
392+ self .mmu_update [str , str ].emit (
393+ "filament" , value ["filament" ]
394+ ) # THIS IS EXTRUDER SENSOR ONLY
395+
396+ if "gate" in value :
397+ self .mmu_update [str , int ].emit ("gate" , value ["gate" ])
398+
399+ if "active_filament" in value :
400+ self .mmu_update [str , dict ].emit ("active_filament" , value ["active_filament" ])
401+
402+ if "gate_status" in value :
403+ self .mmu_update [str , list ].emit ("gate_status" , value ["gate_status" ])
404+ # i only putted the most relevant ones, there are some other parameters that can be added later if needed
405+
383406 def _gcode_move_object_updated (self , value : dict , name : str = "gcode_move" ) -> None :
384407 if "speed_factor" in value .keys ():
385408 self .gcode_move_update [str , float ].emit (
0 commit comments