浏览代码

Add Unloading message to LCD

Also made mmu_M600_load_filament static to limit its scope
Guðni Már Gilbert 2 年之前
父节点
当前提交
b9c23cd6b8
共有 1 个文件被更改,包括 22 次插入2 次删除
  1. 22 2
      Firmware/Marlin_main.cpp

+ 22 - 2
Firmware/Marlin_main.cpp

@@ -3508,9 +3508,29 @@ static void mmu_M600_wait_and_beep() {
     WRITE(BEEPER, LOW);
 }
 
+/**
+ * @brief Handling of unload when using MMU with M600
+ * A fullscreen message showing "Unloading Filament x"
+ * should be shown on the LCD and LCD updates should be
+ * are disabled in the meantime.
+ */ 
+static void mmu_M600_unload_filament() {
+    uint8_t tmp_extruder = MMU2::mmu2.get_current_tool();
+
+    lcd_update_enable(false);
+    lcd_clear();
+    lcd_puts_at_P(0, 1, _T(MSG_UNLOADING_FILAMENT));
+    lcd_print(' ');
+    lcd_print(tmp_extruder + 1);
+
+    // unload just current filament for multimaterial printers (used also in M702)
+    MMU2::mmu2.unload();
+    lcd_update_enable(true);
+}
+
 /// @brief load filament for mmu v2
 /// @par nozzle_temp nozzle temperature to load filament
-void mmu_M600_load_filament(bool automatic, float nozzle_temp) {
+static void mmu_M600_load_filament(bool automatic, float nozzle_temp) {
     uint8_t tmp_extruder = MMU2::mmu2.get_previous_tool();
 
     // TODO SpoolJoin
@@ -3574,7 +3594,7 @@ static void gcode_M600(bool automatic, float x_position, float y_position, float
 
     // Unload filament
     if (MMU2::mmu2.Enabled())
-        MMU2::mmu2.unload(); // unload just current filament for multimaterial printers (used also in M702)
+        mmu_M600_unload_filament();
     else
         unload_filament(true); // unload filament for single material (used also in M702)
     st_synchronize();          // finish moves