Index: firmware/App/Modes/BloodPrime.c =================================================================== diff -u -r9df8ab7b66946cb653f804c8191613cefafc4d57 -ra51419e487a62eac8bce5f5e2a6c366b11e9e11e --- firmware/App/Modes/BloodPrime.c (.../BloodPrime.c) (revision 9df8ab7b66946cb653f804c8191613cefafc4d57) +++ firmware/App/Modes/BloodPrime.c (.../BloodPrime.c) (revision a51419e487a62eac8bce5f5e2a6c366b11e9e11e) @@ -94,8 +94,8 @@ bloodPrimeRampControlTimerCtr = 0; bloodPrimePublishTimerCtr = 0; cumulativeBloodPrimeVolume_mL = 0.0; - bloodPrimeMotorCount = 0; - bloodPrimeLastMotorCount = 0; + bloodPrimeMotorCount = getBloodPumpMotorCount(); + bloodPrimeLastMotorCount = getBloodPumpMotorCount(); bloodPrimeVolumeDelivered_Safety = 0.0; resetBloodPrimeFlags(); Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r5a961b1f37a757333429adbdba95d7fc964aad1b -ra51419e487a62eac8bce5f5e2a6c366b11e9e11e --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 5a961b1f37a757333429adbdba95d7fc964aad1b) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision a51419e487a62eac8bce5f5e2a6c366b11e9e11e) @@ -383,9 +383,6 @@ activateAlarmNoData( ALARM_ID_TREATMENT_STOPPED_BY_USER ); } - // clear signal flags from sub-modes before calling sub-mode executives - resetSignalFlags(); - // Treatment mode state machine switch ( currentTreatmentState ) { @@ -424,6 +421,8 @@ // Alarm response request flags should be handled at this point, reset in case not handled in current state resetAlarmSignalFlags(); + // clear signal flags from sub-modes before calling sub-mode executives + resetSignalFlags(); // Broadcast treatment data broadcastTreatmentTimeAndState(); @@ -478,24 +477,24 @@ setRinsebackIsCompleted( FALSE ); + // Handle alarm signals if ( TRUE == alarmStopSignalled ) { transitionToTreatmentStop(); result = TREATMENT_STOP_STATE; } else { + execBloodPrime(); + + // Handle signals from blood prime sub-mode if ( TRUE == bloodPrimeToDialysisRequest ) { // Kick dialysis sub-mode off setDialysisParams( presBloodFlowRate, presDialysateFlowRate, presMaxUFVolumeML, presUFRate ); transitionToDialysis(); result = TREATMENT_DIALYSIS_STATE; } - else - { - execBloodPrime(); - } } return result; Index: firmware/App/Modes/Rinseback.c =================================================================== diff -u -r851bfc8ae6421e9599fca582b6889d3f8b4ad712 -ra51419e487a62eac8bce5f5e2a6c366b11e9e11e --- firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 851bfc8ae6421e9599fca582b6889d3f8b4ad712) +++ firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision a51419e487a62eac8bce5f5e2a6c366b11e9e11e) @@ -123,8 +123,8 @@ rinsebackTimerCtr = 0; cumulativeRinsebackVolume_mL = 0.0; additionalRinsebackVolume_mL = 0.0; - rinsebackMotorCount = 0; - rinsebackLastMotorCount = 0; + rinsebackMotorCount = getBloodPumpMotorCount(); + rinsebackLastMotorCount = getBloodPumpMotorCount(); rinsebackVolumeDelivered_Safety = 0.0; rinsebackAdditionalTimerCtr = 0; rinsebackPublishTimerCtr = 0;