#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