From c77b768fddb5f706f6e52154a7c02c556bbedcec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gu=C3=B0ni=20M=C3=A1r=20Gilbert?= Date: Sun, 17 Apr 2022 14:00:41 +0000 Subject: [PATCH] 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 --- Firmware/Marlin_main.cpp | 2 +- Firmware/ultralcd.cpp | 14 ++++++++++---- Firmware/ultralcd.h | 3 ++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index c2623a3e0..caea1caca 100755 --- a/Firmware/Marlin_main.cpp +++ b/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; } /*! diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index eb75daecb..bafaff270 100755 --- a/Firmware/ultralcd.cpp +++ b/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(); } } diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index 41181554c..a237dc558 100755 --- a/Firmware/ultralcd.h +++ b/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;