Index: firmware/App/Modes/Rinseback.c =================================================================== diff -u -rf7eb704f3da2ba7840681164639f534b82f7a71d -r6060e1aebe864c6ff8b9b06fabaefcf35f989bcc --- firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision f7eb704f3da2ba7840681164639f534b82f7a71d) +++ firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 6060e1aebe864c6ff8b9b06fabaefcf35f989bcc) @@ -1051,34 +1051,43 @@ data.targetRinsebackVolumeMl = rinsebackTargetVolume_mL; rinsebackPublishTimerCtr = 0; // If we have completed rinseback, timeout is no longer in force - indicate by zeroing timeout. Also include any additionals to target. + data.timeout = 0; + data.countdown = 0; if ( ( rinsebackState > RINSEBACK_PAUSED_STATE ) && ( getRinsebackVolume() >= rinsebackTargetVolume_mL ) ) { data.targetRinsebackVolumeMl = targetRinsebackVolumePlusAdditional_mL; - timeout = 0; } data.deliveredRinsebackVolumeMl = getRinsebackVolume(); data.rinsebackFlowRateMlMin = rinsebackRate_mL_min; if ( RINSEBACK_RUN_ADDITIONAL_STATE == rinsebackState ) { data.rinsebackFlowRateMlMin = DEFAULT_RINSEBACK_FLOW_RATE_ML_MIN; } - data.timeout = timeout; - data.countdown = countdown; + if ( ( RINSEBACK_PAUSED_STATE == rinsebackState ) && ( RINSEBACK_STOP_STATE == rinsebackState ) ) + { + if ( getRinsebackCompleted() != TRUE ) + { + if ( rinsebackTimerCtr > 0 ) + { + data.timeout = timeout; + data.countdown = countdown; + } + } + } if ( data.deliveredRinsebackVolumeMl >= rinsebackTargetVolume_mL ) { data.isCompleted = TRUE; } broadcastData( MSG_ID_HD_RINSEBACK_PROGRESS, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( RINSEBACK_DATA_PAYLOAD_T ) ); // Send blood sitting count down to UI for alarm dialog - sdata.timeout = 0; + sdata.timeout = stopTO / ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ); sdata.countdown = 0; if ( getRinsebackCompleted() != TRUE ) { if ( rinsebackTimerCtr > 0 ) { - sdata.timeout = stopTO / ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ); sdata.countdown = ( rinsebackTimerCtr > MAX_TIME_BLOOD_SITTING ? 0 : ( MAX_TIME_BLOOD_SITTING - rinsebackTimerCtr ) / ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ); } }