Index: firmware/App/Modes/Dialysis.c =================================================================== diff -u -rd9fd9d0557d5a158d01e8950316c58d0f7e8a25f -r3bb3c65a3b56d6ae66e01a048b4f2bb14c8ab7a2 --- firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision d9fd9d0557d5a158d01e8950316c58d0f7e8a25f) +++ firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision 3bb3c65a3b56d6ae66e01a048b4f2bb14c8ab7a2) @@ -103,7 +103,7 @@ static U32 salineBolusBroadcastTimerCtr; ///< Saline bolus data broadcast timer counter used to schedule when to transmit data. static BOOL salineBolusStartRequested; ///< Flag indicates a saline bolus start has been requested by user. static BOOL salineBolusAbortRequested; ///< Flag indicates a salien bolus abort has been requested by user. -static BOOL salineBolusAutoResumeUF = FALSE; ///< Flag indicates UF should be auto-resumed after saline bolus completes. +static BOOL autoResumeUF; ///< Flag indicates UF should be auto-resumed after saline bolus completes. static F32 totalSalineVolumeDelivered_mL; ///< Volume (mL) in total of saline delivered so far (cumulative for all boluses including current one). static F32 bolusSalineVolumeDelivered_mL; ///< Volume (mL) of current bolus delivered so far (calculated from measured blood flow rate). static F32 expectedSalineBolusVolume_mL; ///< Volume (mL) of current bolus delivered so far (calculated from target blood flow rate). @@ -185,6 +185,7 @@ salineBolusBroadcastTimerCtr = 0; totalSalineVolumeDelivered_mL = 0.0; + autoResumeUF = FALSE; uFAccuracyCheckTimerCtr = 0; lastUFVolumeChecked = 0.0; @@ -223,9 +224,9 @@ { currentSalineBolusState = SALINE_BOLUS_STATE_IDLE; } - if ( TRUE == salineBolusAutoResumeUF ) + if ( TRUE == autoResumeUF ) { - salineBolusAutoResumeUF = FALSE; + autoResumeUF = FALSE; currentUFState = UF_RUNNING_STATE; } } @@ -746,6 +747,11 @@ ) { initDialyzerReprime(); + if ( UF_RUNNING_STATE == currentUFState ) + { + autoResumeUF = TRUE; + } + currentUFState = UF_PAUSED_STATE; result = DIALYSIS_DIALYZER_REPRIME_STATE; } else @@ -894,7 +900,7 @@ // Handle saline bolus start request from user if ( TRUE == salineBolusStartRequested ) { - salineBolusAutoResumeUF = FALSE; + autoResumeUF = FALSE; // Go to saline bolus state if we can if ( SALINE_BOLUS_STATE_IDLE == currentSalineBolusState ) { @@ -944,7 +950,7 @@ if ( SALINE_BOLUS_STATE_IDLE == currentSalineBolusState ) { // Since we were doing UF prior to saline bolus, we want to auto-resume when done - salineBolusAutoResumeUF = TRUE; + autoResumeUF = TRUE; // Go to UF paused state result = UF_PAUSED_STATE; // Go to saline bolus state @@ -1105,9 +1111,9 @@ if ( FALSE == errorFound ) { // Resume UF if appropriate - if ( TRUE == salineBolusAutoResumeUF ) + if ( TRUE == autoResumeUF ) { - salineBolusAutoResumeUF = FALSE; + autoResumeUF = FALSE; currentUFState = UF_RUNNING_STATE; } // Resume dialysis @@ -1300,6 +1306,8 @@ } // Dialysis back to UF state *dialysisState = DIALYSIS_UF_STATE; + // This handles resuming UF if it was paused by re-prime + resetSalineBolus(); // Resume dialysis transitionToDialysis(); result = DIALYZER_REPRIME_STATE_DIALYSATE_PUMPS_OFF;