diff --git a/Marlin/language.h b/Marlin/language.h index 5add693fda..6e078d1dbc 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -223,15 +223,16 @@ #define MSG_PID_DEBUG_PTERM " pTerm " #define MSG_PID_DEBUG_ITERM " iTerm " #define MSG_PID_DEBUG_DTERM " dTerm " -#define MSG_HEATING_FAILED "Heating failed" -#define MSG_EXTRUDER_SWITCHED_OFF "Extruder switched off. Temperature difference between temp sensors is too high !" - #define MSG_INVALID_EXTRUDER_NUM " - Invalid extruder number !" -#define MSG_THERMAL_RUNAWAY_STOP "Thermal Runaway, system stopped! Heater_ID: " -#define MSG_SWITCHED_OFF_MAX " switched off. MAXTEMP triggered !!" -#define MSG_MINTEMP_EXTRUDER_OFF ": Extruder switched off. MINTEMP triggered !" -#define MSG_MAXTEMP_EXTRUDER_OFF ": Extruder" MSG_SWITCHED_OFF_MAX -#define MSG_MAXTEMP_BED_OFF "Heated bed" MSG_SWITCHED_OFF_MAX + +#define MSG_HEATER_BED "bed" +#define MSG_STOPPED_HEATER ", system stopped! Heater_ID: " +#define MSG_REDUNDANCY "Heater switched off. Temperature difference between temp sensors is too high !" +#define MSG_T_HEATING_FAILED "Heating failed" +#define MSG_T_THERMAL_RUNAWAY "Thermal Runaway" +#define MSG_T_MAXTEMP "MAXTEMP triggered" +#define MSG_T_MINTEMP "MINTEMP triggered" + // LCD Menu Messages diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index f8fd872019..9fdcb785cd 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -450,31 +450,28 @@ void checkExtruderAutoFans() inline void _temp_error(int e, const char *serial_msg, const char *lcd_msg) { if (IsRunning()) { SERIAL_ERROR_START; - if (e >= 0) SERIAL_ERRORLN((int)e); serialprintPGM(serial_msg); - MYSERIAL.write('\n'); - #ifdef ULTRA_LCD - lcd_setalertstatuspgm(lcd_msg); - #endif + SERIAL_ERRORPGM(MSG_STOPPED_HEATER); + if (e >= 0) SERIAL_ERRORLN((int)e); else SERIAL_ERRORLNPGM(MSG_HEATER_BED); } #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE - Stop(); + kill(lcd_msg); #endif } void max_temp_error(uint8_t e) { disable_all_heaters(); - _temp_error(e, PSTR(MSG_MAXTEMP_EXTRUDER_OFF), PSTR(MSG_ERR_MAXTEMP)); + _temp_error(e, PSTR(MSG_T_MAXTEMP), PSTR(MSG_ERR_MAXTEMP)); } void min_temp_error(uint8_t e) { disable_all_heaters(); - _temp_error(e, PSTR(MSG_MINTEMP_EXTRUDER_OFF), PSTR(MSG_ERR_MINTEMP)); + _temp_error(e, PSTR(MSG_T_MINTEMP), PSTR(MSG_ERR_MINTEMP)); } void bed_max_temp_error(void) { #if HAS_HEATER_BED WRITE_HEATER_BED(0); #endif - _temp_error(-1, PSTR(MSG_MAXTEMP_BED_OFF), PSTR(MSG_ERR_MAXTEMP_BED)); + _temp_error(-1, PSTR(MSG_T_MAXTEMP), PSTR(MSG_ERR_MAXTEMP_BED)); } float get_pid_output(int e) { @@ -628,8 +625,7 @@ void manage_heater() { // Has it failed to increase enough? if (degHotend(e) < watch_target_temp[e]) { // Stop! - disable_all_heaters(); - _temp_error(e, PSTR(MSG_HEATING_FAILED), PSTR(MSG_HEATING_FAILED_LCD)); + _temp_error(e, PSTR(MSG_T_HEATING_FAILED), PSTR(MSG_HEATING_FAILED_LCD)); } else { // Start again if the target is still far off @@ -1071,16 +1067,7 @@ void tp_init() { *state = TRRunaway; break; case TRRunaway: - SERIAL_ERROR_START; - SERIAL_ERRORLNPGM(MSG_THERMAL_RUNAWAY_STOP); - if (heater_id < 0) SERIAL_ERRORLNPGM("bed"); else SERIAL_ERRORLN(heater_id); - LCD_ALERTMESSAGEPGM(MSG_THERMAL_RUNAWAY); - disable_all_heaters(); - disable_all_steppers(); - for (;;) { - manage_heater(); - lcd_update(); - } + _temp_error(heater_id, PSTR(MSG_T_THERMAL_RUNAWAY), PSTR(MSG_THERMAL_RUNAWAY)); } }