Index: AlarmMgmt.c =================================================================== diff -u -r4997cacd5a1501b7da1c8a3ba71f9594ad23a603 -r4e16a1c22b73b14cfd62cce4f07a1b9086c55dd7 --- AlarmMgmt.c (.../AlarmMgmt.c) (revision 4997cacd5a1501b7da1c8a3ba71f9594ad23a603) +++ AlarmMgmt.c (.../AlarmMgmt.c) (revision 4e16a1c22b73b14cfd62cce4f07a1b9086c55dd7) @@ -14,53 +14,53 @@ * @date (original) 30-Jul-2024 * ***************************************************************************/ - -#include "mibspi.h" - + +#include "mibspi.h" + #define __ALARM_MGMT_C__ #include "Messaging.h" #include "OperationModes.h" -#include "TaskGeneral.h" -#include "Timers.h" +#include "TaskGeneral.h" +#include "Timers.h" -/** - * @addtogroup AlarmManagement - * @{ - */ - -// ********** private definitions ********** +/** + * @addtogroup AlarmManagement + * @{ + */ +// ********** private definitions ********** + // *** This declaration will cause a compiler error if ALARM_TABLE does not have same # of alarms as the Alarm_List enumeration. U08 alarmTableSizeAssertion[ ( ( sizeof( ALARM_TABLE ) / sizeof( ALARM_T ) ) == NUM_OF_ALARM_IDS ? 1 : -1 ) ]; // *** This declaration will cause a compiler error if ALARM_RANK_TABLE does not have same # of alarms as the Alarm_List enumeration. U08 alarmRankTableSizeAssertion[ ( ( sizeof( ALARM_RANK_TABLE ) / sizeof( ALARM_RANK_T ) ) == NUM_OF_ALARM_IDS ? 1 : -1 ) ]; -// ********** private data ********** - -static BOOL alarmIsActive[ NUM_OF_ALARM_IDS ]; ///< Table - current state of each alarm +// ********** private data ********** + +static BOOL alarmIsActive[ NUM_OF_ALARM_IDS ]; ///< Table - current state of each alarm static BOOL alarmIsDetected[ NUM_OF_ALARM_IDS ]; ///< Table - current state of each alarm condition (detected or cleared) - -// ********** private function prototypes ********** - -/*********************************************************************//** - * @brief - * The initAlarmMgmt function initializes the AlarmMgmt unit. - * @details \b Inputs: none - * @details \b Outputs: alarmIsActive[], alarmIsDetected[] - * @return none - *************************************************************************/ -void initAlarmMgmt( void ) -{ + +// ********** private function prototypes ********** + +/*********************************************************************//** + * @brief + * The initAlarmMgmt function initializes the AlarmMgmt unit. + * @details \b Inputs: none + * @details \b Outputs: alarmIsActive[], alarmIsDetected[] + * @return none + *************************************************************************/ +void initAlarmMgmt( void ) +{ ALARM_ID_T a; - - // Initialize alarm states and start time stamps - for ( a = ALARM_ID_NO_ALARM; a < NUM_OF_ALARM_IDS; a++ ) - { + + // Initialize alarm states and start time stamps + for ( a = ALARM_ID_NO_ALARM; a < NUM_OF_ALARM_IDS; a++ ) + { alarmIsActive[ a ] = FALSE; - alarmIsDetected[ a ] = FALSE; - } + alarmIsDetected[ a ] = FALSE; + } } /*********************************************************************//** @@ -128,7 +128,7 @@ return result; } - + /*********************************************************************//** * @brief * The activateAlarm function activates a given alarm. @@ -144,11 +144,11 @@ // Verify valid alarm index if ( ( alarm > ALARM_ID_NO_ALARM ) && ( alarm < NUM_OF_ALARM_IDS ) ) { - // No need to do anything if alarm is already active, but if condition was cleared then re-trigger alarm + // No need to do anything if alarm is already active, but if condition was cleared then re-trigger alarm if ( ( FALSE == alarmIsActive[ alarm ] ) || - ( ( FALSE == alarmIsDetected[ alarm ] ) && ( FALSE == ALARM_TABLE[ alarm ].alarmConditionClearImmed ) ) ) + ( ( FALSE == alarmIsDetected[ alarm ] ) && ( FALSE == ALARM_TABLE[ alarm ].alarmConditionClearImmed ) ) ) { - // Activate alarm + // Activate alarm alarmIsActive[ alarm ] = TRUE; alarmIsDetected[ alarm ] = TRUE; @@ -157,10 +157,10 @@ { clearAlarmCondition( alarm ); } - } - } - else - { + } + } + else + { #ifdef _TD_ SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TD_SOFTWARE_FAULT, SW_FAULT_ID_ALARM_MGMT_INVALID_ALARM_TO_ACTIVATE3, (U32)alarm ) #endif @@ -171,8 +171,8 @@ SET_ALARM_WITH_2_U32_DATA( ALARM_ID_RO_SOFTWARE_FAULT, SW_FAULT_ID_ALARM_MGMT_INVALID_ALARM_TO_ACTIVATE3, (U32)alarm ) #endif } -} - +} + /*********************************************************************//** * @brief * The clearAlarmCondition function clears a given alarm's condition detected @@ -222,32 +222,32 @@ } } -/*********************************************************************//** - * @brief - * The clearAlarm function clears a given alarm if it is recoverable. Also - * an alarm message is broadcast to the rest of the system. +/*********************************************************************//** + * @brief + * The clearAlarm function clears a given alarm if it is recoverable. Also + * an alarm message is broadcast to the rest of the system. * @details \b Message \b Sent: MSG_ID_ALARM_CLEARED if alarm cleared. * @details \b Alarm: ALARM_ID_XX_SOFTWARE_FAULT if given alarm ID invalid. - * @details \b Inputs: ALARM_TABLE[], alarmIsActive[] + * @details \b Inputs: ALARM_TABLE[], alarmIsActive[] * @details \b Outputs: alarmIsActive[] - * @param alarm ID of alarm to clear - * @return none - *************************************************************************/ -void clearAlarm( ALARM_ID_T alarm ) -{ - // Verify given alarm - if ( ( alarm > ALARM_ID_NO_ALARM ) && ( alarm < NUM_OF_ALARM_IDS ) ) - { - // Verify alarm can be cleared - if ( FALSE == ALARM_TABLE[ alarm ].alarmNoClear ) - { - // Clear alarm and broadcast alarm clear if not already cleared - if ( TRUE == alarmIsActive[ alarm ] ) + * @param alarm ID of alarm to clear + * @return none + *************************************************************************/ +void clearAlarm( ALARM_ID_T alarm ) +{ + // Verify given alarm + if ( ( alarm > ALARM_ID_NO_ALARM ) && ( alarm < NUM_OF_ALARM_IDS ) ) + { + // Verify alarm can be cleared + if ( FALSE == ALARM_TABLE[ alarm ].alarmNoClear ) + { + // Clear alarm and broadcast alarm clear if not already cleared + if ( TRUE == alarmIsActive[ alarm ] ) { ALARM_ID_DATA_PUBLISH_T data; data.alarmID = (U32) alarm; - + alarmIsActive[ alarm ] = FALSE; clearAlarmCondition( alarm ); #ifdef _TD_ @@ -259,11 +259,11 @@ #ifdef _RO_ broadcastData( MSG_ID_ALARM_CLEARED, COMM_BUFFER_OUT_CAN_RO_ALARM, (U08*)&data, sizeof( ALARM_ID_DATA_PUBLISH_T ) ); #endif - } - } - } - else - { + } + } + } + else + { #ifdef _TD_ SET_ALARM_WITH_2_U32_DATA( ALARM_ID_TD_SOFTWARE_FAULT, SW_FAULT_ID_ALARM_MGMT_INVALID_ALARM_TO_CLEAR2, (U32)alarm ) #endif @@ -273,7 +273,7 @@ #ifdef _RO_ SET_ALARM_WITH_2_U32_DATA( ALARM_ID_RO_SOFTWARE_FAULT, SW_FAULT_ID_ALARM_MGMT_INVALID_ALARM_TO_CLEAR2, (U32)alarm ) #endif - } + } } /*********************************************************************//** @@ -306,18 +306,18 @@ alarmIsDetected[ alarm ] = detected; } -/*********************************************************************//** - * @brief - * The isAlarmActive function determines whether a given alarm is currently +/*********************************************************************//** + * @brief + * The isAlarmActive function determines whether a given alarm is currently * active. - * @details \b Alarm: ALARM_ID_XX_SOFTWARE_FAULT if given alarm ID is invalid. - * @details \b Inputs: alarmIsActive[] - * @details \b Outputs: none - * @param alarm ID of alarm to check active status for - * @return TRUE if given alarm is active, FALSE if not - *************************************************************************/ -BOOL isAlarmActive( ALARM_ID_T alarm ) -{ + * @details \b Alarm: ALARM_ID_XX_SOFTWARE_FAULT if given alarm ID is invalid. + * @details \b Inputs: alarmIsActive[] + * @details \b Outputs: none + * @param alarm ID of alarm to check active status for + * @return TRUE if given alarm is active, FALSE if not + *************************************************************************/ +BOOL isAlarmActive( ALARM_ID_T alarm ) +{ BOOL result = FALSE; if ( alarm < NUM_OF_ALARM_IDS ) @@ -335,9 +335,9 @@ #ifdef _RO_ SET_ALARM_WITH_2_U32_DATA( ALARM_ID_RO_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_ALARM_ID_REFERENCED1, (U32)alarm ) #endif - } - - return result; + } + + return result; } /*********************************************************************//** @@ -411,25 +411,25 @@ return result; } - -/************************************************************************* - * TEST SUPPORT FUNCTIONS - *************************************************************************/ - - -/*********************************************************************//** - * @brief - * The testAlarmStateOverride function overrides the state of the - * alarm active state for a given alarm with the alarm management with - * a given active state. - * @details \b Inputs: none - * @details \b Outputs: alarm activated or cleared + +/************************************************************************* + * TEST SUPPORT FUNCTIONS + *************************************************************************/ + + +/*********************************************************************//** + * @brief + * The testAlarmStateOverride function overrides the state of the + * alarm active state for a given alarm with the alarm management with + * a given active state. + * @details \b Inputs: none + * @details \b Outputs: alarm activated or cleared * @param message Override message from Dialin which includes an ID of * the alarm to override and the state to override the alarm to. - * @return TRUE if override successful, FALSE if not - *************************************************************************/ -BOOL testAlarmStateOverride( MESSAGE_T *message ) -{ + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testAlarmStateOverride( MESSAGE_T *message ) +{ BOOL result = FALSE; TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &payload ); @@ -439,30 +439,30 @@ { U32 alarmID = payload.index; BOOL state = (BOOL)payload.state.u32; - - if ( alarmID < NUM_OF_ALARM_IDS ) - { - if ( TRUE == state ) - { - activateAlarmNoData( (ALARM_ID_T)alarmID ); - } - else + + if ( alarmID < NUM_OF_ALARM_IDS ) + { + if ( TRUE == state ) { -#ifdef _TD_ + activateAlarmNoData( (ALARM_ID_T)alarmID ); + } + else + { +#ifdef _TD_ clearAlarmTD( (ALARM_ID_T)alarmID ); -#endif +#endif #ifdef _DD_ clearAlarmDD( (ALARM_ID_T)alarmID ); #endif #ifdef _RO_ clearAlarmRO( (ALARM_ID_T)alarmID ); #endif - } - result = TRUE; + } + result = TRUE; } - } - - return result; -} - + } + + return result; +} + /**@}*/