Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r40a7502a60c342618a1142875d3b883834189872 -r2beced303ea005ccfc0beaba1321884165594fad --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 40a7502a60c342618a1142875d3b883834189872) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 2beced303ea005ccfc0beaba1321884165594fad) @@ -67,7 +67,7 @@ static void activateAlarm( ALARM_ID_T alarm ); static void publishAlarmInfo( void ); static void alarmUserNotify( void ); -static BOOL isTransitionToFaultRequired( void ); +static BOOL isTransitionToFaultOrClearImmediateRequired( void ); /*********************************************************************//** * @brief @@ -134,14 +134,14 @@ // There is a DG fault alarm. isAFaultAlarmActive = TRUE; - if ( TRUE == isTransitionToFaultRequired() ) + if ( TRUE == isTransitionToFaultOrClearImmediateRequired() ) { // If alarm is a DG fault and the alarm manager can transition to fault immediately, go to fault mode requestNewOperationMode( DG_MODE_FAUL ); } } // If alarm has clear condition immediately property, clear condition now - if ( TRUE == ALARM_TABLE[ alarm ].alarmConditionClearImmed ) + if ( ( TRUE == ALARM_TABLE[ alarm ].alarmConditionClearImmed ) && ( TRUE == isTransitionToFaultOrClearImmediateRequired() ) ) { clearAlarmCondition( alarm ); } @@ -429,13 +429,14 @@ /*********************************************************************//** * @brief - * The isTransitionToFaultRequired function checks whether the alarm management - * should request a transition to fault mode immediately or it should be deferred + * The isTransitionToFaultOrClearImmediateRequired function checks whether + * the alarm management should request a transition to fault mode immediately + * or it should be deferred * @details Inputs: none * @details Outputs: none * @return TRUE if transition to fault is required otherwise, FALSE *************************************************************************/ -static BOOL isTransitionToFaultRequired( void ) +static BOOL isTransitionToFaultOrClearImmediateRequired( void ) { BOOL status = TRUE; DG_OP_MODE_T opMode = getCurrentOperationMode();