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 : Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r3ca05094a51e41dfafa2dbc6bbb40df1971a8679 -rc946dc2b288b45541d1ee583560aa2af5f49c1c7 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 3ca05094a51e41dfafa2dbc6bbb40df1971a8679) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision c946dc2b288b45541d1ee583560aa2af5f49c1c7) @@ -70,10 +70,10 @@ /// List of message IDs that are requested not to be transmitted. static BLOCKED_MSGS_DATA_T blockedMessagesForXmit = { 0, 0, 0, 0, 0, 0, 0, 0 }; static CONFIRMATION_REQUEST_T confirmRequests[NUM_CONFIRM_REQUESTS] = - { 0, CONFIRMATION_REQUEST_TYPE_OPEN, 0, CONFIRMATION_REQUEST_STATUS_UNUSED, - 0, CONFIRMATION_REQUEST_TYPE_OPEN, 0, CONFIRMATION_REQUEST_STATUS_UNUSED, - 0, CONFIRMATION_REQUEST_TYPE_OPEN, 0, CONFIRMATION_REQUEST_STATUS_UNUSED, - 0, CONFIRMATION_REQUEST_TYPE_OPEN, 0, CONFIRMATION_REQUEST_STATUS_UNUSED, }; + { 0, GENERIC_CONFIRM_CMD_REQUEST_OPEN, 0, CONFIRMATION_REQUEST_STATUS_UNUSED, + 0, GENERIC_CONFIRM_CMD_REQUEST_OPEN, 0, CONFIRMATION_REQUEST_STATUS_UNUSED, + 0, GENERIC_CONFIRM_CMD_REQUEST_OPEN, 0, CONFIRMATION_REQUEST_STATUS_UNUSED, + 0, GENERIC_CONFIRM_CMD_REQUEST_OPEN, 0, CONFIRMATION_REQUEST_STATUS_UNUSED, }; // ********** private function prototypes ********** @@ -7383,7 +7383,7 @@ * @param request ID * @return CONFIRMATION_REQUEST_STATUS_T *************************************************************************/ -CONFIRMATION_REQUEST_STATUS_T checkConfirmationRequestStatus( U32 request_id ) +CONFIRMATION_REQUEST_STATUS_T checkConfirmationRequestStatus( GENERIC_CONFIRM_ID_T request_id ) { U08 i; CONFIRMATION_REQUEST_STATUS_T status = CONFIRMATION_REQUEST_STATUS_PENDING; @@ -7404,7 +7404,7 @@ { // Clear the confirmation request confirmRequests[ i ].requestID = 0; - confirmRequests[ i ].requestType = CONFIRMATION_REQUEST_TYPE_OPEN; + confirmRequests[ i ].requestType = GENERIC_CONFIRM_CMD_REQUEST_OPEN; confirmRequests[ i ].timeStamp = 0; confirmRequests[ i ].status = CONFIRMATION_REQUEST_STATUS_UNUSED; } @@ -7422,19 +7422,17 @@ * @param * @return request ID - will be non-zero if sent *************************************************************************/ -U32 sendConfirmationRequest( CONFIRMATION_REQUEST_TYPE_T request_type, U32 reject_reason ) +GENERIC_CONFIRM_ID_T sendConfirmationRequest( GENERIC_CONFIRM_ID_T request_id, GENERIC_CONFIRM_COMMAND_T request_type, U32 reject_reason ) { MESSAGE_T msg; U08 *payloadPtr = msg.payload; U08 i; - static U32 request_id = 0; - U32 new_id = 0; + GENERIC_CONFIRM_ID_T new_id = GENERIC_CONFIRM_ID_NONE; for ( i=0; i