Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r482f4465ccdb813922de506bf780e29f4fb2f84b -r99f108ac337a30a2407410ca8be9a990cee9758a --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 482f4465ccdb813922de506bf780e29f4fb2f84b) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 99f108ac337a30a2407410ca8be9a990cee9758a) @@ -31,13 +31,13 @@ const ALARM_DATA_T blankAlarmData = { ALARM_DATA_TYPE_NONE, 0 }; ///< A blank alarm data record for alarms that do not include alarm data when triggered. // ********** private data ********** + +static OVERRIDE_U32_T alarmIsActive[ NUM_OF_ALARM_IDS ]; ///< Array of current state of each alarm -DATA_ARRAY_DECL( BOOL, AlarmStates, NUM_OF_ALARM_IDS, alarmIsActive ); ///< Array of current state of each alarm - // ********** private function prototypes ********** static void activateAlarm( ALARM_ID_T alarm ); -static DATA_ARRAY_GET_PROTOTYPE( BOOL, getAlarmActive, alarmID ); +static BOOL getAlarmActive( U32 alarmID ); /*********************************************************************//** * @brief @@ -266,9 +266,27 @@ * @param alarmID ID of alarm to check * @return TRUE if given alarm is active, FALSE if not *************************************************************************/ -static DATA_ARRAY_GET( BOOL, getAlarmActive, alarmID, NUM_OF_ALARM_IDS-1, alarmIsActive, TRUE ) +static BOOL getAlarmActive( U32 alarmID ) +{ + BOOL result = TRUE; + if ( alarmID < NUM_OF_ALARM_IDS ) + { + if ( OVERRIDE_KEY == alarmIsActive[ alarmID ].override ) + { + result = (BOOL)alarmIsActive[ alarmID ].ovData; + } + else + { + result = (BOOL)alarmIsActive[ alarmID ].data; + } + } + else + { + activateAlarmNoData( ALARM_ID_DG_SOFTWARE_FAULT ); + } + return result; +} - /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/ @@ -292,7 +310,7 @@ { if ( TRUE == isTestingActivated() ) { - if ( TRUE == state ) + if ( TRUE == (BOOL)state ) { activateAlarmNoData( (ALARM_ID_T)alarmID ); }