Index: firmware/App/Modes/Dialysis.c =================================================================== diff -u -r2df21d2472a8d79d78af7e359518acf3614accc5 -r848865316d989b1e541b234aefcb99891c92a481 --- firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision 2df21d2472a8d79d78af7e359518acf3614accc5) +++ firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision 848865316d989b1e541b234aefcb99891c92a481) @@ -341,13 +341,12 @@ void execDialysis( void ) { // check ultrafiltration max rate and accuracy during dialysis (even when ultrafiltration is paused). -// checkUFAccuracyAndVolume(); + checkUFAccuracyAndVolume(); // dialysis state machine switch ( currentDialysisState ) { case DIALYSIS_START_STATE: -// resStartVolume = getLoadCellWeightInGrams( LOAD_CELL_RESERVOIR_1_PRIMARY ); // should be set by reservoir mgmg state machine now currentDialysisState = DIALYSIS_UF_STATE; break; @@ -500,6 +499,9 @@ uFTimeMS += msSinceLast; lastUFTimeStamp = newTime; + // update UF ref volume in UF running state only + refUFVolume += ( ( (F32)msSinceLast / MS_PER_SECOND ) / SEC_PER_MIN ) * setUFRate; + // calculate UF volumes and provide to dialysate outlet pump controller updateUFVolumes(); @@ -576,7 +578,9 @@ // check UF max rate if ( uFMeasRate > MAX_UF_RATE_ML_PER_MIN ) { +#ifndef DISABLE_UF_ALARMS SET_ALARM_WITH_1_F32_DATA( ALARM_ID_UF_RATE_TOO_HIGH_ERROR, uFMeasRate ); +#endif } // reset for next check lastUFVolumeChecked = measUFVolume; @@ -586,7 +590,9 @@ // check total UF volume error if ( ( FABS( refUFVolume - measUFVolume ) ) >= (F32)MAX_UF_ACCURACY_ERROR_ML ) { +#ifndef DISABLE_UF_ALARMS SET_ALARM_WITH_2_F32_DATA( ALARM_ID_UF_VOLUME_ACCURACY_ERROR, refUFVolume, measUFVolume ); +#endif } } @@ -617,7 +623,6 @@ } // calculate UF volumes and provide to dialysate outlet pump controller - refUFVolume = ( ( (F32)uFTimeMS / MS_PER_SECOND ) / SEC_PER_MIN ) * setUFRate; measUFVolume = measUFVolumeFromPriorReservoirs + ( latestResVolume - resStartVolume[ activeRes ] ); resFinalVolume[ activeRes ] = latestResVolume; setDialOutUFVolumes( refUFVolume, measUFVolume );