Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r8948f660dc5440db9e6cb7705457ed71d2b13248 -rbf1f56417b8b306b2667b08a950688da5375bcaf --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 8948f660dc5440db9e6cb7705457ed71d2b13248) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision bf1f56417b8b306b2667b08a950688da5375bcaf) @@ -425,12 +425,11 @@ else { rejReason = REQUEST_REJECT_REASON_DG_COMM_LOST; + sendDisinfectConfirmResponse( result, rejReason ); } } } - sendDisinfectConfirmResponse( result, rejReason ); - return result; } @@ -520,6 +519,7 @@ static HD_STANDBY_STATE_T handleStandbyModeWaitForDisinfectState( void ) { HD_STANDBY_STATE_T state = STANDBY_WAIT_FOR_DISINFECT_STATE; + BOOL result = FALSE; if ( TRUE == flushStartReqReceived ) { @@ -528,12 +528,22 @@ cmdStartDGFlush(); hasDisinfectCmdBeenSet = TRUE; } - else if ( DG_MODE_FLUS == getDGOpMode() ) + //else if ( DG_MODE_FLUS == getDGOpMode() ) // TODO remove + else { - hasDisinfectCmdBeenSet = FALSE; - flushStartReqReceived = FALSE; - dgDisinfectState = DG_DISINFECT_FLUSH_STATE; - state = STANDBY_DG_FLUSH_IN_PROGRESS_STATE; + DG_CMD_RESPONSE_T dgCmdResp; + if ( TRUE == getDGCommandResponse( DG_CMD_START_FLUSH, &dgCmdResp ) ) + { + if ( DG_CMD_REQUEST_REJECT_REASON_NONE == dgCmdResp.rejectCode ) + { + hasDisinfectCmdBeenSet = FALSE; + flushStartReqReceived = FALSE; + dgDisinfectState = DG_DISINFECT_FLUSH_STATE; + state = STANDBY_DG_FLUSH_IN_PROGRESS_STATE; + } + + sendDisinfectConfirmResponse( result, dgCmdResp.rejectCode ); + } } } else if ( TRUE == heatDisinfectStartReqReceived )