Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -rfc65332fb8fa0e83ddccbdc72592cc4a4b41e382 -rd7b793881e8414f2daf75825d5de4e25a25d10ac --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision fc65332fb8fa0e83ddccbdc72592cc4a4b41e382) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision d7b793881e8414f2daf75825d5de4e25a25d10ac) @@ -8,7 +8,7 @@ * @file ModeTreatment.c * * @author (last) Dara Navaei -* @date (last) 23-May-2022 +* @date (last) 19-Sep-2022 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -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 ********** @@ -195,6 +196,7 @@ treatmentStartTimeStamp = getRTCTimestamp(); treatmentEndTimeStamp = 0; + hasTreatmentStartTimeBeenWrittenToNV = FALSE; } @@ -248,9 +250,6 @@ initTreatmentRecirc(); initTreatmentEnd(); - // Started the treatment set the start time in epoch - setTxLastStartTimeEpoch( getRTCTimestamp() ); - return currentTreatmentState; } @@ -634,6 +633,12 @@ checkDialysateTemperature(); } + if ( FALSE == hasTreatmentStartTimeBeenWrittenToNV ) + { + // Started the treatment set the start time in epoch + hasTreatmentStartTimeBeenWrittenToNV = setTxLastStartTimeEpoch( getRTCTimestamp() ); + } + // Treatment mode state machine switch ( currentTreatmentState ) {