Index: firmware/App/Modes/Dialysis.c =================================================================== diff -u -r2b6dfea004f84ed54559fb49c4facfc1bfb0c303 -r94895e32fe18e78b98fe3bb7786838cf00afdbfa --- firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision 2b6dfea004f84ed54559fb49c4facfc1bfb0c303) +++ firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision 94895e32fe18e78b98fe3bb7786838cf00afdbfa) @@ -153,12 +153,13 @@ void startDialysis( void ) { U32 tempDPORate = (setDialysateFlowRate * 6) / 10; // TODO - temporary fudge factor - remove later + lastUFTimeStamp = getMSTimerCount(); setDialOutUFVolumes( refUFVolume, measUFVolume ); setBloodPumpTargetFlowRate( setBloodFlowRate, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); setDialInPumpTargetFlowRate( setDialysateFlowRate, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); - // setDialOutPumpTargetRate( setDialysateFlowRate + FLOAT_TO_INT_WITH_ROUND( setUFRate ), MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_CLOSED_LOOP ); // TODO - restore later - setDialOutPumpTargetRate( tempDPORate + FLOAT_TO_INT_WITH_ROUND( setUFRate ), MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_CLOSED_LOOP ); // TODO - test code - remove later + // setDialOutPumpTargetRate( setDialysateFlowRate + (S32)setUFRate), MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_CLOSED_LOOP ); // TODO - restore later + setDialOutPumpTargetRate( tempDPORate + (S32)setUFRate, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_CLOSED_LOOP ); // TODO - test code - remove later // TODO - Heparin pump } @@ -493,7 +494,7 @@ { F32 uFMeasRatePerHr = measUFVolume - lastUFVolumeChecked; F32 uFSetRatePerHr = ( setUFRate * (F32)MIN_PER_HOUR ); - F32 uFRateError = uFSetRatePerHr - uFMeasRatePerHr; + F32 uFRateError = FABS( uFSetRatePerHr - uFMeasRatePerHr ); // check UF accuracy if ( uFRateError > (F32)MAX_UF_ACCURACY_ERROR_ML_PER_HR )