Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r3ca05094a51e41dfafa2dbc6bbb40df1971a8679 -rc946dc2b288b45541d1ee583560aa2af5f49c1c7 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 3ca05094a51e41dfafa2dbc6bbb40df1971a8679) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision c946dc2b288b45541d1ee583560aa2af5f49c1c7) @@ -56,7 +56,7 @@ static BOOL flushStartReqReceived; ///< Flag indicates user has requested initiation of flush mode. static BOOL heatDisinfectStartReqReceived; ///< Flag indicates user has requested initiation of heat disinfect mode. static BOOL chemDisinfectStartReqReceived; ///< Flag indicates user has requested initiation of chemical disinfect mode. -static U32 disinfectCancelReqID; ///< ID of requested cancel disinfect mode. +static GENERIC_CONFIRM_ID_T disinfectCancelReqID; ///< ID of requested cancel disinfect mode. static DG_DISINFECT_STATE_T dgDisinfectState; ///< DG disinfect state to be boadcast to UI. static U32 dataPublishCounter = 0; ///< Disinfects data publish counter. @@ -102,7 +102,7 @@ dataPublishCounter = 0; heatDisinfectStartReqReceived = FALSE; chemDisinfectStartReqReceived = FALSE; - disinfectCancelReqID = 0; + disinfectCancelReqID = GENERIC_CONFIRM_ID_NONE; dgDisinfectState = DG_DISINFECT_NOT_RUNNING_STATE; } @@ -486,24 +486,38 @@ static void handleDisinfectCancel( BOOL stop ) { CONFIRMATION_REQUEST_STATUS_T confirm_status; + GENERIC_CONFIRM_ID_T confirm_id; + if ( ( STANDBY_DG_FLUSH_IN_PROGRESS_STATE == currentStandbyState ) || ( STANDBY_DG_HEAT_DISINFECT_IN_PROGRESS_STATE == currentStandbyState ) || ( STANDBY_DG_CHEM_DISINFECT_IN_PROGRESS_STATE == currentStandbyState ) ) { - if ( ( TRUE == stop ) && ( disinfectCancelReqID == 0 ) ) + if ( ( TRUE == stop ) && ( disinfectCancelReqID == GENERIC_CONFIRM_ID_NONE ) ) { + if ( STANDBY_DG_FLUSH_IN_PROGRESS_STATE == currentStandbyState ) + { + confirm_id = GENERIC_CONFIRM_ID_DISINFECT_STOP_WATERFLUSH; + } + else if ( STANDBY_DG_HEAT_DISINFECT_IN_PROGRESS_STATE == currentStandbyState ) + { + confirm_id = GENERIC_CONFIRM_ID_DISINFECT_STOP_HEAT; + } + else if ( STANDBY_DG_CHEM_DISINFECT_IN_PROGRESS_STATE == currentStandbyState ) + { + confirm_id = GENERIC_CONFIRM_ID_DISINFECT_STOP_CHEMICAL; + } // Send message to UI to indicate user request to cancel disinfect - disinfectCancelReqID = sendConfirmationRequest( CONFIRMATION_REQUEST_TYPE_OPEN, 0 ); + disinfectCancelReqID = sendConfirmationRequest( confirm_id, GENERIC_CONFIRM_CMD_REQUEST_OPEN, 0 ); } - else if ( 0 != disinfectCancelReqID ) + else if ( GENERIC_CONFIRM_ID_NONE != disinfectCancelReqID ) { confirm_status = checkConfirmationRequestStatus( disinfectCancelReqID ); switch ( confirm_status ) { case CONFIRMATION_REQUEST_STATUS_ACCEPTED : - disinfectCancelReqID = 0; // send a accept close to UI, don't save request id because there will be no response - sendConfirmationRequest( CONFIRMATION_REQUEST_TYPE_CLOSE_ACCEPT, 0 ); + sendConfirmationRequest( disinfectCancelReqID, GENERIC_CONFIRM_CMD_ACCEPT_CLOSE, 0 ); + disinfectCancelReqID = GENERIC_CONFIRM_ID_NONE; switch ( currentStandbyState ) { @@ -527,13 +541,13 @@ case CONFIRMATION_REQUEST_STATUS_TIMEOUT : // send a cancel to UI, don't save request id because there will be no response - sendConfirmationRequest( CONFIRMATION_REQUEST_TYPE_CLOSE_TIMEOUT, 0 ); - disinfectCancelReqID = 0; + sendConfirmationRequest( disinfectCancelReqID, GENERIC_CONFIRM_CMD_TIMEOUT_CLOSE, 0 ); + disinfectCancelReqID = GENERIC_CONFIRM_ID_NONE; break; case CONFIRMATION_REQUEST_STATUS_REJECTED : // UI rejected, cancel pending request - disinfectCancelReqID = 0; + disinfectCancelReqID = GENERIC_CONFIRM_ID_NONE; break; default :