Index: firmware/App/Modes/ModeDrain.c =================================================================== diff -u -rcea079b61dbd17b2ddaec99b1124248147d14e72 -r0a313ac4ec34865255e72089fded191b951b62de --- firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision cea079b61dbd17b2ddaec99b1124248147d14e72) +++ firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision 0a313ac4ec34865255e72089fded191b951b62de) @@ -118,6 +118,11 @@ checkInletPressure(); checkRORejectionRatio(); + if ( FALSE == isHDCommunicating() ) + { + requestNewOperationMode( DG_MODE_CIRC ); + } + // execute current drain state switch ( drainState ) { Index: firmware/App/Modes/ModeFill.c =================================================================== diff -u -r4b15ae8df98dc7f3be2bd64984f2f53022c23fcd -r0a313ac4ec34865255e72089fded191b951b62de --- firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision 4b15ae8df98dc7f3be2bd64984f2f53022c23fcd) +++ firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision 0a313ac4ec34865255e72089fded191b951b62de) @@ -167,6 +167,11 @@ requestNewOperationMode( DG_MODE_CIRC ); } + if ( FALSE == isHDCommunicating() ) + { + requestNewOperationMode( DG_MODE_CIRC ); + } + // execute current Fill state switch ( fillState ) { Index: firmware/App/Modes/ModeRecirculate.c =================================================================== diff -u -r2fafa5769ca6850277200ae0ec08a0e508b0d2ed -r0a313ac4ec34865255e72089fded191b951b62de --- firmware/App/Modes/ModeRecirculate.c (.../ModeRecirculate.c) (revision 2fafa5769ca6850277200ae0ec08a0e508b0d2ed) +++ firmware/App/Modes/ModeRecirculate.c (.../ModeRecirculate.c) (revision 0a313ac4ec34865255e72089fded191b951b62de) @@ -130,6 +130,11 @@ checkInletPressure(); checkRORejectionRatio(); + if ( FALSE == isHDCommunicating() ) + { + requestNewOperationMode( DG_MODE_STAN ); + } + // execute current re-circulate state switch ( recircState ) { Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r995ca228d114f2db96b62155e83d38942b603962 -r0a313ac4ec34865255e72089fded191b951b62de --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 995ca228d114f2db96b62155e83d38942b603962) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 0a313ac4ec34865255e72089fded191b951b62de) @@ -159,7 +159,7 @@ void activateAlarm2Data( ALARM_ID_T alarm, ALARM_DATA_T alarmData1, ALARM_DATA_T alarmData2 ) { // broadcast alarm and data if alarm not already active - if ( FALSE == alarmIsActive[ alarm ] ) + if ( ( FALSE == alarmIsActive[ alarm ] ) && ( TRUE == isHDCommunicating() ) ) { broadcastAlarmTriggered( alarm, alarmData1, alarmData2 ); } @@ -182,8 +182,11 @@ { // clear alarm and broadcast alarm clear if not already cleared if ( TRUE == alarmIsActive[ alarm ] ) - { - broadcastAlarmCleared( alarm ); + { + if ( TRUE == isHDCommunicating() ) + { + broadcastAlarmCleared( alarm ); + } alarmIsActive[ alarm ] = FALSE; clearAlarmCondition( alarm ); } @@ -211,7 +214,10 @@ // clear alarm and broadcast alarm clear if not already cleared if ( TRUE == alarmConditionIsActive[ alarm ] ) { - broadcastAlarmConditionCleared( alarm ); + if ( TRUE == isHDCommunicating() ) + { + broadcastAlarmConditionCleared( alarm ); + } alarmConditionIsActive[ alarm ] = FALSE; } } Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -r2fff37fa585181917705645494549b5fd4a4d522 -r0a313ac4ec34865255e72089fded191b951b62de --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 2fff37fa585181917705645494549b5fd4a4d522) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 0a313ac4ec34865255e72089fded191b951b62de) @@ -838,7 +838,6 @@ if ( TRUE == didTimeout( timeOfLastHDCheckIn, HD_COMM_TIMEOUT_IN_MS ) ) { hdIsCommunicating = FALSE; - activateAlarmNoData( ALARM_ID_HD_COMM_TIMEOUT ); } }