/************************************************************************** * * Copyright (c) 2019-2019 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file AlarmMgmt.h * * @date 07-Nov-2019 * @author S. Nash * * @brief header file for Alarm Management service module. * **************************************************************************/ #ifndef __ALARM_MGMT_H__ #define __ALARM_MGMT_H__ // ********** public definitions ********** typedef enum Alarm_List { ALARM_ID_NO_ALARM = 0, ALARM_ID_SOFTWARE_FAULT, NUM_OF_ALARM_IDS } ALARM_ID_T; typedef enum Alarm_Priorities { ALARM_PRIORITY_NONE = 0, ALARM_PRIORITY_LOW, ALARM_PRIORITY_MEDIUM, ALARM_PRIORITY_HIGH, NUM_OF_ALARM_PRIORITIES } ALARM_PRIORITY_T; typedef enum Alarm_Data_Types { ALARM_DATA_TYPE_NONE = 0, ALARM_DATA_TYPE_U32, ALARM_DATA_TYPE_S32, ALARM_DATA_TYPE_F32, ALARM_DATA_TYPE_BOOL, NUM_OF_ALARM_DATA_TYPES } ALARM_DATA_TYPES_T; #pragma pack(push,4) typedef struct { U32 data; } ALARM_DATA_U32_T; typedef struct { S32 data; } ALARM_DATA_S32_T; typedef struct { F32 data; } ALARM_DATA_F32_T; typedef struct { BOOL data; } ALARM_DATA_BOOL_T; typedef union { ALARM_DATA_U32_T uInt; ALARM_DATA_S32_T sInt; ALARM_DATA_F32_T flt; ALARM_DATA_BOOL_T bln; } ALARM_DATAS_T; typedef struct { ALARM_DATA_TYPES_T dataType; ALARM_DATAS_T data; } ALARM_DATA_T; #pragma pack(pop) // ********** public function prototypes ********** void initAlarmMgmt( void ); void execAlarmMgmt( void ); void activateAlarm( ALARM_ID_T alarm ); void activateAlarm1Data( ALARM_ID_T alarm, ALARM_DATA_T alarmData ); void activateAlarm2Data( ALARM_ID_T alarm, ALARM_DATA_T alarmData1, ALARM_DATA_T alarmData2 ); void clearAlarm( ALARM_ID_T alarm ); BOOL testSetAlarmStateOverride( U32 alarmID, BOOL value ); BOOL testResetAlarmStateOverride( U32 alarmID ); BOOL testSetAlarmStartOverride( U32 alarmID, U32 value ); BOOL testResetAlarmStartOverride( U32 alarmID ); #endif