Index: firmware/App/Modes/Rinseback.c =================================================================== diff -u -r5072f7dedbe4be9dd9d2bfe9a46f53c1d3f356fc -r4ac6a67ab2876d1f436704fe67a958e17d0b432a --- firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 5072f7dedbe4be9dd9d2bfe9a46f53c1d3f356fc) +++ firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 4ac6a67ab2876d1f436704fe67a958e17d0b432a) @@ -125,7 +125,7 @@ rinsebackTimerCtr = 0; cumulativeRinsebackVolume_mL = 0.0; additionalRinsebackVolume_mL = 0.0; - rinsebackMotorCount = getBloodPumpMotorCount(); + rinsebackMotorCount = 0; rinsebackLastMotorCount = getBloodPumpMotorCount(); rinsebackVolumeDelivered_Safety = 0.0; rinsebackAdditionalTimerCtr = 0; @@ -303,6 +303,7 @@ // Has user requested rinseback start? if ( TRUE == startRinsebackRequested ) { + rinsebackLastMotorCount = getBloodPumpMotorCount(); setupForRinsebackDelivery( rinsebackRate_mL_min ); // From moment we start rinseback, we consider blood side of dialyzer no longer fully primed setBloodIsPrimed( FALSE ); @@ -364,11 +365,13 @@ setRinsebackIsCompleted( TRUE ); setupForRinsebackStopOrPause(); result = RINSEBACK_STOP_STATE; +#ifndef DISABLE_PUMP_FLOW_CHECKS // Check for under-delivery if ( rinsebackVolumeDelivered_Safety < MIN_RINSEBACK_SAFETY_VOLUME_ML ) { SET_ALARM_WITH_2_F32_DATA( ALARM_ID_RINSEBACK_VOLUME_CHECK_FAILURE, TARGET_RINSEBACK_VOLUME_ML, rinsebackVolumeDelivered_Safety ); } +#endif } // Check for empty saline bag if ( TRUE == isSalineBagEmpty() ) @@ -383,6 +386,7 @@ setupForRinsebackStopOrPause(); result = RINSEBACK_PAUSED_STATE; } +#ifndef DISABLE_PUMP_FLOW_CHECKS // Has independent safety volume exceeded safety limit? else if ( rinsebackVolumeDelivered_Safety > MAX_RINSEBACK_SAFETY_VOLUME_ML ) { @@ -391,6 +395,7 @@ SET_ALARM_WITH_2_F32_DATA( ALARM_ID_RINSEBACK_VOLUME_CHECK_FAILURE, TARGET_RINSEBACK_VOLUME_ML, rinsebackVolumeDelivered_Safety ); result = RINSEBACK_STOP_STATE; } +#endif // Otherwise, continue rinseback else { // Has user requested rate change?