RTDatOpr.h
上传用户:shtiemo
上传日期:2017-12-29
资源大小:163k
文件大小:6k
开发平台:

Visual C++

  1. //#include "MSDB.h"
  2. #include "eventdll.h"
  3. #include "Commdef.h"
  4. #define INVALID_SHEET -1
  5. #define NO_SHEET 10
  6. #define MEM_ERROR 20
  7. #define DBSERVER_ERROR 30
  8. #define SBCOM_ERROR 40
  9. #define WAIT_SHEET_TIMEOUT 50
  10. #define WAIT_SHEET_ABANDONED 60
  11. #define WAIT_SHEET_FAILED 70
  12. #define GET_DATA_OK 1
  13. #define MAX_ID_NUM 140 //定单最大数为:100
  14. #define KWHWTYPE unsigned long
  15. typedef union _m_DeviceInfo
  16. {
  17. BYTE BuYong;
  18.    RETYCV m_RetYcv; //1--遥测(包括属性);
  19.   YCTYPE m_Ycv; //2--仅遥测值;
  20.    MAXMIN m_MaxMin; //3--最大最小值及发生时间
  21. RECTIME m_RecTime; //4--发生时间(时,分,秒)(越限时累)
  22. SMALLINT m_AQT; //5--安全天
  23. RECCNT m_RecCnt; //6--越限次数累计(计数器)
  24. REAL m_RealRate; //7--合格率 4 bytes
  25. TINYINT m_TinyInt; //8--单字节
  26. SMALLINT m_SmallInt; //9--双字节
  27.   RETYXV m_RetYxv; //10--遥信(包括属性)
  28.    DBYXV m_DbYxv; //11--保护或虚拟量
  29. RETJDV m_RetJdv; //12--遥信接地返回标志    //1998.3.16
  30. KWHTYPE m_RetKwhv; //13--电度值(差值)
  31. KWHWTYPE m_RetwKwhv; //14--电度窗口值
  32. DWORD m_wBYQFJT; //15 变压器分接头
  33. BYTE m_byBYQFJT; //16 变压器分接头
  34. BYTE m_byJDType; //17 接地状态牌
  35. BYTE m_byJXType; //18 检修状态牌
  36. BYTE m_byBYType; //19 备用牌
  37. TIMESTAMP_STRUCT m_HisTime; //20 历史时间 
  38.  } DEVICEVALUE, *PDEVICEVALUE; 
  39. //电网部件YC数据结构
  40. typedef struct _tagPartRTData
  41. {
  42. BYTE wPartTypeID; // 部件类型
  43. WORD wPartID; // 部件ID
  44. BYTE wPartParaID; // 部件参数ID
  45. float fYCData; // YC数据
  46. DWORD dwTap; // LTC Tap Position
  47. DWORD dwKWH; // KWH数据*100(电度数据的100倍,保留2位小数)
  48. BYTE byYXVal; // 遥信值(开关,刀闸,保护,虚拟状态)
  49. }PartRTData, LPPartRTData;
  50. //电网部件YC数据结构菜单
  51. typedef struct _tagRTMenuData
  52. {
  53. WORD wIDNum; //部件数
  54. PartRTData PartsRtData[MAX_ID_NUM];
  55. }RTMenuData, *LPRTMenuData;
  56. typedef struct _tagPWRNETPARA
  57. {
  58. char szName[64]; //部件类型
  59. float fPCoef;
  60. float fQCoef;
  61. float fFCoef;
  62. }PWRNETPARA, *LPPWRNETPARA;
  63. typedef struct _tagSTATIONPARA
  64. {
  65. char szName[64]; //部件类型
  66. int ID;
  67. float fPCoef;
  68. float fQCoef;
  69. float fFCoef;
  70. }STATIONPARA, *LPSTATIONPARA;
  71. typedef struct _tagCTPARA
  72. {
  73. char szName[64]; //部件类型
  74. int ID;
  75. float fPCoef;
  76. float fQCoef;
  77. float fPOffSet;
  78. float fQOffSet;
  79. float fICoef;
  80. float fIOffSet;
  81. float fIACoef;
  82. float fIBCoef;
  83. float fICCoef;
  84. float fIAOffSet;
  85. float fIBOffSet;
  86. float fICOffSet;
  87. }CTPARA, *LPCTPARA;
  88. typedef struct _tagPTPARA
  89. {
  90. char szName[64]; //部件类型
  91. int ID;
  92. float fVACoef;
  93. float fVBCoef;
  94. float fVCCoef;
  95. float fVAOffSet;
  96. float fVBOffSet;
  97. float fVCOffSet;
  98. float fVXCoef;
  99. float fVXOffSet;
  100. float fVABCoef;
  101. float fVABOffSet;
  102. float fVACCoef;
  103. float fVACOffSet;
  104. float fVBCCoef;
  105. float fVBCOffSet;
  106. }PTPARA, *LPPTPARA;
  107. typedef struct _tagVAMEAPARA
  108. {
  109. char szName[64]; // 部件类型
  110. int ID;
  111. float fCoef;
  112. float fOffSet;
  113. }VAMEAPARA, *LPVAMEAPARA;
  114. typedef struct _tagCBPARA
  115. {
  116. char szName[64]; // 部件类型
  117. int ID;
  118. BYTE bNot; // 取反标志
  119. BYTE bTwoBit; // 双位标志
  120. }CBPARA, *LPCBPARA;
  121. typedef struct _tagDISPARA
  122. {
  123. char szName[64]; // 部件类型
  124. int ID;
  125. BYTE bNot; // 取反标志
  126. }DISPARA, *LPDISPARA;
  127. typedef struct _tagTRANPARA
  128. {
  129. char szName[64]; // 部件类型
  130. int ID;
  131. BYTE bLTC; // 有栽调压标志
  132. float fTapCoef;
  133. }TRANPARA, *LPTRANPARA;
  134. typedef struct TAG_RTU
  135. {
  136. char szName[64];
  137. int nRtuID;
  138. int nYCNum; // 3段ID
  139. int nYXNum;
  140. }RTU, *PRTU;
  141. typedef struct TAG_RTUYC
  142. {
  143. char szName[64];
  144. int nRTUID;
  145. DBID DBID; // 3段ID
  146. float fVal; // YC值
  147. float fPreVal; // 上次YC值
  148. BYTE bChanged; // 变化标志
  149. }RTUYC, *PRTUYC;
  150. typedef struct TAG_RTUYX
  151. {
  152. char szName[64];
  153. int nRTUID;
  154. DBID DBID; // 3段ID
  155. BYTE bVal; // YX状态
  156. BYTE bPreVal; // 上次YX状态
  157. BYTE bChanged; // 变化标志
  158. }RTUYX, *PRTUYX;
  159. extern CTime DatStartTime; // 数据断面开始时间
  160. extern CTime StartTime; // 仿真开始时间
  161. extern int nSecond;
  162. extern int nSeconds;
  163. extern BOOL bAutoRead;
  164. extern BOOL bAutoSave;
  165. extern int gRtuID;
  166. extern CArray<PRTU, PRTU> RtuAry; // RTU数组
  167. extern CArray<PRTUYX, PRTUYX> YXInfoAry1; // RTU-YX数组
  168. extern CArray<PRTUYC, PRTUYC> YCInfoAry1; // RTU-YC数组
  169. extern CArray<PRTUYX, PRTUYX> YXInfoAry2; // 数据文件读入-YX数组
  170. extern CArray<PRTUYC, PRTUYC> YCInfoAry2; // 数据文件读入-YC数组
  171. extern BOOL bYXYCAryBusy;
  172. extern BOOL bRTUMea; // 默认由RTU信息表获取实时数据
  173. //Regiset the Module
  174. BOOL  ModuleRegist();
  175. //UnRegist the Module
  176. BOOL  ModuleUnRegist();
  177. //Connect to DB Server
  178. BOOL  ConnectServ();
  179. //Disconnect from DB Server
  180. BOOL  DisConnectServ();
  181. //CallBack function For SB Communication
  182. void GetRealDataCallBack(WORD wOpType, LPVOID pPara, LPVOID* pRecBuf, PDWORD pDataLength);
  183. //遥测数据,单精度数据(单精度), 积分电量数据(双精度)
  184. BOOL GetRealData(RTMenuData &RtMenuData);
  185. BOOL SetModuleStatus();
  186. BOOL GetModuleStatus();
  187. BOOL ReadRTUYCYXInfo();
  188. BOOL ReadMeaCoefInfo();
  189. BOOL    ReadRTUInfo();
  190. BOOL SendAllDataToADM();
  191. BOOL saveAllRTDataToFile();
  192. BOOL GetAllRTData();
  193. BOOL LoadRTDataFromFile(LPCSTR lpFName);
  194. void FreeRTUInfo();
  195. void FreeRTUYXYCInfo();
  196. void FreeFileYXYCInfo();
  197. void FreeMeaCoefInfo();
  198. void GetRtuName(PDBID pDBID, CString& Name, int kind);
  199. void Ary2ToAry1();
  200. int GetRTUYXYCStartIdx(int nRTUID, int nYCYX);
  201. int GetRTUYCYXNum(int nRTUID, int nYC, int nStartIdx);
  202. BOOL BeSCADAEventProcess();
  203. BOOL GetMeaCoef(PDBID pDBID, float* pCoef, float* pOffSet, CString& strInfo);