1 /******************************************************************************
2 ###############################################################################
3 # Copyright (c) [2017-2020] [ICT/CAS] #
4 # Licensed under the ORAN Software License v1.0 (License) #
5 ###############################################################################
6 ******************************************************************************/
9 #ifndef __PLAT_ALARM_H__
10 #define __PLAT_ALARM_H__
11 #include "vos_types.h"
16 #endif /* __cplusplus */
18 #include "vos_common.h"
23 #define TRAP_OID_LEN (32)
25 /** 告警源信息中index最大个数 */
26 #define ALARM_INDEX_MAX_LEN 5
28 /** 告警源信息中所携带数据大小 *sizeof(ULONG) */
29 #define MAXLEN_EVENT_DATA 16
32 typedef union alarmSrc_s{
33 ULONG alarmSrcData[MAXLEN_EVENT_DATA]; ///< 告警数据
34 }__attribute__((packed)) alarmSrc_t;
40 typedef struct alarmMsg_s
42 UCHAR alarmType; ///< 告警类型
43 UCHAR alarmId; ///< 告警标识:用于映射告警描述
44 alarmSrc_t alarmSrc; ///< 告警源信息
45 }__attribute__((packed))alarmMsg_t;
55 }__attribute__((packed)) logDateAndTime_t;
61 ULONG sequenceID; ///< 告警序号
62 UCHAR alarmType; ///< 告警类型
63 UCHAR alarmId; ///< 告警标识:用于映射告警描述
64 alarmSrc_t alarmSrc; ///< 告警源
65 logDateAndTime_t alarmTime; ///< 告警发生时间
66 logDateAndTime_t clearTime; ///< 告警清除时间
67 UCHAR alarmMskFlg; ///< 告警屏蔽标记
68 UCHAR alarmInvFlg; ///< 告警翻转标记
69 UCHAR reserved[2]; ///< 保留字段
70 } __attribute__((packed)) alm_status_t;
73 * 通用告警上报API,使用变长参数,变长参数只支持ULONG 和char * 字符串。
75 * @param[in] alarmType 告警类型
76 * @param[in] alarmId 告警ID
77 * @return VOS_OK - 成功,VOS_ERROR- 失败
79 LONG alarm_commonReport( LONG alarmType, LONG alarmId, ... );
83 * 根据 alarmType 和 alarmId 获取告警 TrapOid。
84 * @param[in ] alarmType 告警类型
85 * @param[in ] alarmId 告警ID
86 * @param[out] pTrapOid 存放oid 的数组
87 * @param[out] pOidLen oid长度
88 * @return 成功返回 VOS_OK ,失败返回 其他
90 LONG alarm_TrapOid_get( ULONG alarmType, ULONG alarmId, ULONG pTrapOid[TRAP_OID_LEN], LONG *pOidLen );
94 * 根据 alarmType 和 alarmId 获取告警 level。
95 * @param[in] alarmType 告警类型
96 * @param[in] alarmId 告警ID
97 * @return 成功返回告警 level,失败返回 0
99 ULONG alarm_Level_get( ULONG alarmType, ULONG alarmId );
103 * 根据 alarmType 和 alarmId 获取告警 trap使能。
104 * @param[in] alarmType 告警类型
105 * @param[in] alarmId 告警ID
106 * @return 返回告警 trap是否使能
108 ULONG alarm_TrapEnable_get( ULONG alarmType, ULONG alarmId );
112 * 根据 alarmType 和 alarmId 获取告警 index个数。
113 * @param[in] alarmType 告警类型
114 * @param[in] alarmId 告警ID
115 * @return 返回告警 index个数
117 ULONG alarm_IndexNum_get( ULONG alarmType, ULONG alarmId );
121 * 根据 alarmType 和 alarmId 获取告警 参数个数。
122 * @param[in] alarmType 告警类型
123 * @param[in] alarmId 告警ID
126 ULONG alarm_ParaNum_get( ULONG alarmType, ULONG alarmId );
130 * 根据 alarmType 和 alarmId 获取告警 index打印格式。
131 * @param[in ] alarmType 告警类型
132 * @param[in ] alarmId 告警ID
133 * @param[out] fmt index打印格式
134 * @return 成功返回 VOS_OK ,失败返回 其他
136 LONG alarm_IndexFormat_get( ULONG alarmType, ULONG alarmId ,CHAR *fmt);
140 * 根据 alarmType 和 alarmId 获取告警 参数打印格式。
141 * @param[in ] alarmType 告警类型
142 * @param[in ] alarmId 告警ID
143 * @param[out] fmt 参数打印格式
144 * @return 成功返回 VOS_OK ,失败返回 其他
146 LONG alarm_ParaFormat_get( ULONG alarmType, ULONG alarmId ,CHAR *fmt);
151 * 根据 alarmType 和 alarmId 获取告警 priority
152 * @param[in] alarmType 告警类型
153 * @param[in] alarmId 告警ID
154 * @return 成功返回告警 priority,失败返回 0
156 ULONG alarm_Priority_get( ULONG alarmType, ULONG alarmId );
159 * 根据 alarmType 和 alarmId 获取告警 PartnerId
160 * @param[in] alarmType 告警类型
161 * @param[in] alarmId 告警ID
162 * @return 成功返回告警 PartnerId,失败返回 0
164 ULONG alarm_PartnerId_get( ULONG alarmType, ULONG alarmId );
168 * @param[in] alarmType 告警类型
169 * @param[in] alarmId 告警ID
170 * @return 为事件返回真,为告警返回false
172 BOOL alarm_is_event( ULONG alarmType, ULONG alarmId );
176 * @param[in] pAlmMsg 告警数据
177 * @param[in] logDesc 存放转换后的结果
178 * @param[in] size logDesc 的大小,建议大小512字节
179 * @return 返回指向转换结果的指针(同logDesc)
181 CHAR *alarmDataToStrings( alarmMsg_t *pAlmMsg, CHAR *logDesc,LONG size );
185 * @param[out] pItem 告警条目
186 * @return 成功返回 VOS_OK ,失败返回 其他
188 LONG alarm_alm_cur_list_get_first(alm_status_t *pItem);
193 * @param[in ] pItem 当前条目
194 * @param[out] pItem 下一条目
195 * @return 成功返回 VOS_OK ,失败返回 其他
197 LONG alarm_alm_cur_list_get_next(alm_status_t *pItem);
202 * @param[out] pItem 告警条目
203 * @return 成功返回 VOS_OK ,失败返回 其他
205 LONG alarm_alm_hist_list_get_first(alm_status_t *pItem);
210 * @param[in ] pItem 当前条目
211 * @param[out] pItem 下一条目
212 * @return 成功返回 VOS_OK ,失败返回 其他
214 LONG alarm_alm_hist_list_get_next(alm_status_t *pItem);
218 * @param[in ] pItem 当前条目
219 * @return 成功返回 VOS_OK ,失败返回 其他
221 LONG alarm_alm_event_list_get_first(alm_status_t *pItem);
226 * @param[in ] pItem 当前条目
227 * @param[out] pItem 下一条目
228 * @return 成功返回 VOS_OK ,失败返回 其他
230 LONG alarm_alm_event_list_get_next(alm_status_t *pItem);
235 #endif /* __cplusplus */
236 #endif /* __PLAT_ALARM_H__ */