Global.h 28 KB

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