Kaynağa Gözat

Make M117 custom message persistant if print is paused

If M117 is called before M601 then we would like the custom message to
be visible on the LCD screen until the print is resumed.

Change in memory: +10 bytes of flash

Fixes #3316
Guðni Már Gilbert 2 yıl önce
ebeveyn
işleme
c77b768fdd
3 değiştirilmiş dosya ile 13 ekleme ve 6 silme
  1. 1 1
      Firmware/Marlin_main.cpp
  2. 10 4
      Firmware/ultralcd.cpp
  3. 2 1
      Firmware/ultralcd.h

+ 1 - 1
Firmware/Marlin_main.cpp

@@ -4272,7 +4272,7 @@ void process_commands()
         if (starpos != NULL)
             *(starpos) = '\0';
         lcd_setstatus(strchr_pointer + 5);
-        custom_message_type = CustomMsg::MsgUpdate;
+        custom_message_type = CustomMsg::M117;
     }
 
     /*!

+ 10 - 4
Firmware/ultralcd.cpp

@@ -676,6 +676,9 @@ void lcdui_print_status_line(void)
         case CustomMsg::Resuming: //Resuming
             lcd_puts_at_P(0, 3, _T(MSG_RESUMING_PRINT));
             break;
+        case CustomMsg::M117:
+            lcd_print(lcd_status_message);
+            break;
         }
     }
 
@@ -875,10 +878,13 @@ void lcd_commands()
 	{
 		if (!blocks_queued() && !homing_flag)
 		{
-			lcd_setstatuspgm(_i("Print paused"));////MSG_PRINT_PAUSED c=20
-            lcd_commands_type = LcdCommands::Idle;
-            lcd_commands_step = 0;
-            long_pause();
+			if (custom_message_type != CustomMsg::M117)
+			{
+				lcd_setstatuspgm(_i("Print paused"));////MSG_PRINT_PAUSED c=20
+			}
+			lcd_commands_type = LcdCommands::Idle;
+			lcd_commands_step = 0;
+			long_pause();
 		}
 	}
 

+ 2 - 1
Firmware/ultralcd.h

@@ -122,7 +122,8 @@ enum class CustomMsg : uint_least8_t
     TempCompPreheat, //!< Temperature compensation preheat
     M0Wait,          //!< M0/M1 Wait command working even from SD
     MsgUpdate,       //!< Short message even while printing from SD
-    Resuming,       //!< Resuming message
+    Resuming,        //!< Resuming message
+    M117,            //!< M117 Custom Message to be displayed
 };
 
 extern CustomMsg custom_message_type;