|
@@ -388,6 +388,7 @@ static void lcd_status_screen()
|
|
|
|
|
|
if(lcd_status_message_level == 0){
|
|
|
strncpy_P(lcd_status_message, WELCOME_MSG, LCD_WIDTH);
|
|
|
+ lcd_finishstatus();
|
|
|
}
|
|
|
if (eeprom_read_byte((uint8_t *)EEPROM_TOTALTIME) == 255 && eeprom_read_byte((uint8_t *)EEPROM_TOTALTIME + 1) == 255 && eeprom_read_byte((uint8_t *)EEPROM_TOTALTIME + 2) == 255 && eeprom_read_byte((uint8_t *)EEPROM_TOTALTIME + 3) == 255)
|
|
|
{
|
|
@@ -3293,9 +3294,36 @@ static void lcd_sort_type_set() {
|
|
|
}
|
|
|
#endif //SDCARD_SORT_ALPHA
|
|
|
|
|
|
+static void lcd_crash_mode_info()
|
|
|
+{
|
|
|
+ lcd_update_enable(true);
|
|
|
+ static uint32_t tim = 0;
|
|
|
+ if ((tim + 1000) < millis())
|
|
|
+ {
|
|
|
+ fputs_P(MSG_CRASH_DET_ONLY_IN_NORMAL, lcdout);
|
|
|
+ tim = millis();
|
|
|
+ }
|
|
|
+ if (lcd_clicked())
|
|
|
+ {
|
|
|
+ if (IS_SD_PRINTING || is_usb_printing || (lcd_commands_type == LCD_COMMAND_V2_CAL)) lcd_goto_menu(lcd_tune_menu, 18);
|
|
|
+ else lcd_goto_menu(lcd_settings_menu, 16, true, true);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
static void lcd_crash_mode_info2()
|
|
|
{
|
|
|
- lcd_show_fullscreen_message_and_wait_P(MSG_CRASH_DET_STEALTH_FORCE_OFF);
|
|
|
+ lcd_update_enable(true);
|
|
|
+ static uint32_t tim = 0;
|
|
|
+ if ((tim + 1000) < millis())
|
|
|
+ {
|
|
|
+ fputs_P(MSG_CRASH_DET_STEALTH_FORCE_OFF, lcdout);
|
|
|
+ tim = millis();
|
|
|
+ }
|
|
|
+ if (lcd_clicked())
|
|
|
+ {
|
|
|
+ if (IS_SD_PRINTING || is_usb_printing || (lcd_commands_type == LCD_COMMAND_V2_CAL)) lcd_goto_menu(lcd_tune_menu, 16);
|
|
|
+ else lcd_goto_menu(lcd_settings_menu, 14, true, true);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
static void lcd_filament_autoload_info()
|
|
@@ -3311,8 +3339,6 @@ static void lcd_fsensor_fail()
|
|
|
static void lcd_silent_mode_set() {
|
|
|
SilentModeMenu = !SilentModeMenu;
|
|
|
eeprom_update_byte((unsigned char *)EEPROM_SILENT, SilentModeMenu);
|
|
|
- if (CrashDetectMenu && SilentModeMenu)
|
|
|
- lcd_crash_mode_info2();
|
|
|
#ifdef TMC2130
|
|
|
st_synchronize();
|
|
|
if (tmc2130_wait_standstill_xy(1000)) {}
|
|
@@ -3325,16 +3351,10 @@ static void lcd_silent_mode_set() {
|
|
|
sei();
|
|
|
#endif //TMC2130
|
|
|
digipot_init();
|
|
|
- if (IS_SD_PRINTING || is_usb_printing || (lcd_commands_type == LCD_COMMAND_V2_CAL)) lcd_goto_menu(lcd_tune_menu, 8);
|
|
|
- else lcd_goto_menu(lcd_settings_menu, 7);
|
|
|
-}
|
|
|
-
|
|
|
-static void lcd_crash_mode_info()
|
|
|
-{
|
|
|
- lcd_show_fullscreen_message_and_wait_P(MSG_CRASH_DET_ONLY_IN_NORMAL);
|
|
|
+ if (CrashDetectMenu && SilentModeMenu)
|
|
|
+ lcd_goto_menu(lcd_crash_mode_info2);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
static void lcd_crash_mode_set()
|
|
|
{
|
|
|
CrashDetectMenu = !CrashDetectMenu; //set also from crashdet_enable() and crashdet_disable()
|
|
@@ -3822,7 +3842,7 @@ static void lcd_settings_menu()
|
|
|
if (CrashDetectMenu == 0) MENU_ITEM(function, MSG_CRASHDETECT_OFF, lcd_crash_mode_set);
|
|
|
else MENU_ITEM(function, MSG_CRASHDETECT_ON, lcd_crash_mode_set);
|
|
|
}
|
|
|
- else MENU_ITEM(function, MSG_CRASHDETECT_NA, lcd_crash_mode_info);
|
|
|
+ else MENU_ITEM(submenu, MSG_CRASHDETECT_NA, lcd_crash_mode_info);
|
|
|
|
|
|
if (temp_cal_active == false) {
|
|
|
MENU_ITEM(function, MSG_TEMP_CALIBRATION_OFF, lcd_temp_calibration_set);
|
|
@@ -5179,7 +5199,7 @@ static void lcd_tune_menu()
|
|
|
if (CrashDetectMenu == 0) MENU_ITEM(function, MSG_CRASHDETECT_OFF, lcd_crash_mode_set);
|
|
|
else MENU_ITEM(function, MSG_CRASHDETECT_ON, lcd_crash_mode_set);
|
|
|
}
|
|
|
- else MENU_ITEM(function, MSG_CRASHDETECT_NA, lcd_crash_mode_info);
|
|
|
+ else MENU_ITEM(submenu, MSG_CRASHDETECT_NA, lcd_crash_mode_info);
|
|
|
|
|
|
END_MENU();
|
|
|
}
|
|
@@ -6512,6 +6532,7 @@ static bool check_file(const char* filename) {
|
|
|
}
|
|
|
card.printingHasFinished();
|
|
|
strncpy_P(lcd_status_message, WELCOME_MSG, LCD_WIDTH);
|
|
|
+ lcd_finishstatus();
|
|
|
return result;
|
|
|
|
|
|
}
|
|
@@ -6855,6 +6876,7 @@ void lcd_setstatuspgm(const char* message)
|
|
|
if (lcd_status_message_level > 0)
|
|
|
return;
|
|
|
strncpy_P(lcd_status_message, message, LCD_WIDTH);
|
|
|
+ lcd_status_message[LCD_WIDTH] = 0;
|
|
|
lcd_finishstatus();
|
|
|
}
|
|
|
void lcd_setalertstatuspgm(const char* message)
|