Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r19a8bf98a7154e24c35da25225d4b55bf70ddd09 -r0bce81180c0ba2b25f5d501ed6aa6b2f9a8b2500 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 19a8bf98a7154e24c35da25225d4b55bf70ddd09) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 0bce81180c0ba2b25f5d501ed6aa6b2f9a8b2500) @@ -127,6 +127,7 @@ static U32 treatmentStartTimeStamp; ///< Treatment start timestampt for logging purpose. static U32 treatmentEndTimeStamp; ///< Treatment end timestampt for logging purpose. +static BOOL hasTreatmentStartTimeBeenWrittenToNV; ///< Boolean flag to indicate whether treatment start time has been started or not. // ********** private function prototypes ********** @@ -192,6 +193,7 @@ treatmentStartTimeStamp = getRTCTimestamp(); treatmentEndTimeStamp = 0; + hasTreatmentStartTimeBeenWrittenToNV = FALSE; } @@ -245,9 +247,6 @@ initTreatmentRecirc(); initTreatmentEnd(); - // Started the treatment set the start time in epoch - setTxLastStartTimeEpoch( getRTCTimestamp() ); - return currentTreatmentState; } @@ -631,6 +630,12 @@ checkDialysateTemperature(); } + if ( FALSE == hasTreatmentStartTimeBeenWrittenToNV ) + { + // Started the treatment set the start time in epoch + hasTreatmentStartTimeBeenWrittenToNV = setTxLastStartTimeEpoch( getRTCTimestamp() ); + } + // Treatment mode state machine switch ( currentTreatmentState ) {