Fix recursion

This commit is contained in:
Alex Voinea 2022-11-24 16:15:51 +01:00
parent 32673e1681
commit 83c9e946e4
1 changed files with 6 additions and 0 deletions

View File

@ -823,6 +823,7 @@ void print_stop();
void lcd_commands() void lcd_commands()
{ {
// printf_P(PSTR("lcd_commands begin, lcd_commands_type=%u, lcd_commands_step=%u\n"), (uint8_t)lcd_commands_type, lcd_commands_step);
if (planner_aborted) { if (planner_aborted) {
// we are still within an aborted command. do not process any LCD command until we return // we are still within an aborted command. do not process any LCD command until we return
return; return;
@ -1016,7 +1017,10 @@ void lcd_commands()
lcd_commands_step = 3; lcd_commands_step = 3;
break; break;
case 3: case 3:
lcd_update_enabled = false; //hack to avoid lcd_update recursion.
lcd_show_fullscreen_message_and_wait_P(_T(MSG_NOZZLE_CNG_READ_HELP)); lcd_show_fullscreen_message_and_wait_P(_T(MSG_NOZZLE_CNG_READ_HELP));
lcd_update_enabled = true;
lcd_draw_update = 2; //force lcd clear and update after the stack unwinds.
enquecommand_P(PSTR("G28W")); enquecommand_P(PSTR("G28W"));
enquecommand_P(PSTR("G1 X125 Y10 Z150 F1000")); enquecommand_P(PSTR("G1 X125 Y10 Z150 F1000"));
enquecommand_P(PSTR("M109 S280")); enquecommand_P(PSTR("M109 S280"));
@ -1033,6 +1037,7 @@ void lcd_commands()
//|tightend to specs? //|tightend to specs?
//| Yes No //| Yes No
enquecommand_P(PSTR("M84 XY")); enquecommand_P(PSTR("M84 XY"));
lcd_update_enabled = false; //hack to avoid lcd_update recursion.
if (lcd_show_fullscreen_message_yes_no_and_wait_P(_T(MSG_NOZZLE_CNG_CHANGED), false) == LCD_LEFT_BUTTON_CHOICE) { if (lcd_show_fullscreen_message_yes_no_and_wait_P(_T(MSG_NOZZLE_CNG_CHANGED), false) == LCD_LEFT_BUTTON_CHOICE) {
#ifdef TEMP_MODEL #ifdef TEMP_MODEL
//enquecommand_P(PSTR("M310 S1")); //enquecommand_P(PSTR("M310 S1"));
@ -1042,6 +1047,7 @@ void lcd_commands()
setTargetHotendSafe(0,0); setTargetHotendSafe(0,0);
lcd_commands_step = 1; lcd_commands_step = 1;
} }
lcd_update_enabled = true;
break; break;
case 1: case 1:
lcd_setstatuspgm(MSG_WELCOME); lcd_setstatuspgm(MSG_WELCOME);