#ifndef _EVENTMANAGER_H_ #define _EVENTMANAGER_H_ #define YK 0 // 遥控 #define BACK 1 // 恢复正常 #define UPALARM 2 // 上限告警 #define LOWALARM 3 // 下限告警 #define ALARM 4 // 告警 #define UPPER_LIMIT_ID 1000 // 上限告警 #define LOWER_LIMIT_ID 1001 // 下限告警 #define MAX_EQUIP_DESC 255 static char* EVENTTYPE[] = { "遥控", "恢复正常", "上限告警", "下限告警", "告警", }; class USCADADLLEXPORT CAlarmEvent : public CObject { public: CAlarmEvent(); SYSTEMTIME time; CString strContent; CString strWarningTime; CString strUid; int nVarID; double dbParaValue; int nUpperLimit; int nLowerLimit; int nNormalState; int nAlarmState; int nWarningLevel; int nStatus;//0:报警 1:恢复正常 int nAlarmIndex;//报警索引 int nNoticeDelay;//通知延时 int nDealStatus;//处理状态 0:未处理 1:处理过时 2:不处理 3:确认 int nGet;//0:没有从列表取出 1:已经取出 int nSoundTimes;//声音播放次数 }; typedef CTypedPtrList CEventList; class USCADADLLEXPORT CEventServer { public: CEventServer(); ~CEventServer(); void AddNewEvent(CAlarmEvent* event); CAlarmEvent* GetNewEvent(); CAlarmEvent* GetUnconfirmEvent(); void DeleteOneEvent(CString strUid, int nVarID, int nStatus); void DeleteOneEvent(int iIndex); void ClearAllEvent(); void Validate(bool valid); CAlarmEvent* GetOneEvent(int iIndex); void SetOneEventInfo(int iIndex, int nIsSound, int nColor); void AddAlarmEvent(CString strDevUid, int nVarID, int nStatus, CString strContent, double dbParaValue, int nUpperLimit, int nLowerLimit, int nNormalState, int nAlarmState, int nWarningLevel, int nAlarmIndex, int nNoticeDelay, CString strWarningTime); CAlarmEvent* GetUnconfirmEventForLoopPlaySound(CAlarmEvent *pEvent); void SetEventStatus2Config(CString strDevUid, int nVarID, int nAlarmIndex);//把事件的处理状态设为已经确认 public: CEventList eventList; bool m_bValid; private: CRITICAL_SECTION m_cs; }; #endif