#ifndef _DATA_H_ #define _DATA_H_ #include using namespace std; //---------------------------------------------- CBaseVar ---------- class CBaseVar:public CObject { #define SPECIAL_VAR_TYPE_MIN_ID 10000 #define SPECIAL_VAR_TYPE_MAX_ID 11000 protected: DECLARE_SERIAL(CBaseVar); CBaseVar(); public: CBaseVar &operator=(CBaseVar& member); virtual void Serialize(CArchive& ar); virtual void Fresh(bool bAlarm = true){}; public: int m_nVarID; // 变量ID int m_nVarChildID; // 变量子ID(用于告警信息;比如空调设备:1内机;2外机;) int m_nVarItemID; // 变量相应bit位的ID int m_nVarTypeID; // 变量类型ID int m_nDevID; // 厂家设备ID CString m_strVarUID; // 变量UID CString m_strName; // 名称; CString m_strDesc; // 描述; int m_nMinValues; // 最小范围值 int m_nMaxValues; // 最大范围值 int m_nMaxConvtRate; // 最大转换比例 int m_nMinConvtRate; // 最小转换比例 //=========================================================== // 新版本转换系数,改成浮点型 //int m_nCoefficient; // 转换系数,用于各种需要转换系数来计算得到数据的功能;比如:漏水中的读电缆长度的功能中, // // 电缆长度是根据转换系数来计算后得到的电缆长度数据;电缆长度=读到的数据/10;它的系数是10。 int m_nUpperLimit; // 上限阀值 int m_nLowerLimit; // 下限阀值 int m_nNormalState; // 正常状态 int m_nCollectFreq; // 采集频率 int m_nRearm; // 校正值 int m_nOffset; // 偏移量 int m_nPurview; // 读写权限,0:只读,1:只写,2:读写 BOOL m_bIsDDE; // 是否允许DDE访问 BOOL m_bRecCurve; // 记载历史曲线记录 BOOL m_bRealtimeFlag; // 是否实时去采集数据,TURE 实时采集,FALSE 只采集一次 BOOL m_bIsSave; // 是否保存历史记录 int m_nFuncCode; // 功能码 int m_nRegStartAddr; // 寄存器起始地址 int m_nRegNum; // 请求寄存器的个数 int m_nDataLen; // 变量的数据长度 int m_nWaringLevel; // 报警级别 CString m_strSetValue; // 设定值 CString m_strUnit; // 单位 CString m_strOnDesc; // 开的描述 CString m_strOffDesc; // 关的描述 CString m_strRelatePage; // 关联Web页面 CString m_strFields; // SNMP域 CString m_strSnmpOid; // SNMP对象OID CString m_strRs232Cmd; // 串口232请求命令 CString m_strRs232Type; // 串口232请求类型 int m_nRs232Index; // 串口232数据索引 //=============================================== // 新增成员变量 in 2010-04-07 float m_fCoef; // 转换系数,用于各种需要转换系数来计算得到数据的功能;比如:漏水中的读电缆长度的功能中, // 电缆长度是根据转换系数来计算后得到的电缆长度数据;电缆长度=读到的数据/10;它的系数是10。 int m_nIdentifyTime; // 辨识时间 int m_nRedetectTime; // 重新检测等待时间 BOOL m_bIsNormalAlarm; // 恢复正常是否触发远程报警 int m_nStartBit; // 变量Bit起始位 int m_nEndBit; // 变量Bit终止位 int m_nStatusListNum; // 变量状态的size list m_listStatusID; // 状态ID列表 list m_listStatusDesc; // 报警状态描述 CString m_strReserved1; // 预留1 CString m_strReserved2; // 预留2 CString m_strReserved3; // 预留3 CString m_strReserved4; // 预留4 CString m_strReserved5; // 预留5 CString m_strReserved6; // 预留6 CString m_strReserved7; // 预留7 CString m_strReserved8; // 预留8 CString m_strReserved9; // 预留9 CString m_strReserved10; // 预留10 int m_nReserved1; // 预留1 int m_nReserved2; // 预留2 int m_nReserved3; // 预留3 int m_nReserved4; // 预留4 int m_nReserved5; // 预留5 int m_nReserved6; // 预留6 int m_nReserved7; // 预留7 int m_nReserved8; // 预留8 int m_nReserved9; // 预留9 int m_nReserved10; // 预留10 bool m_bReserved1; // 预留1 bool m_bReserved2; // 预留2 bool m_bReserved3; // 预留3 bool m_bReserved4; // 预留4 bool m_bReserved5; // 预留5 bool m_bReserved6; // 预留6 bool m_bReserved7; // 预留7 bool m_bReserved8; // 预留8 bool m_bReserved9; // 预留9 bool m_bReserved10; // 预留10 }; typedef CTypedPtrArray CBaseVarArray; //---------------------------------------------- CAnalog ---------- class USCADADLLEXPORT CAnalog:public CBaseVar { protected: DECLARE_SERIAL(CAnalog); CAnalog(); public: CAnalog &operator=(CAnalog& analog); virtual void Serialize(CArchive& ar); virtual void Fresh(); virtual void SetValue(float fValue); private: void GetVarContent(); void GetSpecialVarContent(); unsigned int CalcCheckSum( void *pData, unsigned int nSize ); public: CDevice* m_pDevice; //所属设备 float m_fData; // 当前运行值; BOOL m_bSave; // 存盘否; BYTE* addr; BOOL bConfirm; // 历史数据 int m_nMonth; int m_nDay; int m_nMinCount; int m_nMinutes; float m_fDayMax; float m_fDayAvg; float m_fDayMin; }; typedef CTypedPtrArray CAnalogArray; #endif