Index: firmware/App/Modes/Rinseback.c =================================================================== diff -u -rf6b78d1fe6741043de38707211710ab0e8a08483 -r7f2cc554a3c0bd271d0221b29896f5866f56db94 --- firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision f6b78d1fe6741043de38707211710ab0e8a08483) +++ firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 7f2cc554a3c0bd271d0221b29896f5866f56db94) @@ -993,8 +993,8 @@ } // Scale to seconds countdown /= ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ); - - data.targetRinsebackVolumeMl = rinsebackTargetVolume_mL; + data.isCompleted = FALSE; + data.targetRinsebackVolumeMl = TARGET_RINSEBACK_VOLUME_ML; rinsebackPublishTimerCtr = 0; // If we have completed rinseback, timeout is no longer in force - indicate by zeroing timeout. Also include any additionals to target. if ( ( rinsebackState > RINSEBACK_PAUSED_STATE ) && ( getRinsebackVolume() >= rinsebackTargetVolume_mL ) ) @@ -1010,7 +1010,10 @@ } data.timeout = timeout; data.countdown = countdown; - data.unused = 0.0; // TODO - remove when UI no longer looks for this field + if ( data.deliveredRinsebackVolumeMl >= TARGET_RINSEBACK_VOLUME_ML ) + { + data.isCompleted = TRUE; + } broadcastData( MSG_ID_HD_RINSEBACK_PROGRESS, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( RINSEBACK_DATA_PAYLOAD_T ) ); } }