Index: firmware/App/Controllers/BloodFlow.c =================================================================== diff -u -r1c628bfd5d6414b74b8cbd083f66839888a8236b -rd80c4a21ab700d8197e292f34c86dad61828c45a --- firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision 1c628bfd5d6414b74b8cbd083f66839888a8236b) +++ firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision d80c4a21ab700d8197e292f34c86dad61828c45a) @@ -1063,7 +1063,7 @@ // Keep a running 32-bit edge count used for safety check on volume in some functions delta = u16BiDiffWithWrap( last, bpMotorHallSensorCount ); - bloodPumpMotorEdgeCount += (U16)delta; + bloodPumpMotorEdgeCount += ( delta >= 0 ? (U16)delta : 0 ); // Update last count for next time bpLastMotorHallSensorCounts[ nextIdx ] = bpMotorHallSensorCount; Index: firmware/App/Controllers/BloodFlow.h =================================================================== diff -u -r8466e63f95f65a3ffb18c3af85ac99328e41167b -rd80c4a21ab700d8197e292f34c86dad61828c45a --- firmware/App/Controllers/BloodFlow.h (.../BloodFlow.h) (revision 8466e63f95f65a3ffb18c3af85ac99328e41167b) +++ firmware/App/Controllers/BloodFlow.h (.../BloodFlow.h) (revision d80c4a21ab700d8197e292f34c86dad61828c45a) @@ -35,7 +35,7 @@ #define MIN_SET_BLOOD_FLOW_RATE 100 ///< Minimum blood flow rate (in mL/min). #define SALINE_BOLUS_FLOW_RATE 150 ///< Saline bolus flow rate (in mL/min). -#define VOLUME_PER_BP_MOTOR_REV_ML 0.2 ///< Theoretical volume (mL) of blood/saline volume per motor revolution. +#define VOLUME_PER_BP_MOTOR_REV_ML 0.216 ///< Theoretical volume (mL) of blood/saline volume per motor revolution. #define BP_HALL_EDGE_COUNTS_PER_REV 48 ///< Number of hall sensor edge counts per motor revolution. /// Payload record structure for a blood pump data message. Index: firmware/App/Modes/ModePostTreat.c =================================================================== diff -u -rf2cecb1dae0cfccc768b321f1d0cdec9a73c5824 -rd80c4a21ab700d8197e292f34c86dad61828c45a --- firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision f2cecb1dae0cfccc768b321f1d0cdec9a73c5824) +++ firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision d80c4a21ab700d8197e292f34c86dad61828c45a) @@ -102,7 +102,7 @@ isDrainStarted = FALSE; isDrainCompleted = FALSE; rinseConcentrateLines = FALSE; - currentPostTreatmentState = HD_POST_TREATMENT_PATIENT_DISCONNECTION_STATE; + currentPostTreatmentState = HD_POST_TREATMENT_DRAIN_RESERVOIRS_STATE; currentDrainReservoirState = DRAIN_FIRST_RESERVOIR_START_STATE; postTreatmentPublishTimerCounter = 0; @@ -365,7 +365,7 @@ patientDisconnectionConfirmed = FALSE; state = HD_POST_TREATMENT_DISPOSABLE_REMOVAL_STATE; - for ( valve = VDI; valve < NUM_OF_VALVES; ++valve ) + for ( valve = VDI; valve < NUM_OF_VALVES; valve++ ) { setValvePosition( valve, VALVE_POSITION_A_INSERT_EJECT ); }