Global.h 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770
  1. #pragma once
  2. #include "stdafx.h"
  3. #include "struct.h"
  4. #include <windows.h>
  5. #include "ado.h"
  6. #include "BaseVar.h"
  7. #include "Device.h"
  8. #include "Client2SrvType.h"
  9. #include <list>
  10. #include "DevicesManager.h"
  11. using namespace std;
  12. extern char g_strDirectory[256];
  13. //DOG
  14. extern INT g_nUseTimeLimit; //是否超过使用期限
  15. extern CRITICAL_SECTION g_csWrDataBase;//写日志和告警数据库操作
  16. #if 0
  17. extern CServerSocket* g_pTcpServer;
  18. #endif
  19. // 客户端在线Tick
  20. extern DWORD g_dwClientOnlineTick[MAX_CLIENT_NUM];
  21. //客户端数据
  22. extern INT g_nClientNum;
  23. //程序退出事件
  24. extern HANDLE g_hRunObject;
  25. extern CDevicesManager* g_pDevicesManager;
  26. //WatchServer
  27. extern CHAR g_strWatchServerIP[MAX_EQUIP_IP + 1];
  28. extern CHAR g_strWatchServerPort[MAX_PORT + 1];
  29. //Database
  30. extern CADODatabase* g_pADODatabase;
  31. extern CHAR g_strConnectString[MAX_PATH + 1];
  32. extern CHAR g_strDBType[MAX_SERVER_LENGTH + 1];
  33. extern CHAR g_strAccessFile[MAX_PATH_LENGTH + 1];
  34. extern CHAR g_strServerName[MAX_SERVER_LENGTH + 1];
  35. extern CHAR g_strDataBaseName[MAX_DATABASE_LENGTH + 1];
  36. extern CHAR g_strUserName[MAX_USER_LENGTH + 1];
  37. extern CHAR g_strPassword[MAX_PASSWORD_LENGTH + 1];
  38. //用户信息
  39. extern CHAR g_strLoginUserID[MAX_USER_LENGTH + 1];
  40. extern CHAR g_strLoginPwd[MAX_PASSWORD_LENGTH + 1];
  41. extern CHAR g_strDefaultUserID[MAX_USER_LENGTH + 1];
  42. extern CHAR g_strDefaultUserPwd[MAX_PASSWORD_LENGTH + 1];
  43. //操作提示
  44. extern CHAR g_strErrorDBDisConnection[MAX_ERROR_LEN + 1] ;
  45. extern CHAR g_strMsgDBConnectionSuccess[MAX_ERROR_LEN + 1];
  46. extern CHAR g_strErrorExecSql[MAX_ERROR_LEN + 1];
  47. //系统设置
  48. extern BOOL g_bEnableTimeLimited;
  49. extern INT g_iAutoRunSystem;
  50. extern INT g_nSendSms;
  51. extern INT g_nSendNotice;
  52. extern INT g_nSendEmail;
  53. extern CHAR g_strLanguage[MAX_LANG_LENGTH + 1]; // 默认语言
  54. //日志
  55. //extern CHAR g_strDirectory[MAX_PATH_LENGTH + 1]; // 软件所在路径
  56. extern CHAR g_strAppName[MAX_PATH_LENGTH + 1]; // 软件名称
  57. extern CHAR g_strSummaryLogPath[MAX_PATH_LENGTH + 1]; // 日志存放目录
  58. //环境参数配置
  59. extern INT g_nLevelWav; // 语音通知级别
  60. extern INT g_nLevelSms; // 发送短信级别
  61. extern INT g_nLevelEmail; // 发送Email级别
  62. extern INT g_nLevelDevInterrupt; // 通讯中断级别
  63. extern INT g_nLevelDlg; // 本地报警提示框级别
  64. extern INT g_nLevelLocalWav; // 本地声音提示级别
  65. extern INT g_nDBRecordDate; // 数据库记录时间
  66. //Sms
  67. extern INT g_nSendSms; // 是否启动短信报警功能
  68. extern CHAR g_strSmsComPort[MAX_TEL_LENGTH + 1]; // 短信猫端口
  69. extern INT g_nSmsRate; // 串口波特率
  70. extern INT g_nSmsDataBit; // 数据位
  71. extern INT g_nSmsStopBit; // 停止位
  72. extern INT g_nSmsParity; // 检验位
  73. extern INT g_nSmsInterval; // 间隔时间
  74. extern INT g_nSmsLanguageTrans; // 是否需要繁简转换
  75. extern INT g_nSmsMaxChar; // 短信猫支持最大字符个数
  76. extern INT g_nSmsMakeCall; // 发送短信后,是否拔打电话提醒
  77. extern CHAR g_strSmsSMSC[MAX_TEL_LENGTH + 1]; // smsc号码
  78. extern INT g_nSmsTimOut; // 短信发送超时
  79. extern INT g_nSmsCallTimes; // 最大的短信发送次数
  80. //Email
  81. extern INT g_nSendEmail; // 是否启动Email报警功能
  82. extern CHAR g_strEmailSMTPSrv[MAX_MAILSERVER_LENGTH]; // SMTPServer地址
  83. extern INT g_nEmailSMTPPort; // SMTP端口
  84. extern INT g_nEmailIsNeed; // 是否需要身份验证
  85. extern CHAR g_strEmailUserAcc[MAX_USER_LENGTH]; // 用户名
  86. extern CHAR g_strEmailUserPwd[MAX_PASSWORD_LENGTH]; // 密码
  87. extern INT g_nEmailTimeOut; // 发送邮件超时
  88. extern CHAR g_strEmailFromAddr[MAX_MAILTO_LENGTH]; // 发信人Email地址
  89. extern CHAR g_strEmailSubject[MAX_EMAIL_LENGTH]; // Email标题
  90. extern INT g_nEmailCallTimes; // 最大的Email发送次数
  91. //语音通知
  92. extern INT g_nSendNotice; // 是否启动语音通知功能
  93. extern INT g_nNoticeCardType; // 板卡类型
  94. extern CHAR g_strNoticeTelPre[MAX_TEL_LENGTH + 1]; // 外线前缀
  95. extern INT g_nNoticeCallDelay; // 两次呼叫间隔时间
  96. extern INT g_nNoticeCallTimes; // 最大的呼叫次数
  97. //定时发送短信和电话参数配置
  98. extern INT g_nTimingEnable;
  99. extern INT g_nTimingWeeks;
  100. extern INT g_nTimingHours;
  101. extern INT g_nTimingMinutes;
  102. //变量输出,特别为上海烟草局做的
  103. extern INT g_nOutputEnable;
  104. extern CHAR g_strOutputPath[MAX_PATH_LENGTH + 1]; // 输出内容存放路径
  105. extern CHAR g_strOutputFileName[MAX_PATH_LENGTH + 1]; // 输出内容存放路径
  106. extern CHAR g_strOutputClock[MAX_PATH_LENGTH + 1]; // 输出内容存放路径
  107. extern INT g_nOutputLineCount1;
  108. extern CHAR g_strOutputLine1[MAX_MSG_LENGTH + 1]; // 第一行
  109. extern INT g_nOutputLineCount2;
  110. extern CHAR g_strOutputLine2[MAX_MSG_LENGTH + 1]; // 第二行
  111. extern INT g_nOutputLineCount3;
  112. extern CHAR g_strOutputLine3[MAX_MSG_LENGTH + 1]; // 第三行
  113. extern INT g_nOutputLineCount4;
  114. extern CHAR g_strOutputLine4[MAX_MSG_LENGTH + 1]; // 第四行
  115. extern INT g_nOutputLineCount5;
  116. extern CHAR g_strOutputLine5[MAX_MSG_LENGTH + 1]; // 第五行
  117. extern INT g_nOutputLineCount6;
  118. extern CHAR g_strOutputLine6[MAX_MSG_LENGTH + 1]; // 第六行
  119. extern INT g_nOutputLineCount7;
  120. extern CHAR g_strOutputLine7[MAX_MSG_LENGTH + 1]; // 第七行
  121. extern INT g_nOutputLineCount8;
  122. extern CHAR g_strOutputLine8[MAX_MSG_LENGTH + 1]; // 第八行
  123. extern INT g_nOutputLineCount9;
  124. extern CHAR g_strOutputLine9[MAX_MSG_LENGTH + 1]; // 第九行
  125. extern INT g_nOutputLineCount10;
  126. extern CHAR g_strOutputLine10[MAX_MSG_LENGTH + 1]; // 第十行
  127. extern CHAR g_strOutputLineUid1[MAX_UID + 1];
  128. extern CHAR g_strOutputLineUid2[MAX_UID + 1];
  129. extern CHAR g_strOutputLineUid3[MAX_UID + 1];
  130. extern CHAR g_strOutputLineUid4[MAX_UID + 1];
  131. extern CHAR g_strOutputLineUid5[MAX_UID + 1];
  132. extern CHAR g_strOutputLineUid6[MAX_UID + 1];
  133. extern CHAR g_strOutputLineUid7[MAX_UID + 1];
  134. extern CHAR g_strOutputLineUid8[MAX_UID + 1];
  135. extern CHAR g_strOutputLineUid9[MAX_UID + 1];
  136. extern CHAR g_strOutputLineUid10[MAX_UID + 1];
  137. //是否启用Snmp参数配置
  138. extern INT g_nSnmpEnable;
  139. extern CHAR g_strSnmpObjOid[MAX_OBJ_OID + 1];
  140. extern CHAR g_strSnmpIP[MAX_EQUIP_IP + 1];
  141. extern CHAR g_strSnmpField[MAX_EQUIP_DESC + 1];
  142. //资源字符串
  143. extern CString g_strServiceName;
  144. extern CString g_strHintSysRun;
  145. extern CString g_strHintAlarmWelcome;
  146. extern CString g_strHintVoiceEnd;
  147. extern CString g_strHintReturnNormal;
  148. extern CString g_strHintUpperLimit;
  149. extern CString g_strHintLowerLimit;
  150. extern CString g_strHintCurrValue;
  151. //服务
  152. extern TCHAR g_szServiceName[];
  153. // 用户角色信息
  154. typedef struct __USERINFO
  155. {
  156. char szTel[MAX_TEL_LENGTH + 1];
  157. char szMobileTel[MAX_TEL_LENGTH + 1];
  158. char szFax[MAX_TEL_LENGTH + 1];
  159. char szEmail[MAX_EMAIL_LENGTH + 1];
  160. }USERINFO, *PUSERINFO;
  161. typedef struct __USERROLEINFO
  162. {
  163. char szDevUID[20];
  164. vector<__USERINFO> vtUserInfo;
  165. }USERROLEINFO, *PUSERROLEINFO;
  166. extern vector<USERROLEINFO> g_vtUserRoleInfo;
  167. //TTS参数配置
  168. extern INT g_nTTSType; // TTS格式类型
  169. // 报警参数设置
  170. extern INT g_nAlarmModeIsDlg; // 是否弹出报警提示框
  171. extern INT g_nAlarmModeShowDlgTimes; // 提示框显示次数
  172. extern INT g_nAlarmModeIsSound; // 是否本地播放报警提示音
  173. extern INT g_nAlarmModeSoundNum; // 声音播放次数,0:代表无限播放,直到报警被确认
  174. typedef list<CString> LIST_TEL;
  175. // 变量通知
  176. typedef struct _VAR_NOTICE
  177. {
  178. char szDevUID[20]; // 设备Uid
  179. int nVarID; // 变量ID
  180. int nResult; // 0: 未操作, 1:单个确认, 2:全部确认
  181. int nCallTime; // 拔打次数
  182. int nSmsTime; // 短信发送次数
  183. DWORD dwIdentityTick; // 辨识Tick
  184. DWORD dwReDetectTick; // 重新检测Tick
  185. DWORD dwIntervalTick; // 两次拔打之间的Tick
  186. bool bQueueExist; // true: 存在于语音队列且没有被取走 fasle: 不存在于语音队列或已被取走
  187. int nTelInex; // 电话list中的索引
  188. LIST_TEL listTel; // 有管理这个设备Uid的电话号码和手机号码列表
  189. int nLastStatus; // 前一次的报警状态,用于状态恢复正常的情况
  190. bool bFirstDeal; // 第一次处理这个变量
  191. }VAR_NOTICE, *PVAR_NOTICE;
  192. typedef list<VAR_NOTICE> LIST_VAR_NOTICE;
  193. extern LIST_VAR_NOTICE g_listVarNotice;
  194. typedef int (WINAPI *PFCALLBACK)( BOOL bEnableAlarm );//短信:true 恢复正常 false 报警不打电话不发短信 语音:true报警确认,不会打下一个用户电话
  195. // TTS
  196. typedef BOOL (WINAPI *MySTONEU_DLLRegisterTTS)(void);
  197. typedef void (WINAPI *MySTONEU_DLLUnRegisterTTS)(void);
  198. typedef void (WINAPI *MySTONEU_DLLTxtToWav)( char *pText, char *pWavFileName, int nVoiceType, int nRate, int nVolume );
  199. extern HINSTANCE hTTSModule;
  200. extern MySTONEU_DLLRegisterTTS pStoneUDllRegisterTTS;
  201. extern MySTONEU_DLLUnRegisterTTS pStoneUDllUnRegisterTTS;
  202. extern MySTONEU_DLLTxtToWav pStoneUDLLTxtToWav;
  203. // 语音通知动态库输出函数
  204. typedef BOOL (WINAPI *STONEU_DLLRegisterVoice)(char *pDirectory, int nTTSType);
  205. typedef void (WINAPI *STONEU_DLLUnRegisterVoice)(void);
  206. typedef int (WINAPI *STONEU_DLLAllocateChannel)(char *pTel, char *pPreTel, char *pUid, int nVarID,int nAlarmIndex, char *pContent);
  207. extern HINSTANCE g_hNoticeLibModule;
  208. extern STONEU_DLLRegisterVoice pStoneUDllRegisterVoice;
  209. extern STONEU_DLLUnRegisterVoice pStoneUDllUnRegisterVoice;
  210. extern STONEU_DLLAllocateChannel pStoneUDllAllocateChannel;
  211. // Email输出函数
  212. typedef BOOL (WINAPI *EMAIL_DLLInit)( char *pDirectory, // 软件所在路径
  213. char *pSmtpServer, // Smtp服务器
  214. int nSmtpPort, // Smtp端口
  215. int nIsNeed, // 是否需要smtp身份验证
  216. char *pUserAcc, // Email帐号
  217. char *pUserPwd, // Email密码
  218. char *pFromEmailAddr, // 发送人Email地址
  219. int nTimeOut // 超时
  220. );
  221. typedef void (WINAPI *EMAIL_DLLUnInit)(void);
  222. typedef int (WINAPI *EMAIL_DLLSendEmail)(char *pEmail, // 收件人Email地址
  223. char *pSubject, // 邮件标题
  224. char *pContent, // 发送内容
  225. char *pTime, // 发生时间
  226. char *pErrorMsg // 错误消息
  227. );
  228. extern HINSTANCE g_hEmailLibModule;
  229. extern EMAIL_DLLInit pEmailDllInit;
  230. extern EMAIL_DLLUnInit pEmailDllUnInit;
  231. extern EMAIL_DLLSendEmail pEmailDllSendEmail;
  232. // Sms输出函数
  233. typedef BOOL (WINAPI *SMS_DLLInit)( char *pDirectory,
  234. int nAddr, // 保留,因为短信猫是串口232没有地址
  235. int nCommPort, // 串口号
  236. int nRate, // 波特率
  237. int nDataBit, // 数据位
  238. int nStopBit, // 停止位
  239. int nParity, // 校验位
  240. int nInterval, // 间隔时间
  241. int nNeedLanguageTrans, // 是否需要语言转换
  242. int nMaxChar, // 短信猫一条短信最大支持的字符个数
  243. int nMakeCall ); // 发送后是否先拔打电话提醒
  244. typedef void (WINAPI *SMS_DLLUnInit)(void);
  245. typedef int (WINAPI *SMS_DLLSendSms)(char *pTel, // 手机号码
  246. char *pContent, // 发送内容
  247. char *pSendResult); // 发送结果
  248. typedef bool (WINAPI *SMS_DLLGetCSQ)( int iMin,int iMax,int &iNowData ); // 得到短信猫信号
  249. typedef int (WINAPI *SMS_DLLSetCallBack)(PFCALLBACK Func);
  250. extern HINSTANCE g_hSmsLibModule;
  251. extern SMS_DLLInit pSmsDllInit;
  252. extern SMS_DLLUnInit pSmsDllUnInit;
  253. extern SMS_DLLSendSms pSmsDllSendSms;
  254. extern SMS_DLLGetCSQ pSmsDllGetCSQ;
  255. extern SMS_DLLSetCallBack pSmsDllSetCallBack;
  256. extern bool g_bAlarmNoticeFlag;//报警通知开头,由短信控制
  257. // Snmp输出函数
  258. typedef BOOL (WINAPIV *SNMP_DLL_GetVale)(
  259. char *pDevIP, // snmp设备IP
  260. char *pSnmpField, // snmp Oid 域,一般为public, private
  261. char *pObjOid, // Obj Oid
  262. char *pValue // 得到的值
  263. );
  264. typedef int (WINAPIV *SNMP_DLL_SetValue)(
  265. char *pDevIP, // snmp设备IP
  266. char *pSnmpField, // snmp Oid 域,一般为public, private
  267. char *pObjOid, // Obj Oid
  268. char *pObjType, // Obj 对象类型
  269. int nRetries, // 可回收标志,暂时都为1
  270. int nTimeOut, // 请求超时
  271. char *pValue // 要设置的值
  272. );
  273. extern HINSTANCE g_hSnmpLibModule;
  274. extern SNMP_DLL_GetVale pSnmpDllGetValue;
  275. extern SNMP_DLL_SetValue pSnmpDllSetValue;
  276. //modbus tcp 动态库输出函数
  277. typedef int (WINAPI *TCP_DLLInit)( int nNetPort,
  278. int nAddr,
  279. char strIpAddr[32],
  280. WORD wRegNum,
  281. WORD wStartAddr,
  282. WORD wTranProcessID,
  283. WORD wProtocolID,
  284. int nFuncCode );
  285. typedef void (WINAPI *TCP_DLLUnInit)(void);
  286. typedef int (WINAPI *TCP_DLLRequestStatusData)(int nNetPort, int nAddr, char strIpAddr[32], char *pData);
  287. typedef BOOL (WINAPI *TCP_DLLInitNet)( int nAddr, int nNetPort, char strIpAddr[32]);
  288. typedef BOOL (WINAPI *TCP_DLLCloseNet)( int nAddr, int nNetPort, char strIpAddr[32]);
  289. typedef int (WINAPI *TCP_DLLWrite)( int nNetPort,
  290. int nAddr,
  291. char strIpAddr[32],
  292. WORD wRegNum,
  293. WORD wStartAddr,
  294. WORD wTranProcessID,
  295. WORD wProtocolID,
  296. int nFuncCode,
  297. int nRegValue);
  298. typedef int (WINAPI *TCP_DLLRequestWrStatusData)(int nNetPort, int nAddr, char strIpAddr[32], int &nWriteResult);
  299. extern HINSTANCE g_hTCPLibModule;
  300. extern TCP_DLLCloseNet pTCP_DllCloseNet;
  301. extern TCP_DLLInitNet pTCP_DLLInitNet;
  302. extern TCP_DLLInit pTCP_DLLInit;
  303. extern TCP_DLLUnInit pTCP_DLLUnInit;
  304. extern TCP_DLLRequestStatusData pTCP_DLLRequestStatusData;
  305. extern TCP_DLLWrite pTCP_DLLWrite;
  306. extern TCP_DLLRequestWrStatusData pTCP_DLLRequestWrStatusData;
  307. //modbus rtu 动态库输出函数
  308. typedef int (WINAPI *RTU_DLLInit)( int nCommPort, int nAddr, SETBASEPARAM SetBasePara, int nDataLen, char chMsg[80] );
  309. typedef void (WINAPI *RTU_DLLUnInit)(void);
  310. typedef BOOL (WINAPI *RTU_DLLInitCom)( int nAddr, int nCommPort, int nRate, int nDataBit, int nStopBit, int nParity, int nInterval);
  311. typedef BOOL (WINAPI *RTU_DLLWrite)( int nCommPort, int nAddr, SETBASEPARAM SetBasePara, double Data, int nDataLen );
  312. typedef BOOL (WINAPI *RTU_DLLRequestWrStatusData)( int nCommPort, int nAddr, char *pData );
  313. extern HINSTANCE g_hRTULibModule;
  314. extern RTU_DLLInitCom pRTU_DLLInitCom;
  315. extern RTU_DLLInit pRTU_DLLInit;
  316. extern RTU_DLLUnInit pRTU_DLLUnInit;
  317. extern RTU_DLLWrite pRTU_DLLWrite;
  318. extern RTU_DLLRequestWrStatusData pRTU_DLLRequestWrStatusData;
  319. //modbus asc 动态库输出函数
  320. typedef BOOL (WINAPI *ASC_DLLInitCom)(int nAdddr, int nCommPort, int nRate, int nDataBit, int nStopBit, int nParity, int nInterval);
  321. typedef int (WINAPI *ASC_DLLInit)(int nCommPort, int nAddr, SETBASEPARAM SetBasePara, int nDataLen, char chMsg[80]);
  322. typedef void (WINAPI *ASC_DLLUnInit)(void);
  323. typedef int (WINAPI *ASC_DLLRequestStatusData)(int nCommPort, int nAddr, int nByteNum, char *pData);
  324. //typedef void (WINAPI *ASC_DLLDetectOnlineCallBack)(void *pPara);
  325. typedef int ((WINAPI *ASC_DLLWrCom))(int nCommPort, int nAddr, SETBASEPARAM SetBasePara, double Data, int nDataLen);
  326. typedef int (WINAPI *ASC_DLLRequestWrStatusData)(int nCommPort, int iAddr, char *pData);
  327. extern HINSTANCE g_hASCLibModule;
  328. extern ASC_DLLInitCom pASCDLLInitCom;
  329. extern ASC_DLLInit pASCDLLInit;
  330. extern ASC_DLLUnInit pASCDLLUnInit;
  331. extern ASC_DLLRequestStatusData pASCDLLRequestStatusData;
  332. extern ASC_DLLWrCom pASC_DLLWrCom;
  333. extern ASC_DLLRequestWrStatusData pASC_DLLRequestWrStatusData;
  334. //extern ASC_DLLDetectOnlineCallBack pASCDLLDetectOnlineCallBack;
  335. //icpdas 动态库输出函数
  336. typedef int (WINAPI *ICPDAS_DLLInit)
  337. ( int nCommPort,
  338. int nAddr,
  339. BYTE Start,//起始位
  340. BYTE StartAddr[2],//起始地址
  341. int nRegNum,//读取的寄存器个数
  342. BYTE FuncCode[2],
  343. int nDataLen,
  344. BYTE byWithAddrFlag,
  345. char chMsg[80]);
  346. typedef int ((WINAPI *ICPDAS_DLLWrCom))
  347. (int nCommPort,
  348. int nAddr,
  349. char DataBuffer[80],
  350. int nDataLen);
  351. typedef void (WINAPI *ICPDAS_DLLUnInit)(void);
  352. typedef int (WINAPI *ICPDAS_DLLRequestStatusData)
  353. (int nCommPort,
  354. int nAddr,
  355. int nByteNum,
  356. char *pData,
  357. int iVarID);
  358. typedef BOOL (WINAPI *ICPDAS_DLLInitCom)( int nAddr,
  359. int nCommPort,
  360. int nRate,
  361. int nDataBit,
  362. int nStopBit,
  363. int nParity,
  364. int nInterval);
  365. extern HINSTANCE g_hICPDASLibModule;
  366. extern ICPDAS_DLLInitCom pICPDAS_DLLInitCom;
  367. extern ICPDAS_DLLInit pICPDAS_DLLInit;
  368. extern ICPDAS_DLLUnInit pICPDAS_DLLUnInit;
  369. extern ICPDAS_DLLRequestStatusData pICPDAS_DLLRequestStatusData;
  370. extern ICPDAS_DLLWrCom pICPDAS_DLLWrCom;
  371. //upskehua 动态库输出函数
  372. typedef int (WINAPI *UPSKEHUA_DLLInit)
  373. (int nCommPort,
  374. int nAddr,
  375. char szCmd[32],
  376. char chSendMsg[32],
  377. int nDataLen,
  378. char chMsg[UPS_KE_HUA_MAX_MSG]);
  379. typedef int ((WINAPI *UPSKEHUA_DLLWrCom))
  380. (int nCommPort,
  381. int nAddr,
  382. char DataBuffer[80],
  383. int nDataLen);
  384. typedef void (WINAPI *UPSKEHUA_DLLUnInit)(void);
  385. typedef BOOL (WINAPI *UPSKEHUA_DLLInitCom)( int nAddr,
  386. int nCommPort,
  387. int nRate,
  388. int nDataBit,
  389. int nStopBit,
  390. int nParity,
  391. int nInterval);
  392. extern HINSTANCE g_hUPSKEHUALibModule;
  393. extern UPSKEHUA_DLLInitCom pUPSKEHUA_DLLInitCom;
  394. extern UPSKEHUA_DLLInit pUPSKEHUA_DLLInit;
  395. extern UPSKEHUA_DLLUnInit pUPSKEHUA_DLLUnInit;
  396. extern UPSKEHUA_DLLWrCom pUPSKEHUA_DLLWrCom;
  397. //Separate 动态库输出函数
  398. typedef int (WINAPI *SEPARATE_DLLRead)
  399. (
  400. int nCommPort,
  401. int nAddr,
  402. char szPath[MAX_PATH],
  403. char szIniName[MAX_PATH],
  404. char szCmd[MAX_CMD],
  405. char szMsg[MAX_VAR_MSG]
  406. );
  407. typedef int ((WINAPI *SEPARATE_DLLWrite))
  408. (
  409. int nCommPort,
  410. int nAddr,
  411. char szPath[MAX_PATH],
  412. char szIniName[MAX_PATH],
  413. char szCmd[MAX_CMD],
  414. char szMsg[MAX_VAR_MSG]
  415. );
  416. typedef void (WINAPI *SEPARATE_DLLUnInit)(void);
  417. typedef BOOL (WINAPI *SEPARATE_DLLInit)( int nAddr,
  418. int nCommPort,
  419. int nRate,
  420. int nDataBit,
  421. int nStopBit,
  422. int nParity,
  423. int nInterval);
  424. extern HINSTANCE g_hSeparateLibModule;
  425. extern SEPARATE_DLLInit pSeparate_DLLInit;
  426. extern SEPARATE_DLLUnInit pSeparate_DLLUnInit;
  427. extern SEPARATE_DLLRead pSeparate_DLLRead;
  428. extern SEPARATE_DLLWrite pSeparate_DLLWrite;
  429. //Upsparadigm 动态库输出函数
  430. typedef int (WINAPI *PARADIGM_DLLInit)( int nCommPort,
  431. int nDevAddr,
  432. int nAddr, //设备地址描述
  433. int nVer, //版本
  434. int nCid1, //控制标识码
  435. int nCid2, //命令信息
  436. WORD wLenId,//INFO字节长度
  437. BYTE byCmdType,//命令类型
  438. int nCmdID, //命令ID
  439. int nDataLen,
  440. int nCmdPos,
  441. int nCmdLen,
  442. char chMsg[80],
  443. char *byDataFlag);
  444. typedef void (WINAPI *PARADIGM_DLLUnInit)(void);
  445. typedef BOOL (WINAPI *PARADIGM_DLLInitCom)( int nAddr, int nCommPort, int nRate,
  446. int nDataBit, int nStopBit, int nParity, int nInterval);
  447. extern HINSTANCE g_hPARADIGMLibModule;
  448. extern PARADIGM_DLLInitCom pPARADIGM_DLLInitCom;
  449. extern PARADIGM_DLLInit pPARADIGM_DLLInit;
  450. extern PARADIGM_DLLUnInit pPARADIGM_DLLUnInit;
  451. //stulz 动态库输出函数
  452. typedef int (WINAPI *STULZ_DLLInit)( int nCommPort,
  453. int nAddr,
  454. SETBASEPARAM SetBasePara,
  455. int nDataLen,
  456. int iCmdPos,
  457. int iCmdLen,
  458. char chMsg[10] );
  459. typedef void (WINAPI *STULZ_DLLUnInit)(void);
  460. typedef BOOL (WINAPI *STULZ_DLLInitCom)( int nAddr, int nCommPort, int nRate,
  461. int nDataBit, int nStopBit, int nParity, int nInterval);
  462. typedef int (WINAPI *STULZ_DLLWrCom)(int nCommPort, int nAddr, char DataBuffer[80], char ResDataBuffer[2]);
  463. extern HINSTANCE g_hSTULZLibModule;
  464. extern STULZ_DLLInitCom pSTULZ_DLLInitCom;
  465. extern STULZ_DLLInit pSTULZ_DLLInit;
  466. extern STULZ_DLLUnInit pSTULZ_DLLUnInit;
  467. extern STULZ_DLLWrCom pSTULZ_DLLWrCom;
  468. //大金空调动态库输出函数
  469. typedef int (WINAPI *DAIKIN_DLLInit)(
  470. int nCommPort, //串口号
  471. int nAddr, //地址
  472. int nVer, //版本号
  473. int nCid1, //控制标识码
  474. int nCid2, //命令信息
  475. WORD wLenId,//INFO字节长度
  476. int nCmdID, //命令ID
  477. int nDataLen, //请求数据长度
  478. int nCmdPos, //变量索引
  479. int nCmdLen, //变量长度
  480. char chMsg[DAIKIN_MAX_MSG], //读到的变量值
  481. char *byDataFlag); //保留未用
  482. typedef void (WINAPI *DAIKIN_DLLUnInit)(void);
  483. typedef BOOL (WINAPI *DAIKIN_DLLInitCom)( int nAddr, int nCommPort, int nRate,
  484. int nDataBit, int nStopBit, int nParity, int nInterval);
  485. typedef int (WINAPI *DAIKIN_DLLSetParam)(
  486. int nCommPort, //端口
  487. int nAddr, //地址
  488. int nVer, //版本号
  489. int nCid1, //控制标识码
  490. int nCid2, //命令信息
  491. WORD wLenId, //INFO字节长度
  492. int nCmdType, //命令类型
  493. int nSetValue); //设定值
  494. typedef int (WINAPI *DAIKIN_DLLRemoteCtrl)(
  495. int nCommPort, //端口
  496. int nAddr, //地址
  497. int nSetType, //设定类型
  498. int nSetIndex, //设定值索引,只针对特殊变量(例如:空调制冷、制热温度)
  499. int nSetValue); //设定值
  500. extern HINSTANCE g_hDaiKinLibModule;
  501. extern DAIKIN_DLLInitCom pDaiKin_DLLInitCom;
  502. extern DAIKIN_DLLInit pDaiKin_DLLInit;
  503. extern DAIKIN_DLLUnInit pDaiKin_DLLUnInit;
  504. extern DAIKIN_DLLSetParam pDaiKin_DLLSetParam;
  505. extern DAIKIN_DLLRemoteCtrl pDaiKin_DLLRemoteCtrl;
  506. //Powerware 动态库输出函数
  507. typedef int (WINAPI *POWERWARE_DLLInit)( int nCommPort, //串口
  508. int nDevAddr, //设备地址
  509. int nRequestLen, //请求数据总长度
  510. int nResponseLen, //响应数据总长度
  511. int nCmd, //命令
  512. int nCmdPos, //变量索引
  513. int nCmdLen, //变量长度
  514. int nParam, //参数
  515. char chMsg[80]); //读到变量值
  516. typedef void (WINAPI *POWERWARE_DLLUnInit)(void);
  517. typedef BOOL (WINAPI *POWERWARE_DLLInitCom)( int nAddr, int nCommPort, int nRate,
  518. int nDataBit, int nStopBit, int nParity, int nInterval);
  519. extern HINSTANCE g_hPowerwareLibModule;
  520. extern POWERWARE_DLLInitCom pPOWERWARE_DLLInitCom;
  521. extern POWERWARE_DLLInit pPOWERWARE_DLLInit;
  522. extern POWERWARE_DLLUnInit pPOWERWARE_DLLUnInit;
  523. //gree 动态库输出函数
  524. typedef int (WINAPI *GREE_DLLInit)( int nCommPort, int nAddr,int nDataLen,int nReadPos, char chMsg[80] );
  525. typedef void (WINAPI *GREE_DLLUnInit)(void);
  526. typedef BOOL (WINAPI *GREE_DLLInitCom)( int nAddr, int nCommPort, int nRate, int nDataBit, int nStopBit, int nParity, int nInterval);
  527. typedef BOOL (WINAPI *GREE_DLLWrCom)( int nCommPort, int nAddr,
  528. int nWorkStatus, int nWorkMode, int nFanSpeed,
  529. int nPutWind, int nAirTrade, int nSleep, int nLight,
  530. int nTempSetPoint );
  531. extern HINSTANCE g_hGREELibModule;
  532. extern GREE_DLLInitCom pGREE_DLLInitCom;
  533. extern GREE_DLLInit pGREE_DLLInit;
  534. extern GREE_DLLUnInit pGREE_DLLUnInit;
  535. extern GREE_DLLWrCom pGREE_DLLWrCom;
  536. //Carel控制器
  537. typedef int (WINAPI *CAREL_DLLInit)( int nAddr, int nCommPort, int nRate,
  538. int nDataBit, int nStopBit, int nParity, int nInterval);
  539. typedef void (WINAPI *CAREL_DLLUnInit)(void);
  540. typedef BOOL (WINAPI *CAREL_DLLRequestData)(
  541. int nCommPort, //串口号
  542. int nAddr, //地址
  543. char chRs232cmd[32], //命令
  544. char szType[MAX_ID], //类型
  545. char szIndex[MAX_ID], //索引
  546. char szMsg[CAREL_MAX_MSG] //内容
  547. );
  548. typedef BOOL (WINAPI *CAREL_DLLControl)(
  549. int nCommPort, //串口号
  550. int nAddr, //地址
  551. char chRs232cmd[32], //命令
  552. char szType[MAX_ID], //类型
  553. char szIndex[MAX_ID], //索引
  554. char szMsg[CAREL_MAX_MSG] //内容
  555. );
  556. extern HINSTANCE g_hCarelLibModule;
  557. extern CAREL_DLLInit pCarel_DLLInit;
  558. extern CAREL_DLLUnInit pCarel_DLLUnInit;
  559. extern CAREL_DLLRequestData pCarelRequestData;
  560. extern CAREL_DLLControl pCarelControl;
  561. // MostDevice 以后大部分设备都集成到这个动态库里面
  562. typedef BOOL (WINAPI *DLL_MostDeviceInit)(
  563. char szPath[MAX_PATH], // 程序所在路径
  564. char szIniName[MAX_PATH], // 配置文件名称
  565. int nCommPort, // 串行端口
  566. int nAddr, // 设备地址
  567. int nRate, // 波特率
  568. int nDataBit, // 数据位
  569. int nStopBit, // 停止位
  570. int nParity, // 校验位
  571. int nInterval // 时间间隔
  572. );
  573. typedef void (WINAPI *DLL_MostDeviceUnInit)(
  574. char szPath[MAX_PATH], // 程序所在路径
  575. char szIniName[MAX_PATH], // 配置文件名称
  576. int nCommPort // 串行端口
  577. );
  578. typedef int (WINAPI *DLL_MostDeviceRead)(
  579. char szPath[MAX_PATH], // 程序所在路径
  580. char szIniName[MAX_PATH], // 配置文件名称
  581. int nCommPort, // 串行端口
  582. int nAddr, // 设备地址
  583. char szCmd[MAX_CMD], // 请求命令
  584. char szMsg[MAX_VAR_MSG], // 响应的值
  585. int nReversed1, // 预留整形参数1接口
  586. int nReversed2, // 预留整形参数2接口
  587. int nReversed3, // 预留整形参数3接口
  588. int nReversed4, // 预留整形参数4接口
  589. int nReversed5, // 预留整形参数5接口
  590. float fReversed1, // 预留float参数1接口
  591. float fReversed2, // 预留float参数2接口
  592. float fReversed3, // 预留float参数3接口
  593. char szReversed1[MAX_RESERVED1], // 预留字符数组参数1接口
  594. char szReversed2[MAX_RESERVED2], // 预留字符数组参数2接口
  595. char szReversed3[MAX_RESERVED3], // 预留字符数组参数3接口
  596. char szReversed4[MAX_RESERVED4], // 预留字符数组参数4接口
  597. char szReversed5[MAX_RESERVED5] // 预留字符数组参数5接口
  598. );
  599. typedef int (WINAPI *DLL_MostDeviceSet)(
  600. char szPath[MAX_PATH], // 程序所在路径
  601. char szIniName[MAX_PATH], // 配置文件名称
  602. int nCommPort, // 串行端口
  603. int nAddr, // 设备地址
  604. char szCmd[MAX_CMD], // 请求命令
  605. char szMsg[MAX_VAR_MSG], // 响应的值
  606. int nReversed1, // 预留整形参数1接口
  607. int nReversed2, // 预留整形参数2接口
  608. int nReversed3, // 预留整形参数3接口
  609. int nReversed4, // 预留整形参数4接口
  610. int nReversed5, // 预留整形参数5接口
  611. float fReversed1, // 预留float参数1接口
  612. float fReversed2, // 预留float参数2接口
  613. float fReversed3, // 预留float参数3接口
  614. char szReversed1[MAX_RESERVED1], // 预留字符数组参数1接口
  615. char szReversed2[MAX_RESERVED2], // 预留字符数组参数2接口
  616. char szReversed3[MAX_RESERVED3], // 预留字符数组参数3接口
  617. char szReversed4[MAX_RESERVED4], // 预留字符数组参数4接口
  618. char szReversed5[MAX_RESERVED5] // 预留字符数组参数5接口
  619. );
  620. extern HINSTANCE g_hMostDeviceLibModule;
  621. extern DLL_MostDeviceInit pDllMostDeviceInit;
  622. extern DLL_MostDeviceUnInit pDllMostDeviceUnInit;
  623. extern DLL_MostDeviceRead pDllMostDeviceRead;
  624. extern DLL_MostDeviceSet pDllMostDeviceSet;
  625. extern void WriteSummaryLog(CHAR *pdevname, CHAR *pHappenTime, CHAR* memo, int id,
  626. CHAR *ptypedesc, double currvalue, CHAR* varuid, CHAR *varname);
  627. extern WORD AsciiToBYTE(BYTE btSrc);
  628. extern char ByteToAscii(BYTE btSrc);
  629. char lowercase2uppercase(BYTE btSrc);
  630. extern int StrLower(char *pSource, char *pDest);
  631. extern int StrUpper(char *pSource, char *pDest);
  632. extern int DigitToBinary(WORD wdSource, char* pDes, int iBit);
  633. extern char Hex16(char WillChangeNum[]); //该函数把四位二进制转换成十六进制数
  634. extern BYTE TwoByteToByte(BYTE b1, BYTE b2); //两个字符转换为一个字符
  635. extern void ByteToTwoByte(BYTE b, BYTE b2[]); //一个字符转换为两个字符
  636. extern void ByteToUpper(char *szMsg);
  637. //md5全局变量
  638. #ifndef PROTOTYPES
  639. #define PROTOTYPES 1
  640. #endif
  641. /* POINTER defines a generic pointer type */
  642. typedef unsigned char *POINTER;
  643. /* UINT2 defines a two byte word */
  644. typedef unsigned short int UINT2;
  645. /* UINT4 defines a four byte word */
  646. typedef unsigned long int UINT4;
  647. /* PROTO_LIST is defined depending on how PROTOTYPES is defined above.
  648. If using PROTOTYPES, then PROTO_LIST returns the list, otherwise it
  649. returns an empty list.
  650. */
  651. #if PROTOTYPES
  652. #define PROTO_LIST(list) list
  653. #else
  654. #define PROTO_LIST(list) ()
  655. #endif