Index: firmware/App/Modes/Rinseback.c =================================================================== diff -u -r0a4dcd288d4347b85baaa0b07da568b6add5eac7 -r43d1739837a207e6d4d2960f3f0442af85b22a8c --- firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 0a4dcd288d4347b85baaa0b07da568b6add5eac7) +++ firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 43d1739837a207e6d4d2960f3f0442af85b22a8c) @@ -497,19 +497,19 @@ if ( ( rinsebackTimerCtr > MAX_RINSEBACK_DONE_TIME ) && ( getRinsebackVolume() >= rinsebackTargetVolume_mL ) ) { signalGoToTreatmentStopped(); - activateAlarmNoData( ALARM_ID_TREATMENT_RINSEBACK_TIMEOUT_ALARM ); + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TREATMENT_RINSEBACK_TIMEOUT_ALARM, rinsebackTimerCtr, MAX_RINSEBACK_DONE_TIME ); clearAlarm( ALARM_ID_HD_TREATMENT_RINSEBACK_TIMEOUT_WARNING ); } // Have we been in this stopped state for too long despite having delivered full blood volume back to patient? else if ( ( RINSEBACK_DONE_WARNING_TIME == rinsebackTimerCtr ) && ( getRinsebackVolume() >= rinsebackTargetVolume_mL ) ) { - activateAlarmNoData( ALARM_ID_HD_TREATMENT_RINSEBACK_TIMEOUT_WARNING ); + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_TREATMENT_RINSEBACK_TIMEOUT_WARNING, rinsebackTimerCtr, RINSEBACK_DONE_WARNING_TIME ); } // Have we been in this stopped state for too long w/o having delivered full blood volume back to patient? else if ( ( rinsebackTimerCtr > MAX_RINSEBACK_TIME ) && ( getRinsebackVolume() < rinsebackTargetVolume_mL ) ) { signalGoToTreatmentStopped(); - activateAlarmNoData( ALARM_ID_TREATMENT_RINSEBACK_TIMEOUT_ALARM ); + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TREATMENT_RINSEBACK_TIMEOUT_ALARM, rinsebackTimerCtr, MAX_RINSEBACK_TIME ); } else if ( TRUE == recircRequested ) { @@ -518,7 +518,7 @@ else if ( TRUE == additionalRinsebackRequested ) { additionalRinsebackRequested = FALSE; - // deliver additional rinseback volume only if max volume not reached and max time not reached + // deliver additional rinseback volume only if max time not reached or max volume has been reached (i.e. no more blood in line) if ( ( rinsebackTimerCtr < MAX_RINSEBACK_TIME ) || ( getRinsebackVolume() >= rinsebackTargetVolume_mL ) ) { rinsebackAdditionalTimerCtr = 0; @@ -904,7 +904,7 @@ { *rejReason = REQUEST_REJECT_REASON_TREATMENT_IS_COMPLETED; } - else if ( RINSEBACK_STOP_STATE != rinsebackState ) + else if ( rinsebackState != RINSEBACK_STOP_STATE ) { *rejReason = REQUEST_REJECT_REASON_ACTION_DISABLED_IN_CURRENT_STATE; }