Data.h 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. #ifndef _DATA_H_
  2. #define _DATA_H_
  3. #include <list>
  4. using namespace std;
  5. //---------------------------------------------- CBaseVar ----------
  6. class CBaseVar:public CObject
  7. {
  8. #define SPECIAL_VAR_TYPE_MIN_ID 10000
  9. #define SPECIAL_VAR_TYPE_MAX_ID 11000
  10. protected:
  11. DECLARE_SERIAL(CBaseVar);
  12. CBaseVar();
  13. public:
  14. CBaseVar &operator=(CBaseVar& member);
  15. virtual void Serialize(CArchive& ar);
  16. virtual void Fresh(bool bAlarm = true){};
  17. public:
  18. int m_nVarID; // 变量ID
  19. int m_nVarChildID; // 变量子ID(用于告警信息;比如空调设备:1内机;2外机;)
  20. int m_nVarItemID; // 变量相应bit位的ID
  21. int m_nVarTypeID; // 变量类型ID
  22. int m_nDevID; // 厂家设备ID
  23. CString m_strVarUID; // 变量UID
  24. CString m_strName; // 名称;
  25. CString m_strDesc; // 描述;
  26. int m_nMinValues; // 最小范围值
  27. int m_nMaxValues; // 最大范围值
  28. int m_nMaxConvtRate; // 最大转换比例
  29. int m_nMinConvtRate; // 最小转换比例
  30. //===========================================================
  31. // 新版本转换系数,改成浮点型
  32. //int m_nCoefficient; // 转换系数,用于各种需要转换系数来计算得到数据的功能;比如:漏水中的读电缆长度的功能中,
  33. // // 电缆长度是根据转换系数来计算后得到的电缆长度数据;电缆长度=读到的数据/10;它的系数是10。
  34. int m_nUpperLimit; // 上限阀值
  35. int m_nLowerLimit; // 下限阀值
  36. int m_nNormalState; // 正常状态
  37. int m_nCollectFreq; // 采集频率
  38. int m_nRearm; // 校正值
  39. int m_nOffset; // 偏移量
  40. int m_nPurview; // 读写权限,0:只读,1:只写,2:读写
  41. BOOL m_bIsDDE; // 是否允许DDE访问
  42. BOOL m_bRecCurve; // 记载历史曲线记录
  43. BOOL m_bRealtimeFlag; // 是否实时去采集数据,TURE 实时采集,FALSE 只采集一次
  44. BOOL m_bIsSave; // 是否保存历史记录
  45. int m_nFuncCode; // 功能码
  46. int m_nRegStartAddr; // 寄存器起始地址
  47. int m_nRegNum; // 请求寄存器的个数
  48. int m_nDataLen; // 变量的数据长度
  49. int m_nWaringLevel; // 报警级别
  50. CString m_strSetValue; // 设定值
  51. CString m_strUnit; // 单位
  52. CString m_strOnDesc; // 开的描述
  53. CString m_strOffDesc; // 关的描述
  54. CString m_strRelatePage; // 关联Web页面
  55. CString m_strFields; // SNMP域
  56. CString m_strSnmpOid; // SNMP对象OID
  57. CString m_strRs232Cmd; // 串口232请求命令
  58. CString m_strRs232Type; // 串口232请求类型
  59. int m_nRs232Index; // 串口232数据索引
  60. //===============================================
  61. // 新增成员变量 in 2010-04-07
  62. float m_fCoef; // 转换系数,用于各种需要转换系数来计算得到数据的功能;比如:漏水中的读电缆长度的功能中,
  63. // 电缆长度是根据转换系数来计算后得到的电缆长度数据;电缆长度=读到的数据/10;它的系数是10。
  64. int m_nIdentifyTime; // 辨识时间
  65. int m_nRedetectTime; // 重新检测等待时间
  66. BOOL m_bIsNormalAlarm; // 恢复正常是否触发远程报警
  67. int m_nStartBit; // 变量Bit起始位
  68. int m_nEndBit; // 变量Bit终止位
  69. int m_nStatusListNum; // 变量状态的size
  70. list<int> m_listStatusID; // 状态ID列表
  71. list<CString> m_listStatusDesc; // 报警状态描述
  72. CString m_strReserved1; // 预留1
  73. CString m_strReserved2; // 预留2
  74. CString m_strReserved3; // 预留3
  75. CString m_strReserved4; // 预留4
  76. CString m_strReserved5; // 预留5
  77. CString m_strReserved6; // 预留6
  78. CString m_strReserved7; // 预留7
  79. CString m_strReserved8; // 预留8
  80. CString m_strReserved9; // 预留9
  81. CString m_strReserved10; // 预留10
  82. int m_nReserved1; // 预留1
  83. int m_nReserved2; // 预留2
  84. int m_nReserved3; // 预留3
  85. int m_nReserved4; // 预留4
  86. int m_nReserved5; // 预留5
  87. int m_nReserved6; // 预留6
  88. int m_nReserved7; // 预留7
  89. int m_nReserved8; // 预留8
  90. int m_nReserved9; // 预留9
  91. int m_nReserved10; // 预留10
  92. bool m_bReserved1; // 预留1
  93. bool m_bReserved2; // 预留2
  94. bool m_bReserved3; // 预留3
  95. bool m_bReserved4; // 预留4
  96. bool m_bReserved5; // 预留5
  97. bool m_bReserved6; // 预留6
  98. bool m_bReserved7; // 预留7
  99. bool m_bReserved8; // 预留8
  100. bool m_bReserved9; // 预留9
  101. bool m_bReserved10; // 预留10
  102. };
  103. typedef CTypedPtrArray<CObArray, CBaseVar*> CBaseVarArray;
  104. //---------------------------------------------- CAnalog ----------
  105. class USCADADLLEXPORT CAnalog:public CBaseVar
  106. {
  107. protected:
  108. DECLARE_SERIAL(CAnalog);
  109. CAnalog();
  110. public:
  111. CAnalog &operator=(CAnalog& analog);
  112. virtual void Serialize(CArchive& ar);
  113. virtual void Fresh();
  114. virtual void SetValue(float fValue);
  115. private:
  116. void GetVarContent();
  117. void GetSpecialVarContent();
  118. unsigned int CalcCheckSum( void *pData, unsigned int nSize );
  119. public:
  120. CDevice* m_pDevice; //所属设备
  121. float m_fData; // 当前运行值;
  122. BOOL m_bSave; // 存盘否;
  123. BYTE* addr;
  124. BOOL bConfirm;
  125. // 历史数据
  126. int m_nMonth;
  127. int m_nDay;
  128. int m_nMinCount;
  129. int m_nMinutes;
  130. float m_fDayMax;
  131. float m_fDayAvg;
  132. float m_fDayMin;
  133. };
  134. typedef CTypedPtrArray<CObArray, CAnalog*> CAnalogArray;
  135. #endif