Index: firmware/App/Modes/ModeHeatDisinfect.c =================================================================== diff -u -rd32f890bb6c238c95bcaca54da79d7aa4a1898cb -r77f5c03bbc835f520b478da716d0cf5d64d9fc3e --- firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision d32f890bb6c238c95bcaca54da79d7aa4a1898cb) +++ firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision 77f5c03bbc835f520b478da716d0cf5d64d9fc3e) @@ -102,6 +102,7 @@ #define POST_HEAT_DISINFECT_WAIT_TIME_MS ( 3 * SEC_PER_MIN * MS_PER_SECOND ) ///< Heat disinfect final wait time before flushing the system in milliseconds. #define HEAT_DISINFECT_MAX_TEMP_GRADIENT_C 15.0F ///< Heat disinfect maximum allowed temperature gradient in between hottest and coldest sensors. #define HEAT_DISINFECT_TEMP_GRAD_OUT_RANGE_TIME_MS ( 0.16 * SEC_PER_MIN * MS_PER_SECOND ) ///< Heat disinfect temperature gradient out of range timeout in milliseconds. +#define HEAT_DIS_TEMP_GRAD_WAIT_2_CHECK_TIME_MS ( 5 * SEC_PER_MIN * MS_PER_SECOND ) #define HEAT_DISINFECT_TARGET_RO_PUMP_DC 0.4F ///< Heat disinfect target RO pump duty cycle. #define HEAT_DISINFECT_REF_RSRVR_TIMEOUT_MS ( 5 * MS_PER_SECOND ) ///< Heat disinfect getting reference reservoirs value timeout in milliseconds. #define HEAT_DISINFECT_AT_82_C_TIME_MS ( 10 * SEC_PER_MIN * MS_PER_SECOND ) ///< Heat disinfect time at 82 C in milliseconds. @@ -1846,7 +1847,15 @@ } else if ( 0 == tempGradOutOfRangeTimer ) { - tempGradOutOfRangeTimer = getMSTimerCount(); + if ( ( TRUE == didTimeout( stateTimer, HEAT_DIS_TEMP_GRAD_WAIT_2_CHECK_TIME_MS ) ) && + ( DG_HEAT_DISINFECT_STATE_DISINFECT_R1_TO_R2 == heatDisinfectState ) ) + { + tempGradOutOfRangeTimer = getMSTimerCount(); + } + else if ( DG_HEAT_DISINFECT_STATE_DISINFECT_R2_TO_R1 == heatDisinfectState ) + { + tempGradOutOfRangeTimer = getMSTimerCount(); + } } else if ( TRUE == didTimeout( tempGradOutOfRangeTimer, HEAT_DISINFECT_TEMP_GRAD_OUT_RANGE_TIME_MS ) ) {