EventManager.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #ifndef _EVENTMANAGER_H_
  2. #define _EVENTMANAGER_H_
  3. #define YK 0 // 遥控
  4. #define BACK 1 // 恢复正常
  5. #define UPALARM 2 // 上限告警
  6. #define LOWALARM 3 // 下限告警
  7. #define ALARM 4 // 告警
  8. #define UPPER_LIMIT_ID 1000 // 上限告警
  9. #define LOWER_LIMIT_ID 1001 // 下限告警
  10. #define MAX_EQUIP_DESC 255
  11. static char* EVENTTYPE[] =
  12. {
  13. "遥控",
  14. "恢复正常",
  15. "上限告警",
  16. "下限告警",
  17. "告警",
  18. };
  19. class USCADADLLEXPORT CAlarmEvent : public CObject
  20. {
  21. public:
  22. CAlarmEvent();
  23. SYSTEMTIME time;
  24. CString strContent;
  25. CString strWarningTime;
  26. CString strUid;
  27. int nVarID;
  28. double dbParaValue;
  29. int nUpperLimit;
  30. int nLowerLimit;
  31. int nNormalState;
  32. int nAlarmState;
  33. int nWarningLevel;
  34. int nStatus;//0:报警 1:恢复正常
  35. int nAlarmIndex;//报警索引
  36. int nNoticeDelay;//通知延时
  37. int nDealStatus;//处理状态 0:未处理 1:处理过时 2:不处理 3:确认
  38. int nGet;//0:没有从列表取出 1:已经取出
  39. int nSoundTimes;//声音播放次数
  40. };
  41. typedef CTypedPtrList<CObList, CAlarmEvent*> CEventList;
  42. class USCADADLLEXPORT CEventServer
  43. {
  44. public:
  45. CEventServer();
  46. ~CEventServer();
  47. void AddNewEvent(CAlarmEvent* event);
  48. CAlarmEvent* GetNewEvent();
  49. CAlarmEvent* GetUnconfirmEvent();
  50. void DeleteOneEvent(CString strUid, int nVarID, int nStatus);
  51. void DeleteOneEvent(int iIndex);
  52. void ClearAllEvent();
  53. void Validate(bool valid);
  54. CAlarmEvent* GetOneEvent(int iIndex);
  55. void SetOneEventInfo(int iIndex, int nIsSound, int nColor);
  56. void AddAlarmEvent(CString strDevUid, int nVarID, int nStatus, CString strContent, double dbParaValue,
  57. int nUpperLimit, int nLowerLimit, int nNormalState, int nAlarmState, int nWarningLevel, int nAlarmIndex, int nNoticeDelay, CString strWarningTime);
  58. CAlarmEvent* GetUnconfirmEventForLoopPlaySound(CAlarmEvent *pEvent);
  59. void SetEventStatus2Config(CString strDevUid, int nVarID, int nAlarmIndex);//把事件的处理状态设为已经确认
  60. public:
  61. CEventList eventList;
  62. bool m_bValid;
  63. private:
  64. CRITICAL_SECTION m_cs;
  65. };
  66. #endif