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
This commit is contained in:
Guðni Már Gilbert 2022-04-17 14:00:41 +00:00
parent 9bb8797b60
commit c77b768fdd
3 changed files with 13 additions and 6 deletions

View File

@ -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;
}
/*!

View File

@ -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();
}
}

View File

@ -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;