Index: firmware/App/Modes/Dialysis.c =================================================================== diff -u -r693f9ed31c3f92b6f71b22ce0ae3a6f29ae92394 -ra21a04cc7f2624b9c74992a8e918b71933802dd6 --- firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision 693f9ed31c3f92b6f71b22ce0ae3a6f29ae92394) +++ firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision a21a04cc7f2624b9c74992a8e918b71933802dd6) @@ -464,7 +464,9 @@ } // send response w/ reason code if rejected - sendUFPauseResumeResponse( result, rejectReason ); + sendUFPauseResumeResponse( result, rejectReason, currentUFState ); + // send state data immediately for UI update + broadcastTreatmentTimeAndState(); return result; } @@ -516,7 +518,9 @@ } // send response w/ reason code if rejected - sendUFPauseResumeResponse( result, rejectReason ); + sendUFPauseResumeResponse( result, rejectReason, currentUFState ); + // send state data immediately for UI update + broadcastTreatmentTimeAndState(); return result; } Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r43d47cf6522f197988bdee58fef7b7983c5af35f -ra21a04cc7f2624b9c74992a8e918b71933802dd6 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 43d47cf6522f197988bdee58fef7b7983c5af35f) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision a21a04cc7f2624b9c74992a8e918b71933802dd6) @@ -83,7 +83,6 @@ // ********** private function prototypes ********** -static void broadcastTreatmentTimeAndState( void ); static void broadcastTreatmentSettingsRanges( void ); static TREATMENT_STATE_T handleTreatmentStartState( void ); static TREATMENT_STATE_T handleTreatmentDialysisState( void ); @@ -477,6 +476,8 @@ sendChangeTreatmentDurationResponse( result, rejectReason, presTreatmentTimeSecs / SEC_PER_MIN, presMaxUFVolumeML ); // send new ranges for settings broadcastTreatmentSettingsRanges(); + // send time/state data immediately for UI update + broadcastTreatmentTimeAndState(); return result; } @@ -644,6 +645,8 @@ sendChangeUFSettingsOptionResponse( result, rejectReason, presMaxUFVolumeML, presTreatmentTimeSecs / SEC_PER_MIN, presUFRate ); // send new ranges for settings broadcastTreatmentSettingsRanges(); + // send time/state data immediately for UI update + broadcastTreatmentTimeAndState(); return result; } @@ -717,7 +720,7 @@ * Outputs : treatment time and state messages sent on interval * @return none *************************************************************************/ -static void broadcastTreatmentTimeAndState( void ) +void broadcastTreatmentTimeAndState( void ) { U32 elapsedTreatmentTimeInSecs; Index: firmware/App/Modes/ModeTreatment.h =================================================================== diff -u -rd91a24c730aeb5cd7e3eba9ef4eca78e442911f8 -ra21a04cc7f2624b9c74992a8e918b71933802dd6 --- firmware/App/Modes/ModeTreatment.h (.../ModeTreatment.h) (revision d91a24c730aeb5cd7e3eba9ef4eca78e442911f8) +++ firmware/App/Modes/ModeTreatment.h (.../ModeTreatment.h) (revision a21a04cc7f2624b9c74992a8e918b71933802dd6) @@ -41,6 +41,7 @@ TREATMENT_STATE_T getTreatmentState( void ); BOOL userRequestEndTreatment( void ); +void broadcastTreatmentTimeAndState( void ); BOOL verifyTreatmentDurationSettingChange( U32 treatmentTime ); BOOL verifyUFSettingsChange( F32 uFVolume ); Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r555df0d5eee419090de428410b6a57efdb2775c6 -ra21a04cc7f2624b9c74992a8e918b71933802dd6 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 555df0d5eee419090de428410b6a57efdb2775c6) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision a21a04cc7f2624b9c74992a8e918b71933802dd6) @@ -151,6 +151,8 @@ { ALARM_PRIORITY_HIGH, ALM_ESC_4_MIN, ALARM_ID_BLOOD_SITTING_WARNING, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE }, // ALARM_ID_DIALYSATE_FLOW_SIGNAL_STRENGTH_TOO_LOW { ALARM_PRIORITY_HIGH, ALM_ESC_4_MIN, ALARM_ID_BLOOD_SITTING_WARNING, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE }, // ALARM_ID_EMPTY_SALINE_BAG { ALARM_PRIORITY_HIGH, 0, ALARM_ID_NO_ALARM, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE }, // ALARM_ID_SALINE_BOLUS_VOLUME_CHECK_FAILURE + { ALARM_PRIORITY_HIGH, 0, ALARM_ID_NO_ALARM, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE }, // ALARM_ID_ARTERIAL_PRESSURE_SENSOR_FAULT + { ALARM_PRIORITY_HIGH, 0, ALARM_ID_NO_ALARM, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE }, // ALARM_ID_VENOUS_PRESSURE_SENSOR_FAULT }; // *** This declaration will cause a compiler error if alarmTable does not have same # of alarms as the Alarm_List enumeration. Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r206db25ae4e125aea46efeed1fd25740f903af21 -ra21a04cc7f2624b9c74992a8e918b71933802dd6 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 206db25ae4e125aea46efeed1fd25740f903af21) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision a21a04cc7f2624b9c74992a8e918b71933802dd6) @@ -1464,9 +1464,10 @@ * @details Outputs: UF pause/resume response msg constructed and queued. * @param accepted was pause/resume request accepted * @param reason reason rejected (if not accepted) + * @param ufState new UF state * @return TRUE if msg successfully queued for transmit, FALSE if not *************************************************************************/ -BOOL sendUFPauseResumeResponse( BOOL accepted, U32 reason ) +BOOL sendUFPauseResumeResponse( BOOL accepted, U32 reason, U32 ufState ) { BOOL result; MESSAGE_T msg; @@ -1475,11 +1476,13 @@ // create a message record blankMessage( &msg ); msg.hdr.msgID = MSG_ID_USER_UF_PAUSE_RESUME_RESPONSE; - msg.hdr.payloadLen = sizeof( BOOL ) + sizeof( U32 ); + msg.hdr.payloadLen = sizeof( BOOL ) + sizeof( U32 ) + sizeof( U32 ); memcpy( payloadPtr, &accepted, sizeof( BOOL ) ); payloadPtr += sizeof( BOOL ); memcpy( payloadPtr, &reason, sizeof( U32) ); + payloadPtr += sizeof( U32 ); + memcpy( payloadPtr, &ufState, sizeof( U32 ) ); // serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer result = serializeMessage( msg, COMM_BUFFER_OUT_CAN_HD_2_UI, ACK_REQUIRED ); Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r206db25ae4e125aea46efeed1fd25740f903af21 -ra21a04cc7f2624b9c74992a8e918b71933802dd6 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 206db25ae4e125aea46efeed1fd25740f903af21) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision a21a04cc7f2624b9c74992a8e918b71933802dd6) @@ -105,7 +105,7 @@ void handleUFPauseResumeRequest( MESSAGE_T *message ); // MSG_ID_USER_UF_PAUSE_RESUME_RESPONSE -BOOL sendUFPauseResumeResponse( BOOL accepted, U32 reason ); +BOOL sendUFPauseResumeResponse( BOOL accepted, U32 reason, U32 ufState ); // MSG_ID_USER_UF_SETTINGS_CHANGE_REQUEST void handleChangeUFSettingsRequest( MESSAGE_T *message );