[2.0.x] SECURITYFIX missing max temp error when PID is used (#11717)

This commit is contained in:
AnHardt 2018-09-05 08:41:45 +02:00 committed by Scott Lahteine
parent 12fded46c2
commit 530a13ab6c

View file

@ -1722,14 +1722,12 @@ void Temperature::readings_ready() {
for (uint8_t e = 0; e < COUNT(temp_dir); e++) { for (uint8_t e = 0; e < COUNT(temp_dir); e++) {
const int16_t tdir = temp_dir[e], rawtemp = current_temperature_raw[e] * tdir; const int16_t tdir = temp_dir[e], rawtemp = current_temperature_raw[e] * tdir;
const bool heater_on = 0 < const bool heater_on = (target_temperature[e] > 0)
#if ENABLED(PIDTEMP) #if ENABLED(PIDTEMP)
soft_pwm_amount[e] || (soft_pwm_amount[e] > 0)
#else
target_temperature[e]
#endif #endif
; ;
if (rawtemp > maxttemp_raw[e] * tdir && heater_on) max_temp_error(e); if (rawtemp > maxttemp_raw[e] * tdir) max_temp_error(e);
if (rawtemp < minttemp_raw[e] * tdir && !is_preheating(e) && heater_on) { if (rawtemp < minttemp_raw[e] * tdir && !is_preheating(e) && heater_on) {
#ifdef MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED #ifdef MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED
if (++consecutive_low_temperature_error[e] >= MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED) if (++consecutive_low_temperature_error[e] >= MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED)
@ -1748,14 +1746,12 @@ void Temperature::readings_ready() {
#else #else
#define GEBED >= #define GEBED >=
#endif #endif
const bool bed_on = 0 < const bool bed_on = (target_temperature_bed > 0)
#if ENABLED(PIDTEMPBED) #if ENABLED(PIDTEMPBED)
soft_pwm_amount_bed || (soft_pwm_amount_bed > 0)
#else
target_temperature_bed
#endif #endif
; ;
if (current_temperature_bed_raw GEBED bed_maxttemp_raw && bed_on) max_temp_error(-1); if (current_temperature_bed_raw GEBED bed_maxttemp_raw) max_temp_error(-1);
if (bed_minttemp_raw GEBED current_temperature_bed_raw && bed_on) min_temp_error(-1); if (bed_minttemp_raw GEBED current_temperature_bed_raw && bed_on) min_temp_error(-1);
#endif #endif
} }