Index: firmware/App/Modes/TreatmentEnd.c =================================================================== diff -u -r4f3b9e168915ab13dfcdc74462d7142115cc2d57 -r825b34b09f0aae662485b261dbad6b3fc1d125e4 --- firmware/App/Modes/TreatmentEnd.c (.../TreatmentEnd.c) (revision 4f3b9e168915ab13dfcdc74462d7142115cc2d57) +++ firmware/App/Modes/TreatmentEnd.c (.../TreatmentEnd.c) (revision 825b34b09f0aae662485b261dbad6b3fc1d125e4) @@ -24,6 +24,7 @@ #include "SystemCommMessages.h" #include "TaskGeneral.h" #include "TreatmentEnd.h" +#include "TreatmentStop.h" #include "Valves.h" /** @@ -311,16 +312,24 @@ } else { + TREATMENT_STOP_PAYLOAD_T data; + + data.timeout = 0; + data.countdown = 0; + // Ensure we do not sit in stopped state for too long if ( bloodSittingTimerCtr > WARN_TIME_BLOOD_SITTING ) { + data.timeout = MAX_TIME_BLOOD_SITTING / ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ); + data.countdown = ( bloodSittingTimerCtr >= MAX_TIME_BLOOD_SITTING ? 0 : ( MAX_TIME_BLOOD_SITTING - bloodSittingTimerCtr ) / ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ); activateAlarmNoData( ALARM_ID_HD_END_OF_TREATMENT_ALARM ); } if ( bloodSittingTimerCtr > MAX_TIME_BLOOD_SITTING ) { // Raise the alarm activateAlarmNoData( ALARM_ID_HD_END_OF_TREATMENT_HIGH ); } + broadcastData( MSG_ID_HD_TREATMENT_STOP_TIMER_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( TREATMENT_STOP_PAYLOAD_T ) ); } return result;