Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -rfb20c66bc03db53965d23a4af8ef1b06e88f3a83 -r23ad90c3d5f08e67a1142a68c73d79fedb752da9 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision fb20c66bc03db53965d23a4af8ef1b06e88f3a83) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 23ad90c3d5f08e67a1142a68c73d79fedb752da9) @@ -25,6 +25,7 @@ #include "Dialysis.h" #include "ModeTreatment.h" #include "ModeTreatmentParams.h" +#include "NVDataMgmt.h" #include "OperationModes.h" #include "Reservoirs.h" #include "Rinseback.h" @@ -244,6 +245,9 @@ initTreatmentRecirc(); initTreatmentEnd(); + // Started the treatment set the start time in epoch + setTxLastStartTimeEpoch( getRTCTimestamp() ); + return currentTreatmentState; } @@ -822,6 +826,7 @@ static TREATMENT_STATE_T handleTreatmentStopState( void ) { TREATMENT_STATE_T result = TREATMENT_STOP_STATE; + BOOL leavingTreatmentStopState = TRUE; // If user requests resumption of treatment, resume treatment if ( TRUE == resumeTreatmentAlarmResponseRequest ) @@ -857,8 +862,19 @@ { execReservoirs(); execTreatmentStop(); + leavingTreatmentStopState = FALSE; } + // If leaving treatment stop state, zero alarm countdown timer for UI + if ( TRUE == leavingTreatmentStopState ) + { + TREATMENT_STOP_PAYLOAD_T data; + + data.timeout = 0; + data.countdown = 0; + broadcastData( MSG_ID_HD_TREATMENT_STOP_TIMER_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( TREATMENT_STOP_PAYLOAD_T ) ); + } + return result; }