Index: firmware/App/Modes/ModeHeatDisinfectActiveCool.c =================================================================== diff -u -r12c382be0e4dabd6f655b59c3ff59cc059f7af8f -r75f5cf4a8484f0c08b90edfb4b49a6268e51de65 --- firmware/App/Modes/ModeHeatDisinfectActiveCool.c (.../ModeHeatDisinfectActiveCool.c) (revision 12c382be0e4dabd6f655b59c3ff59cc059f7af8f) +++ firmware/App/Modes/ModeHeatDisinfectActiveCool.c (.../ModeHeatDisinfectActiveCool.c) (revision 75f5cf4a8484f0c08b90edfb4b49a6268e51de65) @@ -598,29 +598,28 @@ static DG_HEAT_DISINFECT_ACTIVE_COOL_STATE_T handleHeatDisinfectActiveCoolCancelWaterPathState( void ) { DG_HEAT_DISINFECT_ACTIVE_COOL_STATE_T state = DG_HEAT_DISINFECT_ACTIVE_COOL_CANCEL_WATER_PATH_STATE; - U32 drainSteadyTimeoutMS = RSRVR_DRAIN_STEADY_TIMEOUT_MS; - U32 drainTimeoutMS = RSRVR_DRAIN_TIMEOUT_MS; + F32 TDi = getTemperatureValue( TEMPSENSORS_INLET_DIALYSATE ); + F32 TRo = getTemperatureValue( TEMPSENSORS_OUTLET_REDUNDANT ); + BOOL isMixDrainNeeded = ( ( TDi >= RSRVR_MIX_DRAIN_TEMPERATURE_THRESHOLD_C ) && ( TRo >= RSRVR_MIX_DRAIN_TEMPERATURE_THRESHOLD_C ) ? TRUE : FALSE ); + U32 drainTimeoutMS = ( TRUE == isMixDrainNeeded ? RSRVR_MIX_DRAIN_TIMEOUT_MS : RSRVR_DRAIN_TIMEOUT_MS ); + U32 drainSteadyTimeoutMS = ( TRUE == isMixDrainNeeded ? ROF_ACTIVE_COOL_MIX_DRAIN_STEADY_TIMEOUT_MS : RSRVR_DRAIN_STEADY_TIMEOUT_MS ); if ( CANCELLATION_MODE_NONE == cancellationMode ) { U32 targetRPM = RSRVR_DRAIN_TARGET_RPM; - F32 TDi = getTemperatureValue( TEMPSENSORS_INLET_DIALYSATE ); - F32 TRo = getTemperatureValue( TEMPSENSORS_OUTLET_REDUNDANT ); cancellationMode = CANCELLATION_MODE_COLD; // The two sensors must be less than a threshold to decide if mix drain is needed to normal drain - if ( ( TDi >= RSRVR_MIX_DRAIN_TEMPERATURE_THRESHOLD_C ) && ( TRo >= RSRVR_MIX_DRAIN_TEMPERATURE_THRESHOLD_C ) ) + if ( TRUE == isMixDrainNeeded ) { // The fluid is hot so this is a mix drain. Set the VPd to direct the cold inlet fluid to drain setValveState( VPI, VALVE_STATE_OPEN ); setValveState( VPD, VALVE_STATE_DRAIN_C_TO_NO ); turnOnUVReactor( INLET_UV_REACTOR ); - drainSteadyTimeoutMS = ROF_ACTIVE_COOL_MIX_DRAIN_STEADY_TIMEOUT_MS; - drainTimeoutMS = RSRVR_MIX_DRAIN_TIMEOUT_MS; - targetRPM = ROF_ACTIVE_COOL_INITIAL_TARGET_DRAIN_RPM; - cancellationMode = CANCELLATION_MODE_HOT; + targetRPM = ROF_ACTIVE_COOL_INITIAL_TARGET_DRAIN_RPM; + cancellationMode = CANCELLATION_MODE_HOT; } rsrvrsStatus.rsrvr[ DG_RESERVOIR_1 ].rStatus = DG_RESERVOIR_ABOVE_TARGET;