Index: firmware/App/Modes/Rinseback.c =================================================================== diff -u -r4408a78b7ddd69bc4cee8dd675997cc073a83d36 -r13b15c23c5065a9967bd8776b0cea2f71cd1a240 --- firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 4408a78b7ddd69bc4cee8dd675997cc073a83d36) +++ firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 13b15c23c5065a9967bd8776b0cea2f71cd1a240) @@ -50,8 +50,6 @@ #define RINSEBACK_DATA_PUBLISH_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) /// Maximum time allowed for rinseback operation until full volume is delivered. Timer is reset whenever BP is running. static const U32 MAX_RINSEBACK_TIME = ( 5 * SEC_PER_MIN * ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ); -/// Warning time after rinseback operation completed. Timer is reset whenever BP is running (additional). -static const U32 RINSEBACK_DONE_WARNING_TIME = ( 13 * SEC_PER_MIN * ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ); /// Maximum time allowed for each additional rinseback volume delivery. static const U32 MAX_RINSEBACK_ADDITIONAL_TIME = ( 20 * MS_PER_SECOND / TASK_GENERAL_INTERVAL ); /// Multiplier to convert flow (mL/min) into volume (mL) for period of general task interval. @@ -497,13 +495,8 @@ { RINSEBACK_STATE_T result = RINSEBACK_STOP_STATE; - // Have we been in this stopped state for too long despite having delivered full blood volume back to patient? - if ( ( RINSEBACK_DONE_WARNING_TIME == rinsebackTimerCtr ) && ( getRinsebackVolume() >= rinsebackTargetVolume_mL ) ) - { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_TREATMENT_RINSEBACK_TIMEOUT_WARNING, rinsebackTimerCtr, RINSEBACK_DONE_WARNING_TIME ); - } // Have we been in this stopped state for too long w/o having delivered full blood volume back to patient? - else if ( ( rinsebackTimerCtr > MAX_RINSEBACK_TIME ) && ( getRinsebackVolume() < rinsebackTargetVolume_mL ) ) + if ( ( rinsebackTimerCtr > MAX_RINSEBACK_TIME ) && ( getRinsebackVolume() < rinsebackTargetVolume_mL ) ) { signalGoToTreatmentStopped(); SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TREATMENT_RINSEBACK_TIMEOUT_ALARM, rinsebackTimerCtr, MAX_RINSEBACK_TIME ); Index: firmware/App/Modes/TreatmentRecirc.c =================================================================== diff -u -r9d924ec76ce770eb2a94088bfe37bfb0e30981a8 -r13b15c23c5065a9967bd8776b0cea2f71cd1a240 --- firmware/App/Modes/TreatmentRecirc.c (.../TreatmentRecirc.c) (revision 9d924ec76ce770eb2a94088bfe37bfb0e30981a8) +++ firmware/App/Modes/TreatmentRecirc.c (.../TreatmentRecirc.c) (revision 13b15c23c5065a9967bd8776b0cea2f71cd1a240) @@ -34,10 +34,6 @@ // ********** private definitions ********** -/// Maximum time allowed to be in recirculation sub-mode. -static const U32 RECIRC_TIMEOUT = ( ( 15 * SEC_PER_MIN * MS_PER_SECOND ) / TASK_GENERAL_INTERVAL ); -/// Warn user they need to reconnect to system and resume their treatment soon. -static const U32 RECIRC_WARNING_TIMEOUT = ( ( 13 * SEC_PER_MIN * MS_PER_SECOND ) / TASK_GENERAL_INTERVAL ); /// Re-circulation status broadcast interval. static const U32 RECIRC_DATA_PUBLISH_INTERVAL = ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ); /// Target flow rate for re-circulation of saline on blood-side circuit. @@ -49,7 +45,6 @@ static U32 recircTimerCtr; ///< Timer counter (in GP task intervals) counts time spent in re-circulation sub-mode. static U32 recircPublishTimerCtr; ///< Timer counter (in GP task intervals) counts time to next status broadcast. -static BOOL recircTimeoutWarningGiven; ///< Flag indicates 10 minute warning has been given to user. static BOOL recircReconnectRequested; ///< Flag indicates user requesting re-circulate stop so they can re-connect. static BOOL recircBackToTreatmenRequested; ///< Flag indicates user requesting to go back to treatment (confirming re-connected). @@ -87,7 +82,6 @@ recircTimerCtr = 0; recircPublishTimerCtr = 0; resetTreatmentRecircFlags(); - recircTimeoutWarningGiven = FALSE; } /*********************************************************************//** @@ -244,18 +238,6 @@ setupForRecirculationStopState(); signalEndTreatment(); // signal end Tx sub-mode } - // Has max time in re-circ sub-mode been exceeded? - else if ( recircTimerCtr > RECIRC_TIMEOUT ) - { - signalGoToTreatmentStopped(); - clearAlarm( ALARM_ID_HD_TREATMENT_RECIRC_TIMEOUT_WARNING ); - activateAlarmNoData( ALARM_ID_TREATMENT_RECIRC_TIMEOUT_ALARM ); - } - else if ( ( recircTimeoutWarningGiven != TRUE ) && ( RECIRC_WARNING_TIMEOUT == recircTimerCtr ) ) - { - recircTimeoutWarningGiven = TRUE; - activateAlarmNoData( ALARM_ID_HD_TREATMENT_RECIRC_TIMEOUT_WARNING ); - } return result; } @@ -288,17 +270,6 @@ setupForRecirculationState(); result = TREATMENT_RECIRC_RECIRC_STATE; } - // Has max time in re-circ sub-mode been exceeded? - else if ( recircTimerCtr > RECIRC_TIMEOUT ) - { - signalGoToTreatmentStopped(); - activateAlarmNoData( ALARM_ID_TREATMENT_RECIRC_TIMEOUT_ALARM ); - } - else if ( ( recircTimeoutWarningGiven != TRUE ) && ( recircTimerCtr > RECIRC_WARNING_TIMEOUT ) ) - { - recircTimeoutWarningGiven = TRUE; - activateAlarmNoData( ALARM_ID_HD_TREATMENT_RECIRC_TIMEOUT_WARNING ); - } return result; } @@ -487,8 +458,8 @@ { TREATMENT_RECIRC_PAYLOAD_T data; - data.timeout = RECIRC_TIMEOUT / ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ); - data.countdown = ( recircTimerCtr >= RECIRC_TIMEOUT ? 0 : ( RECIRC_TIMEOUT - recircTimerCtr ) / ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ); + data.timeout = 0; // currently no timeout or countdown in this mode + data.countdown = 0; recircPublishTimerCtr = 0; broadcastData( MSG_ID_HD_RECIRC_PROGRESS_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( TREATMENT_RECIRC_PAYLOAD_T ) ); Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -r04717003bb672ca3ed507a924156e141db2d5855 -r13b15c23c5065a9967bd8776b0cea2f71cd1a240 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 04717003bb672ca3ed507a924156e141db2d5855) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 13b15c23c5065a9967bd8776b0cea2f71cd1a240) @@ -533,7 +533,7 @@ * Comm Buffers and adds them to the Received Message Queue. * @details Inputs: none * @details Outputs:hdIsOnlyCANNode, rcvMsg, dgIsCommunicating, - * timeOfLastDGCheckIn + * timeOfLastDGCheckIn, timeOfLastUICheckIn, uiDidCommunicate * @return none *************************************************************************/ static void processIncomingData( void )