Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r52787cd53986cfd0abb7e674bf096898e5070f9a -r5069769a675a529142dfd5f9fb2491380cec8b83 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 52787cd53986cfd0abb7e674bf096898e5070f9a) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 5069769a675a529142dfd5f9fb2491380cec8b83) @@ -1458,15 +1458,20 @@ if ( ++isolatedUFBroadcastTimerCtr >= ULTRAFILTRATION_DATA_PUB_INTERVAL ) { ISOLATED_UF_DATA_PAYLOAD_T data; - U32 durationInMinutes = getIsolatedUFDurationMin(); - F32 volumeGoalMl = getIsolatedUFSetVolumeMl(); + U32 durationInMinutes = getIsolatedUFDurationMin(); + U32 durationSec = durationInMinutes * SEC_PER_MIN; + U32 elapsedSec = getIsolatedUFSessionElapsedTimeSec(); + F32 volumeGoalMl = getIsolatedUFSetVolumeMl(); data.mDuration = durationInMinutes; - data.mSetVolume = (U32)volumeGoalMl; - data.mVolumeDelivered = (U32)( getIsolatedUFVolumeDrawn() * (F32)ML_PER_LITER ); - data.mRate = (U32)getIsolatedUFRateMlMin(); + data.mElapsedTime = elapsedSec; + data.mRemainingTime = ( durationSec > elapsedSec ) ? ( durationSec - elapsedSec ) : 0U; + data.mSetVolume = volumeGoalMl; + data.mVolumeDelivered = getIsolatedUFVolumeDrawn() * (F32)ML_PER_LITER; + data.mRate = getIsolatedUFRateMlMin(); - sendMessage( MSG_ID_TD_ISOLATED_UF_DATA, COMM_BUFFER_OUT_CAN_TD_BROADCAST, (U08*)(&data), sizeof( ISOLATED_UF_DATA_PAYLOAD_T ) ); + sendMessage( MSG_ID_TD_ISOLATED_UF_DATA, COMM_BUFFER_OUT_CAN_TD_BROADCAST, (U08 *)(&data), sizeof( ISOLATED_UF_DATA_PAYLOAD_T ) ); + isolatedUFBroadcastTimerCtr = 0; } }