Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r75868c86d86060f8ec8fde969a479e186e51d9a0 -r821d1609f976b1fc01389f2e865aebcaa6434a78 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 75868c86d86060f8ec8fde969a479e186e51d9a0) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 821d1609f976b1fc01389f2e865aebcaa6434a78) @@ -20,7 +20,8 @@ #include "AlarmMgmt.h" #include "CPLD.h" #include "OperationModes.h" -#include "PersistentAlarm.h" +#include "PersistentAlarm.h" +#include "Reservoirs.h" #include "SafetyShutdown.h" #include "SystemComm.h" #include "SystemCommMessages.h" @@ -196,12 +197,21 @@ *************************************************************************/ 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 ] ) && ( TRUE == isHDCommunicating() ) ) - { - broadcastAlarmTriggered( alarm, alarmData1, alarmData2 ); + HD_MODE_SUB_MODE_T hdModes; + + getHDOperationMode( &hdModes ); + + // prevent alarm trigger if property blocks in current mode/state + if ( ( ( ALARM_TABLE[ alarm ].alarmBlockRinseback != TRUE ) || ( hdModes.hdMode != MODE_TREA ) || ( hdModes.hdSubMode != TREATMENT_RINSEBACK_STATE ) ) && + ( ( ALARM_TABLE[ alarm ].alarmBlockEndTx != TRUE ) || ( hdModes.hdMode != MODE_POST ) ) ) + { + // broadcast alarm and data if alarm not already active + if ( ( FALSE == alarmIsActive[ alarm ] ) && ( TRUE == isHDCommunicating() ) ) + { + broadcastAlarmTriggered( alarm, alarmData1, alarmData2 ); + } + activateAlarm( alarm ); } - activateAlarm( alarm ); } /*********************************************************************//** Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -rd325999b7b3ea03b7e294cb8a0b97df93812fbe9 -r821d1609f976b1fc01389f2e865aebcaa6434a78 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision d325999b7b3ea03b7e294cb8a0b97df93812fbe9) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 821d1609f976b1fc01389f2e865aebcaa6434a78) @@ -160,7 +160,7 @@ *************************************************************************/ BOOL isHDCommunicating( void ) { - return getU32OverrideValue(&hdCommunicationStatus); + return getU32OverrideValue( &hdCommunicationStatus ); } /*********************************************************************//** @@ -668,6 +668,7 @@ if ( TRUE == didTimeout( timeOfLastHDCheckIn, HD_COMM_TIMEOUT_IN_MS ) ) { hdCommunicationStatus.data = FALSE; + setHDOperationMode( 0, 0 ); // If HD off or not connected, consider HD mode is fault. } } Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r8912f5ad5d579105c721ce283c9deaa517eec7e1 -r821d1609f976b1fc01389f2e865aebcaa6434a78 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 8912f5ad5d579105c721ce283c9deaa517eec7e1) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 821d1609f976b1fc01389f2e865aebcaa6434a78) @@ -4765,11 +4765,8 @@ *************************************************************************/ void handleTestDGDialinCheckIn( MESSAGE_T* message ) { - BOOL status = FALSE; - if ( 0 == message->hdr.payloadLen ) { - status = TRUE; setDialinCheckInTimeStamp(); } }