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 ); } /*********************************************************************//**