Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r7d4711edd7b40cd3e29f43e766f79a8a09586fe9 -r7222a614c8600a977597ed38911bc82e85306223 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 7d4711edd7b40cd3e29f43e766f79a8a09586fe9) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 7222a614c8600a977597ed38911bc82e85306223) @@ -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 ); } @@ -428,13 +428,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();