Global.h 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. ///************************************************************************/
  2. /* Copyright (C), 2010-2020, [Jeff], 保留所有权利;
  3. /* 模 块 名:;
  4. /* 描 述:;
  5. /*
  6. /* 版 本:[V];
  7. /* 作 者:[Jeff];
  8. /* 日 期:[];
  9. /*
  10. /*
  11. /* 注 意:;
  12. /*
  13. /* 修改记录:[Jeff];
  14. /* 修改日期:;
  15. /* 修改版本:;
  16. /* 修改内容:;
  17. /************************************************************************/
  18. #ifndef __HOME_GLOBAL__
  19. #define __HOME_GLOBAL__
  20. #pragma once
  21. #include <string>
  22. #include <vector>
  23. using namespace std;
  24. #ifndef _UNICODE
  25. typedef string TString;
  26. #else
  27. typedef wstring TString;
  28. #endif
  29. namespace GLOBAL
  30. {
  31. enum LOGTYPE{
  32. SAT_NOR = 0,
  33. SAT_EXE,
  34. SAT_DEV,
  35. SAT_PYE,
  36. SAT_TCP,
  37. };
  38. typedef struct __ST_SAT_CFG__
  39. {
  40. // usb设备adb重连时长(超过该时长,执行adb kill)
  41. DWORD dwAdbKillTime;
  42. // adb超时断线时长;
  43. DWORD dwAdbTimeout;
  44. // 脚本路径;
  45. TCHAR szScriptDir[MAX_PATH];
  46. // Apk接口地址;
  47. TCHAR szApkServer[MAX_PATH];
  48. TCHAR szApkSysCode[MAX_PATH];
  49. // 用例接口地址;
  50. TCHAR szCaseServer[MAX_PATH];
  51. TCHAR szCaseSysCode[MAX_PATH];
  52. // 任务接口地址;
  53. TCHAR szTaskServer[MAX_PATH];
  54. TCHAR szTaskSysCode[MAX_PATH];
  55. // 结果接口地址;
  56. TCHAR szResultServer[MAX_PATH];
  57. TCHAR szResultExcelDir[MAX_PATH];
  58. // 执行器接口地址;
  59. TCHAR szExecuteServer[MAX_PATH];
  60. TCHAR szExecuteSysCode[MAX_PATH];
  61. // TCP服务端接口;
  62. DWORD dwTCPSvrPort;
  63. // 脚本超时值设置;
  64. DWORD dwScriptTimeout;
  65. // xml目录;
  66. TCHAR szCaseResultDir[MAX_PATH];
  67. // 电视机串口号;
  68. TCHAR szTVPort[MAX_PATH];
  69. // 是否开启串口监控;
  70. BOOL bWatchTVPort;
  71. // 重启关键字;
  72. TCHAR szTVReboot[MAX_PATH];
  73. // 关机关键字;
  74. TCHAR szTVShutdown[MAX_PATH];
  75. // Adb路由器地址;
  76. TCHAR szAdbRouteAddress[MAX_PATH];
  77. // 异步connect超时值;
  78. ULONG ulAsynConnectTimeout;
  79. #ifdef _DBG_SOMKING_
  80. TCHAR szSomkingTime[MAX_PATH];
  81. #endif
  82. // 这个可以忽略不要;
  83. typedef struct __ST_LD__
  84. {
  85. TCHAR szDevice[MAX_PATH];
  86. TCHAR szManu[MAX_PATH];
  87. TCHAR szHardwareVersion[MAX_PATH];
  88. TCHAR szModel[MAX_PATH];
  89. }STLinuxDevice, *pSTLinuxDevice;
  90. STLinuxDevice stLinuxDevice;
  91. }STSATConfig, *pSTSATConfig;
  92. typedef struct __PY_NOTICE__{
  93. // 是否有通知(实时性,需要时段判断)
  94. bool notify;
  95. // 监控类型;
  96. std::string report_type;
  97. // 发生时间(如正常关机的通知时间);
  98. std::string report_data;
  99. // 接收到脚本通知的时间;
  100. __int64 datetime;
  101. }PyNotice, *pPyNotice;
  102. // 只需要一个记录即可,无需记录多个;
  103. extern PyNotice g_PyNotify;
  104. // 全局配置文件;
  105. extern STSATConfig g_stSATConfig;
  106. //////////////////////////////////////////////////////////////////////////
  107. // 全局变量;
  108. //////////////////////////////////////////////////////////////////////////
  109. extern TCHAR g_szIniFile[MAX_PATH];
  110. extern TCHAR g_szHostName[MAX_PATH]; // 主机计算机名;
  111. extern TCHAR g_szConnectString[MAX_PATH]; // DB连接串;
  112. // 服务器信息;
  113. extern TCHAR g_szDBSource[MAX_PATH]; // 数据库源(服务所在IP或计算机名);
  114. extern TCHAR g_szDBSourcePort[MAX_PATH]; // 数据库源端口;
  115. extern DWORD g_dwDBServerPort; // 数据库源端口;
  116. extern TCHAR g_szDBAccount[MAX_PATH]; // 数据库登录用户;
  117. extern TCHAR g_szDBPassWord[MAX_PATH]; // 数据库登录密码;
  118. extern TCHAR g_szDBName[MAX_PATH]; // 数据库名称;
  119. extern TCHAR g_szCurModuleFileName[MAX_PATH];
  120. extern TCHAR g_szCurModuleDir[MAX_PATH];
  121. extern TCHAR g_szCurModulePath[MAX_PATH];
  122. extern TCHAR g_szFna[_MAX_FNAME];
  123. extern TCHAR g_szExt[_MAX_EXT];
  124. extern TCHAR g_szPython27Dir[MAX_PATH];
  125. extern TCHAR g_szPython27ResourceConfig[MAX_PATH];
  126. extern TCHAR g_szPython27ServerConfig[MAX_PATH];
  127. extern std::string g_strIPAddress;
  128. extern std::vector<std::string> g_vtIPAddress;
  129. //////////////////////////////////////////////////////////////////////////
  130. // 网卡类型;
  131. enum NICKIND {
  132. // pci网卡;
  133. NIC_PCI,
  134. // usb网卡;
  135. NIC_USB,
  136. // 虚拟网卡;
  137. NIC_ROOT,
  138. // 仿真网卡;
  139. NIC_SWD,
  140. // 未知类型;
  141. NIC_UNK
  142. };
  143. typedef struct __MAC_ADDRESS__
  144. {
  145. INT nNICKind;
  146. TCHAR szNICKind[16];
  147. TCHAR szMacAddress[MAX_PATH];
  148. TCHAR szDevicePath[MAX_PATH];
  149. } MacAddress, * pMacAddress;
  150. extern std::string g_strMacs;
  151. extern std::vector<MacAddress> g_vtMac;
  152. //////////////////////////////////////////////////////////////////////////
  153. //////////////////////////////////////////////////////////////////////////
  154. // 全局函数;
  155. // 只调用1次;(不要重复调用)
  156. extern void Init();
  157. // 判断公历是否有效;
  158. extern BOOL IsValidDate(IN LPCTSTR lpDate);
  159. // 判断农历是否有效;
  160. extern BOOL IsValidLunanrDate(IN LPCTSTR lpDate);
  161. // 获取配置文件函数;
  162. extern int GetIniInfo(IN const TCHAR *szPath = NULL, const TCHAR *szIniName = NULL);
  163. // 获取网卡地址;
  164. INT GetMacAddress();
  165. //////////////////////////////////////////////////////////////////////////
  166. // 字符串系列全局函数;
  167. extern BOOL CompareNoCase(IN TString& str1, IN TString& str2);
  168. extern BOOL IsStringExist(IN CString& str, IN CStringArray &tagAry);
  169. extern BOOL IsStringExist(IN TString& str, IN vector<TString> &tagVt);
  170. extern BOOL IsStringExistNoCase(IN CString& str, IN CStringArray &tagAry);
  171. extern BOOL IsStringExistNoCase(IN CONST TString& str, IN CStringArray &tagAry);
  172. extern BOOL IsStringExistNoCase(IN CONST TString& str, IN vector<TString> &tagVt);
  173. extern TString lowercase(IN const TString &Str);
  174. extern TString uppercase(IN const TString &Str);
  175. extern int match(IN CONST TString &sExt, IN CONST TString &sFile);
  176. extern TString getfilename(IN CONST TString &file);
  177. extern CString getfilename(IN CONST CString &file);
  178. //////////////////////////////////////////////////////////////////////////
  179. // 进程相关函数;
  180. extern BOOL FindAppProcessID(IN CString path, OUT DWORD &dwProcessID);
  181. extern DWORD FindProcess(IN CString strProName);
  182. extern DWORD FindProcessCount(IN LPCTSTR lpExeName);
  183. extern int FindAndCloseProcess(IN CString strProName);
  184. // 文件函数;
  185. extern BOOL GetDiskSpaceInfo(IN LPCTSTR lpRootPathName,IN OUT double &dTotalNum, IN OUT double &dFreeNum);
  186. extern BOOL GetFileVersion( IN HMODULE hModule, IN DWORD (&dwArray)[4]);
  187. extern BOOL GetFileVersionEx( IN LPCTSTR lpFileName, IN DWORD (&dwArray)[4] );
  188. extern BOOL GetProductVersion( IN HMODULE hModule, IN DWORD (&dwArray)[4]);
  189. extern BOOL GetProductVersionEx( IN LPCTSTR lpFileName, IN DWORD (&dwArray)[4] );
  190. // 获取文件夹的修改时间;
  191. extern BOOL GetDirLastWriteTime(IN LPCTSTR lpDirName, OUT LPTSTR lpszString, IN CONST DWORD& dwSize);
  192. // 设置文件夹的修改时间;
  193. extern BOOL SetDirLastWriteTime();
  194. // 获取指定文件句柄的修改时间;
  195. extern BOOL GetLastWriteTime(IN HANDLE hFile, OUT LPTSTR lpszString, IN CONST DWORD& dwSize);
  196. // 设置指定文件夹的修改时间;
  197. extern BOOL SetFileLastWirteTime(IN LPCTSTR lpDirName, IN SYSTEMTIME &st);
  198. // 删除指定的目录所有文件;
  199. extern void DeleteDirectory(CString strDir);
  200. // 获取主机名;
  201. extern void GetHostName();
  202. // 创建目录;
  203. bool MKDIR(LPCTSTR dir);
  204. void WriteTextLog(LOGTYPE logType, const TCHAR* format, ...);
  205. // 写脚本日志;
  206. void WritePythonLog(LPCTSTR file, const TCHAR* msg);
  207. // 获取本机IP地址;
  208. std::string GetLocalAddress(/*int nType = MIB_IF_TYPE_ETHERNET*/);
  209. // 替换指定字符串;
  210. std::string Replace(std::string strSrc, std::string strNew, std::string strOld);
  211. // 获取Python27路径;
  212. BOOL Python27Dir();
  213. // 获取TortoiseSVN的TortoiseProc.exe路径;
  214. std::string GetTortoiseSVNProcPath();
  215. // 指定字符串分隔;
  216. void Split(std::string str1, std::string str2, std::vector<std::string> &vt);
  217. };
  218. #endif