Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r4d7d40a27130dc813d653f044cbb856b1b7d8481 -r2fea76e972a450a97c74b2a9f627095032a3b586 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 4d7d40a27130dc813d653f044cbb856b1b7d8481) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 2fea76e972a450a97c74b2a9f627095032a3b586) @@ -16,7 +16,8 @@ ***************************************************************************/ #include "AlarmMgmt.h" -#include "OperationModes.h" +#include "OperationModes.h" +#include "PersistentAlarm.h" #include "SystemCommMessages.h" #include "TaskGeneral.h" #include "Timers.h" @@ -279,6 +280,31 @@ return result; } +/*********************************************************************//** + * @brief + * The checkPersistentAlarm function triggers/clears an alarm if an alarm condition + * has persisted/cleared over given time limit. + * @details Inputs: none + * @details Outputs: checks whether an alarm is triggered or an alarm condition is cleared + * @param alarmID ID of alarm to check + * @param isErrorOccured Flag indicates alarm condition is active or not + * @param data alarm data + * @param limit alarm condition limit + * @return TRUE if given alarm is active, FALSE if not + *************************************************************************/ +void checkPersistentAlarm( ALARM_ID_T alarm, BOOL const isErrorOccured, F32 const data, F32 const limit ) +{ + if ( TRUE == isPersistentAlarmTriggered( alarm, isErrorOccured ) ) + { + SET_ALARM_WITH_2_F32_DATA( alarm, data, limit ); + } + + if ( TRUE == isPersistentAlarmConditionCleared( alarm, isErrorOccured ) ) + { + clearAlarmCondition( alarm ); + } +} + /************************************************************************* * TEST SUPPORT FUNCTIONS