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_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
 | ||||
| 
 | ||||
|  | ||||
| @ -449,31 +449,33 @@ 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'); | ||||
|     SERIAL_ERRORPGM(MSG_STOPPED_HEATER); | ||||
|     if (e >= 0) SERIAL_ERRORLN((int)e); else SERIAL_ERRORLNPGM(MSG_HEATER_BED); | ||||
|     #ifdef ULTRA_LCD | ||||
|       lcd_setalertstatuspgm(lcd_msg); | ||||
|     #endif | ||||
|   } | ||||
|   #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE | ||||
|     disable_all_steppers(); | ||||
|     Stop(); | ||||
|     while (true) lcd_update(); | ||||
|   #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) { | ||||
| @ -627,8 +629,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
 | ||||
| @ -1070,16 +1071,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)); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user