Index: firmware/App/Controllers/ROPump.c =================================================================== diff -u -rff9e67dd840fc373a4aedc8b3af21e08b28efe99 -re2406180bf569fb495b709542c12da099c8e23ea --- firmware/App/Controllers/ROPump.c (.../ROPump.c) (revision ff9e67dd840fc373a4aedc8b3af21e08b28efe99) +++ firmware/App/Controllers/ROPump.c (.../ROPump.c) (revision e2406180bf569fb495b709542c12da099c8e23ea) @@ -436,17 +436,26 @@ case DG_MODE_FILL: case DG_MODE_FLUS: - case DG_MODE_HEAT: case DG_MODE_CHEM: - case DG_MODE_HCOL: case DG_MODE_CHFL: case DG_MODE_ROPS: - // The flow cannot be out of range for than 10% of the target flow + // The flow cannot be out of range for than 10% of the target flow isFlowOutOfRange = ( fabs( 1.0F - ( currentFlowLPM / targetFlowLPM ) ) > MAX_ALLOWED_FLOW_DEVIATION_PCT ? TRUE : FALSE ); isFlowOutOfUpperRange = ( isFlowOutOfRange && ( currentFlowLPM > targetFlowLPM ) ? TRUE : FALSE ); isFlowOutOfLowerRange = ( isFlowOutOfRange && ( currentFlowLPM < targetFlowLPM ) ? TRUE : FALSE ); break; + case DG_MODE_HEAT: + case DG_MODE_HCOL: + if ( getTargetROPumpPressurePSI() > CLEANING_MODE_HIGH_TEMP_MAX_RO_PRESSURE_PSI ) + { + // The flow cannot be out of range for than 10% of the target flow + isFlowOutOfRange = ( fabs( 1.0F - ( currentFlowLPM / targetFlowLPM ) ) > MAX_ALLOWED_FLOW_DEVIATION_PCT ? TRUE : FALSE ); + isFlowOutOfUpperRange = ( isFlowOutOfRange && ( currentFlowLPM > targetFlowLPM ) ? TRUE : FALSE ); + isFlowOutOfLowerRange = ( isFlowOutOfRange && ( currentFlowLPM < targetFlowLPM ) ? TRUE : FALSE ); + } + break; + default: // Do nothing in the rest of the modes. // Do not check the flow target in heat disinfect active cool since the flow during cooling might be very different from the target flow