Index: firmware/App/Modes/Dialysis.c =================================================================== diff -u -rdd6ff808dfa6271e84f09940bcfade6aa18fb121 -r673214e41efc9047a43a1326d49d50355d589a7b --- firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision dd6ff808dfa6271e84f09940bcfade6aa18fb121) +++ firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision 673214e41efc9047a43a1326d49d50355d589a7b) @@ -841,7 +841,8 @@ break; } - if ( priorSubState != currentSalineBolusState ) + // MAX DELIVERED transitions different and sends the event on its own. + if ( priorSubState != currentSalineBolusState && currentSalineBolusState != SALINE_BOLUS_STATE_MAX_DELIVERED ) { setCurrent4thLevelState( (U32)currentSalineBolusState ); SEND_EVENT_WITH_2_U32_DATA( HD_EVENT_SUB_STATE_CHANGE, priorSubState, currentSalineBolusState ); @@ -1083,6 +1084,8 @@ if ( ( totalSalineVolumeDelivered_mL >= (F32)MAX_SALINE_VOLUME_DELIVERED ) ) { result = SALINE_BOLUS_STATE_MAX_DELIVERED; + setCurrent4thLevelState( (U32)result ); + sendOperationStatusEvent(); } else { @@ -1120,6 +1123,11 @@ { autoResumeUF = FALSE; currentUFState = UF_RUNNING_STATE; + //Set substate for event + setCurrentSubState( (U32)DIALYSIS_UF_STATE ); + setCurrent4thLevelState( (U32)currentUFState ); + sendOperationStatusEvent(); + } signalUserRateChange(); // so pressure limits re-stabilize // Resume dialysis Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -r5fcae5901d466789c329256f5532cf64be549c83 -r673214e41efc9047a43a1326d49d50355d589a7b --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 5fcae5901d466789c329256f5532cf64be549c83) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 673214e41efc9047a43a1326d49d50355d589a7b) @@ -90,7 +90,6 @@ static void transitionToNewOperationMode( HD_OP_MODE_T newMode ); static void broadcastOperationMode( void ); static void updateConfirmationRequestTimeouts( void ); -static void sendOperationStatusEvent( void ); /*********************************************************************//** * @brief Index: firmware/App/Modes/OperationModes.h =================================================================== diff -u -r5fcae5901d466789c329256f5532cf64be549c83 -r673214e41efc9047a43a1326d49d50355d589a7b --- firmware/App/Modes/OperationModes.h (.../OperationModes.h) (revision 5fcae5901d466789c329256f5532cf64be549c83) +++ firmware/App/Modes/OperationModes.h (.../OperationModes.h) (revision 673214e41efc9047a43a1326d49d50355d589a7b) @@ -54,6 +54,7 @@ GENERIC_CONFIRM_ID_T addConfirmationRequest( GENERIC_CONFIRM_ID_T requestID, GENERIC_CONFIRM_COMMAND_T requestType, U32 rejectReason ); // Add a new confirmation request void setCurrentSubState( U32 subState ); // Set the current substate. void setCurrent4thLevelState( U32 state ); // Set the current 4th level state. +static void sendOperationStatusEvent( void ); // Constructs and sends operation status event BOOL testSetOperationMode( HD_OP_MODE_T newMode ); // Force transition to a given mode (if allowed) BOOL testSetOpModePublishIntervalOverride( U32 ms );