Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r56ba1b163b0cbf6953638065b2108f745b17ec8f -rd731f3fda9d25e0d63100f648510e9c8cdd21f89 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 56ba1b163b0cbf6953638065b2108f745b17ec8f) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision d731f3fda9d25e0d63100f648510e9c8cdd21f89) @@ -558,14 +558,14 @@ { DG_CMD_RESPONSE_T cmdResponse; DG_USAGE_INFO_RECORD_T usageInfo; + OPN_CLS_STATE_T concCap = getSwitchStatus( CONCENTRATE_CAP ); + OPN_CLS_STATE_T diaCap = getSwitchStatus( DIALYSATE_CAP ); getNVRecord2Driver( GET_USAGE_RECORD, (U08*)&usageInfo, sizeof( DG_USAGE_INFO_RECORD_T ), 0, ALARM_ID_NO_ALARM ); - cmdResponse.commandID = DG_CMD_START_HEAT_DISINFECT; - cmdResponse.rejected = FALSE; - cmdResponse.rejectCode = DG_CMD_REQUEST_REJECT_REASON_NONE; - OPN_CLS_STATE_T concCap = getSwitchStatus( CONCENTRATE_CAP ); - OPN_CLS_STATE_T diaCap = getSwitchStatus( DIALYSATE_CAP ); + cmdResponse.commandID = DG_CMD_START_HEAT_DISINFECT; + cmdResponse.rejected = FALSE; + cmdResponse.rejectCode = DG_CMD_REQUEST_REJECT_REASON_NONE; #ifndef _RELEASE_ if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_CAPS_MONITOR ) ) @@ -621,7 +621,7 @@ cmdResponse.commandID = DG_CMD_START_CHEM_DISINFECT; cmdResponse.rejected = FALSE; cmdResponse.rejectCode = DG_CMD_REQUEST_REJECT_REASON_NONE; - OPN_CLS_STATE_T diaCap = getSwitchStatus( DIALYSATE_CAP ); + OPN_CLS_STATE_T diaCap = getSwitchStatus( DIALYSATE_CAP ); #ifndef _RELEASE_ if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_CAPS_MONITOR ) ) @@ -668,20 +668,22 @@ // Chemical disinfect flush cannot be run in solo mode because the user has to confirm that the acid is inserted or removed if ( ( DG_MODE_STAN == getCurrentOperationMode() ) && ( DG_STANDBY_MODE_STATE_IDLE == standbyState ) ) { + OPN_CLS_STATE_T concCap = getSwitchStatus( CONCENTRATE_CAP ); OPN_CLS_STATE_T diaCap = getSwitchStatus( DIALYSATE_CAP ); #ifndef _RELEASE_ if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_CAPS_MONITOR ) ) { + concCap = STATE_CLOSED; diaCap = STATE_CLOSED; } #endif - // When chemical disinfect flush is about to be started, dialysate cap must be closed - if ( STATE_OPEN == diaCap ) + if ( ( STATE_OPEN == concCap ) || ( STATE_OPEN == diaCap ) ) { cmdResponse.rejected = TRUE; - cmdResponse.rejectCode = REQUEST_REJECT_REASON_DG_DIALYSATE_CAP_OPEN; + cmdResponse.rejectCode = ( STATE_OPEN == getSwitchStatus( DIALYSATE_CAP ) ? REQUEST_REJECT_REASON_DG_DIALYSATE_CAP_OPEN : + REQUEST_REJECT_REASON_DG_CONCENTRATE_CAP_OPEN ); } else {