Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r37a9fd8f15e413db5337371a7d1a1cb65567af7c -rfb20c66bc03db53965d23a4af8ef1b06e88f3a83 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 37a9fd8f15e413db5337371a7d1a1cb65567af7c) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision fb20c66bc03db53965d23a4af8ef1b06e88f3a83) @@ -615,6 +615,8 @@ *************************************************************************/ U32 execTreatmentMode( void ) { + TREATMENT_STATE_T entryTreatmentState = currentTreatmentState; + U32 saveTreatTime = 0; BOOL stop = isStopButtonPressed(); if ( TRUE == stop ) @@ -668,6 +670,19 @@ // clear signal flags from sub-modes before calling sub-mode executives resetSignalFlags(); + if ( (entryTreatmentState != currentTreatmentState) && ( currentTreatmentState == TREATMENT_END_STATE ) ) + { + // Save the Treatment duration and Last Treatment time + // TODO DMC this saves minutes, should be a Float of hours + saveTreatTime = getTreatmentTime (); + saveTreatTime += CALC_ELAPSED_TREAT_TIME_IN_MIN(); + if (!setTreatmentTime ( saveTreatTime )) + { + // TODO Set alarm + } + // TODO Save Last Treatment Time + } + // Broadcast treatment data broadcastTreatmentTimeAndState(); broadcastTreatmentSettingsRanges(); @@ -702,6 +717,8 @@ transitionToBloodPrime(); + // TODO DMC Save Last Treatment Time + return result; }