Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -re3a7845d627546912ff9323da25a4e67b0eaeffc -r1b76127ac6833e64fb04749707ae899052402f3e --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision e3a7845d627546912ff9323da25a4e67b0eaeffc) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 1b76127ac6833e64fb04749707ae899052402f3e) @@ -326,7 +326,7 @@ *************************************************************************/ void activateAlarmNoData( ALARM_ID_T alarm ) { - activateAlarm2Data( alarm, BLANK_ALARM_DATA, BLANK_ALARM_DATA ); + activateAlarm2Data( alarm, BLANK_ALARM_DATA, BLANK_ALARM_DATA, FALSE ); } /*********************************************************************//** @@ -342,7 +342,7 @@ *************************************************************************/ void activateAlarm1Data( ALARM_ID_T alarm, ALARM_DATA_T alarmData ) { - activateAlarm2Data( alarm, alarmData, BLANK_ALARM_DATA ); + activateAlarm2Data( alarm, alarmData, BLANK_ALARM_DATA, FALSE ); } /*********************************************************************//** @@ -354,10 +354,11 @@ * @details Outputs: alarm triggered message sent, alarm activated * @param alarm ID of alarm to activate * @param alarmData1 supporting data to include in alarm msg - * @param alarmData2 supporting data to include in alarm msg + * @param alarmData2 supporting data to include in alarm msg + * @param outside flag indicates whether alarm is originating from outside HD f/w * @return none *************************************************************************/ -void activateAlarm2Data( ALARM_ID_T alarm, ALARM_DATA_T alarmData1, ALARM_DATA_T alarmData2 ) +void activateAlarm2Data( ALARM_ID_T alarm, ALARM_DATA_T alarmData1, ALARM_DATA_T alarmData2, BOOL outside ) { // Block if new alarms are occur during loss of AC power if ( ( TRUE == getCPLDACPowerLossDetected() ) ) @@ -374,12 +375,13 @@ { // do not re-trigger alarm if blocked by property if ( ( FALSE == alarmNoRetrigger ) || ( ( ALARM_TABLE[ alarm ].alarmNoRetrigOnRB != TRUE ) && ( ALARM_TABLE[ alarm ].alarmNoRetrigOnEndTx != TRUE ) ) ) - { // do not trigger alarm if blocked by current mode/state + { HD_OP_MODE_T opMode = getCurrentOperationMode(); TREATMENT_STATE_T ts = getTreatmentState(); - if ( ( ( ALARM_TABLE[ alarm ].alarmBlockRinseback != TRUE ) || ( opMode != MODE_TREA ) || ( ts != TREATMENT_RINSEBACK_STATE ) ) && - ( ( ALARM_TABLE[ alarm ].alarmBlockEndTx != TRUE ) || ( opMode != MODE_POST ) ) ) + // do not trigger alarm if blocked by current mode/state + if ( ( ( ALARM_TABLE[ alarm ].alarmBlockRinseback != TRUE ) || ( opMode != MODE_TREA ) || ( ts != TREATMENT_RINSEBACK_STATE ) || ( TRUE == outside ) ) && + ( ( ALARM_TABLE[ alarm ].alarmBlockEndTx != TRUE ) || ( opMode != MODE_POST ) || ( TRUE == outside )) ) { // Broadcast alarm and data if alarm not already active if ( FALSE == alarmIsActive[ alarm ] )