Index: firmware/App/Modes/Rinseback.c =================================================================== diff -u -r2a03f6c87706478406a4962d70f5bae2ccb57728 -r3c9724b7e07c1a82d0e7fd653a99d7cb96d06e5a --- firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 2a03f6c87706478406a4962d70f5bae2ccb57728) +++ firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 3c9724b7e07c1a82d0e7fd653a99d7cb96d06e5a) @@ -105,7 +105,6 @@ static BOOL handleAdditionalRinsebackUserAction( REQUEST_REJECT_REASON_CODE_T *rejReason ); static BOOL handleToRecircUserAction( REQUEST_REJECT_REASON_CODE_T *rejReason ); static BOOL handleBackToTreatmentUserAction( REQUEST_REJECT_REASON_CODE_T *rejReason ); -static BOOL handleEndTreatmentUserAction( REQUEST_REJECT_REASON_CODE_T *rejReason ); static void publishRinsebackData( void ); static U32 getPublishRinsebackInterval( void ); @@ -272,7 +271,7 @@ * @brief * The execRinseback function executes the Rinseback sub-mode state machine. * @details Inputs: rinsebackState - * @details Outputs: rinsebackState, rinsebackTimerCtr, flags + * @details Outputs: rinsebackState, rinsebackTimerCtr, endTreatmentRequested, flags * @return none *************************************************************************/ void execRinseback( void ) @@ -281,6 +280,12 @@ rinsebackTimerCtr++; + // Check for user confirmation of end treatment + if ( CONFIRMATION_REQUEST_STATUS_ACCEPTED == getConfirmationRequestStatus( GENERIC_CONFIRM_ID_TREATMENT_END ) ) + { + endTreatmentRequested = TRUE; + } + switch ( rinsebackState ) { case RINSEBACK_STOP_INIT_STATE: @@ -633,7 +638,9 @@ break; case REQUESTED_USER_ACTION_RINSEBACK_END_TREATMENT: - accepted = handleEndTreatmentUserAction( &rejReason ); + // Send message to UI to get user confirmation to end treatment - action initiated only upon receipt of user confirmation from UI + addConfirmationRequest( GENERIC_CONFIRM_ID_TREATMENT_END, GENERIC_CONFIRM_CMD_REQUEST_OPEN, 0 ); + accepted = TRUE; break; case REQUESTED_USER_ACTION_RINSEBACK_BACK_TO_TREATMENT: @@ -938,33 +945,6 @@ /*********************************************************************//** * @brief - * The handleEndTreatmentUserAction function handles an end treatment - * user action request. It is assumed that the calling function will set - * the reject reason parameter to None beforehand. - * @details Inputs: rinsebackState - * @details Outputs: end treatment if appropriate - * @param rejReason Code indicating reason for rejection - * @return TRUE if user action accepted, FALSE if not - *************************************************************************/ -static BOOL handleEndTreatmentUserAction( REQUEST_REJECT_REASON_CODE_T *rejReason ) -{ - BOOL result = FALSE; - - if ( ( RINSEBACK_STOP_INIT_STATE != rinsebackState ) && ( RINSEBACK_STOP_STATE != rinsebackState ) ) - { - *rejReason = REQUEST_REJECT_REASON_ACTION_DISABLED_IN_CURRENT_STATE; - } - else - { - result = TRUE; - endTreatmentRequested = TRUE; - } - - return result; -} - -/*********************************************************************//** - * @brief * The publishRinsebackData function publishes rinseback progress to UI * at 1 Hz interval. * @details Inputs: rinsebackPublishTimerCtr, rinsebackTimerCtr, rinsebackState,