Index: firmware/App/Modes/ModeHeatDisinfect.c =================================================================== diff -u -re0cdf49eb0f54239e5d765282e0952cea7ded1bd -r264d5853c97ab9550878609c9302e87464078734 --- firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision e0cdf49eb0f54239e5d765282e0952cea7ded1bd) +++ firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision 264d5853c97ab9550878609c9302e87464078734) @@ -29,6 +29,7 @@ #include "Pressures.h" #include "Reservoirs.h" #include "ROPump.h" +#include "Switches.h" #include "SystemCommMessages.h" #include "TaskGeneral.h" #include "TemperatureSensors.h" @@ -247,10 +248,28 @@ *************************************************************************/ U32 transitionToHeatDisinfectMode( void ) { + DG_CMD_RESPONSE_T cmdResponse; + + cmdResponse.commandID = MSG_ID_DG_START_STOP_HEAT_DISINFECT; + cmdResponse.rejected = FALSE; + cmdResponse.rejectCode = DG_CMD_REQUEST_REJECT_REASON_NONE; + deenergizeActuators(); initHeatDisinfectMode(); +#ifndef DISABLE_CAP_SWITCHES + if ( ( STATE_CLOSED == getSwitchStatus( CONCENTRATE_CAP ) ) && ( STATE_CLOSED == getSwitchStatus( DIALYSATE_CAP ) ) ) + { + cmdResponse.rejected = TRUE; + cmdResponse.rejectCode = ( STATE_OPEN == getSwitchStatus( DIALYSATE_CAP ) ? REQUEST_REJECT_REASON_DG_DIALYSATE_CAP_OPEN : + REQUEST_REJECT_REASON_DG_CONCENTRATE_CAP_OPEN ); + stopDGHeatDisinfect(); + } + + sendCommandResponseMsg( &cmdResponse ); +#endif + return heatDisinfectState; }