Index: firmware/App/Modes/TreatmentRecirc.c =================================================================== diff -u -ra28daf72bbc8bd7313425471555d5189d946af13 -r65ed49c5a339297028707bdf8f3dec698c8ae74e --- firmware/App/Modes/TreatmentRecirc.c (.../TreatmentRecirc.c) (revision a28daf72bbc8bd7313425471555d5189d946af13) +++ firmware/App/Modes/TreatmentRecirc.c (.../TreatmentRecirc.c) (revision 65ed49c5a339297028707bdf8f3dec698c8ae74e) @@ -362,6 +362,7 @@ *************************************************************************/ void signalTreatmentRecircUserAction( REQUESTED_TREATMENT_RECIRC_USER_ACTIONS_T action ) { + GENERIC_CONFIRMATION_REQUEST_T genericConfRequest; BOOL accepted = FALSE; REQUEST_REJECT_REASON_CODE_T rejReason = REQUEST_REJECT_REASON_NONE; @@ -383,8 +384,16 @@ break; case REQUESTED_USER_ACTION_TX_RECIRC_END_TREATMENT: + genericConfRequest.requestID = (U32)GENERIC_CONFIRM_ID_TREATMENT_END; + genericConfRequest.requestType = (U32)GENERIC_CONFIRM_CMD_REQUEST_OPEN; + genericConfRequest.rejectReason = 0; + genericConfRequest.genericPayload1 = 0.0F; + genericConfRequest.genericPayload2 = 0.0F; + genericConfRequest.genericPayload3 = 0.0F; + genericConfRequest.genericPayload4 = 0.0F; + // 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 ); + addConfirmationRequest( &genericConfRequest ); accepted = TRUE; break; Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r708898fe91142d09cc1188b3187375d62cc87cc8 -r65ed49c5a339297028707bdf8f3dec698c8ae74e --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 708898fe91142d09cc1188b3187375d62cc87cc8) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 65ed49c5a339297028707bdf8f3dec698c8ae74e) @@ -656,6 +656,7 @@ // Ignore alarm action if invalid or too soon after last one (essentially a debounce in case user double tapped a button) if ( ( TRUE == alarmActionIsValid ) && ( calcTimeSince( lastUserAlarmActionReceivedTime ) >= MIN_TIME_BETWEEN_ALARM_ACTIONS_MS ) ) { + GENERIC_CONFIRMATION_REQUEST_T genericConfRequest; BOOL allRecAlarmsCleared = TRUE; // Clear recoverable alarms on user action @@ -697,8 +698,16 @@ break; case ALARM_USER_ACTION_END_TREATMENT: + genericConfRequest.requestID = (U32)GENERIC_CONFIRM_ID_TREATMENT_END; + genericConfRequest.requestType = (U32)GENERIC_CONFIRM_CMD_REQUEST_OPEN; + genericConfRequest.rejectReason = 0; + genericConfRequest.genericPayload1 = 0.0F; + genericConfRequest.genericPayload2 = 0.0F; + genericConfRequest.genericPayload3 = 0.0F; + genericConfRequest.genericPayload4 = 0.0F; + // 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 ); + addConfirmationRequest( &genericConfRequest ); break; case ALARM_USER_ACTION_ACK: Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -rc312f6b14dd4dd9571c3a6bed6de28eaf1c71a34 -r65ed49c5a339297028707bdf8f3dec698c8ae74e --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision c312f6b14dd4dd9571c3a6bed6de28eaf1c71a34) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 65ed49c5a339297028707bdf8f3dec698c8ae74e) @@ -3489,10 +3489,17 @@ payloadPtr += sizeof(U32); memcpy( &status, payloadPtr, sizeof(U32) ); - if ( ( CONFIRMATION_REQUEST_STATUS_REJECTED == status ) || - ( CONFIRMATION_REQUEST_STATUS_ACCEPTED == status ) ) + if ( ( CONFIRMATION_REQUEST_STATUS_REJECTED == status ) || ( CONFIRMATION_REQUEST_STATUS_ACCEPTED == status ) ) { setConfirmationRequestStatus( (GENERIC_CONFIRM_ID_T)request_id, (CONFIRMATION_REQUEST_STATUS_T)status ); + + if ( GENERIC_CONFIRM_ID_UF_RATE_CHANGE_IN_TX_DURATION_CHANGE == (GENERIC_CONFIRM_ID_T)request_id ) + { + // If the user selected accept or reject on the UF rate change ID, call the below function to handle the signal + // This is to make sure if during the UF rate change process the HD Software transitioned to treatment stop, standby, fault + // or other modes the screen is not left open. + handleUFRateConfirmationMessageFromUI(); + } } } Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -rc312f6b14dd4dd9571c3a6bed6de28eaf1c71a34 -r65ed49c5a339297028707bdf8f3dec698c8ae74e --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision c312f6b14dd4dd9571c3a6bed6de28eaf1c71a34) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 65ed49c5a339297028707bdf8f3dec698c8ae74e) @@ -137,18 +137,6 @@ U32 maxDialRate; ///< Maximum dialysate flow rate (in mL/min) } TREATMENT_PARAM_BROADCAST_PAYLOAD_T; -/// Payload structure for generic confirmation request -typedef struct -{ - U32 requestID; ///< Generic request ID. - U32 requestType; ///< Generic request type. - U32 rejectReason; ///< Reject reason. - F32 genericPayload1; ///< Generic payload 1. - F32 genericPayload2; ///< Generic payload 2. - F32 genericPayload3; ///< Generic payload 3. - F32 genericPayload4; ///< Generic payload 4. -} GENERIC_CONFIRMATION_REQUEST_T; - // ********** public function prototypes ********** // Serialize message