Use _temp_error() for all errors thrown by different mechanisms
Now ending in an endless loop. Tidy up the output format. We now get: ERRORTEXT ", system stopped! Heater_ID: " HEATERID Where ERRORTEXT can be: "Heating failed" "Thermal Runaway" "MAXTEMP triggered" "MINTEMP triggered" and soon "Thermal Jump" HEATERID can be 0, 1, 2 ,3 , "bed" This messages are always followed by the common: "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"
This commit is contained in:
parent
7ff18f6657
commit
70163dafb9
@ -222,15 +222,16 @@
|
|||||||
#define MSG_PID_DEBUG_PTERM " pTerm "
|
#define MSG_PID_DEBUG_PTERM " pTerm "
|
||||||
#define MSG_PID_DEBUG_ITERM " iTerm "
|
#define MSG_PID_DEBUG_ITERM " iTerm "
|
||||||
#define MSG_PID_DEBUG_DTERM " dTerm "
|
#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_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_HEATER_BED "bed"
|
||||||
#define MSG_MINTEMP_EXTRUDER_OFF ": Extruder switched off. MINTEMP triggered !"
|
#define MSG_STOPPED_HEATER ", system stopped! Heater_ID: "
|
||||||
#define MSG_MAXTEMP_EXTRUDER_OFF ": Extruder" MSG_SWITCHED_OFF_MAX
|
#define MSG_REDUNDANCY "Heater switched off. Temperature difference between temp sensors is too high !"
|
||||||
#define MSG_MAXTEMP_BED_OFF "Heated bed" MSG_SWITCHED_OFF_MAX
|
#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
|
// LCD Menu Messages
|
||||||
|
|
||||||
|
@ -449,31 +449,33 @@ void checkExtruderAutoFans()
|
|||||||
inline void _temp_error(int e, const char *serial_msg, const char *lcd_msg) {
|
inline void _temp_error(int e, const char *serial_msg, const char *lcd_msg) {
|
||||||
if (IsRunning()) {
|
if (IsRunning()) {
|
||||||
SERIAL_ERROR_START;
|
SERIAL_ERROR_START;
|
||||||
if (e >= 0) SERIAL_ERRORLN((int)e);
|
|
||||||
serialprintPGM(serial_msg);
|
serialprintPGM(serial_msg);
|
||||||
MYSERIAL.write('\n');
|
SERIAL_ERRORPGM(MSG_STOPPED_HEATER);
|
||||||
|
if (e >= 0) SERIAL_ERRORLN((int)e); else SERIAL_ERRORLNPGM(MSG_HEATER_BED);
|
||||||
#ifdef ULTRA_LCD
|
#ifdef ULTRA_LCD
|
||||||
lcd_setalertstatuspgm(lcd_msg);
|
lcd_setalertstatuspgm(lcd_msg);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
|
#ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
|
||||||
|
disable_all_steppers();
|
||||||
Stop();
|
Stop();
|
||||||
|
while (true) lcd_update();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void max_temp_error(uint8_t e) {
|
void max_temp_error(uint8_t e) {
|
||||||
disable_all_heaters();
|
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) {
|
void min_temp_error(uint8_t e) {
|
||||||
disable_all_heaters();
|
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) {
|
void bed_max_temp_error(void) {
|
||||||
#if HAS_HEATER_BED
|
#if HAS_HEATER_BED
|
||||||
WRITE_HEATER_BED(0);
|
WRITE_HEATER_BED(0);
|
||||||
#endif
|
#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) {
|
float get_pid_output(int e) {
|
||||||
@ -627,8 +629,7 @@ void manage_heater() {
|
|||||||
// Has it failed to increase enough?
|
// Has it failed to increase enough?
|
||||||
if (degHotend(e) < watch_target_temp[e]) {
|
if (degHotend(e) < watch_target_temp[e]) {
|
||||||
// Stop!
|
// Stop!
|
||||||
disable_all_heaters();
|
_temp_error(e, PSTR(MSG_T_HEATING_FAILED), PSTR(MSG_HEATING_FAILED_LCD));
|
||||||
_temp_error(e, PSTR(MSG_HEATING_FAILED), PSTR(MSG_HEATING_FAILED_LCD));
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Start again if the target is still far off
|
// Start again if the target is still far off
|
||||||
@ -1070,16 +1071,7 @@ void tp_init() {
|
|||||||
*state = TRRunaway;
|
*state = TRRunaway;
|
||||||
break;
|
break;
|
||||||
case TRRunaway:
|
case TRRunaway:
|
||||||
SERIAL_ERROR_START;
|
_temp_error(heater_id, PSTR(MSG_T_THERMAL_RUNAWAY), PSTR(MSG_THERMAL_RUNAWAY));
|
||||||
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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user