gongdecai 2 年之前
父節點
當前提交
dee625e513
共有 91 個文件被更改,包括 16142 次插入13 次删除
  1. 69 0
      DLL/linux/x86/32bit/SDK/BaseType.h
  2. 791 0
      DLL/linux/x86/32bit/SDK/LPRCClientSDK.h
  3. 774 0
      DLL/linux/x86/32bit/SDK/WTY.H
  4. 717 0
      DLL/linux/x86/32bit/SDK/WTYSDK_WhiteList.h
  5. 二進制
      DLL/linux/x86/32bit/SDK/libwty.a
  6. 二進制
      DLL/linux/x86/32bit/SDK/libwty.so
  7. 4 0
      DLL/linux/x86/32bit/使用说明.txt
  8. 69 0
      DLL/linux/x86/64bit/SDK/BaseType.h
  9. 791 0
      DLL/linux/x86/64bit/SDK/LPRCClientSDK.h
  10. 774 0
      DLL/linux/x86/64bit/SDK/WTY.H
  11. 717 0
      DLL/linux/x86/64bit/SDK/WTYSDK_WhiteList.h
  12. 二進制
      DLL/linux/x86/64bit/SDK/libwty.a
  13. 二進制
      DLL/linux/x86/64bit/SDK/libwty.so
  14. 4 0
      DLL/linux/x86/64bit/使用说明.txt
  15. 69 0
      DLL/windows/32bit/BaseType.h
  16. 130 0
      DLL/windows/32bit/KHT_Log/0.0.0.0/2022-04-20.txt
  17. 50 0
      DLL/windows/32bit/KHT_Log/0.0.0.0/2022-04-21.txt
  18. 12 0
      DLL/windows/32bit/KHT_Log/192.168.0.99/2022-04-20.txt
  19. 4 0
      DLL/windows/32bit/KHT_Log/192.168.0.99/ErrorLog/2022-04-20.txt
  20. 24 0
      DLL/windows/32bit/KHT_Log/192.168.2.20/2022-04-20.txt
  21. 8 0
      DLL/windows/32bit/KHT_Log/192.168.2.20/ErrorLog/2022-04-20.txt
  22. 322 0
      DLL/windows/32bit/KHT_Log/192.168.2.27/2022-04-20.txt
  23. 144 0
      DLL/windows/32bit/KHT_Log/192.168.2.27/2022-04-21.txt
  24. 106 0
      DLL/windows/32bit/KHT_Log/192.168.2.27/ErrorLog/2022-04-20.txt
  25. 48 0
      DLL/windows/32bit/KHT_Log/192.168.2.27/ErrorLog/2022-04-21.txt
  26. 563 0
      DLL/windows/32bit/KHT_Log/192.168.7.225/2022-04-20.txt
  27. 217 0
      DLL/windows/32bit/KHT_Log/192.168.7.225/2022-04-21.txt
  28. 36 0
      DLL/windows/32bit/KHT_Log/192.168.7.99/2022-04-20.txt
  29. 791 0
      DLL/windows/32bit/LPRCClientSDK.h
  30. 774 0
      DLL/windows/32bit/WTY.H
  31. 二進制
      DLL/windows/32bit/WTY.dll
  32. 二進制
      DLL/windows/32bit/WTY.lib
  33. 717 0
      DLL/windows/32bit/WTYSDK_WhiteList.h
  34. 二進制
      DLL/windows/32bit/WT_H264.dll
  35. 155 0
      DLL/windows/32bit/WT_H264.h
  36. 二進制
      DLL/windows/32bit/WT_H264.lib
  37. 132 0
      DLL/windows/32bit/WT_VideoDecode.h
  38. 69 0
      DLL/windows/64bit/BaseType.h
  39. 2 0
      DLL/windows/64bit/KHT_Log/(null)/2022-04-21.txt
  40. 17 0
      DLL/windows/64bit/KHT_Log/0.0.0.0/2022-04-21.txt
  41. 4 0
      DLL/windows/64bit/KHT_Log/0.0.0.0/2022-10-28.txt
  42. 4 0
      DLL/windows/64bit/KHT_Log/0.0.0.0/2022-11-11.txt
  43. 8 0
      DLL/windows/64bit/KHT_Log/0.0.0.0/2022-11-15.txt
  44. 32 0
      DLL/windows/64bit/KHT_Log/192.168.110.98/2022-10-28.txt
  45. 662 0
      DLL/windows/64bit/KHT_Log/192.168.110.98/2022-10-29.txt
  46. 1166 0
      DLL/windows/64bit/KHT_Log/192.168.110.98/2022-10-30.txt
  47. 1329 0
      DLL/windows/64bit/KHT_Log/192.168.110.98/2022-10-31.txt
  48. 58 0
      DLL/windows/64bit/KHT_Log/192.168.110.98/2022-11-11.txt
  49. 3 0
      DLL/windows/64bit/KHT_Log/192.168.110.98/2022-11-12.txt
  50. 1 0
      DLL/windows/64bit/KHT_Log/192.168.110.98/2022-11-13.txt
  51. 3 0
      DLL/windows/64bit/KHT_Log/192.168.110.98/2022-11-14.txt
  52. 31 0
      DLL/windows/64bit/KHT_Log/192.168.110.98/2022-11-15.txt
  53. 11 0
      DLL/windows/64bit/KHT_Log/192.168.110.99/2022-11-11.txt
  54. 3 0
      DLL/windows/64bit/KHT_Log/192.168.110.99/ErrorLog/2022-11-11.txt
  55. 48 0
      DLL/windows/64bit/KHT_Log/192.168.2.27/2022-04-21.txt
  56. 12 0
      DLL/windows/64bit/KHT_Log/192.168.2.27/2022-10-28.txt
  57. 24 0
      DLL/windows/64bit/KHT_Log/192.168.2.27/2022-11-11.txt
  58. 24 0
      DLL/windows/64bit/KHT_Log/192.168.2.27/2022-11-15.txt
  59. 16 0
      DLL/windows/64bit/KHT_Log/192.168.2.27/ErrorLog/2022-04-21.txt
  60. 4 0
      DLL/windows/64bit/KHT_Log/192.168.2.27/ErrorLog/2022-10-28.txt
  61. 8 0
      DLL/windows/64bit/KHT_Log/192.168.2.27/ErrorLog/2022-11-11.txt
  62. 8 0
      DLL/windows/64bit/KHT_Log/192.168.2.27/ErrorLog/2022-11-15.txt
  63. 55 0
      DLL/windows/64bit/KHT_Log/192.168.7.225/2022-04-21.txt
  64. 791 0
      DLL/windows/64bit/LPRCClientSDK.h
  65. 774 0
      DLL/windows/64bit/WTY.H
  66. 二進制
      DLL/windows/64bit/WTY.dll
  67. 二進制
      DLL/windows/64bit/WTY.lib
  68. 717 0
      DLL/windows/64bit/WTYSDK_WhiteList.h
  69. 二進制
      DLL/windows/64bit/WT_H264.dll
  70. 155 0
      DLL/windows/64bit/WT_H264.h
  71. 二進制
      DLL/windows/64bit/WT_H264.lib
  72. 132 0
      DLL/windows/64bit/WT_VideoDecode.h
  73. 2 2
      pom.xml
  74. 二進制
      templates/excelOrder.xlsx
  75. 10 10
      winsea-haixin-platform-backend/pom.xml
  76. 1 0
      winsea-haixin-platform-backend/src/main/resources/application-local.yml
  77. 1 1
      winsea-haixin-platform-backend/src/main/resources/application.yml
  78. 65 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/PhotoFrame/JpegPanel.java
  79. 195 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/PhotoFrame/myFrame.java
  80. 319 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/PhotoFrameController.java
  81. 212 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/api/WTY_EX.java
  82. 8 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/callback/IOnConnectStatus.java
  83. 10 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/callback/IOnGetDataEx2.java
  84. 9 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/callback/IOnJpegCallback.java
  85. 24 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/data/CLIENT_LPRC_DeviceInfo.java
  86. 25 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/data/CLIENT_LPRC_DeviceInfo1.java
  87. 16 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/data/CameraTime.java
  88. 15 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/data/DevData_info.java
  89. 15 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/data/Image_Info.java
  90. 14 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/data/PlateLocation.java
  91. 18 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/data/PlateResult_Ex.java

+ 69 - 0
DLL/linux/x86/32bit/SDK/BaseType.h

@@ -0,0 +1,69 @@
+#ifndef _BASE_TYPE_H
+#define _BASE_TYPE_H
+
+/* 车标定义 */
+enum CAR_LOGO
+{
+	CAR_LOGO_0 = 0,		// 未知
+	CAR_LOGO_1 = 1,		// 本田
+	CAR_LOGO_2 = 2,		// 比亚迪
+	CAR_LOGO_3 = 3,		// 丰田
+	CAR_LOGO_4 = 4,		// 江淮
+	CAR_LOGO_5 = 5,		// 雷克萨斯
+	CAR_LOGO_6 = 6,		// 铃木
+	CAR_LOGO_7 = 7,		// 马自达
+	CAR_LOGO_8 = 8,		// 奇瑞
+	CAR_LOGO_9 = 9,		// 起亚
+	CAR_LOGO_10 = 10,		// 日产
+	CAR_LOGO_11 = 11,	// 斯巴鲁
+	CAR_LOGO_12 = 12,	// 五菱
+	CAR_LOGO_13 = 13,	// 现代
+	CAR_LOGO_14 = 14,	// 一汽
+	CAR_LOGO_15 = 15,	// 长安
+	CAR_LOGO_16 = 16,	// 长城
+	CAR_LOGO_17 = 17,	// 奥迪
+	CAR_LOGO_18 = 18,	// 宝马
+	CAR_LOGO_19 = 19,	// 奔驰
+	CAR_LOGO_20 = 20,	// 标致
+	CAR_LOGO_21 = 21,	// 别克
+	CAR_LOGO_22 = 22,	// 大众
+	CAR_LOGO_23 = 23,	// 福特
+	CAR_LOGO_24 = 24,	// 东风
+	CAR_LOGO_25 = 25,	// 路虎
+	CAR_LOGO_26 = 26,	// 斯柯达
+	CAR_LOGO_27 = 27,	// 沃尔沃
+	CAR_LOGO_28 = 28,	// 雪佛兰
+	CAR_LOGO_29 = 29,	// 雪铁龙
+	CAR_LOGO_30 = 30,	// 福田
+	CAR_LOGO_31 = 31,	// 荣威
+	CAR_LOGO_32 = 32,	// 凯迪拉克
+	CAR_LOGO_33 = 33,	// 金杯
+	CAR_LOGO_34 = 34,	// 北汽
+	CAR_LOGO_35 = 35,	// 东南
+	CAR_LOGO_36 = 36,	// 三菱
+	CAR_LOGO_37 = 37,	// 吉利帝豪
+	CAR_LOGO_38 = 38,	// jeep
+	CAR_LOGO_39 = 39,	// mini
+	CAR_LOGO_40 = 40,	// 保时捷
+	CAR_LOGO_41 = 41,	// 哈弗
+	CAR_LOGO_42 = 42,	// 上汽大通
+	CAR_LOGO_50 = 50	// 特斯拉
+
+}CAR_LOGO;
+
+
+/* 车标定义 */
+enum CAR_MODEL
+{
+	CAR_MODEL_0 = 0,		// 未知
+	CAR_MODEL_1 = 1,		// 小轿车
+	CAR_MODEL_2 = 2,		// SUV
+	CAR_MODEL_3 = 3,		// 面包车
+	CAR_MODEL_4 = 4,		// 中巴车
+	CAR_MODEL_5 = 5,		// 大巴车
+	CAR_MODEL_6 = 6,		// 小货车
+	CAR_MODEL_7 = 7			// 大货车
+	
+}CAR_MODEL;
+
+#endif

+ 791 - 0
DLL/linux/x86/32bit/SDK/LPRCClientSDK.h

@@ -0,0 +1,791 @@
+#ifndef _CLIENT_H
+#define _CLIENT_H
+
+#if !defined(WIN32) && !defined(__stdcall)
+#define __stdcall
+#endif
+
+#ifdef WIN32
+typedef   __int64  unsigned_long_long;
+#include <windows.h>
+#else     
+typedef  unsigned long long unsigned_long_long;
+#endif
+
+#ifndef WIN32
+typedef unsigned int UINT;
+typedef void *HWND;
+#endif
+typedef unsigned long LDWORD; 
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define CLIENT_LPRC_BIG_PICSTREAM_SIZE     200000-312		/*相机上传jpeg流每帧占用的内存的最大大小*/
+#define CLIENT_LPRC_BIG_PICSTREAM_SIZE_EX   1*800*1024-312	/*相机上传全景图占用内存的最大大小		*/
+#define CLIENT_LPRC_SMALL_PICSTREAM_SIZE_EX   10000			/*相机上传车牌截图占用内存的最大大小	*/
+
+/* 相机时间 */
+typedef struct 
+{
+	int Year;			/* 年 	*/
+	int Month;			/* 月 	*/
+	int Day;			/* 日 	*/
+	int Hour;			/* 时 	*/
+	int Minute;			/* 分 	*/
+	int Second;			/* 秒 	*/
+	int Millisecond;	/* 微妙 */
+}CLIENT_LPRC_CAMERA_TIME;
+
+/* 识别结果坐标 */
+typedef struct 
+{
+	int 	Left;	/* 左 */
+	int 	Top;	/* 上 */
+	int 	Right;	/* 右 */
+	int 	Bottom;	/* 下 */
+}CLIENT_LPRC_PLATE_LOCATION;
+
+/* 图像信息*/
+typedef struct
+{
+	int				nWidth;							/* 宽度					*/
+	int				nHeight;						/* 高度					*/
+	int				nPitch;							/* 图像宽度的一行像素所占内存字节数*/
+	int				nLen;							/* 图像的长度			*/
+	char			reserved[16];					/* 预留     			*/
+	unsigned char	*pBuffer;						/* 图像内存的首地址		*/
+}CLIENT_LPRC_IMAGE_INFO;
+
+/* 识别结果 */
+typedef struct 
+{	
+	char				chCLIENTIP[16];						/* 相机IP 				*/
+	char				chColor[8];							/* 车牌颜色 			*/
+	char				chLicense[16];						/* 车牌号码 			*/
+	CLIENT_LPRC_PLATE_LOCATION 		pcLocation;				/* 车牌在图像中的坐标 	*/
+	CLIENT_LPRC_CAMERA_TIME			shootTime;				/* 识别出车牌的时间 	*/
+	int					nConfidence;						/* 车牌可信度			*/
+	int					nTime;								/* 识别耗时				*/
+	int					nDirection;							/* 车牌方向		    	*/
+	int					nCarLogo;							/* 车标类型(参考CAR_LOGO)*/
+	int					nCarModel;							/* 车型类型(参考CAR_MODEL)*/
+	char				reserved[256-4-4];					/* 预留     			*/
+	CLIENT_LPRC_IMAGE_INFO		pFullImage;					/* 全景图像数据(注意:相机不传输,此处指针为空) */
+	CLIENT_LPRC_IMAGE_INFO		pPlateImage;				/* 车牌图像数据(注意:相机不传输,此处指针为空) */
+}CLIENT_LPRC_PLATE_RESULTEX;
+
+/* Jpeg流回调返回每一帧jpeg数据结构体 */
+typedef struct 
+{
+	char			chIp[16];				/*相机IP												*/
+	char			*pchBuf;				/*每一帧jpeg数据缓冲区									*/
+	unsigned int	nLen;					/*当前jpeg帧的数据长度									*/
+	int				nStatus;				/* 当前jpeg帧接收状态: 0-正常, 非0-不正常 				*/
+	char			reserved[128];			/* 保留		  											*/
+}CLIENT_LPRC_DEVDATA_INFO;
+
+/*接收串口数据的结构体*/
+typedef struct
+{
+	unsigned char *pData;					/*串口数据指针											*/
+	int nsize;								/*串口数据大小											*/
+	char reserved[128];						/* 保留													*/
+}CLIENT_LPRC_DEVSERIAL_DATA;
+
+/* 搜索设备之后保存设备信息的结构体,注:要是修改ip信息请保证其他信息不被改变*/
+typedef struct 
+{
+	char 			chDevName[256];			/* 设备名		*/
+	char			chSoftVer[20];			/* 软件版本号	*/
+	char 			chHardVer[20];			/* 硬件版本号	*/
+	char 			chSysVer[20];			/* 系统版本	*/
+	int				nSdkPort;				/* sdk端口号			*/
+	char 			chIp[16];				/* ip地址		*/
+	char 			chGateway[16];			/* 网管	*/
+	char 			chNetmask[16];			/* 子网掩码	*/
+	char 			chMac[18];				/* Mac地址		*/
+	char            chRoomID[20];				/*RooMID            */
+	char            chSN[20];					/*SN*/
+	char            chWifiIp[16];			/*wifi_ip*/
+	char			reserved[256-16];			/* 保留		  */
+}CLIENT_LPRC_DeviceInfo;
+
+/*新版本Rs485透传数据结构体*/   
+typedef struct{
+	short           TimeDelay;	/*延时范围:10~200之间
+						        注:1、设置的是本条数据和下一条数据之间的延时时间
+						           2、最后一条数据不需要设置延时*/		
+    unsigned char   *data;      /*存储传输数据的缓冲区指针,需要客户自己申请缓冲区*/
+	short           datalen;    /*缓冲区最大长度2*1024*/
+	char            reserved[10];/*保留*/
+ } CLIENT_LPRC_RS485_Data_t;
+
+/*新版本485透传结构体*/
+typedef struct{
+	CLIENT_LPRC_RS485_Data_t  rS485_data[5];  /*实际发送数据的结构体*/
+	int                       datanum;		  /*每次发送最大支持发送5条数据*/
+} CLIENT_LPRC_RS485_Transparent_t;
+
+/*GPIO 输入口状态 结构体 */
+typedef struct{ 	
+	unsigned  char gpio_in0;//GPIO IN0 0低电平 1 高电平 	
+	unsigned  char gpio_in1;//GPIO IN1 0低电平 1 高电平
+	unsigned  char gpio_in2;//GPIO IN2 0低电平 1 高电平
+	unsigned  char gpio_in3;//GPIO IN3 0低电平 1 高电平 
+}CLIENT_LPRC_GPIO_In_Statue;
+
+
+/*GPIO 输入口状态 结构体 */
+typedef struct{ 	
+	char gpio_out1;//GPIO OUT1 0继电器断开 1 继电器闭合	-1不做变化
+	char gpio_out2;//GPIO OUT2 0继电器断开 1 继电器闭合	-1不做变化
+	char gpio_out3;//GPIO OUT3 0继电器断开 1 继电器闭合 -1不做变化
+}CLIENT_LPRC_GPIO_Out_Statue;
+/*网络参数设置结构体 */
+typedef struct{ 	
+	char 			ip[16];					/* IP address		*/
+	char 			netmask[16];			/* Netmask address	*/
+	char 			gateway[16];			/* gateway address	*/
+	char            dns[16];			    /* DNS				*/
+	char            reserved[64];/*保留*/
+}CLIENT_LPRC_Net_Set_Param;
+
+/************************************************************************/
+/* CLIENT_LPRC_InitSDK: 连接相机												*/
+/*		Parameters:														*/
+/*			nPort[in]:		连接相机的端口,现默认为8080				*/
+/*			hWndHandle[in]:	接收消息的窗体句柄,当为NULL时,表示无窗体  */
+/*			uMsg[in]:		用户自定义消息,当hWndHandle不为NULL时,	*/
+/*							检测到有新的车牌识别结果并准备好当前车牌	*/
+/*							缓冲区信息后,用::PostMessage 给窗口		*/
+/*							hWndHandle发送uMsg消息,其中WPARAM参数为0,	*/
+/*							LPARAM参数为0								*/
+/*			chServerIP[in]:	相机的IP地址								*/
+/*          dwUser[in]:     用户自定义字段,主要用来回传给回调函数。    */
+/*		Return Value:   int												*/
+/*							0	相机连接成功							*/
+/*							1	相机连接失败							*/
+/*		Notice:   														*/
+/*				如果采用回调的方式获取数据时,hWndHandle句柄为NULL,	*/
+/*				uMsg为0,并且注册回调函数,通知有新的数据;				*/
+/*				反之,在主窗口收到消息时,调用CLIENT_LPRC_GetVehicleInfoEx获取	*/
+/*				数据。													*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_InitSDK(UINT nPort,HWND hWndHandle,UINT uMsg,char *chServerIP,LDWORD dwUser);
+int __stdcall CLIENT_LPRC_InitSDK_Ex(UINT nPort,HWND hWndHandle,UINT uMsg,char *chServerIP,void *RecoResultCallback, LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_QuitSDK: 断开所有已经连接设备,释放资源					*/
+/*		Parameters:														*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void  __stdcall CLIENT_LPRC_QuitSDK();
+
+
+/************************************************************************/
+/* 	函数: 根据IP地址,断开指定设备链接									*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP地址							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_QuitDevice(char *pCameraIP);
+
+
+
+/***********************************************************************************/
+/* 回调函数:循环检测并通知相机设备通讯状态的回调函数						       */
+/*		Parameters:														           */
+/*			chCLIENTIP[out]:		返回设备IP								       */
+/*			nStatus[out]:		设备状态:0表示网络异常或设备异常;			       */
+/*										  1表示网络正常,设备已连接		    	   */
+/*										  2表示网络正常,设备已连接,但相机有重启  */
+/*          dwUser[out]         CLIENT_InitSDK传给sdk的用户自定义字段              */
+/*		Return Value:   void											           */
+/***********************************************************************************/
+typedef void (*CLIENT_LPRC_ConnectCallback)(char *chCLIENTIP,UINT nStatus,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegCLIENTConnEvent: 注册相机通讯状态的回调函数			*/
+/*		Parameters:														*/
+/*			CLIENTConnect[in]:	CLIENT_LPRC_ConnectCallback类型回调函数 */
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegCLIENTConnEvent (CLIENT_LPRC_ConnectCallback CLIENTConnect);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_CheckStatus: 主动检查相机设备的通讯状态					*/
+/*		Parameters:														*/
+/*			chCLIENTIP[in]:		要检查的相机的IP						*/
+/*		Return Value:   int												*/
+/*							0	正常									*/
+/*							1	网络不通								*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_CheckStatus (char *chCLIENTIP);
+
+
+/************************************************************************/
+/* 回调函数:获取相机485发送的数据										*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回设备IP								*/
+/*          serialData[out]          串口数据地址						*/
+/*			nlen[out]				串口数据大小						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_SerialDataCallback)(char *chCLIENTIP,CLIENT_LPRC_DEVSERIAL_DATA *pSerialData,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegSerialDataEvent: 注册获取串口数据的回调函数			*/
+/*		Parameters:														*/
+/*			CLIENTSerialData[in]:		处理接收串口数据的回调函数的指针*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegSerialDataEvent(CLIENT_LPRC_SerialDataCallback CLIENTSerialData);
+
+
+/************************************************************************/
+/* 回调函数:获取相机GPIO状态											*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回设备IP								*/
+/*          pGpioState[out]          串口数据地址						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_GetGpioStateCallback)(char *chWTYIP,CLIENT_LPRC_GPIO_In_Statue *pGpioState);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegWTYGetGpioState: 注册获取相机GPIO状态的回调函数		*/
+/*		Parameters:														*/
+/*			CLIENTGpioState[in]:	CLIENT_LPRC_GetGpioStateCallback	*/
+/*									类型回调函数						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegWTYGetGpioState (CLIENT_LPRC_GetGpioStateCallback CLIENTGpioState);
+
+
+/************************************************************************/
+/* 回调函数: 注册接收识别数据回调函数									*/
+/*		Parameters:														*/
+/*			recResult[out]:		识别结果数据							*/
+/*          dwUser[out]         CLIENT_LPRC_InitSDK传给sdk的用户自定义字段*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		新扩展的回调函数,方便用户接收清晰度较高或分辨率较高的JPEG图像	*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_DataEx2Callback)(CLIENT_LPRC_PLATE_RESULTEX *recResultEx,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegDataEx2Event: 注册获取识别结果的回调函数				*/
+/*		Parameters:														*/
+/*			CLIENTData[in]:		处理识别结果的回调函数的指针			*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		接收清晰度较高,或分辨率较高的JPEG图像							*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegDataEx2Event(CLIENT_LPRC_DataEx2Callback CLIENTDataEx2);
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP的相机识别结果。							*/
+/*		  当CLIENT_LPRC_initSDK函数中设置了窗体句柄和消息时,			*/
+/*		  需要在消息处理函数中调用此函数来主动获取识别结果。			*/
+/*		Parameters:														*/
+/*			chCLIENTIP[in]:		根据消息,获取指定IP设备识别数据		*/
+/*			chPlate[in]:		车牌号码								*/
+/*			chColor[in]:		车牌颜色								*/
+/*			chFullImage[in]:	全景图数据								*/
+/*			nFullLen[in]:		全景图数据长度							*/
+/*			chPlateImage[in]:	车牌图数据								*/
+/*			nPlateLen[in]:		车牌图数据长度							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			当设置了传输内容不传时,各自对应的数据为NULL,长度为-1;	*/
+/*			当没有形成数据时,各自对应数据为NULL,长度为0				*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_GetVehicleInfoEx(char *chCLIENTIP,
+								 char *chPlate,	
+								 char *chColor,
+								 void *chFullImage ,
+								 int *nFullLen,
+								 void *chPlateImage,
+								 int *nPlateLen);
+
+/************************************************************************/
+/* CLIENT_LPRC_SetSavePath: 如果用户需要动态库自动保存图片,可以通过该函数设置保*/
+/*					存图片的路径。										*/
+/*		Parameters:														*/
+/*			chSavePath[in]:	文件存储路径,以"\\"结束,如:"D:\\Image\\"	*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:   														*/
+/*			全景图:指定目录\\设备IP\\年月日(YYYYMMDD)\\FullImage\\	*/
+/*									时分秒-毫秒__颜色_车牌号码__.jpg	*/
+/*			车牌图:指定目录\\设备IP\\年月日(YYYYMMDD)\\PlatelImage\\	*/
+/*									时分秒-毫秒__颜色_车牌号码__.jpg	*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_SetSavePath (char *chSavePath);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetTrigger: 手动触发识别(抓取一帧识别)					*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要触发的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	触发成功返回									*/
+/*				  非0	失败											*/
+/************************************************************************/	
+int __stdcall CLIENT_LPRC_SetTrigger(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SenseCoilTrigger: 模拟地感触发识别(需要将识别模式:设置为'视频地感')*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要触发的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	触发成功返回									*/
+/*				  非0	失败											*/
+/*		Note:															*/
+/*			V5以上硬件相机才能支持此接口								*/
+/************************************************************************/	
+int __stdcall CLIENT_LPRC_SetSenseCoilTrigger(char *pCameraIP, int nCameraPort);
+
+/************************************************************************/
+/* CLIENT_LPRC_Reboot: 手动重启					*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要重启	的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	成功返回									*/
+/*				  非0	失败											*/
+/************************************************************************/	
+int __stdcall CLIENT_LPRC_Reboot(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetTransContent: 控制相机设备上传内容					*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:		要设置的设备IP							*/
+/*			nCameraPort[in]:	端口,默认8080							*/
+/*			nFullImg[in]:		全景图,0表示不传,1表示传				*/
+/*			nPlateImg[in]:		车牌图,0表示不传,1表示传				*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetTransContent (char *pCameraIP, int nCameraPort, int nFullImg, int nPlateImg);
+
+
+/************************************************************************/
+/* 函数说明: 控制继电器的闭合											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP								*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:   int												*/
+/*							0	设置成功								*/
+/*						  非0	失败									*/
+/*		Notice:   														*/
+/*				通过此功能,可以在PC端通过一体机设备,来控制道闸的抬起	*/
+/*				设备继电器输出信号为:开关量信号。						*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetRelayClose(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* 函数说明: 控制道闸落下												*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP								*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:   int												*/
+/*							0	设置成功								*/
+/*						  非0	失败									*/
+/*		Notice:   														*/
+/*				通过此功能,可以在PC端通过一体机设备,来控制道闸的落下	*/
+/*				设备继电器输出信号为:开关量信号。						*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_DropRod(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RS485Send: RS485透明传输									*/
+/*		Parameters:														*/
+/*			pCameraIP[in]				相机设备IP地址					*/
+/*			nPort[in]					端口,默认8080					*/
+/*			chData[in]					将要传输的数据块的首地址		*/
+/*			nSendLen[in]				将要传输的数据块的字节数		*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:														*/
+/*				1:用户通过此接口,往相机发送数据,相机设备会原样将数据	*/
+/*				通过RS485接口转发出去,到客户所接的外部设备上。			*/
+/*				2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 */
+/*				能传输识别结果(默认S485传输识别结果)。					*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_RS485Send(char *pCameraIP, int nCameraPort, char *chData, int nSendLen);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RS485SendEx: 新版本RS485透明传输											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]				相机设备IP地址					*/
+/*			nPort[in]					端口,默认9110					*/
+/*			nRs485[in]	传输485数据的结构体		*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:														*/
+/*				1:用户通过此接口,往相机发送数据,相机设备会原样将数据	*/
+/*				通过RS485接口转发出去,到客户所接的外部设备上。			*/
+/*				2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 */
+/*				能传输识别结果(默认S485传输识别结果)。					*/
+/*				3:新版本可以一次性给相机发送最大5条数据,可以设置每条数据*/
+/*				透传的时间间隔。									      */
+/************************************************************************/
+int __stdcall CLIENT_LPRC_RS485SendEx(char *pCameraIP, int nCameraPort, CLIENT_LPRC_RS485_Transparent_t nRs485);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SearchDeviceList:    搜索设备IP列表						*/
+/*		Parameters:														*/
+/*		pBuf[out]			存储搜索到的相机列表信息结构体数组			*/
+/*		Return Value:   	int											*/
+/*							大于0	成功搜索到的设备数					*/
+/*						  	-1	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SearchDeviceList(CLIENT_LPRC_DeviceInfo *pBuf);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_AlterDeviceInfo:    修改指定的设备的设备信息				*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		pBuf[out]			存储需要修改的设备信息结构体				*/
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_AlterDeviceInfo(char *pCameraIP,CLIENT_LPRC_DeviceInfo pBuf);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_GetDeviceInfo	根据IP获取设备的设备信息				*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		相机设备的ip地址				    */
+/*		pBuf[out]			存储设备信息结构体				*/
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_GetDeviceInfo(char *pCameraIP,CLIENT_LPRC_DeviceInfo *pBuf);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetDevTimeParam:    修改设备系统时间							    */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		sysTime[in]			设置时间结构体		*/
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetDevTimeParam(char *pCameraIP, CLIENT_LPRC_CAMERA_TIME *sysTime);
+int __stdcall CLIENT_LPRC_GetDevTimeParam(char *pCameraIP, CLIENT_LPRC_CAMERA_TIME *sysTime);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetEncryptKey:    	设置加密芯片密码					*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetEncryptKey(char *pCameraIP, unsigned_long_long nKey);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_ReSetEncryptKey:    	重置加密芯片密码,密码恢复为123456	*/
+/*                          并且用户数据恢复为空                        */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_ReSetEncryptKey(char *pCameraIP);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetEncryptUserData:  设置加密芯片用户数据,密码必须匹配才可以成功*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*      pUserData[in]       加密芯片用户数据指针,大小24个字节          */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetEncryptUserData(char *pCameraIP, unsigned_long_long nKey,char *pUserData);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_GetEncryptUserData:  设置加密芯片用户数据,密码必须匹配才可以成功*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*      pUserData[out]      存储读取到的用户数据                        */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_GetEncryptUserData(char *pCameraIP, unsigned_long_long nKey,char *pUserData);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_TextToSoundPlay:  文字转音频播报							*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		设备的ip地址							    */
+/*		data[in]			需要播报的内容[UTF-8编码]	                */
+/*      len[in]				需要播报的内容长度                          */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/*		notice:														*/
+/*				播报的内容必须为UTF-8编码								*/
+/************************************************************************/
+int __stdcall  CLIENT_LPRC_TextToSoundPlay(char *pCameraIP, char *data, int len);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetGPioOutParam: 设置GPIO 是输出状态				*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要设置的相机设备的ip地址				    */
+/*		pGpioOut[in]		GPIO输出可控制结构体,0表示继电器断开,1表示继电器闭合,-1不改变*/
+/*		Return Value:   	int											*/
+/*							0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetGPioOutParam(char *pCameraIP, CLIENT_LPRC_GPIO_Out_Statue *pGpioOut);
+
+/************************************************************************/
+/* CLIENT_LPRC_SetNetParam: 设置网络参数			*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要设置的相机设备的ip地址				    */
+/*		netSetParam[in]		需要设置的网络参数,不需要设置的项目memset为0*/
+/*		Return Value:   	int											*/
+/*							0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetNetParam(char *pCameraIP, CLIENT_LPRC_Net_Set_Param *netSetParam);
+
+typedef enum CLIENT_UPGRADE_STATUS
+{
+	UPGRADE_FILE_CONNECT_SUCCESS	 			= 0,		// 连接成功
+	UPGRADE_FILE_CONNECT_FAIL	 				= 1,		// 连接失败
+	UPGRADE_FILE_NO_ACCESS		 				= 2,		// 升级文件不存在
+	UPGRADE_FILE_OPEN_SUCCESS					= 3,		// 升级文件打开成功
+	UPGRADE_FILE_OPEN_FAIL 						= 4,		// 升级文件打开失败
+	UPGRADE_FILE_READ_HEAD_SUCCESS				= 5,		// 升级文件读取文件头信息成功
+	UPGRADE_FILE_READ_HEAD_FAIL					= 6,		// 升级文件读取文件头信息失败
+	UPGRADE_FILE_SEND_HEAD_SUCCESS				= 7,		// 升级文件发送文件头信息成功
+	UPGRADE_FILE_SEND_HEAD_FAIL					= 8,		// 升级文件发送文件头信息失败
+	UPGRADE_FILE_RECV_HEAD_RESPONSE_SUCCESS		= 9,		// 升级文件接收头信息响应成功
+	UPGRADE_FILE_RECV_HEAD_RESPONSE_FAIL		= 10,		// 升级文件接收头信息响应失败
+	UPGRADE_FILE_VERSION_CHECK_SUCCESS			= 11,		// 升级文件版本检查通过
+	UPGRADE_FILE_VERSION_CHECK_FAIL				= 12,		// 升级文件版本检查不通过
+	UPGRADE_FILE_START_SEND						= 13,		// 升级文件正在发送
+	UPGRADE_FILE_SEND_DONE						= 14,		// 升级文件发送完成
+	UPGRADE_FILE_SEND_FAIL						= 15,		// 升级文件发送失败
+	UPGRADE_FILE_SEND_DONE_RESPONSE_SUCCESS		= 16,		// 升级文件接收发送完成响应成功
+	UPGRADE_FILE_SEND_DONE_RESPONSE_FAIL		= 17,		// 升级文件接收发送完成响应失败
+	UPGRADE_FILE_UNZIP_SUCCESS					= 18,		// 升级文件解压成功
+	UPGRADE_FILE_UNZIP_FAIL						= 19,		// 升级文件解压失败
+	UPGRADE_SYSTEM_READY_RESTART				= 20,		// 系统准备重启
+}CLIENT_UPGRADE_STATUS;
+
+typedef void (*CLIENT_LPRC_UpgradeCallback)(int status, int send_size, int total_size);
+int __stdcall CLIENT_LPRC_UpGrade(char *pCameraIP, char* filename,CLIENT_LPRC_UpgradeCallback callback);
+
+
+/*************************************************************************************************************/
+/****************************以下接口属于较早版本,V5相机可能不再会提供支持***********************************/
+/**********************************请客户挂接时候,尽量使用以上接口*******************************************/
+/*************************************************************************************************************/
+
+
+/************************************************************************/
+/* 回调函数: 获取Jpeg流的回调函数										*/
+/*		Parameters:														*/
+/*			JpegInfo[out]:		JPEG流数据信息							*/
+/*          dwUser[out]            CLIENT_LPRC_InitSDK传给sdk的用户自定义字段*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中CLIENT_LPRC_DEVDATA_INFO中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_JpegCallback)(CLIENT_LPRC_DEVDATA_INFO *JpegInfo,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegJpegEvent: 注册获取Jpeg流的回调函数							*/
+/*		Parameters:														*/
+/*			JpegInfo[in]:		CLIENT_LPRC_JpegCallback类型回调函数				*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中CLIENT_LPRC_DEVDATA_INFO中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegJpegEvent(CLIENT_LPRC_JpegCallback JpegInfo);
+
+
+/************************************************************************/
+/* 回调函数: 获取报警信息的回调函数										*/
+/*		Parameters:														*/
+/*			alarmInfo[out]:		报警信息								*/
+/*          dwUser[out]            CLIENT_LPRC_InitSDK传给sdk的用户自定义字段              */
+
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			一台PC连接多台设备时,此函数仅需实现一次。当区分不同设备	*/
+/*			的Alarm时,可以通过输出参数中CLIENT_LPRC_DEVDATA_INFO中的chIp来区分		*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中LPRC_CLIENT_DEVDATA_INFO中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_AlarmCallback)(CLIENT_LPRC_DEVDATA_INFO *alarmInfo,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegAlarmEvent: 注册获取报警信息的回调函数				*/
+/*		Parameters:														*/
+/*			AlarmInfo[in]:		CLIENT_LPRC_AlarmCallback类型回调函数	*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中LPRC_CLIENT_DEVDATA_INFO中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegAlarmEvent(CLIENT_LPRC_AlarmCallback AlarmInfo);
+
+
+/************************************************************************/
+/* 函数: Jpeg流消息处理初始化											*/
+/*		Parameters:														*/
+/*			hWndHandle[in]:	接收消息的窗体句柄							*/
+/*			uMsg[in]:		用户自定义消息								*/
+/*							检测到有数据并准备好缓冲区数据后,			*/
+/*							用::PostMessage 给窗口hWndHandle发送uMsg	*/
+/*							消息,其中WPARAM参数为0,LPARAM参数为0		*/
+/*			chIp[in]:		相机IP地址								*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_JpegMessageInit(HWND hWndHandle,UINT uMsg,char *chIp);
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP的相机的Jpeg流数据							*/
+/*		Parameters:														*/
+/*			chIp[in]:			相机IP地址								*/
+/*			chJpegBuf[in]:		存储JPEG的buffer						*/
+/*			nJpegBufLen[in]:	获取到的JPEG数据长度					*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			使用此函数前需先调用CLIENT_JpegMessageInit函数设置自定义消息	*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_GetJpegStream(char *chIp, char *chJpegBuf, char *nJpegBufLen);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetNetworkCardBind: 手动绑定指定网卡IP					*/
+/*		Parameters:														*/
+/*			pCameraIP[in]		要绑定的网卡IP地址						*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:当PC机存在多网卡的情况时,又不想禁用为单网卡时,可通过该	*/
+/*				函数绑定与相机通讯的网卡IP								*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetNetworkCardBind(char *pCameraIP);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetNetCardName: 设置网卡的名字							*/
+/*		Parameters:														*/
+/*			pNetCardName[in]		Linux网络节点的名字					*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:	此函数仅在Linux下使用,不设置默认的网络节点名字为eth0	*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetNetCardName(char *pNetCardName);
+
+
+/************************************************************************/
+/*CLIENT_LPRC_SnapJpegFrame 快速抓拍一帧,两种保存方式,直接保存到固定目*/
+/*					录或者保存到特定内存,要是保存特定内存模式需要传入	*/
+/*					内存最大值,两种方式可选								*/		
+/*		Parameters:														*/
+/*			chIp[in]		   相机的IP地址								*/
+/*			pSaveFileName[in]  路径和带JPEG后缀名的文件名,用于把当前	*/
+/*							   抓拍到的帧保存为特定文件  默认先匹配		*/
+/*							   文件名									*/
+/*          pSaveBuf[in]       用于保存当前帧在特定内存的,并且需要传输	*/
+/*							   内存可存储的最大值,当文件名为空的时候	*/
+/*							   这个才会生效。							*/  
+/*          Maxlen[in]         保存当前帧特定内存的最大值				*/
+/*		Return Value:   int												*/
+/*						   0	保存到特定目录成功						*/
+/*                         >0   保存到特定内存的数据的实际大小          */
+/*						  -1	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SnapJpegFrame(char *chIp,char *pSaveFileName,unsigned char *pSaveBuf,int Maxlen);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetJpegStreamPlayOrStop: 设置jpeg流的开关				*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要设置的相机设备的ip地址				    */
+/*		onoff[in]			jpeg流开关项,0表示关闭流,1表示打开流		*/
+/*		Return Value:   	int											*/
+/*							0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetJpegStreamPlayOrStop(char *pCameraIP,int onoff);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

+ 774 - 0
DLL/linux/x86/32bit/SDK/WTY.H

@@ -0,0 +1,774 @@
+#ifndef _WTY_H
+#define _WTY_H
+
+#if !defined(WIN32) && !defined(__stdcall)
+#define __stdcall
+#endif
+
+#ifndef WIN32
+typedef void *HWND;
+typedef unsigned int UINT;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef WIN32
+typedef   __int64  unsigned_long_long;
+#include <windows.h>
+#else     
+typedef  unsigned long long unsigned_long_long;
+#endif
+#define BIG_PICSTREAM_SIZE     200000-312///		//相机上传全景图占用内存的最大大小
+#define SMALL_PICSTREAM_SIZE   10000////			//相机上传车牌截图占用内存的最大大小
+#define BIG_PICSTREAM_SIZE_EX   1*800*1024-312		//相机上传全景图占用内存的最大大小
+#define SMALL_PICSTREAM_SIZE_EX   10000				//相机上传车牌截图占用内存的最大大小
+
+/* 相机时间 */
+typedef struct 
+{
+	int Year;			/* 年 	*/
+	int Month;			/* 月 	*/
+	int Day;			/* 日 	*/
+	int Hour;			/* 时 	*/
+	int Minute;			/* 分 	*/
+	int Second;			/* 秒 	*/
+	int Millisecond;	/* 微妙 */
+}camera_time;
+
+/* 识别结果坐标 */
+typedef struct 
+{
+	int 	Left;	/* 左 */
+	int 	Top;	/* 上 */
+	int 	Right;	/* 右 */
+	int 	Bottom;	/* 下 */
+}plate_location;
+
+/* 识别结果 */
+typedef struct 
+{	
+	char		chWTYIP[16];						/* 相机IP 				*/
+	int			nFullLen;							/* 全景图像数据大小 	*/
+	int			nPlateLen;							/* 车牌图像数据大小 	*/
+	char		chFullImage[BIG_PICSTREAM_SIZE];	/* 全景图像数据 		*/
+	char		chPlateImage[SMALL_PICSTREAM_SIZE];	/* 车牌图像数据 		*/
+	char		chColor[8];							/* 车牌颜色 			*/
+	char		chLicense[16];						/* 车牌号码 			*/
+	plate_location 	pcLocation;						/* 车牌在图像中的坐标 	*/
+	camera_time		shootTime;						/* 识别出车牌的时间 	*/
+	int			nConfidence;						/* 车牌可信度			*/
+	int			nTime;								/* 识别耗时				*/
+	int			nDirection;							/* 车牌方向				*/
+	int			nCarLogo;							/* 车标类型(参考CAR_LOGO)*/
+	int			nCarModel;							/* 车型类型(参考CAR_MODEL)*/
+	char		reserved[256-12-4-4];
+}plate_result;
+
+/* 图像信息*/
+typedef struct
+{
+	int				nWidth;							/* 宽度					*/
+	int				nHeight;						/* 高度					*/
+	int				nPitch;							/* 图像宽度的一行像素所占内存字节数*/
+	int				nLen;							/* 图像的长度			*/
+	char			reserved[16];					/* 预留     			*/
+	unsigned char	*pBuffer;						/* 图像内存的首地址		*/
+}LPRC_IMAGE_INFO;
+
+
+/* 识别结果 */
+typedef struct 
+{	
+	char				chWTYIP[16];						/* 相机IP 				*/
+	char				chColor[8];							/* 车牌颜色 			*/
+	char				chLicense[16];						/* 车牌号码 			*/
+	plate_location 		pcLocation;							/* 车牌在图像中的坐标 	*/
+	camera_time			shootTime;							/* 识别出车牌的时间 	*/
+	int					nConfidence;						/* 车牌可信度			*/
+	int					nTime;								/* 识别耗时				*/
+	int					nDirection;							/* 车牌方向		    	*/
+	int					nCarLogo;							/* 车标类型(参考CAR_LOGO)*/
+	int					nCarModel;							/* 车型类型(参考CAR_MODEL)*/
+	char				reserved[256-4-4];					/* 预留     			*/
+	LPRC_IMAGE_INFO		pFullImage;							/* 全景图像数据(注意:相机不传输,此处指针为空) */
+	LPRC_IMAGE_INFO		pPlateImage;						/* 车牌图像数据(注意:相机不传输,此处指针为空) */
+}plate_result_ex;
+
+/* Jpeg流回调返回每一帧jpeg数据结构体 */
+typedef struct 
+{
+	char			chIp[16];				/*相机IP												*/
+	char			*pchBuf;				/*每一帧jpeg数据缓冲区									*/
+	unsigned int	nLen;					/*当前jpeg帧的数据长度									*/
+	int				nStatus;				/* 当前jpeg帧接收状态: 0-正常, 非0-不正常 				*/
+	char			reserved[128];			/* 保留		  											*/
+}DevData_info;
+/*接收串口数据的结构体*/
+typedef struct
+{
+	unsigned char *pData;//[1024];////串口数据指针
+	int nsize;///串口数据大小
+	char reserved[128];			/* 保留	*/
+}DevSerial_data;
+
+/* 搜索设备之后保存设备信息的结构体,注:要是修改ip信息请保证其他信息不被改变*/
+typedef struct 
+{
+	char 			chDevName[256];			/* 设备名		*/
+	char			chSoftVer[20];			/* 软件版本号	*/
+	char 			chHardVer[20];			/* 硬件版本号	*/
+	char 			chSysVer[20];			/* 系统版本	*/
+	int				nSdkPort;				/* sdk端口号			*/
+	char 			chIp[16];				/* ip地址		*/
+	char 			chGateway[16];			/* 网管	*/
+	char 			chNetmask[16];			/* 子网掩码	*/
+	char 			chMac[18];				/* Mac地址		*/
+	char            chRoomID[20];			/*RooMID            */
+	char            chSN[20];				/*SN*/
+	char            chWifiIp[16];			/*wifi_ip*/
+	char			reserved[256-16];		/* 保留		  */
+}WTY_DeviceInfo;
+/*新版本Rs485透传数据结构体*/   
+typedef struct{
+	short           TimeDelay;				/*延时范围:10~200毫秒之间
+												 注:1、设置的是本条数据和下一条数据之间的延时时间
+													2、最后一条数据不需要设置延时
+											*/		
+    unsigned char   *data;					/*存储传输数据的缓冲区指针,需要客户自己申请缓冲区*/
+	short           datalen;				/*缓冲区最大长度2*1024*/
+	char            reserved[10];			/*保留*/
+ } WTY_RS485_Data_t;
+
+/*新版本485透传结构体*/
+typedef struct{
+	WTY_RS485_Data_t  rS485_data[5];  /*实际发送数据的结构体*/
+	int               datanum;		  /*每次发送最大支持发送5条数据*/
+} WTY_RS485_Transparent_t;
+
+/*GPIO 输入口状态 结构体 */
+typedef struct{ 	
+	unsigned  char gpio_in0;//GPIO IN0 0低电平 1 高电平 	
+	unsigned  char gpio_in1;//GPIO IN1 0低电平 1 高电平
+	unsigned  char gpio_in2;//GPIO IN2 0低电平 1 高电平
+	unsigned  char gpio_in3;//GPIO IN3 0低电平 1 高电平 
+}WTY_GPIO_In_Statue;
+
+
+/************************************************************************/
+/* WTY_InitSDK: 连接相机												*/
+/*		Parameters:														*/
+/*			nPort[in]:		连接相机的端口,现默认为8080				*/
+/*			hWndHandle[in]:	接收消息的窗体句柄,当为NULL时,表示无窗体  */
+/*			uMsg[in]:		用户自定义消息,当hWndHandle不为NULL时,	*/
+/*							检测到有新的车牌识别结果并准备好当前车牌	*/
+/*							缓冲区信息后,用::PostMessage 给窗口		*/
+/*							hWndHandle发送uMsg消息,其中WPARAM参数为0,	*/
+/*							LPARAM参数为0								*/
+/*			chServerIP[in]:	相机的IP地址								*/
+/*		Return Value:   int												*/
+/*							0	相机连接成功							*/
+/*							1	相机连接失败							*/
+/*		Notice:   														*/
+/*				如果采用回调的方式获取数据时,hWndHandle句柄为NULL,	*/
+/*				uMsg为0,并且注册回调函数,通知有新的数据;				*/
+/*				反之,在主窗口收到消息时,调用WTY_GetVehicleInfo获取	*/
+/*				数据。													*/
+/************************************************************************/
+int __stdcall WTY_InitSDK(UINT nPort,HWND hWndHandle,UINT uMsg,char *chServerIP);
+
+
+/************************************************************************/
+/* 	函数: 根据IP地址,断开指定设备链接									*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP地址							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/************************************************************************/
+int __stdcall WTY_QuitDevice(char *pCameraIP);
+
+
+/************************************************************************/
+/* WTY_QuitSDK: 断开所有已经连接设备,释放资源							*/
+/*		Parameters:														*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void  __stdcall WTY_QuitSDK();
+
+
+/***********************************************************************************/
+/* 回调函数:循环检测并通知相机设备通讯状态的回调函数						       */
+/*		Parameters:														           */
+/*			chWTYIP[out]:		返回设备IP								           */
+/*			nStatus[out]:		设备状态:0表示网络异常或设备异常;			       */
+/*										  1表示网络正常,设备已连接		    	   */
+/*										  2表示网络正常,设备已连接,但相机有重启  */
+/*		Return Value:   void											           */
+/***********************************************************************************/
+typedef void (*WTYConnectCallback)(char *chWTYIP,UINT nStatus);
+
+
+/************************************************************************/
+/* WTY_RegWTYConnEvent: 注册相机通讯状态的回调函数						*/
+/*		Parameters:														*/
+/*			WTYConnect[in]:		ConnectCallback类型回调函数				*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall WTY_RegWTYConnEvent (WTYConnectCallback WTYConnect);
+
+
+/************************************************************************/
+/* WTY_CheckStatus: 主动检查相机设备的通讯状态							*/
+/*		Parameters:														*/
+/*			chWTYIP[in]:		要检查的相机的IP						*/
+/*		Return Value:   int												*/
+/*							0	正常									*/
+/*							1	网络不通								*/
+/************************************************************************/
+int __stdcall WTY_CheckStatus (char *chWTYIP);
+
+
+/************************************************************************/
+/* 回调函数: 注册接收识别数据回调函数									*/
+/*		Parameters:														*/
+/*			recResult[out]:		识别结果数据							*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		新扩展的回调函数,方便用户接收清晰度较高或分辨率较高的JPEG图像	*/
+/************************************************************************/
+typedef void (*WTYDataEx2Callback)(plate_result_ex *recResultEx);
+
+
+/************************************************************************/
+/* WTY_RegDataEx2Event: 注册获取识别结果的回调函数						*/
+/*		Parameters:														*/
+/*			WTYData[in]:		处理识别结果的回调函数的指针			*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		接收清晰度较高,或分辨率较高的JPEG图像							*/
+/************************************************************************/
+void __stdcall WTY_RegDataEx2Event(WTYDataEx2Callback WTYDataEx2);
+
+
+/************************************************************************/
+/* 回调函数:获取相机485发送的数据										*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回设备IP								*/
+/*          serialData[out]          串口数据地址						*/
+/*			nlen[out]				串口数据大小						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*WTYSerialDataCallback)(char *chWTYIP,DevSerial_data *pSerialData);
+
+
+/************************************************************************/
+/* WTY_RegSerialDataEvent: 注册获取串口数据的回调函数					*/
+/*		Parameters:														*/
+/*			WTYSerialData[in]:		处理接收串口数据的回调函数的指针	*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall WTY_RegSerialDataEvent(WTYSerialDataCallback WTYSerialData);
+
+
+/************************************************************************/
+/* 回调函数:获取相机GPIO状态											*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回设备IP								*/
+/*          pGpioState[out]          串口数据地址						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*WTYGetGpioStateCallback)(char *chWTYIP,WTY_GPIO_In_Statue *pGpioState);
+
+
+/************************************************************************/
+/* WTY_RegWTYGetGpioState: 注册获取相机GPIO状态的回调函数				*/
+/*		Parameters:														*/
+/*			WTYGpioState[in]:		WTYGetGpioStateCallback类型回调函数	*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall WTY_RegWTYGetGpioState (WTYGetGpioStateCallback WTYGpioState);
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP的相机识别结果。							*/
+/*		  当WTY_initSDK函数中设置了窗体句柄和消息时,					*/
+/*		  需要在消息处理函数中调用此函数来主动获取识别结果。			*/
+/*		Parameters:														*/
+/*			chWTYIP[in]:		根据消息,获取指定IP设备识别数据		*/
+/*			chPlate[in]:		车牌号码								*/
+/*			chColor[in]:		车牌颜色								*/
+/*			chFullImage[in]:	全景图数据								*/
+/*			nFullLen[in]:		全景图数据长度							*/
+/*			chPlateImage[in]:	车牌图数据								*/
+/*			nPlateLen[in]:		车牌图数据长度							*/
+/*			chTwoImage[in]:		二值化数据								*/
+/*			nTwoLen[in]:		二值化数据长度							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			当设置了传输内容不传时,各自对应的数据为NULL,长度为-1;	*/
+/*			当没有形成数据时,各自对应数据为NULL,长度为0				*/
+/************************************************************************/
+int __stdcall WTY_GetVehicleInfoEx(char *chWTYIP,
+								 char *chPlate,	
+								 char *chColor,
+								 void *chFullImage ,
+								 int *nFullLen,
+								 void *chPlateImage,
+								 int *nPlateLen,
+								 void *chTwoImage,
+								 int *nTwoLen);
+
+
+/************************************************************************/
+/* WTY_SetSavePath: 如果用户需要动态库自动保存图片,可以通过该函数设置保*/
+/*					存图片的路径。										*/
+/*		Parameters:														*/
+/*			chSavePath[in]:	文件存储路径,以"\\"结束,如:"D:\\Image\\"	*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:   														*/
+/*			全景图:指定目录\\设备IP\\年月日(YYYYMMDD)\\FullImage\\	*/
+/*									时分秒-毫秒__颜色_车牌号码__.jpg	*/
+/*			车牌图:指定目录\\设备IP\\年月日(YYYYMMDD)\\PlatelImage\\	*/
+/*									时分秒-毫秒__颜色_车牌号码__.jpg	*/
+/************************************************************************/
+void __stdcall WTY_SetSavePath (char *chSavePath);
+
+
+/************************************************************************/
+/* WTY_SetTrigger: 手动触发识别(抓取一帧识别)							*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要触发的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	触发成功返回									*/
+/*				  非0	失败											*/
+/************************************************************************/	
+int __stdcall WTY_SetTrigger(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* WTY_SetSenseCoilTrigger: 模拟地感触发识别(需要将识别模式:设置为'视频地感')*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要触发的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	触发成功返回									*/
+/*				  非0	失败											*/
+/*		Note:															*/
+/*			V5以上硬件相机才能支持此接口								*/
+/************************************************************************/	
+int __stdcall WTY_SetSenseCoilTrigger(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* 函数说明: 控制继电器的闭合											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP								*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:   int												*/
+/*							0	设置成功								*/
+/*						  非0	失败									*/
+/*		Notice:   														*/
+/*				通过此功能,可以在PC端通过一体机设备,来控制道闸的抬起	*/
+/*				设备继电器输出信号为:开关量信号。						*/
+/************************************************************************/
+int __stdcall WTY_SetRelayClose(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* 函数说明: 控制道闸落下											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP								*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:   int												*/
+/*							0	设置成功								*/
+/*						  非0	失败									*/
+/*		Notice:   														*/
+/*				通过此功能,可以在PC端通过一体机设备,来控制道闸的落下	*/
+/*				设备输出信号为:光耦信号						*/
+/************************************************************************/
+int __stdcall WTY_DropRod(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* WTY_RS485Send: RS485透明传输											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]				相机设备IP地址					*/
+/*			nPort[in]					端口,默认9110					*/
+/*			chData[in]					将要传输的数据块的首地址		*/
+/*			nSendLen[in]				将要传输的数据块的字节数		*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:														*/
+/*				1:用户通过此接口,往相机发送数据,相机设备会原样将数据	*/
+/*				通过RS485接口转发出去,到客户所接的外部设备上。			*/
+/*				2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 */
+/*				能传输识别结果(默认S485传输识别结果)。					*/
+/************************************************************************/
+int __stdcall WTY_RS485Send(char *pCameraIP, int nCameraPort, char *chData, int nSendLen);
+
+
+/************************************************************************/
+/* WTY_RS485SendEx: 新版本RS485透明传输									*/
+/*		Parameters:														*/
+/*			pCameraIP[in]				相机设备IP地址					*/
+/*			nPort[in]					端口,默认9110					*/
+/*			nRs485[in]	传输485数据的结构体								*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:														*/
+/*				1:用户通过此接口,往相机发送数据,相机设备会原样将数据	*/
+/*				通过RS485接口转发出去,到客户所接的外部设备上。			*/
+/*				2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 */
+/*				能传输识别结果(默认S485传输识别结果)。					*/
+/*				3:新版本可以一次性给相机发送最大5条数据,可以设置每条数据*/
+/*				透传的时间间隔。									      */
+/************************************************************************/
+int __stdcall WTY_RS485SendEx(char *pCameraIP, int nCameraPort, WTY_RS485_Transparent_t nRs485);
+
+
+/************************************************************************/
+/* WTY_SearchDeviceList:    搜索设备IP列表							    */
+/*		Parameters:														*/
+/*		pBuf[out]			存储搜索到的相机列表信息结构体数组		    */
+/*		Return Value:   	int											*/
+/*							大于0	成功搜索到的设备数					*/
+/*						  	-1	失败									*/
+/************************************************************************/
+int __stdcall WTY_SearchDeviceList(WTY_DeviceInfo *pBuf);
+
+
+/************************************************************************/
+/* WTY_AlterDeviceInfo:    修改指定的设备的设备信息					    */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		pBuf[out]			存储需要修改的设备信息结构体		        */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_AlterDeviceInfo(char *pCameraIP,WTY_DeviceInfo pBuf);
+
+
+/************************************************************************/
+/* WTY_SetDevTimeParam:    修改设备系统时间							    */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		sysTime[in]			设置时间结构体		                        */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_SetDevTimeParam(char *pCameraIP, camera_time*sysTime);
+
+
+/************************************************************************/
+/* WTY_SetEncryptKey:    	设置加密芯片密码							*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_SetEncryptKey(char *pCameraIP, unsigned_long_long nKey);
+
+
+/************************************************************************/
+/* WTY_ReSetEncryptKey:    	重置加密芯片密码,密码恢复为123456			*/
+/*                          并且用户数据恢复为空                        */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_ReSetEncryptKey(char *pCameraIP);
+
+
+/************************************************************************/
+/* WTY_SetEncryptUserData:  设置加密芯片用户数据,密码必须匹配才可以成功*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*      pUserData[in]       加密芯片用户数据指针,大小24个字节          */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_SetEncryptUserData(char *pCameraIP, unsigned_long_long nKey,char *pUserData);
+
+
+/************************************************************************/
+/* WTY_GetEncryptUserData:  设置加密芯片用户数据,密码必须匹配才可以成功*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*      pUserData[out]      存储读取到的用户数据                        */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_GetEncryptUserData(char *pCameraIP, unsigned_long_long nKey,char *pUserData);
+
+
+
+
+/*************************************************************************************************************/
+/****************************以下接口属于较早版本,V5相机可能不再会提供支持***********************************/
+/**********************************请客户挂接时候,尽量使用以上接口*******************************************/
+/*************************************************************************************************************/
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP相机识别结果。								*/
+/*		  当WTY_initSDK函数中设置了窗体句柄和消息时,					*/
+/*		  需要在消息处理函数中调用此函数来主动获取识别结果。			*/
+/*		Parameters:														*/
+/*			chWTYIP[in]:		根据消息,获取指定IP设备识别数据		*/
+/*			chPlate[in]:		车牌号码								*/
+/*			chColor[in]:		车牌颜色								*/
+/*			chFullImage[in]:	全景图数据								*/
+/*			nFullLen[in]:		全景图数据长度							*/
+/*			chPlateImage[in]:	车牌图数据								*/
+/*			nPlateLen[in]:		车牌图数据长度							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			当设置了传输内容不传时,各自对应的数据为NULL,长度为-1;	*/
+/*			当没有形成数据时,各自对应数据为NULL,长度为0				*/
+/************************************************************************/
+int __stdcall WTY_GetVehicleInfo(char *chWTYIP,
+								 char *chPlate,	
+								 char *chColor,
+								 void *chFullImage ,	
+								 int *nFullLen, 
+								 void *chPlateImage,
+								 int *nPlateLen);
+
+
+/************************************************************************/
+/* 回调函数: 注册接收识别数据回调函数									*/
+/*		Parameters:														*/
+/*			recResult[out]:		识别结果数据							*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*WTYDataExCallback)(plate_result *recResult);
+
+
+/************************************************************************/
+/* WTY_RegDataExEvent: 注册获取识别结果的回调函数						*/
+/*		Parameters:														*/
+/*			WTYData[in]:		处理识别结果的回调函数的指针			*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		接收清晰度较低,或分辨率较低的JPEG图像							*/
+/************************************************************************/
+void __stdcall WTY_RegDataExEvent(WTYDataExCallback WTYDataEx);
+
+
+
+
+
+/************************************************************************/
+/* 回调函数: 获取识别结果的回调函数										*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回识别结果的设备IP					*/
+/*			chPlate[out]:		车牌号码								*/
+/*			chColor[out]:		车牌颜色								*/
+/*			chFullImage[out]:	全景图数据								*/
+/*			nFullLen[out]:		全景图数据长度							*/
+/*			chPlateImage[out]:	车牌图数据								*/
+/*			nPlateLen[out]:		车牌图数据长度							*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*WTYDataCallback)(char *chWTYIP, 
+								char *chPlate,
+								char *chColor,
+								char *chFullImage,
+								int nFullLen, 
+								char *chPlateImage,
+								int nPlateLen);
+
+
+/************************************************************************/
+/* WTY_RegDataEvent: 注册获取识别结果的回调函数							*/
+/*		Parameters:														*/
+/*			WTYData[in]:		处理识别结果的回调函数的指针			*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall WTY_RegDataEvent(WTYDataCallback WTYData);
+
+
+/************************************************************************/
+/* WTY_SetTransContent: 控制相机设备上传内容					        */
+/*		Parameters:														*/
+/*			pCameraIP[in]:		要设置的设备IP							*/
+/*			nCameraPort[in]:	端口,默认8080							*/
+/*			nFullImg[in]:		全景图,0表示不传,1表示传				*/
+/*			nPlateImg[in]:		车牌图,0表示不传,1表示传				*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_SetTransContent (char *pCameraIP, int nCameraPort, int nFullImg, int nPlateImg);
+
+
+/************************************************************************/
+/* 回调函数: 获取Jpeg流的回调函数										*/
+/*		Parameters:														*/
+/*			JpegInfo[out]:		JPEG流数据信息							*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+typedef void (*WTYJpegCallback)(DevData_info *JpegInfo);
+
+
+/************************************************************************/
+/* WTY_RegJpegEvent: 注册获取Jpeg流的回调函数							*/
+/*		Parameters:														*/
+/*			JpegInfo[in]:		WTYJpegCallback类型回调函数				*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+void __stdcall WTY_RegJpegEvent(WTYJpegCallback JpegInfo);
+
+
+/************************************************************************/
+/* 函数: Jpeg流消息处理初始化											*/
+/*		Parameters:														*/
+/*			hWndHandle[in]:	接收消息的窗体句柄							*/
+/*			uMsg[in]:		用户自定义消息								*/
+/*							检测到有数据并准备好缓冲区数据后,			*/
+/*							用::PostMessage 给窗口hWndHandle发送uMsg	*/
+/*							消息,其中WPARAM参数为0,LPARAM参数为0		*/
+/*			chIp[in]:		相机IP地址								*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/************************************************************************/
+int __stdcall WTY_JpegMessageInit(HWND hWndHandle,UINT uMsg,char *chIp);
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP的相机的Jpeg流数据							*/
+/*		Parameters:														*/
+/*			chIp[in]:			相机IP地址								*/
+/*			chJpegBuf[in]:		存储JPEG的buffer						*/
+/*			nJpegBufLen[in]:	获取到的JPEG数据长度					*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			使用此函数前需先调用WTY_JpegMessageInit函数设置自定义消息	*/
+/************************************************************************/
+int __stdcall WTY_GetJpegStream(char *chIp, char *chJpegBuf, char *nJpegBufLen);
+
+
+/************************************************************************/
+/* WTY_SetNetworkCardBind: 手动绑定指定网卡IP							*/
+/*		Parameters:														*/
+/*			pCameraIP[in]		要绑定的网卡IP地址						*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:当PC机存在多网卡的情况时,又不想禁用为单网卡时,可通过该	*/
+/*				函数绑定与相机通讯的网卡IP								*/
+/************************************************************************/
+int __stdcall WTY_SetNetworkCardBind(char *pCameraIP);
+
+
+/************************************************************************/
+/* 回调函数: 获取报警信息的回调函数										*/
+/*		Parameters:														*/
+/*			alarmInfo[out]:		报警信息								*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			一台PC连接多台设备时,此函数仅需实现一次。当区分不同设备	*/
+/*			的Alarm时,可以通过输出参数中DevData_info中的chIp来区分		*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+typedef void (*WTYAlarmCallback)(DevData_info *alarmInfo);
+
+
+/************************************************************************/
+/* WTY_RegAlarmEvent: 注册获取报警信息的回调函数						*/
+/*		Parameters:														*/
+/*			AlarmInfo[in]:		WTYAlarmCallback类型回调函数			*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+
+void __stdcall WTY_RegAlarmEvent(WTYAlarmCallback AlarmInfo);
+
+
+/************************************************************************/
+/*WTY_SnapJpegFrame 快速抓拍一帧,两种保存方式,直接保存到固定目录或者	*/
+/*					保存到特定内存,要是保存特定内存模式需要传入内存		*/
+/*					最大值,两种方式可选									*/		
+/*		Parameters:														*/
+/*			chIp[in]		   相机的IP地址								*/
+/*			pSaveFileName[in]  路径和带JPEG后缀名的文件名,用于把当前	*/
+/*							   抓拍到的帧保存为特定文件  默认先匹配		*/
+/*							   文件名									*/
+/*          pSaveBuf[in]       用于保存当前帧在特定内存的,并且需要传输	*/
+/*							   内存可存储的最大值,当文件名为空的时候	*/
+/*							   这个才会生效。							*/  
+/*          Maxlen[in]         保存当前帧特定内存的最大值				*/
+/*		Return Value:   int												*/
+/*						   0	保存到特定目录成功						*/
+/*                         >0   保存到特定内存的数据的实际大小          */
+/*						  -1	失败									*/
+/************************************************************************/
+int __stdcall WTY_SnapJpegFrame(char *chIp,char *pSaveFileName,unsigned char *pSaveBuf,int Maxlen);
+
+
+/********************************************************************************/
+/* WTY_SetJpegStreamPlayOrStop: 设置jpeg流的开关							    */
+/*		Parameters:														        */
+/*		pCameraIP[in]		需要设置的相机设备的ip地址				            */
+/*		onoff[in]			jpeg流开关项,0表示关闭流,1表示打开流 2打开H264    */
+/*		Return Value:   	int											        */
+/*							0	成功									        */
+/*						  	非0	失败									        */
+/********************************************************************************/
+int __stdcall WTY_SetJpegStreamPlayOrStop(char *pCameraIP,int onoff);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

+ 717 - 0
DLL/linux/x86/32bit/SDK/WTYSDK_WhiteList.h

@@ -0,0 +1,717 @@
+//用于车牌识别设备的白名单相关的操作
+
+#ifndef _WTYSDK_WHITE_LIST_H_
+#define _WTYSDK_WHITE_LIST_H_
+#if !defined(WIN32) && !defined(__stdcall)
+#define __stdcall
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+
+
+struct PlateInfo_t;
+struct plateTraffic_t;
+
+
+//---一些返回值错误信息定义
+//typedef enum
+//{
+//	WTYSDK_WLIST_ERROR_NO_ERROR=0,					//返回成功!
+//	WTYSDK_WLIST_ERROR_GENERAL=-1,					//调用底层接口库失败
+//	WTYSDK_WLIST_ERROR_IP_NULL=-2,					//IP地址为空
+//	WTYSDK_WLIST_ERROR_SIZEOUTOFRANGE=-3,			//每页大小超过100
+//	WTYSDK_WLIST_ERROR_MALLOCFAIL=-4,				//申请内存失败
+//	WTYSDK_WLIST_ERROR_IP_ILLEGALITY=-5	,			//IP地址非法
+//	WTYSDK_WLIST_DEVICEALREADYREGISTER=1,			//设备已经注册成功
+//	WTYSDK_WLIST_ERROR_DATA=-11,					//导入信息有误
+//	WTYSDK_WLIST_TIME_OUT=-12,						//select超时
+//	WTYSDK_WLIST_SERVER_CLOSED=-13,					//服务器端不存在
+//	WTYSDK_WLIST_WLISTSOCKET_ERROR=-21,				//套接字创建失败
+//	WTYSDK_WLIST_CONNECT_ERROR=-22,					//连接服务器失败
+//	WTYSDK_WLIST_SELECT_ERROR=-23,					//select失败
+//	WTYSDK_WLIST_RECV_ERROR=-24,					//接收数据返回失败
+//	WTYSDK_WLIST_SEND_ERROR=-25,					//发送数据失败
+//	WTYSDK_WLIST_DATABASE_ERROR		=1,				//数据库操作失败
+//	WTYSDK_WLIST_REQ_ERROR			=2,				//请求包格式错误
+//	WTYSDK_WLIST_RECIVE_TIMEOUT     =3,			    //接受包超时
+//	WTYSDK_WLIST_DATA_ERROR			=4,				//数据错误
+//
+//	WTYSDK_WLIST_ERROR_NOREGISTSPACE = -6,  // 无注册预留空间 最多100个 mdf by zhz
+//	WTYSDK_WLIST_ERROR_QUERYCONDITION = -7 // 查询条件出错(比如查询参数不合法) mdf by zhz
+//}
+//CLIENT_LPR_WLIST_ERROR;
+
+
+
+/*
+*	车牌类型宏定义
+*/
+#define WTYSDK_PLATETYPE_UNKNOWN        0           ///未知类型
+#define WTYSDK_PLATETYPE_BLUE           1           ///蓝牌
+#define WTYSDK_PLATETYPE_BLACK          2           ///黑牌
+#define WTYSDK_PLATETYPE_SINGLEYELLOW   3           ///单层黄牌
+#define WTYSDK_PLATETYPE_DOUBLEYELLOW   4           ///双层黄牌
+#define WTYSDK_PLATETYPE_JCPLATE        5			///警车车牌
+#define WTYSDK_PLATETYPE_WJPLATE        6			///武警车牌
+#define WTYSDK_PLATETYPE_INDIVIDUATION  7			///个性化车牌
+#define WTYSDK_PLATETYPE_SINGLEARMY		8			///单层军牌
+#define WTYSDK_PLATETYPE_DOUBLEARMY     9			///双层军牌
+#define WTYSDK_PLATETYPE_EMBASSY        10			///使馆车牌
+#define WTYSDK_PLATETYPE_HKOKATE		11			///香港车牌
+#define WTYSDK_PLATETYPE_TRACTOR        12			///拖拉机
+#define WTYSDK_PLATETYPE_AOMEN			13 			///澳门牌
+#define WTYSDK_PLATETYPE_INTERNAL       14			///内部牌
+#define WTYSDK_PLATETYPE_MHPALTE		15			///民航车牌
+#define WTYSDK_PLATETYPE_CONSULATE      16			///领馆车牌
+
+/*
+*	车辆颜色宏定义
+*/
+#define WTYSDK_CARCOLOR_UNKNOWN         0			///未知类型
+#define WTYSDK_CARCOLOR_BLUE			1			///蓝色
+#define WTYSDK_CARCOLOR_YELLOW			2			///黄色
+#define WTYSDK_CARCOLOR_WHITE			3			///白色
+#define WTYSDK_CARCOLOR_BLACK			4			///黑色
+#define WTYSDK_CARCOLOR_GREEN			5			///绿色
+
+
+/*
+*	定义用户、车辆信息结构体里面的数组大小
+*/
+#define WTYSDK_WLIST_CUSTOMER_NAME_LEN	20   //用户名字符串长度
+#define WTYSDK_WLIST_CUSTOMER_CODELEN	20	 //用户编码字符串长度
+
+#define WTYSDK_WLIST_VEHICLE_PLATE_LEN 16	//车牌字符串长度
+#define WTYSDK_WLIST_VEHICLE_CODE_LEN  20	//车辆编码字符串长度
+#define WTYSDK_WLIST_VEHICLE_TIME_LEN  20	//时间信息字符串长度
+#define WTYSDK_WLIST_HTTP_SELECTTRAFFIC_IP_DOMAIN 50    // http 查询 ip 域名长度
+#define WTYSDK_WLIST_TIME_SEG_MAX_NUM	8	//时间段字符串长度
+#define WTYSDK_WLIST_PERPAGE_MAXSIZE    100 //查询或者导入每页最大值
+#define WTYSDK_WLIST_PIC_SAVEPATH     100	//保存图片路径字符串长度
+#define WTYSDK_WLIST_STOREMAXVALUE    30000 //白名单保存用户和车辆信息最大值
+/*
+*	定义客户信息、用户信息、车辆通行信息结构体
+*/
+//黑白名单记录的客户信息
+typedef struct
+{
+	unsigned	uCustomerID;			//<客户在数据库的ID,用于修改、删除操作(主键)
+	char		strName[WTYSDK_WLIST_CUSTOMER_NAME_LEN];	//<客户姓名
+	char		strCode[WTYSDK_WLIST_CUSTOMER_CODELEN];	//<客户编码,唯一编码
+
+	char		reserved[256];//保留
+}
+WTYSDK_WLIST_CUSTOMER;
+
+//---以下一些做api函数参数的定义
+
+// 黑白名单客户信息查询条件
+typedef struct{
+	int 	UserID;											//客户ID
+	char	UserName[WTYSDK_WLIST_CUSTOMER_NAME_LEN];		//客户名字
+	char 	UserSerial[WTYSDK_WLIST_CUSTOMER_CODELEN];		//客户编号
+	int 	page;											//从0开始算第一页,依次类推
+	int 	pageSize;										//每页查询的数目
+	char	reserved[100];
+}
+WTYSDK_CUSTOMERQUERYCONDITION;
+
+
+//黑白名单中的车辆记录
+typedef struct
+{
+	unsigned	uVehicleID;										//<车辆在数据库的ID
+	char		strPlateID[WTYSDK_WLIST_VEHICLE_PLATE_LEN];			//<车牌字符串
+	unsigned	uCustomerID;									//<客户在数据库的ID,与WTYSDK_WLIST_CUSTOMER::uCustomerID对应
+	unsigned	bEnable;										//<该记录有效标记
+	//unsigned	bEnableTMEnable;								//<是否开启生效时间
+	//unsigned	bEnableTMOverdule;								//<是否开启过期时间
+	char		struTMCreate[WTYSDK_WLIST_VEHICLE_TIME_LEN];									//<该记录创建时间
+	char		struTMEnable[WTYSDK_WLIST_VEHICLE_TIME_LEN];									//<该记录生效时间
+	char		struTMOverdule[WTYSDK_WLIST_VEHICLE_TIME_LEN];									//<该记录过期时间
+	unsigned	bUsingTimeSeg;									//是否使用时间段匹配0不启用1
+	char        struTimeSeg[256];									//<周期时间段信息
+	int 		WeekTimeMatch;									//是否在时间段内使用周期时间段匹配0不启用1启用
+	//int 	TimeMatch;		是否使用时间段匹配0不启用1
+	unsigned	bAlarm;											//<是否触发报警(黑名单记录)
+	int			iColor;											//<车辆颜色
+	int			iPlateType;										//<车牌类型
+	int         iBlackList;										//是否黑名单 0不是 1是
+	char		strCode[WTYSDK_WLIST_VEHICLE_CODE_LEN];			//<车辆编码
+	char		strRemark[100];									//车辆备注说明,可以为空
+	char		reserved[256];									//保留
+}
+WTYSDK_WLIST_VEHICLE;
+//车辆 信息查询条件
+typedef struct{
+	int     PlateinfoID;		//车辆ID
+	int 	UserID;				//用户ID
+	char	UserName[20];		//客户名字
+	char 	UserSerial[20];		//客户编号
+	char 	PlateNumber[16];	//车牌号
+	char 	CarSerial[20];		//车辆代码
+	int 	Blacklist;
+	int 	conditionsflag;		//查询条件设置0 根据用户ID查询 1根据用户名查询 2根据用户编码 3根据车辆ID 4根据车牌号 5根据车辆代码  6查询所有
+	int 	page;				//查询页
+	int 	pageSize;			//每页大小,最大值100
+	char	reserved[256];
+}
+WTY_SDK_VEHICLEQUERYRECORD;
+
+
+//车辆通行信息
+typedef struct
+{
+	int iTrafficId;												//车辆通行ID,自增
+	int iVehicleID;												//车辆ID
+	int iCustomerID;											//用户ID
+	char strPlateNumber[WTYSDK_WLIST_VEHICLE_PLATE_LEN];		//车牌字符串
+	char strPassTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];			//车辆通过时间
+	int  iCarSigned;											//车辆标示,0外来车,1内部车
+	int iIsOpenSigno;											//是否开启道闸, 0未抬杆,1已抬杆
+	char strPicSavePath[WTYSDK_WLIST_PIC_SAVEPATH];				//图片保存路径
+	char		reserved[256];									//保留
+}
+WTYSDK_WLIST_TRAFFIC_INFO;
+//Http记录信息
+typedef struct
+{
+	int		TrafficID;				///*ID号:相机自己生成,无需客户指定 */
+	char  	PlateNumber[16];		///*车牌号码*/
+	char	RecDateTime[20];		///*识别时间*/
+	char	TransDateTime[20];		///*发送时间*/
+	int 	FullImageSize;			///*大图大小*/
+	int 	PlateImageSize;			///*小图大小*/
+	int 	IPtype;					///*使用IP还是域名0 IP */
+	char 	IP_Domain[50];			///*IP 或 域名*/
+	int		Port;					///*端口*/
+	char 	Path[200];				///*路径*/
+	int 	TransType;				///*传送方式  0 即时推送数据 1 异常数据重传*/
+	int 	state;					///*发送结果*/
+	int 	ReciveState;				///*接数据状态*/
+	int		DoorOpen;				///*是否开闸 0 不开 1 开*/
+	int		AbnormalID;				///*续传ID*/
+	char		reserved[256];									//保留
+}
+WTYSDK_WLIST_HTTP_INFO;
+
+//车辆通行信息查询条件
+typedef struct
+{
+	char	StartTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];		//*开始时间
+	char 	EndTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];		//*结束时间
+	char 	chPlateNumber[WTYSDK_WLIST_VEHICLE_PLATE_LEN];	//*车牌号
+	int 	page;											//*当前页数
+	int 	pageSize;										//*每页最多查询的大小,100,大于100返回-1
+	int     queryFlag;										//*0 时间段查询  1 车牌查询 2 分页查询
+	char	reserved[256];
+}
+WTY_SDK_TRAFFIC_QUERYCONDITION;
+//Http记录查询条件
+typedef struct
+{
+	char	StartTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];		//*开始时间
+	char 	EndTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];		//*结束时间
+	char 	chPlateNumber[WTYSDK_WLIST_VEHICLE_PLATE_LEN];	//*车牌号
+	char 	IP[16];		/*IP或者域名*/
+	char	Domain[50];//域名
+	int     ipOrDomain;//1 ip 2 域名
+	int 	state;				/*发送结果*/
+	//int     http_select_type;/*查询方式:1:根据ip或者域名查询 可选时间段:2:推送结果查询 可选时间段 3:发送失败重新上传 可选时间段 4:前一天没有上传成功,后一天成功的*/
+	int 	page;											//*当前页数
+	int 	pageSize;										//*每页最多查询的大小,100,大于100返回-1
+	int     queryFlag;										//*0 时间段查询  1 车牌查询 2 分页查询  3域名或者IP查询 4推送结果查询 5发送失败从新上传  6前一天没有成功,后一天成功
+	int     timeIsEnabled;///使能是否启用时间段匹配
+	char	reserved[256];
+}
+WTY_SDK_HTTP_QUERYCONDITION;
+
+//返回的信息类型
+typedef enum{
+	WTYSDK_WLIST_CB_TYPE_NO = 0,								//无效信息
+	WTYSDK_WLIST_CB_TYPE_CUSTOMER,								//客户信息
+	WTYSDK_WLIST_CB_TYPE_VEHICLE,								//车辆信息
+	WTYSDK_WLIST_CB_TYPE_TRAFFIC,								//车辆通行信息
+	WTYSDK_WLIST_CB_TYPE_ROWS									//车辆和用户综合信息
+}
+WTYSDK_WLIST_CB_TYPE;
+//车辆和用户信息
+typedef struct
+{
+	//int nSize;													//*批量导入车牌和用户数据条数,每次最多100条
+	WTYSDK_WLIST_VEHICLE nCarInfo;								//*批量导入车牌信息结构体数组指针
+	WTYSDK_WLIST_CUSTOMER nUserInfo;							//*批量导入用户信息结构体数组指针
+}
+WTYSDK_IMPORTROWS;
+//白名单批量导入失败标志
+typedef struct
+{
+	int		nRow;//导入失败的条数
+	char 		Result[WTYSDK_WLIST_STOREMAXVALUE];//0 数据库存储大于上限10000条,-1 用户信心错误,-2 车辆信息错误  -3重复车牌
+}
+WTYSDK_IMPORT_FAILDREASON;
+/*
+*  @brief 白名单表、客户信息表、车辆通行信息的查询反馈结果函数
+*  @param  [IN] type 回调函数返回的信息类型
+*  @param  [IN] pLP 查询的车辆信息记录
+*  @param  [IN] pCustomer 查询的客户信息记录
+*  @param  [IN] nTotal 单次查询返回的总数
+*  @param  [IN] pUserData 回调函数中的上下文
+*  @ingroup group_callback
+*/
+typedef void (*WTYSDK_WLIST_QUERY_CALLBACK)(WTYSDK_WLIST_CB_TYPE type, WTYSDK_WLIST_VEHICLE *pLP,
+														   WTYSDK_WLIST_CUSTOMER *pCustomer,
+														   WTYSDK_WLIST_TRAFFIC_INFO *pTrafficInfo,
+														  int nTotal,
+														  void *pUserData);
+
+/*
+*  @brief  HTTP的查询反馈结果函数
+*  @param  [IN] pTrafficInfo 查询的HTTP信息记录
+*  @param  [IN] nTotal 单次查询返回的总数
+*  @param  [IN] pUserData 回调函数中的上下文
+*  @ingroup group_callback
+*/
+typedef void (*WTYSDK_WLIST_QUERY_HTTP_CALLBACK)(WTYSDK_WLIST_HTTP_INFO *pTrafficInfo,int nTotal,void *pUserData);
+
+
+
+/*
+*  @brief 设置白名单表和客户信息表的查询结果回调
+*  @param  [IN] func 查询结果回调函数
+*  @param  [IN] pUserData 回调函数中的上下文  (用户传入指针)
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,其它表示失败
+*  @ingroup group_database
+*/
+int  __stdcall WTYSDK_WhiteListSetQueryCallBack(WTYSDK_WLIST_QUERY_CALLBACK func, void *pUserData,char *pServerIp);
+
+/*
+*  @brief 设置HTTP查询结果回调
+*  @param  [IN] func 查询结果回调函数
+*  @param  [IN] pUserData 回调函数中的上下文
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,其它表示失败
+*  @ingroup group_database
+*/
+int  __stdcall WTYSDK_WhiteListSetQueryHttpCallBack(WTYSDK_WLIST_QUERY_HTTP_CALLBACK func, void *pUserData,char *pServerIp);
+
+
+/*
+*  @brief  获取所有客户信息记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return >=0表示成功,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetCustomerCount(char *pServerIp);
+
+/*
+*  @brief  查询白名单表客户信息数据,客户信息通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] numbers 单次每页查询最大值100(1-100),数据多的话可以分页查询和显示
+*  @param  [IN] nPage   查询页数,当前页数从0开始代表第一页
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadCustomer(char *pServerIp,int numbers,int nPage);
+
+/*
+*  @brief 获取白名单客户信息,通过ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] iCustomerId 客户信息的ID
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadCustomerById(char *pServerIp,int iCustomerId); // id唯一
+
+/*
+*  @brief 获取白名单客户信息,通过客户编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strCode 客户信息的唯一编码
+*  @param  [IN] numbers 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @param  [IN] nPage   查询页数,当前页数从0开始代表第一页
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadCustomerByCode(char *pServerIp,char* strCode,int numbers,int nPage);
+/*
+*  @brief 获取白名单客户信息,通过客户名称
+*  @param  [IN] strName 客户信息的名称
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] numbers 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @param  [IN] nPage   查询页数,当前页数从0开始代表第一页
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadCustomerByName(char *pServerIp,char* strName,int numbers,int nPage);
+/*
+*  @brief 增加用户信息记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pNewCustomer 增加的用户信息的结构体  其中 uCustomerID 为自动生成 填写无用
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListInsertCustomer(char *pServerIp,WTYSDK_WLIST_CUSTOMER  pNewCustomer);
+/*
+*  @brief 删除白名单客户信息,通过ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] iCustomerId 客户信息的ID
+*  @return 0表示成功,<0表示失败
+*/
+
+int __stdcall WTY_WhiteListDeleteCustomerById(char *pServerIp,int iCustomerId);
+/*
+*  @brief 删除白名单客户信息,通过用户名
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strName 客户名
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteCustomerByName(char *pServerIp,char* strName);
+/*
+*  @brief 删除白名单客户信息,通过客户编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strCode 客户信息的唯一编码
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteCustomerByCode(char *pServerIp,char* strCode);
+
+
+/*
+*  @brief 更新白名单客户信息,通过ID   注:id系统生成,更新时候id必须对应,不能随意填
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pNewCustomer 客户信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateCustomerById(char *pServerIp,WTYSDK_WLIST_CUSTOMER  pNewCustomer);
+
+/*
+*  @brief 更新白名单客户信息,通过用户名  注:id系统生成,更新时候id必须对应,不能随意填
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pNewCustomer 客户信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateCustomerByName(char *pServerIp,WTYSDK_WLIST_CUSTOMER pNewCustomer);
+
+/*
+*  @brief 更新白名单客户信息,通过客户编码  id系统生成,更新时候id必须对应,不能随意填  此函数会忽略id,把所有用户编号相同的都改
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pNewCustomer 客户信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateCustomerByCode(char *pServerIp,WTYSDK_WLIST_CUSTOMER pNewCustomer);
+/*
+*  @brief  获取所有车辆通行记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetTrafficCount(char *pServerIp);
+/*
+*  @brief  查询所有车辆通行记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListTrafficLoad(char *pServerIp,WTY_SDK_TRAFFIC_QUERYCONDITION queryConditions);
+
+/*
+*  @brief  通过车辆通行ID删除车辆通行信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] tracfficId 车辆通行记录的ID
+*  @return 0表示成功,-1表示失败
+*/
+int __stdcall WTY_WhiteListTraffiDelete(char *pServerIp,int tracfficId);
+
+/*
+*  @brief  清空车辆通行信息
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListTraffiDeleteAll(char *pServerIp);
+
+/*
+*  @brief  批量导出车辆通行信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [OUT] pExportBuf 存储查询到的记录缓冲区
+*  @param  [OUT] nSucceedCount 存储查询成功的记录总条数
+*  @param  [IN] nIndexTotal  想要获取到的记录总数
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListTraffiExportAll(char *pServerIp,WTYSDK_WLIST_TRAFFIC_INFO *pExportBuf,int *nSucceedCount,int nIndexTotal);
+
+/*
+*  @brief  获取所有车辆信息记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return >=0表示成功获取到的数目,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetVehicleCount(char *pServerIp);
+
+/*
+*  @brief  查询白名单表车辆信息数据,客户信息通过回调函数返回   注:此函数为统查 只关注WTY_SDK_VEHICLEQUERYRECORD 内page 和pagesize
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicle(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+/*
+*  @brief 获取白名单车辆信息,通过车牌号码  注: 只关注WTY_SDK_VEHICLEQUERYRECORD 内page 和pagesize 车牌号码   查找车牌号关键字
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示成功获取车辆总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByPlateId(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+/*
+*  @brief 获取白名单车辆信息,通过车辆自增ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示成功获取车牌总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleById(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+
+/*
+*  @brief 获取白名单车辆信息,通过车辆编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strCode 车辆信息的编码
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示成功获取车辆总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByCode(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+/*
+*  @brief 获取白名单车辆信息,通过用户ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示成功获取车辆总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByUserId(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+
+/*
+*  @brief 获取白名单车辆信息,通过车辆用户名字
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示获取到的车辆总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByUserName(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+
+/*
+*  @brief 获取白名单车辆信息,通过用户编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strCode 车辆信息的编码
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示获取车牌总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByUserCode(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+/*
+*  @brief 更新白名单车辆信息,通过车牌号码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleInfo 车辆信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateVehicleByPlateId(char *pServerIp,WTYSDK_WLIST_VEHICLE strVehicleInfo);
+/*
+*  @brief 更新白名单车辆信息,通过车辆自增ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleInfo 车辆信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateVehicleById(char *pServerIp,WTYSDK_WLIST_VEHICLE  strVehicleInfo);
+/*
+*  @brief 更新白名单车辆信息,通过车辆编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleInfo 车辆信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateVehicleByCode(char *pServerIp,WTYSDK_WLIST_VEHICLE strVehicleInfo);
+/*
+*  @brief 增加白名单车辆信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleInfo 车辆信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListInsertVehicle(char *pServerIp,WTYSDK_WLIST_VEHICLE strVehicleInfo);
+
+/*
+*  @brief 删除白名单车辆信息,通过车牌号码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strPlateNumber 车牌号码
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleByPlateId(char *pServerIp,char* strPlateNumber);
+
+/*
+*  @brief 删除白名单车辆信息,通过车辆自增ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] iVehicleId 车辆信息自增ID
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleById(char *pServerIp,int iVehicleId);
+
+/*
+*  @brief 删除白名单车辆信息,通过车辆编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleCode 车辆信息编码
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleByCode(char *pServerIp,char* strVehicleCode);
+
+/*
+*  @brief 	清空白名单车辆信息
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListEmptyVehicle(char *pServerIp);
+
+/*
+*  @brief  清空所有车辆和用户信息
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListClearCustomerAndVehicles(char *pServerIp);
+
+/*
+*  @brief  从数据库删除客户的车辆信息,通过用户ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleByCustomerId(char *pServerIp ,int userId);
+
+/*
+*  @brief  从数据库删除客户以及客户的车辆信息,通过用户ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleAndUserByCustomerId(char *pServerIp ,int userId);
+
+/*
+*  @brief  获取白名单客户表客户和车辆记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return >=0表示成功,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetRowCount(char *pServerIp);
+/*
+*  @brief  查询白名单表车辆信息数据,客户信息通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nQueryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRows(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  查询白名单表车辆信息数据,通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nQueryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRowsCustomerByUserId(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  查询白名单表车辆信息数据,通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nQueryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRowsCustomerByUserCode(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  查询白名单表车辆信息数据,通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nQueryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRowsCustomerByUserName(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  通过车牌查询白名单用户信息和车辆信息,通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pCarPlate 查询的车牌号
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRowsCustomerAndCarByPlate(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  批量导入白名单表车辆信息和客户信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nImportRows 单次导入最大值100,数据多的话可以分次导入,大于100返回-1
+*  @param  [IN] MyBatchResult 白名单导入失败记录的位置,相应位置的Result值等于1为失败
+*  @param  [IN] importMaxValue 单次导入最多100条
+*  @return >=0表示成功的总数,<0表示失败
+*/
+// pImportRows 导入用户和车匹配信息,单次最多100条
+// faildReason [out]导入结果(WTYSDK_IMPORT_FAILDREASON参数nRow表示导入错误多少条,Result数组表示每一条的执行情况)
+// importMaxValue [int] 表示pImportRows中单次导入的条数(比如导入10条,这参数填入10)--最大100
+int  __stdcall WTY_WhiteListImportRows(char *pServerIp,WTYSDK_IMPORTROWS *pImportRows,WTYSDK_IMPORT_FAILDREASON *faildReason,int importMaxValue);
+/*
+*  @brief  批量导出白名单客户和车辆信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [OUT] nImportRows 导出的数据记录信息结构体指针,大小是结构体大小*nTotal
+*  @param  [OUT] pExportSucceed 导出成功的数目
+*  @param  [IN] WTY_WhiteListGetRowCount 获取到的记录的总条数
+*  @return >=0表示成功的总数,<0表示失败
+*/
+// pExportRows[out]  导出内容
+// pExportSucceed [out] 实际成功导出多少个
+// nTotal [in] 需要导出的数量(希望导出500条,就填500条)  以此来分页导出,每页最多100
+int  __stdcall WTY_WhiteListExportsRows(char *pServerIp,WTYSDK_IMPORTROWS *pExportRows,int *pExportSucceed,int nTotal);
+
+
+/*
+*  @brief  获取所有Http数据库记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return >=0表示获取条数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetHttpCount(char *pServerIp);
+/*
+*  @brief  查询Http数据记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListHttpLoad(char *pServerIp,WTY_SDK_HTTP_QUERYCONDITION queryConditions,int *nTotal);
+
+/*
+*  @brief  通过Http记录ID删除Http记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] tracfficId 车辆通行记录的ID
+*  @return 0表示成功,-1表示失败
+*/
+int __stdcall WTY_WhiteListHttpDelete(char *pServerIp,int tracfficId);
+
+/*
+*  @brief  清空Http记录
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListHttpDeleteAll(char *pServerIp);
+
+/*
+*  @brief  批量导出Http记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [OUT] pExportBuf 存储查询到的记录缓冲区
+*  @param  [OUT] nSucceedCount 存储查询成功的记录总条数
+*  @param  [IN] nIndexTotal 希望导出的个数
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListHttpExportAll(char *pServerIp,WTYSDK_WLIST_HTTP_INFO *pExportBuf,int *nSucceedCount,int nIndexTotal);
+
+/*
+*  @brief  根据车牌查询车辆信息(用于相机traffic)
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pPlate 车牌号
+*  @param  [OUT] pVehicleInfo 车辆信息
+*  @return 0表示成功但未找到,1表示操作成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListTrafficRequestByPlate(char *pServerIp, char *pPlate, PlateInfo_t* pVehicleInfo);
+
+/*
+*  @brief  写入通行量(用于相机traffic)
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pTrafficInfo 要插入的通信信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListTrafficInsertTrafficInfo(char* pServerIp, plateTraffic_t* pTrafficInfo);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

二進制
DLL/linux/x86/32bit/SDK/libwty.a


二進制
DLL/linux/x86/32bit/SDK/libwty.so


+ 4 - 0
DLL/linux/x86/32bit/使用说明.txt

@@ -0,0 +1,4 @@
+LinuxÄںˣº
+	Linux ema 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 i686 GNU/Linux
+°æ±¾ÐÅÏ¢£º
+	gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1) 

+ 69 - 0
DLL/linux/x86/64bit/SDK/BaseType.h

@@ -0,0 +1,69 @@
+#ifndef _BASE_TYPE_H
+#define _BASE_TYPE_H
+
+/* 车标定义 */
+enum CAR_LOGO
+{
+	CAR_LOGO_0 = 0,		// 未知
+	CAR_LOGO_1 = 1,		// 本田
+	CAR_LOGO_2 = 2,		// 比亚迪
+	CAR_LOGO_3 = 3,		// 丰田
+	CAR_LOGO_4 = 4,		// 江淮
+	CAR_LOGO_5 = 5,		// 雷克萨斯
+	CAR_LOGO_6 = 6,		// 铃木
+	CAR_LOGO_7 = 7,		// 马自达
+	CAR_LOGO_8 = 8,		// 奇瑞
+	CAR_LOGO_9 = 9,		// 起亚
+	CAR_LOGO_10 = 10,		// 日产
+	CAR_LOGO_11 = 11,	// 斯巴鲁
+	CAR_LOGO_12 = 12,	// 五菱
+	CAR_LOGO_13 = 13,	// 现代
+	CAR_LOGO_14 = 14,	// 一汽
+	CAR_LOGO_15 = 15,	// 长安
+	CAR_LOGO_16 = 16,	// 长城
+	CAR_LOGO_17 = 17,	// 奥迪
+	CAR_LOGO_18 = 18,	// 宝马
+	CAR_LOGO_19 = 19,	// 奔驰
+	CAR_LOGO_20 = 20,	// 标致
+	CAR_LOGO_21 = 21,	// 别克
+	CAR_LOGO_22 = 22,	// 大众
+	CAR_LOGO_23 = 23,	// 福特
+	CAR_LOGO_24 = 24,	// 东风
+	CAR_LOGO_25 = 25,	// 路虎
+	CAR_LOGO_26 = 26,	// 斯柯达
+	CAR_LOGO_27 = 27,	// 沃尔沃
+	CAR_LOGO_28 = 28,	// 雪佛兰
+	CAR_LOGO_29 = 29,	// 雪铁龙
+	CAR_LOGO_30 = 30,	// 福田
+	CAR_LOGO_31 = 31,	// 荣威
+	CAR_LOGO_32 = 32,	// 凯迪拉克
+	CAR_LOGO_33 = 33,	// 金杯
+	CAR_LOGO_34 = 34,	// 北汽
+	CAR_LOGO_35 = 35,	// 东南
+	CAR_LOGO_36 = 36,	// 三菱
+	CAR_LOGO_37 = 37,	// 吉利帝豪
+	CAR_LOGO_38 = 38,	// jeep
+	CAR_LOGO_39 = 39,	// mini
+	CAR_LOGO_40 = 40,	// 保时捷
+	CAR_LOGO_41 = 41,	// 哈弗
+	CAR_LOGO_42 = 42,	// 上汽大通
+	CAR_LOGO_50 = 50	// 特斯拉
+
+}CAR_LOGO;
+
+
+/* 车标定义 */
+enum CAR_MODEL
+{
+	CAR_MODEL_0 = 0,		// 未知
+	CAR_MODEL_1 = 1,		// 小轿车
+	CAR_MODEL_2 = 2,		// SUV
+	CAR_MODEL_3 = 3,		// 面包车
+	CAR_MODEL_4 = 4,		// 中巴车
+	CAR_MODEL_5 = 5,		// 大巴车
+	CAR_MODEL_6 = 6,		// 小货车
+	CAR_MODEL_7 = 7			// 大货车
+	
+}CAR_MODEL;
+
+#endif

+ 791 - 0
DLL/linux/x86/64bit/SDK/LPRCClientSDK.h

@@ -0,0 +1,791 @@
+#ifndef _CLIENT_H
+#define _CLIENT_H
+
+#if !defined(WIN32) && !defined(__stdcall)
+#define __stdcall
+#endif
+
+#ifdef WIN32
+typedef   __int64  unsigned_long_long;
+#include <windows.h>
+#else     
+typedef  unsigned long long unsigned_long_long;
+#endif
+
+#ifndef WIN32
+typedef unsigned int UINT;
+typedef void *HWND;
+#endif
+typedef unsigned long LDWORD; 
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define CLIENT_LPRC_BIG_PICSTREAM_SIZE     200000-312		/*相机上传jpeg流每帧占用的内存的最大大小*/
+#define CLIENT_LPRC_BIG_PICSTREAM_SIZE_EX   1*800*1024-312	/*相机上传全景图占用内存的最大大小		*/
+#define CLIENT_LPRC_SMALL_PICSTREAM_SIZE_EX   10000			/*相机上传车牌截图占用内存的最大大小	*/
+
+/* 相机时间 */
+typedef struct 
+{
+	int Year;			/* 年 	*/
+	int Month;			/* 月 	*/
+	int Day;			/* 日 	*/
+	int Hour;			/* 时 	*/
+	int Minute;			/* 分 	*/
+	int Second;			/* 秒 	*/
+	int Millisecond;	/* 微妙 */
+}CLIENT_LPRC_CAMERA_TIME;
+
+/* 识别结果坐标 */
+typedef struct 
+{
+	int 	Left;	/* 左 */
+	int 	Top;	/* 上 */
+	int 	Right;	/* 右 */
+	int 	Bottom;	/* 下 */
+}CLIENT_LPRC_PLATE_LOCATION;
+
+/* 图像信息*/
+typedef struct
+{
+	int				nWidth;							/* 宽度					*/
+	int				nHeight;						/* 高度					*/
+	int				nPitch;							/* 图像宽度的一行像素所占内存字节数*/
+	int				nLen;							/* 图像的长度			*/
+	char			reserved[16];					/* 预留     			*/
+	unsigned char	*pBuffer;						/* 图像内存的首地址		*/
+}CLIENT_LPRC_IMAGE_INFO;
+
+/* 识别结果 */
+typedef struct 
+{	
+	char				chCLIENTIP[16];						/* 相机IP 				*/
+	char				chColor[8];							/* 车牌颜色 			*/
+	char				chLicense[16];						/* 车牌号码 			*/
+	CLIENT_LPRC_PLATE_LOCATION 		pcLocation;				/* 车牌在图像中的坐标 	*/
+	CLIENT_LPRC_CAMERA_TIME			shootTime;				/* 识别出车牌的时间 	*/
+	int					nConfidence;						/* 车牌可信度			*/
+	int					nTime;								/* 识别耗时				*/
+	int					nDirection;							/* 车牌方向		    	*/
+	int					nCarLogo;							/* 车标类型(参考CAR_LOGO)*/
+	int					nCarModel;							/* 车型类型(参考CAR_MODEL)*/
+	char				reserved[256-4-4];					/* 预留     			*/
+	CLIENT_LPRC_IMAGE_INFO		pFullImage;					/* 全景图像数据(注意:相机不传输,此处指针为空) */
+	CLIENT_LPRC_IMAGE_INFO		pPlateImage;				/* 车牌图像数据(注意:相机不传输,此处指针为空) */
+}CLIENT_LPRC_PLATE_RESULTEX;
+
+/* Jpeg流回调返回每一帧jpeg数据结构体 */
+typedef struct 
+{
+	char			chIp[16];				/*相机IP												*/
+	char			*pchBuf;				/*每一帧jpeg数据缓冲区									*/
+	unsigned int	nLen;					/*当前jpeg帧的数据长度									*/
+	int				nStatus;				/* 当前jpeg帧接收状态: 0-正常, 非0-不正常 				*/
+	char			reserved[128];			/* 保留		  											*/
+}CLIENT_LPRC_DEVDATA_INFO;
+
+/*接收串口数据的结构体*/
+typedef struct
+{
+	unsigned char *pData;					/*串口数据指针											*/
+	int nsize;								/*串口数据大小											*/
+	char reserved[128];						/* 保留													*/
+}CLIENT_LPRC_DEVSERIAL_DATA;
+
+/* 搜索设备之后保存设备信息的结构体,注:要是修改ip信息请保证其他信息不被改变*/
+typedef struct 
+{
+	char 			chDevName[256];			/* 设备名		*/
+	char			chSoftVer[20];			/* 软件版本号	*/
+	char 			chHardVer[20];			/* 硬件版本号	*/
+	char 			chSysVer[20];			/* 系统版本	*/
+	int				nSdkPort;				/* sdk端口号			*/
+	char 			chIp[16];				/* ip地址		*/
+	char 			chGateway[16];			/* 网管	*/
+	char 			chNetmask[16];			/* 子网掩码	*/
+	char 			chMac[18];				/* Mac地址		*/
+	char            chRoomID[20];				/*RooMID            */
+	char            chSN[20];					/*SN*/
+	char            chWifiIp[16];			/*wifi_ip*/
+	char			reserved[256-16];			/* 保留		  */
+}CLIENT_LPRC_DeviceInfo;
+
+/*新版本Rs485透传数据结构体*/   
+typedef struct{
+	short           TimeDelay;	/*延时范围:10~200之间
+						        注:1、设置的是本条数据和下一条数据之间的延时时间
+						           2、最后一条数据不需要设置延时*/		
+    unsigned char   *data;      /*存储传输数据的缓冲区指针,需要客户自己申请缓冲区*/
+	short           datalen;    /*缓冲区最大长度2*1024*/
+	char            reserved[10];/*保留*/
+ } CLIENT_LPRC_RS485_Data_t;
+
+/*新版本485透传结构体*/
+typedef struct{
+	CLIENT_LPRC_RS485_Data_t  rS485_data[5];  /*实际发送数据的结构体*/
+	int                       datanum;		  /*每次发送最大支持发送5条数据*/
+} CLIENT_LPRC_RS485_Transparent_t;
+
+/*GPIO 输入口状态 结构体 */
+typedef struct{ 	
+	unsigned  char gpio_in0;//GPIO IN0 0低电平 1 高电平 	
+	unsigned  char gpio_in1;//GPIO IN1 0低电平 1 高电平
+	unsigned  char gpio_in2;//GPIO IN2 0低电平 1 高电平
+	unsigned  char gpio_in3;//GPIO IN3 0低电平 1 高电平 
+}CLIENT_LPRC_GPIO_In_Statue;
+
+
+/*GPIO 输入口状态 结构体 */
+typedef struct{ 	
+	char gpio_out1;//GPIO OUT1 0继电器断开 1 继电器闭合	-1不做变化
+	char gpio_out2;//GPIO OUT2 0继电器断开 1 继电器闭合	-1不做变化
+	char gpio_out3;//GPIO OUT3 0继电器断开 1 继电器闭合 -1不做变化
+}CLIENT_LPRC_GPIO_Out_Statue;
+/*网络参数设置结构体 */
+typedef struct{ 	
+	char 			ip[16];					/* IP address		*/
+	char 			netmask[16];			/* Netmask address	*/
+	char 			gateway[16];			/* gateway address	*/
+	char            dns[16];			    /* DNS				*/
+	char            reserved[64];/*保留*/
+}CLIENT_LPRC_Net_Set_Param;
+
+/************************************************************************/
+/* CLIENT_LPRC_InitSDK: 连接相机												*/
+/*		Parameters:														*/
+/*			nPort[in]:		连接相机的端口,现默认为8080				*/
+/*			hWndHandle[in]:	接收消息的窗体句柄,当为NULL时,表示无窗体  */
+/*			uMsg[in]:		用户自定义消息,当hWndHandle不为NULL时,	*/
+/*							检测到有新的车牌识别结果并准备好当前车牌	*/
+/*							缓冲区信息后,用::PostMessage 给窗口		*/
+/*							hWndHandle发送uMsg消息,其中WPARAM参数为0,	*/
+/*							LPARAM参数为0								*/
+/*			chServerIP[in]:	相机的IP地址								*/
+/*          dwUser[in]:     用户自定义字段,主要用来回传给回调函数。    */
+/*		Return Value:   int												*/
+/*							0	相机连接成功							*/
+/*							1	相机连接失败							*/
+/*		Notice:   														*/
+/*				如果采用回调的方式获取数据时,hWndHandle句柄为NULL,	*/
+/*				uMsg为0,并且注册回调函数,通知有新的数据;				*/
+/*				反之,在主窗口收到消息时,调用CLIENT_LPRC_GetVehicleInfoEx获取	*/
+/*				数据。													*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_InitSDK(UINT nPort,HWND hWndHandle,UINT uMsg,char *chServerIP,LDWORD dwUser);
+int __stdcall CLIENT_LPRC_InitSDK_Ex(UINT nPort,HWND hWndHandle,UINT uMsg,char *chServerIP,void *RecoResultCallback, LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_QuitSDK: 断开所有已经连接设备,释放资源					*/
+/*		Parameters:														*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void  __stdcall CLIENT_LPRC_QuitSDK();
+
+
+/************************************************************************/
+/* 	函数: 根据IP地址,断开指定设备链接									*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP地址							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_QuitDevice(char *pCameraIP);
+
+
+
+/***********************************************************************************/
+/* 回调函数:循环检测并通知相机设备通讯状态的回调函数						       */
+/*		Parameters:														           */
+/*			chCLIENTIP[out]:		返回设备IP								       */
+/*			nStatus[out]:		设备状态:0表示网络异常或设备异常;			       */
+/*										  1表示网络正常,设备已连接		    	   */
+/*										  2表示网络正常,设备已连接,但相机有重启  */
+/*          dwUser[out]         CLIENT_InitSDK传给sdk的用户自定义字段              */
+/*		Return Value:   void											           */
+/***********************************************************************************/
+typedef void (*CLIENT_LPRC_ConnectCallback)(char *chCLIENTIP,UINT nStatus,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegCLIENTConnEvent: 注册相机通讯状态的回调函数			*/
+/*		Parameters:														*/
+/*			CLIENTConnect[in]:	CLIENT_LPRC_ConnectCallback类型回调函数 */
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegCLIENTConnEvent (CLIENT_LPRC_ConnectCallback CLIENTConnect);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_CheckStatus: 主动检查相机设备的通讯状态					*/
+/*		Parameters:														*/
+/*			chCLIENTIP[in]:		要检查的相机的IP						*/
+/*		Return Value:   int												*/
+/*							0	正常									*/
+/*							1	网络不通								*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_CheckStatus (char *chCLIENTIP);
+
+
+/************************************************************************/
+/* 回调函数:获取相机485发送的数据										*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回设备IP								*/
+/*          serialData[out]          串口数据地址						*/
+/*			nlen[out]				串口数据大小						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_SerialDataCallback)(char *chCLIENTIP,CLIENT_LPRC_DEVSERIAL_DATA *pSerialData,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegSerialDataEvent: 注册获取串口数据的回调函数			*/
+/*		Parameters:														*/
+/*			CLIENTSerialData[in]:		处理接收串口数据的回调函数的指针*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegSerialDataEvent(CLIENT_LPRC_SerialDataCallback CLIENTSerialData);
+
+
+/************************************************************************/
+/* 回调函数:获取相机GPIO状态											*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回设备IP								*/
+/*          pGpioState[out]          串口数据地址						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_GetGpioStateCallback)(char *chWTYIP,CLIENT_LPRC_GPIO_In_Statue *pGpioState);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegWTYGetGpioState: 注册获取相机GPIO状态的回调函数		*/
+/*		Parameters:														*/
+/*			CLIENTGpioState[in]:	CLIENT_LPRC_GetGpioStateCallback	*/
+/*									类型回调函数						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegWTYGetGpioState (CLIENT_LPRC_GetGpioStateCallback CLIENTGpioState);
+
+
+/************************************************************************/
+/* 回调函数: 注册接收识别数据回调函数									*/
+/*		Parameters:														*/
+/*			recResult[out]:		识别结果数据							*/
+/*          dwUser[out]         CLIENT_LPRC_InitSDK传给sdk的用户自定义字段*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		新扩展的回调函数,方便用户接收清晰度较高或分辨率较高的JPEG图像	*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_DataEx2Callback)(CLIENT_LPRC_PLATE_RESULTEX *recResultEx,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegDataEx2Event: 注册获取识别结果的回调函数				*/
+/*		Parameters:														*/
+/*			CLIENTData[in]:		处理识别结果的回调函数的指针			*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		接收清晰度较高,或分辨率较高的JPEG图像							*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegDataEx2Event(CLIENT_LPRC_DataEx2Callback CLIENTDataEx2);
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP的相机识别结果。							*/
+/*		  当CLIENT_LPRC_initSDK函数中设置了窗体句柄和消息时,			*/
+/*		  需要在消息处理函数中调用此函数来主动获取识别结果。			*/
+/*		Parameters:														*/
+/*			chCLIENTIP[in]:		根据消息,获取指定IP设备识别数据		*/
+/*			chPlate[in]:		车牌号码								*/
+/*			chColor[in]:		车牌颜色								*/
+/*			chFullImage[in]:	全景图数据								*/
+/*			nFullLen[in]:		全景图数据长度							*/
+/*			chPlateImage[in]:	车牌图数据								*/
+/*			nPlateLen[in]:		车牌图数据长度							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			当设置了传输内容不传时,各自对应的数据为NULL,长度为-1;	*/
+/*			当没有形成数据时,各自对应数据为NULL,长度为0				*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_GetVehicleInfoEx(char *chCLIENTIP,
+								 char *chPlate,	
+								 char *chColor,
+								 void *chFullImage ,
+								 int *nFullLen,
+								 void *chPlateImage,
+								 int *nPlateLen);
+
+/************************************************************************/
+/* CLIENT_LPRC_SetSavePath: 如果用户需要动态库自动保存图片,可以通过该函数设置保*/
+/*					存图片的路径。										*/
+/*		Parameters:														*/
+/*			chSavePath[in]:	文件存储路径,以"\\"结束,如:"D:\\Image\\"	*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:   														*/
+/*			全景图:指定目录\\设备IP\\年月日(YYYYMMDD)\\FullImage\\	*/
+/*									时分秒-毫秒__颜色_车牌号码__.jpg	*/
+/*			车牌图:指定目录\\设备IP\\年月日(YYYYMMDD)\\PlatelImage\\	*/
+/*									时分秒-毫秒__颜色_车牌号码__.jpg	*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_SetSavePath (char *chSavePath);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetTrigger: 手动触发识别(抓取一帧识别)					*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要触发的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	触发成功返回									*/
+/*				  非0	失败											*/
+/************************************************************************/	
+int __stdcall CLIENT_LPRC_SetTrigger(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SenseCoilTrigger: 模拟地感触发识别(需要将识别模式:设置为'视频地感')*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要触发的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	触发成功返回									*/
+/*				  非0	失败											*/
+/*		Note:															*/
+/*			V5以上硬件相机才能支持此接口								*/
+/************************************************************************/	
+int __stdcall CLIENT_LPRC_SetSenseCoilTrigger(char *pCameraIP, int nCameraPort);
+
+/************************************************************************/
+/* CLIENT_LPRC_Reboot: 手动重启					*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要重启	的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	成功返回									*/
+/*				  非0	失败											*/
+/************************************************************************/	
+int __stdcall CLIENT_LPRC_Reboot(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetTransContent: 控制相机设备上传内容					*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:		要设置的设备IP							*/
+/*			nCameraPort[in]:	端口,默认8080							*/
+/*			nFullImg[in]:		全景图,0表示不传,1表示传				*/
+/*			nPlateImg[in]:		车牌图,0表示不传,1表示传				*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetTransContent (char *pCameraIP, int nCameraPort, int nFullImg, int nPlateImg);
+
+
+/************************************************************************/
+/* 函数说明: 控制继电器的闭合											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP								*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:   int												*/
+/*							0	设置成功								*/
+/*						  非0	失败									*/
+/*		Notice:   														*/
+/*				通过此功能,可以在PC端通过一体机设备,来控制道闸的抬起	*/
+/*				设备继电器输出信号为:开关量信号。						*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetRelayClose(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* 函数说明: 控制道闸落下												*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP								*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:   int												*/
+/*							0	设置成功								*/
+/*						  非0	失败									*/
+/*		Notice:   														*/
+/*				通过此功能,可以在PC端通过一体机设备,来控制道闸的落下	*/
+/*				设备继电器输出信号为:开关量信号。						*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_DropRod(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RS485Send: RS485透明传输									*/
+/*		Parameters:														*/
+/*			pCameraIP[in]				相机设备IP地址					*/
+/*			nPort[in]					端口,默认8080					*/
+/*			chData[in]					将要传输的数据块的首地址		*/
+/*			nSendLen[in]				将要传输的数据块的字节数		*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:														*/
+/*				1:用户通过此接口,往相机发送数据,相机设备会原样将数据	*/
+/*				通过RS485接口转发出去,到客户所接的外部设备上。			*/
+/*				2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 */
+/*				能传输识别结果(默认S485传输识别结果)。					*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_RS485Send(char *pCameraIP, int nCameraPort, char *chData, int nSendLen);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RS485SendEx: 新版本RS485透明传输											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]				相机设备IP地址					*/
+/*			nPort[in]					端口,默认9110					*/
+/*			nRs485[in]	传输485数据的结构体		*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:														*/
+/*				1:用户通过此接口,往相机发送数据,相机设备会原样将数据	*/
+/*				通过RS485接口转发出去,到客户所接的外部设备上。			*/
+/*				2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 */
+/*				能传输识别结果(默认S485传输识别结果)。					*/
+/*				3:新版本可以一次性给相机发送最大5条数据,可以设置每条数据*/
+/*				透传的时间间隔。									      */
+/************************************************************************/
+int __stdcall CLIENT_LPRC_RS485SendEx(char *pCameraIP, int nCameraPort, CLIENT_LPRC_RS485_Transparent_t nRs485);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SearchDeviceList:    搜索设备IP列表						*/
+/*		Parameters:														*/
+/*		pBuf[out]			存储搜索到的相机列表信息结构体数组			*/
+/*		Return Value:   	int											*/
+/*							大于0	成功搜索到的设备数					*/
+/*						  	-1	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SearchDeviceList(CLIENT_LPRC_DeviceInfo *pBuf);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_AlterDeviceInfo:    修改指定的设备的设备信息				*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		pBuf[out]			存储需要修改的设备信息结构体				*/
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_AlterDeviceInfo(char *pCameraIP,CLIENT_LPRC_DeviceInfo pBuf);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_GetDeviceInfo	根据IP获取设备的设备信息				*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		相机设备的ip地址				    */
+/*		pBuf[out]			存储设备信息结构体				*/
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_GetDeviceInfo(char *pCameraIP,CLIENT_LPRC_DeviceInfo *pBuf);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetDevTimeParam:    修改设备系统时间							    */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		sysTime[in]			设置时间结构体		*/
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetDevTimeParam(char *pCameraIP, CLIENT_LPRC_CAMERA_TIME *sysTime);
+int __stdcall CLIENT_LPRC_GetDevTimeParam(char *pCameraIP, CLIENT_LPRC_CAMERA_TIME *sysTime);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetEncryptKey:    	设置加密芯片密码					*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetEncryptKey(char *pCameraIP, unsigned_long_long nKey);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_ReSetEncryptKey:    	重置加密芯片密码,密码恢复为123456	*/
+/*                          并且用户数据恢复为空                        */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_ReSetEncryptKey(char *pCameraIP);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetEncryptUserData:  设置加密芯片用户数据,密码必须匹配才可以成功*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*      pUserData[in]       加密芯片用户数据指针,大小24个字节          */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetEncryptUserData(char *pCameraIP, unsigned_long_long nKey,char *pUserData);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_GetEncryptUserData:  设置加密芯片用户数据,密码必须匹配才可以成功*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*      pUserData[out]      存储读取到的用户数据                        */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_GetEncryptUserData(char *pCameraIP, unsigned_long_long nKey,char *pUserData);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_TextToSoundPlay:  文字转音频播报							*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		设备的ip地址							    */
+/*		data[in]			需要播报的内容[UTF-8编码]	                */
+/*      len[in]				需要播报的内容长度                          */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/*		notice:														*/
+/*				播报的内容必须为UTF-8编码								*/
+/************************************************************************/
+int __stdcall  CLIENT_LPRC_TextToSoundPlay(char *pCameraIP, char *data, int len);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetGPioOutParam: 设置GPIO 是输出状态				*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要设置的相机设备的ip地址				    */
+/*		pGpioOut[in]		GPIO输出可控制结构体,0表示继电器断开,1表示继电器闭合,-1不改变*/
+/*		Return Value:   	int											*/
+/*							0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetGPioOutParam(char *pCameraIP, CLIENT_LPRC_GPIO_Out_Statue *pGpioOut);
+
+/************************************************************************/
+/* CLIENT_LPRC_SetNetParam: 设置网络参数			*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要设置的相机设备的ip地址				    */
+/*		netSetParam[in]		需要设置的网络参数,不需要设置的项目memset为0*/
+/*		Return Value:   	int											*/
+/*							0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetNetParam(char *pCameraIP, CLIENT_LPRC_Net_Set_Param *netSetParam);
+
+typedef enum CLIENT_UPGRADE_STATUS
+{
+	UPGRADE_FILE_CONNECT_SUCCESS	 			= 0,		// 连接成功
+	UPGRADE_FILE_CONNECT_FAIL	 				= 1,		// 连接失败
+	UPGRADE_FILE_NO_ACCESS		 				= 2,		// 升级文件不存在
+	UPGRADE_FILE_OPEN_SUCCESS					= 3,		// 升级文件打开成功
+	UPGRADE_FILE_OPEN_FAIL 						= 4,		// 升级文件打开失败
+	UPGRADE_FILE_READ_HEAD_SUCCESS				= 5,		// 升级文件读取文件头信息成功
+	UPGRADE_FILE_READ_HEAD_FAIL					= 6,		// 升级文件读取文件头信息失败
+	UPGRADE_FILE_SEND_HEAD_SUCCESS				= 7,		// 升级文件发送文件头信息成功
+	UPGRADE_FILE_SEND_HEAD_FAIL					= 8,		// 升级文件发送文件头信息失败
+	UPGRADE_FILE_RECV_HEAD_RESPONSE_SUCCESS		= 9,		// 升级文件接收头信息响应成功
+	UPGRADE_FILE_RECV_HEAD_RESPONSE_FAIL		= 10,		// 升级文件接收头信息响应失败
+	UPGRADE_FILE_VERSION_CHECK_SUCCESS			= 11,		// 升级文件版本检查通过
+	UPGRADE_FILE_VERSION_CHECK_FAIL				= 12,		// 升级文件版本检查不通过
+	UPGRADE_FILE_START_SEND						= 13,		// 升级文件正在发送
+	UPGRADE_FILE_SEND_DONE						= 14,		// 升级文件发送完成
+	UPGRADE_FILE_SEND_FAIL						= 15,		// 升级文件发送失败
+	UPGRADE_FILE_SEND_DONE_RESPONSE_SUCCESS		= 16,		// 升级文件接收发送完成响应成功
+	UPGRADE_FILE_SEND_DONE_RESPONSE_FAIL		= 17,		// 升级文件接收发送完成响应失败
+	UPGRADE_FILE_UNZIP_SUCCESS					= 18,		// 升级文件解压成功
+	UPGRADE_FILE_UNZIP_FAIL						= 19,		// 升级文件解压失败
+	UPGRADE_SYSTEM_READY_RESTART				= 20,		// 系统准备重启
+}CLIENT_UPGRADE_STATUS;
+
+typedef void (*CLIENT_LPRC_UpgradeCallback)(int status, int send_size, int total_size);
+int __stdcall CLIENT_LPRC_UpGrade(char *pCameraIP, char* filename,CLIENT_LPRC_UpgradeCallback callback);
+
+
+/*************************************************************************************************************/
+/****************************以下接口属于较早版本,V5相机可能不再会提供支持***********************************/
+/**********************************请客户挂接时候,尽量使用以上接口*******************************************/
+/*************************************************************************************************************/
+
+
+/************************************************************************/
+/* 回调函数: 获取Jpeg流的回调函数										*/
+/*		Parameters:														*/
+/*			JpegInfo[out]:		JPEG流数据信息							*/
+/*          dwUser[out]            CLIENT_LPRC_InitSDK传给sdk的用户自定义字段*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中CLIENT_LPRC_DEVDATA_INFO中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_JpegCallback)(CLIENT_LPRC_DEVDATA_INFO *JpegInfo,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegJpegEvent: 注册获取Jpeg流的回调函数							*/
+/*		Parameters:														*/
+/*			JpegInfo[in]:		CLIENT_LPRC_JpegCallback类型回调函数				*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中CLIENT_LPRC_DEVDATA_INFO中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegJpegEvent(CLIENT_LPRC_JpegCallback JpegInfo);
+
+
+/************************************************************************/
+/* 回调函数: 获取报警信息的回调函数										*/
+/*		Parameters:														*/
+/*			alarmInfo[out]:		报警信息								*/
+/*          dwUser[out]            CLIENT_LPRC_InitSDK传给sdk的用户自定义字段              */
+
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			一台PC连接多台设备时,此函数仅需实现一次。当区分不同设备	*/
+/*			的Alarm时,可以通过输出参数中CLIENT_LPRC_DEVDATA_INFO中的chIp来区分		*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中LPRC_CLIENT_DEVDATA_INFO中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_AlarmCallback)(CLIENT_LPRC_DEVDATA_INFO *alarmInfo,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegAlarmEvent: 注册获取报警信息的回调函数				*/
+/*		Parameters:														*/
+/*			AlarmInfo[in]:		CLIENT_LPRC_AlarmCallback类型回调函数	*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中LPRC_CLIENT_DEVDATA_INFO中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegAlarmEvent(CLIENT_LPRC_AlarmCallback AlarmInfo);
+
+
+/************************************************************************/
+/* 函数: Jpeg流消息处理初始化											*/
+/*		Parameters:														*/
+/*			hWndHandle[in]:	接收消息的窗体句柄							*/
+/*			uMsg[in]:		用户自定义消息								*/
+/*							检测到有数据并准备好缓冲区数据后,			*/
+/*							用::PostMessage 给窗口hWndHandle发送uMsg	*/
+/*							消息,其中WPARAM参数为0,LPARAM参数为0		*/
+/*			chIp[in]:		相机IP地址								*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_JpegMessageInit(HWND hWndHandle,UINT uMsg,char *chIp);
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP的相机的Jpeg流数据							*/
+/*		Parameters:														*/
+/*			chIp[in]:			相机IP地址								*/
+/*			chJpegBuf[in]:		存储JPEG的buffer						*/
+/*			nJpegBufLen[in]:	获取到的JPEG数据长度					*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			使用此函数前需先调用CLIENT_JpegMessageInit函数设置自定义消息	*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_GetJpegStream(char *chIp, char *chJpegBuf, char *nJpegBufLen);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetNetworkCardBind: 手动绑定指定网卡IP					*/
+/*		Parameters:														*/
+/*			pCameraIP[in]		要绑定的网卡IP地址						*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:当PC机存在多网卡的情况时,又不想禁用为单网卡时,可通过该	*/
+/*				函数绑定与相机通讯的网卡IP								*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetNetworkCardBind(char *pCameraIP);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetNetCardName: 设置网卡的名字							*/
+/*		Parameters:														*/
+/*			pNetCardName[in]		Linux网络节点的名字					*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:	此函数仅在Linux下使用,不设置默认的网络节点名字为eth0	*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetNetCardName(char *pNetCardName);
+
+
+/************************************************************************/
+/*CLIENT_LPRC_SnapJpegFrame 快速抓拍一帧,两种保存方式,直接保存到固定目*/
+/*					录或者保存到特定内存,要是保存特定内存模式需要传入	*/
+/*					内存最大值,两种方式可选								*/		
+/*		Parameters:														*/
+/*			chIp[in]		   相机的IP地址								*/
+/*			pSaveFileName[in]  路径和带JPEG后缀名的文件名,用于把当前	*/
+/*							   抓拍到的帧保存为特定文件  默认先匹配		*/
+/*							   文件名									*/
+/*          pSaveBuf[in]       用于保存当前帧在特定内存的,并且需要传输	*/
+/*							   内存可存储的最大值,当文件名为空的时候	*/
+/*							   这个才会生效。							*/  
+/*          Maxlen[in]         保存当前帧特定内存的最大值				*/
+/*		Return Value:   int												*/
+/*						   0	保存到特定目录成功						*/
+/*                         >0   保存到特定内存的数据的实际大小          */
+/*						  -1	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SnapJpegFrame(char *chIp,char *pSaveFileName,unsigned char *pSaveBuf,int Maxlen);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetJpegStreamPlayOrStop: 设置jpeg流的开关				*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要设置的相机设备的ip地址				    */
+/*		onoff[in]			jpeg流开关项,0表示关闭流,1表示打开流		*/
+/*		Return Value:   	int											*/
+/*							0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetJpegStreamPlayOrStop(char *pCameraIP,int onoff);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

+ 774 - 0
DLL/linux/x86/64bit/SDK/WTY.H

@@ -0,0 +1,774 @@
+#ifndef _WTY_H
+#define _WTY_H
+
+#if !defined(WIN32) && !defined(__stdcall)
+#define __stdcall
+#endif
+
+#ifndef WIN32
+typedef void *HWND;
+typedef unsigned int UINT;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef WIN32
+typedef   __int64  unsigned_long_long;
+#include <windows.h>
+#else     
+typedef  unsigned long long unsigned_long_long;
+#endif
+#define BIG_PICSTREAM_SIZE     200000-312///		//相机上传全景图占用内存的最大大小
+#define SMALL_PICSTREAM_SIZE   10000////			//相机上传车牌截图占用内存的最大大小
+#define BIG_PICSTREAM_SIZE_EX   1*800*1024-312		//相机上传全景图占用内存的最大大小
+#define SMALL_PICSTREAM_SIZE_EX   10000				//相机上传车牌截图占用内存的最大大小
+
+/* 相机时间 */
+typedef struct 
+{
+	int Year;			/* 年 	*/
+	int Month;			/* 月 	*/
+	int Day;			/* 日 	*/
+	int Hour;			/* 时 	*/
+	int Minute;			/* 分 	*/
+	int Second;			/* 秒 	*/
+	int Millisecond;	/* 微妙 */
+}camera_time;
+
+/* 识别结果坐标 */
+typedef struct 
+{
+	int 	Left;	/* 左 */
+	int 	Top;	/* 上 */
+	int 	Right;	/* 右 */
+	int 	Bottom;	/* 下 */
+}plate_location;
+
+/* 识别结果 */
+typedef struct 
+{	
+	char		chWTYIP[16];						/* 相机IP 				*/
+	int			nFullLen;							/* 全景图像数据大小 	*/
+	int			nPlateLen;							/* 车牌图像数据大小 	*/
+	char		chFullImage[BIG_PICSTREAM_SIZE];	/* 全景图像数据 		*/
+	char		chPlateImage[SMALL_PICSTREAM_SIZE];	/* 车牌图像数据 		*/
+	char		chColor[8];							/* 车牌颜色 			*/
+	char		chLicense[16];						/* 车牌号码 			*/
+	plate_location 	pcLocation;						/* 车牌在图像中的坐标 	*/
+	camera_time		shootTime;						/* 识别出车牌的时间 	*/
+	int			nConfidence;						/* 车牌可信度			*/
+	int			nTime;								/* 识别耗时				*/
+	int			nDirection;							/* 车牌方向				*/
+	int			nCarLogo;							/* 车标类型(参考CAR_LOGO)*/
+	int			nCarModel;							/* 车型类型(参考CAR_MODEL)*/
+	char		reserved[256-12-4-4];
+}plate_result;
+
+/* 图像信息*/
+typedef struct
+{
+	int				nWidth;							/* 宽度					*/
+	int				nHeight;						/* 高度					*/
+	int				nPitch;							/* 图像宽度的一行像素所占内存字节数*/
+	int				nLen;							/* 图像的长度			*/
+	char			reserved[16];					/* 预留     			*/
+	unsigned char	*pBuffer;						/* 图像内存的首地址		*/
+}LPRC_IMAGE_INFO;
+
+
+/* 识别结果 */
+typedef struct 
+{	
+	char				chWTYIP[16];						/* 相机IP 				*/
+	char				chColor[8];							/* 车牌颜色 			*/
+	char				chLicense[16];						/* 车牌号码 			*/
+	plate_location 		pcLocation;							/* 车牌在图像中的坐标 	*/
+	camera_time			shootTime;							/* 识别出车牌的时间 	*/
+	int					nConfidence;						/* 车牌可信度			*/
+	int					nTime;								/* 识别耗时				*/
+	int					nDirection;							/* 车牌方向		    	*/
+	int					nCarLogo;							/* 车标类型(参考CAR_LOGO)*/
+	int					nCarModel;							/* 车型类型(参考CAR_MODEL)*/
+	char				reserved[256-4-4];					/* 预留     			*/
+	LPRC_IMAGE_INFO		pFullImage;							/* 全景图像数据(注意:相机不传输,此处指针为空) */
+	LPRC_IMAGE_INFO		pPlateImage;						/* 车牌图像数据(注意:相机不传输,此处指针为空) */
+}plate_result_ex;
+
+/* Jpeg流回调返回每一帧jpeg数据结构体 */
+typedef struct 
+{
+	char			chIp[16];				/*相机IP												*/
+	char			*pchBuf;				/*每一帧jpeg数据缓冲区									*/
+	unsigned int	nLen;					/*当前jpeg帧的数据长度									*/
+	int				nStatus;				/* 当前jpeg帧接收状态: 0-正常, 非0-不正常 				*/
+	char			reserved[128];			/* 保留		  											*/
+}DevData_info;
+/*接收串口数据的结构体*/
+typedef struct
+{
+	unsigned char *pData;//[1024];////串口数据指针
+	int nsize;///串口数据大小
+	char reserved[128];			/* 保留	*/
+}DevSerial_data;
+
+/* 搜索设备之后保存设备信息的结构体,注:要是修改ip信息请保证其他信息不被改变*/
+typedef struct 
+{
+	char 			chDevName[256];			/* 设备名		*/
+	char			chSoftVer[20];			/* 软件版本号	*/
+	char 			chHardVer[20];			/* 硬件版本号	*/
+	char 			chSysVer[20];			/* 系统版本	*/
+	int				nSdkPort;				/* sdk端口号			*/
+	char 			chIp[16];				/* ip地址		*/
+	char 			chGateway[16];			/* 网管	*/
+	char 			chNetmask[16];			/* 子网掩码	*/
+	char 			chMac[18];				/* Mac地址		*/
+	char            chRoomID[20];			/*RooMID            */
+	char            chSN[20];				/*SN*/
+	char            chWifiIp[16];			/*wifi_ip*/
+	char			reserved[256-16];		/* 保留		  */
+}WTY_DeviceInfo;
+/*新版本Rs485透传数据结构体*/   
+typedef struct{
+	short           TimeDelay;				/*延时范围:10~200毫秒之间
+												 注:1、设置的是本条数据和下一条数据之间的延时时间
+													2、最后一条数据不需要设置延时
+											*/		
+    unsigned char   *data;					/*存储传输数据的缓冲区指针,需要客户自己申请缓冲区*/
+	short           datalen;				/*缓冲区最大长度2*1024*/
+	char            reserved[10];			/*保留*/
+ } WTY_RS485_Data_t;
+
+/*新版本485透传结构体*/
+typedef struct{
+	WTY_RS485_Data_t  rS485_data[5];  /*实际发送数据的结构体*/
+	int               datanum;		  /*每次发送最大支持发送5条数据*/
+} WTY_RS485_Transparent_t;
+
+/*GPIO 输入口状态 结构体 */
+typedef struct{ 	
+	unsigned  char gpio_in0;//GPIO IN0 0低电平 1 高电平 	
+	unsigned  char gpio_in1;//GPIO IN1 0低电平 1 高电平
+	unsigned  char gpio_in2;//GPIO IN2 0低电平 1 高电平
+	unsigned  char gpio_in3;//GPIO IN3 0低电平 1 高电平 
+}WTY_GPIO_In_Statue;
+
+
+/************************************************************************/
+/* WTY_InitSDK: 连接相机												*/
+/*		Parameters:														*/
+/*			nPort[in]:		连接相机的端口,现默认为8080				*/
+/*			hWndHandle[in]:	接收消息的窗体句柄,当为NULL时,表示无窗体  */
+/*			uMsg[in]:		用户自定义消息,当hWndHandle不为NULL时,	*/
+/*							检测到有新的车牌识别结果并准备好当前车牌	*/
+/*							缓冲区信息后,用::PostMessage 给窗口		*/
+/*							hWndHandle发送uMsg消息,其中WPARAM参数为0,	*/
+/*							LPARAM参数为0								*/
+/*			chServerIP[in]:	相机的IP地址								*/
+/*		Return Value:   int												*/
+/*							0	相机连接成功							*/
+/*							1	相机连接失败							*/
+/*		Notice:   														*/
+/*				如果采用回调的方式获取数据时,hWndHandle句柄为NULL,	*/
+/*				uMsg为0,并且注册回调函数,通知有新的数据;				*/
+/*				反之,在主窗口收到消息时,调用WTY_GetVehicleInfo获取	*/
+/*				数据。													*/
+/************************************************************************/
+int __stdcall WTY_InitSDK(UINT nPort,HWND hWndHandle,UINT uMsg,char *chServerIP);
+
+
+/************************************************************************/
+/* 	函数: 根据IP地址,断开指定设备链接									*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP地址							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/************************************************************************/
+int __stdcall WTY_QuitDevice(char *pCameraIP);
+
+
+/************************************************************************/
+/* WTY_QuitSDK: 断开所有已经连接设备,释放资源							*/
+/*		Parameters:														*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void  __stdcall WTY_QuitSDK();
+
+
+/***********************************************************************************/
+/* 回调函数:循环检测并通知相机设备通讯状态的回调函数						       */
+/*		Parameters:														           */
+/*			chWTYIP[out]:		返回设备IP								           */
+/*			nStatus[out]:		设备状态:0表示网络异常或设备异常;			       */
+/*										  1表示网络正常,设备已连接		    	   */
+/*										  2表示网络正常,设备已连接,但相机有重启  */
+/*		Return Value:   void											           */
+/***********************************************************************************/
+typedef void (*WTYConnectCallback)(char *chWTYIP,UINT nStatus);
+
+
+/************************************************************************/
+/* WTY_RegWTYConnEvent: 注册相机通讯状态的回调函数						*/
+/*		Parameters:														*/
+/*			WTYConnect[in]:		ConnectCallback类型回调函数				*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall WTY_RegWTYConnEvent (WTYConnectCallback WTYConnect);
+
+
+/************************************************************************/
+/* WTY_CheckStatus: 主动检查相机设备的通讯状态							*/
+/*		Parameters:														*/
+/*			chWTYIP[in]:		要检查的相机的IP						*/
+/*		Return Value:   int												*/
+/*							0	正常									*/
+/*							1	网络不通								*/
+/************************************************************************/
+int __stdcall WTY_CheckStatus (char *chWTYIP);
+
+
+/************************************************************************/
+/* 回调函数: 注册接收识别数据回调函数									*/
+/*		Parameters:														*/
+/*			recResult[out]:		识别结果数据							*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		新扩展的回调函数,方便用户接收清晰度较高或分辨率较高的JPEG图像	*/
+/************************************************************************/
+typedef void (*WTYDataEx2Callback)(plate_result_ex *recResultEx);
+
+
+/************************************************************************/
+/* WTY_RegDataEx2Event: 注册获取识别结果的回调函数						*/
+/*		Parameters:														*/
+/*			WTYData[in]:		处理识别结果的回调函数的指针			*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		接收清晰度较高,或分辨率较高的JPEG图像							*/
+/************************************************************************/
+void __stdcall WTY_RegDataEx2Event(WTYDataEx2Callback WTYDataEx2);
+
+
+/************************************************************************/
+/* 回调函数:获取相机485发送的数据										*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回设备IP								*/
+/*          serialData[out]          串口数据地址						*/
+/*			nlen[out]				串口数据大小						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*WTYSerialDataCallback)(char *chWTYIP,DevSerial_data *pSerialData);
+
+
+/************************************************************************/
+/* WTY_RegSerialDataEvent: 注册获取串口数据的回调函数					*/
+/*		Parameters:														*/
+/*			WTYSerialData[in]:		处理接收串口数据的回调函数的指针	*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall WTY_RegSerialDataEvent(WTYSerialDataCallback WTYSerialData);
+
+
+/************************************************************************/
+/* 回调函数:获取相机GPIO状态											*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回设备IP								*/
+/*          pGpioState[out]          串口数据地址						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*WTYGetGpioStateCallback)(char *chWTYIP,WTY_GPIO_In_Statue *pGpioState);
+
+
+/************************************************************************/
+/* WTY_RegWTYGetGpioState: 注册获取相机GPIO状态的回调函数				*/
+/*		Parameters:														*/
+/*			WTYGpioState[in]:		WTYGetGpioStateCallback类型回调函数	*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall WTY_RegWTYGetGpioState (WTYGetGpioStateCallback WTYGpioState);
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP的相机识别结果。							*/
+/*		  当WTY_initSDK函数中设置了窗体句柄和消息时,					*/
+/*		  需要在消息处理函数中调用此函数来主动获取识别结果。			*/
+/*		Parameters:														*/
+/*			chWTYIP[in]:		根据消息,获取指定IP设备识别数据		*/
+/*			chPlate[in]:		车牌号码								*/
+/*			chColor[in]:		车牌颜色								*/
+/*			chFullImage[in]:	全景图数据								*/
+/*			nFullLen[in]:		全景图数据长度							*/
+/*			chPlateImage[in]:	车牌图数据								*/
+/*			nPlateLen[in]:		车牌图数据长度							*/
+/*			chTwoImage[in]:		二值化数据								*/
+/*			nTwoLen[in]:		二值化数据长度							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			当设置了传输内容不传时,各自对应的数据为NULL,长度为-1;	*/
+/*			当没有形成数据时,各自对应数据为NULL,长度为0				*/
+/************************************************************************/
+int __stdcall WTY_GetVehicleInfoEx(char *chWTYIP,
+								 char *chPlate,	
+								 char *chColor,
+								 void *chFullImage ,
+								 int *nFullLen,
+								 void *chPlateImage,
+								 int *nPlateLen,
+								 void *chTwoImage,
+								 int *nTwoLen);
+
+
+/************************************************************************/
+/* WTY_SetSavePath: 如果用户需要动态库自动保存图片,可以通过该函数设置保*/
+/*					存图片的路径。										*/
+/*		Parameters:														*/
+/*			chSavePath[in]:	文件存储路径,以"\\"结束,如:"D:\\Image\\"	*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:   														*/
+/*			全景图:指定目录\\设备IP\\年月日(YYYYMMDD)\\FullImage\\	*/
+/*									时分秒-毫秒__颜色_车牌号码__.jpg	*/
+/*			车牌图:指定目录\\设备IP\\年月日(YYYYMMDD)\\PlatelImage\\	*/
+/*									时分秒-毫秒__颜色_车牌号码__.jpg	*/
+/************************************************************************/
+void __stdcall WTY_SetSavePath (char *chSavePath);
+
+
+/************************************************************************/
+/* WTY_SetTrigger: 手动触发识别(抓取一帧识别)							*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要触发的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	触发成功返回									*/
+/*				  非0	失败											*/
+/************************************************************************/	
+int __stdcall WTY_SetTrigger(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* WTY_SetSenseCoilTrigger: 模拟地感触发识别(需要将识别模式:设置为'视频地感')*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要触发的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	触发成功返回									*/
+/*				  非0	失败											*/
+/*		Note:															*/
+/*			V5以上硬件相机才能支持此接口								*/
+/************************************************************************/	
+int __stdcall WTY_SetSenseCoilTrigger(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* 函数说明: 控制继电器的闭合											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP								*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:   int												*/
+/*							0	设置成功								*/
+/*						  非0	失败									*/
+/*		Notice:   														*/
+/*				通过此功能,可以在PC端通过一体机设备,来控制道闸的抬起	*/
+/*				设备继电器输出信号为:开关量信号。						*/
+/************************************************************************/
+int __stdcall WTY_SetRelayClose(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* 函数说明: 控制道闸落下											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP								*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:   int												*/
+/*							0	设置成功								*/
+/*						  非0	失败									*/
+/*		Notice:   														*/
+/*				通过此功能,可以在PC端通过一体机设备,来控制道闸的落下	*/
+/*				设备输出信号为:光耦信号						*/
+/************************************************************************/
+int __stdcall WTY_DropRod(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* WTY_RS485Send: RS485透明传输											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]				相机设备IP地址					*/
+/*			nPort[in]					端口,默认9110					*/
+/*			chData[in]					将要传输的数据块的首地址		*/
+/*			nSendLen[in]				将要传输的数据块的字节数		*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:														*/
+/*				1:用户通过此接口,往相机发送数据,相机设备会原样将数据	*/
+/*				通过RS485接口转发出去,到客户所接的外部设备上。			*/
+/*				2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 */
+/*				能传输识别结果(默认S485传输识别结果)。					*/
+/************************************************************************/
+int __stdcall WTY_RS485Send(char *pCameraIP, int nCameraPort, char *chData, int nSendLen);
+
+
+/************************************************************************/
+/* WTY_RS485SendEx: 新版本RS485透明传输									*/
+/*		Parameters:														*/
+/*			pCameraIP[in]				相机设备IP地址					*/
+/*			nPort[in]					端口,默认9110					*/
+/*			nRs485[in]	传输485数据的结构体								*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:														*/
+/*				1:用户通过此接口,往相机发送数据,相机设备会原样将数据	*/
+/*				通过RS485接口转发出去,到客户所接的外部设备上。			*/
+/*				2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 */
+/*				能传输识别结果(默认S485传输识别结果)。					*/
+/*				3:新版本可以一次性给相机发送最大5条数据,可以设置每条数据*/
+/*				透传的时间间隔。									      */
+/************************************************************************/
+int __stdcall WTY_RS485SendEx(char *pCameraIP, int nCameraPort, WTY_RS485_Transparent_t nRs485);
+
+
+/************************************************************************/
+/* WTY_SearchDeviceList:    搜索设备IP列表							    */
+/*		Parameters:														*/
+/*		pBuf[out]			存储搜索到的相机列表信息结构体数组		    */
+/*		Return Value:   	int											*/
+/*							大于0	成功搜索到的设备数					*/
+/*						  	-1	失败									*/
+/************************************************************************/
+int __stdcall WTY_SearchDeviceList(WTY_DeviceInfo *pBuf);
+
+
+/************************************************************************/
+/* WTY_AlterDeviceInfo:    修改指定的设备的设备信息					    */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		pBuf[out]			存储需要修改的设备信息结构体		        */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_AlterDeviceInfo(char *pCameraIP,WTY_DeviceInfo pBuf);
+
+
+/************************************************************************/
+/* WTY_SetDevTimeParam:    修改设备系统时间							    */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		sysTime[in]			设置时间结构体		                        */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_SetDevTimeParam(char *pCameraIP, camera_time*sysTime);
+
+
+/************************************************************************/
+/* WTY_SetEncryptKey:    	设置加密芯片密码							*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_SetEncryptKey(char *pCameraIP, unsigned_long_long nKey);
+
+
+/************************************************************************/
+/* WTY_ReSetEncryptKey:    	重置加密芯片密码,密码恢复为123456			*/
+/*                          并且用户数据恢复为空                        */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_ReSetEncryptKey(char *pCameraIP);
+
+
+/************************************************************************/
+/* WTY_SetEncryptUserData:  设置加密芯片用户数据,密码必须匹配才可以成功*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*      pUserData[in]       加密芯片用户数据指针,大小24个字节          */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_SetEncryptUserData(char *pCameraIP, unsigned_long_long nKey,char *pUserData);
+
+
+/************************************************************************/
+/* WTY_GetEncryptUserData:  设置加密芯片用户数据,密码必须匹配才可以成功*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*      pUserData[out]      存储读取到的用户数据                        */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_GetEncryptUserData(char *pCameraIP, unsigned_long_long nKey,char *pUserData);
+
+
+
+
+/*************************************************************************************************************/
+/****************************以下接口属于较早版本,V5相机可能不再会提供支持***********************************/
+/**********************************请客户挂接时候,尽量使用以上接口*******************************************/
+/*************************************************************************************************************/
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP相机识别结果。								*/
+/*		  当WTY_initSDK函数中设置了窗体句柄和消息时,					*/
+/*		  需要在消息处理函数中调用此函数来主动获取识别结果。			*/
+/*		Parameters:														*/
+/*			chWTYIP[in]:		根据消息,获取指定IP设备识别数据		*/
+/*			chPlate[in]:		车牌号码								*/
+/*			chColor[in]:		车牌颜色								*/
+/*			chFullImage[in]:	全景图数据								*/
+/*			nFullLen[in]:		全景图数据长度							*/
+/*			chPlateImage[in]:	车牌图数据								*/
+/*			nPlateLen[in]:		车牌图数据长度							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			当设置了传输内容不传时,各自对应的数据为NULL,长度为-1;	*/
+/*			当没有形成数据时,各自对应数据为NULL,长度为0				*/
+/************************************************************************/
+int __stdcall WTY_GetVehicleInfo(char *chWTYIP,
+								 char *chPlate,	
+								 char *chColor,
+								 void *chFullImage ,	
+								 int *nFullLen, 
+								 void *chPlateImage,
+								 int *nPlateLen);
+
+
+/************************************************************************/
+/* 回调函数: 注册接收识别数据回调函数									*/
+/*		Parameters:														*/
+/*			recResult[out]:		识别结果数据							*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*WTYDataExCallback)(plate_result *recResult);
+
+
+/************************************************************************/
+/* WTY_RegDataExEvent: 注册获取识别结果的回调函数						*/
+/*		Parameters:														*/
+/*			WTYData[in]:		处理识别结果的回调函数的指针			*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		接收清晰度较低,或分辨率较低的JPEG图像							*/
+/************************************************************************/
+void __stdcall WTY_RegDataExEvent(WTYDataExCallback WTYDataEx);
+
+
+
+
+
+/************************************************************************/
+/* 回调函数: 获取识别结果的回调函数										*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回识别结果的设备IP					*/
+/*			chPlate[out]:		车牌号码								*/
+/*			chColor[out]:		车牌颜色								*/
+/*			chFullImage[out]:	全景图数据								*/
+/*			nFullLen[out]:		全景图数据长度							*/
+/*			chPlateImage[out]:	车牌图数据								*/
+/*			nPlateLen[out]:		车牌图数据长度							*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*WTYDataCallback)(char *chWTYIP, 
+								char *chPlate,
+								char *chColor,
+								char *chFullImage,
+								int nFullLen, 
+								char *chPlateImage,
+								int nPlateLen);
+
+
+/************************************************************************/
+/* WTY_RegDataEvent: 注册获取识别结果的回调函数							*/
+/*		Parameters:														*/
+/*			WTYData[in]:		处理识别结果的回调函数的指针			*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall WTY_RegDataEvent(WTYDataCallback WTYData);
+
+
+/************************************************************************/
+/* WTY_SetTransContent: 控制相机设备上传内容					        */
+/*		Parameters:														*/
+/*			pCameraIP[in]:		要设置的设备IP							*/
+/*			nCameraPort[in]:	端口,默认8080							*/
+/*			nFullImg[in]:		全景图,0表示不传,1表示传				*/
+/*			nPlateImg[in]:		车牌图,0表示不传,1表示传				*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_SetTransContent (char *pCameraIP, int nCameraPort, int nFullImg, int nPlateImg);
+
+
+/************************************************************************/
+/* 回调函数: 获取Jpeg流的回调函数										*/
+/*		Parameters:														*/
+/*			JpegInfo[out]:		JPEG流数据信息							*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+typedef void (*WTYJpegCallback)(DevData_info *JpegInfo);
+
+
+/************************************************************************/
+/* WTY_RegJpegEvent: 注册获取Jpeg流的回调函数							*/
+/*		Parameters:														*/
+/*			JpegInfo[in]:		WTYJpegCallback类型回调函数				*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+void __stdcall WTY_RegJpegEvent(WTYJpegCallback JpegInfo);
+
+
+/************************************************************************/
+/* 函数: Jpeg流消息处理初始化											*/
+/*		Parameters:														*/
+/*			hWndHandle[in]:	接收消息的窗体句柄							*/
+/*			uMsg[in]:		用户自定义消息								*/
+/*							检测到有数据并准备好缓冲区数据后,			*/
+/*							用::PostMessage 给窗口hWndHandle发送uMsg	*/
+/*							消息,其中WPARAM参数为0,LPARAM参数为0		*/
+/*			chIp[in]:		相机IP地址								*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/************************************************************************/
+int __stdcall WTY_JpegMessageInit(HWND hWndHandle,UINT uMsg,char *chIp);
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP的相机的Jpeg流数据							*/
+/*		Parameters:														*/
+/*			chIp[in]:			相机IP地址								*/
+/*			chJpegBuf[in]:		存储JPEG的buffer						*/
+/*			nJpegBufLen[in]:	获取到的JPEG数据长度					*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			使用此函数前需先调用WTY_JpegMessageInit函数设置自定义消息	*/
+/************************************************************************/
+int __stdcall WTY_GetJpegStream(char *chIp, char *chJpegBuf, char *nJpegBufLen);
+
+
+/************************************************************************/
+/* WTY_SetNetworkCardBind: 手动绑定指定网卡IP							*/
+/*		Parameters:														*/
+/*			pCameraIP[in]		要绑定的网卡IP地址						*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:当PC机存在多网卡的情况时,又不想禁用为单网卡时,可通过该	*/
+/*				函数绑定与相机通讯的网卡IP								*/
+/************************************************************************/
+int __stdcall WTY_SetNetworkCardBind(char *pCameraIP);
+
+
+/************************************************************************/
+/* 回调函数: 获取报警信息的回调函数										*/
+/*		Parameters:														*/
+/*			alarmInfo[out]:		报警信息								*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			一台PC连接多台设备时,此函数仅需实现一次。当区分不同设备	*/
+/*			的Alarm时,可以通过输出参数中DevData_info中的chIp来区分		*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+typedef void (*WTYAlarmCallback)(DevData_info *alarmInfo);
+
+
+/************************************************************************/
+/* WTY_RegAlarmEvent: 注册获取报警信息的回调函数						*/
+/*		Parameters:														*/
+/*			AlarmInfo[in]:		WTYAlarmCallback类型回调函数			*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+
+void __stdcall WTY_RegAlarmEvent(WTYAlarmCallback AlarmInfo);
+
+
+/************************************************************************/
+/*WTY_SnapJpegFrame 快速抓拍一帧,两种保存方式,直接保存到固定目录或者	*/
+/*					保存到特定内存,要是保存特定内存模式需要传入内存		*/
+/*					最大值,两种方式可选									*/		
+/*		Parameters:														*/
+/*			chIp[in]		   相机的IP地址								*/
+/*			pSaveFileName[in]  路径和带JPEG后缀名的文件名,用于把当前	*/
+/*							   抓拍到的帧保存为特定文件  默认先匹配		*/
+/*							   文件名									*/
+/*          pSaveBuf[in]       用于保存当前帧在特定内存的,并且需要传输	*/
+/*							   内存可存储的最大值,当文件名为空的时候	*/
+/*							   这个才会生效。							*/  
+/*          Maxlen[in]         保存当前帧特定内存的最大值				*/
+/*		Return Value:   int												*/
+/*						   0	保存到特定目录成功						*/
+/*                         >0   保存到特定内存的数据的实际大小          */
+/*						  -1	失败									*/
+/************************************************************************/
+int __stdcall WTY_SnapJpegFrame(char *chIp,char *pSaveFileName,unsigned char *pSaveBuf,int Maxlen);
+
+
+/********************************************************************************/
+/* WTY_SetJpegStreamPlayOrStop: 设置jpeg流的开关							    */
+/*		Parameters:														        */
+/*		pCameraIP[in]		需要设置的相机设备的ip地址				            */
+/*		onoff[in]			jpeg流开关项,0表示关闭流,1表示打开流 2打开H264    */
+/*		Return Value:   	int											        */
+/*							0	成功									        */
+/*						  	非0	失败									        */
+/********************************************************************************/
+int __stdcall WTY_SetJpegStreamPlayOrStop(char *pCameraIP,int onoff);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

+ 717 - 0
DLL/linux/x86/64bit/SDK/WTYSDK_WhiteList.h

@@ -0,0 +1,717 @@
+//用于车牌识别设备的白名单相关的操作
+
+#ifndef _WTYSDK_WHITE_LIST_H_
+#define _WTYSDK_WHITE_LIST_H_
+#if !defined(WIN32) && !defined(__stdcall)
+#define __stdcall
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+
+
+struct PlateInfo_t;
+struct plateTraffic_t;
+
+
+//---一些返回值错误信息定义
+//typedef enum
+//{
+//	WTYSDK_WLIST_ERROR_NO_ERROR=0,					//返回成功!
+//	WTYSDK_WLIST_ERROR_GENERAL=-1,					//调用底层接口库失败
+//	WTYSDK_WLIST_ERROR_IP_NULL=-2,					//IP地址为空
+//	WTYSDK_WLIST_ERROR_SIZEOUTOFRANGE=-3,			//每页大小超过100
+//	WTYSDK_WLIST_ERROR_MALLOCFAIL=-4,				//申请内存失败
+//	WTYSDK_WLIST_ERROR_IP_ILLEGALITY=-5	,			//IP地址非法
+//	WTYSDK_WLIST_DEVICEALREADYREGISTER=1,			//设备已经注册成功
+//	WTYSDK_WLIST_ERROR_DATA=-11,					//导入信息有误
+//	WTYSDK_WLIST_TIME_OUT=-12,						//select超时
+//	WTYSDK_WLIST_SERVER_CLOSED=-13,					//服务器端不存在
+//	WTYSDK_WLIST_WLISTSOCKET_ERROR=-21,				//套接字创建失败
+//	WTYSDK_WLIST_CONNECT_ERROR=-22,					//连接服务器失败
+//	WTYSDK_WLIST_SELECT_ERROR=-23,					//select失败
+//	WTYSDK_WLIST_RECV_ERROR=-24,					//接收数据返回失败
+//	WTYSDK_WLIST_SEND_ERROR=-25,					//发送数据失败
+//	WTYSDK_WLIST_DATABASE_ERROR		=1,				//数据库操作失败
+//	WTYSDK_WLIST_REQ_ERROR			=2,				//请求包格式错误
+//	WTYSDK_WLIST_RECIVE_TIMEOUT     =3,			    //接受包超时
+//	WTYSDK_WLIST_DATA_ERROR			=4,				//数据错误
+//
+//	WTYSDK_WLIST_ERROR_NOREGISTSPACE = -6,  // 无注册预留空间 最多100个 mdf by zhz
+//	WTYSDK_WLIST_ERROR_QUERYCONDITION = -7 // 查询条件出错(比如查询参数不合法) mdf by zhz
+//}
+//CLIENT_LPR_WLIST_ERROR;
+
+
+
+/*
+*	车牌类型宏定义
+*/
+#define WTYSDK_PLATETYPE_UNKNOWN        0           ///未知类型
+#define WTYSDK_PLATETYPE_BLUE           1           ///蓝牌
+#define WTYSDK_PLATETYPE_BLACK          2           ///黑牌
+#define WTYSDK_PLATETYPE_SINGLEYELLOW   3           ///单层黄牌
+#define WTYSDK_PLATETYPE_DOUBLEYELLOW   4           ///双层黄牌
+#define WTYSDK_PLATETYPE_JCPLATE        5			///警车车牌
+#define WTYSDK_PLATETYPE_WJPLATE        6			///武警车牌
+#define WTYSDK_PLATETYPE_INDIVIDUATION  7			///个性化车牌
+#define WTYSDK_PLATETYPE_SINGLEARMY		8			///单层军牌
+#define WTYSDK_PLATETYPE_DOUBLEARMY     9			///双层军牌
+#define WTYSDK_PLATETYPE_EMBASSY        10			///使馆车牌
+#define WTYSDK_PLATETYPE_HKOKATE		11			///香港车牌
+#define WTYSDK_PLATETYPE_TRACTOR        12			///拖拉机
+#define WTYSDK_PLATETYPE_AOMEN			13 			///澳门牌
+#define WTYSDK_PLATETYPE_INTERNAL       14			///内部牌
+#define WTYSDK_PLATETYPE_MHPALTE		15			///民航车牌
+#define WTYSDK_PLATETYPE_CONSULATE      16			///领馆车牌
+
+/*
+*	车辆颜色宏定义
+*/
+#define WTYSDK_CARCOLOR_UNKNOWN         0			///未知类型
+#define WTYSDK_CARCOLOR_BLUE			1			///蓝色
+#define WTYSDK_CARCOLOR_YELLOW			2			///黄色
+#define WTYSDK_CARCOLOR_WHITE			3			///白色
+#define WTYSDK_CARCOLOR_BLACK			4			///黑色
+#define WTYSDK_CARCOLOR_GREEN			5			///绿色
+
+
+/*
+*	定义用户、车辆信息结构体里面的数组大小
+*/
+#define WTYSDK_WLIST_CUSTOMER_NAME_LEN	20   //用户名字符串长度
+#define WTYSDK_WLIST_CUSTOMER_CODELEN	20	 //用户编码字符串长度
+
+#define WTYSDK_WLIST_VEHICLE_PLATE_LEN 16	//车牌字符串长度
+#define WTYSDK_WLIST_VEHICLE_CODE_LEN  20	//车辆编码字符串长度
+#define WTYSDK_WLIST_VEHICLE_TIME_LEN  20	//时间信息字符串长度
+#define WTYSDK_WLIST_HTTP_SELECTTRAFFIC_IP_DOMAIN 50    // http 查询 ip 域名长度
+#define WTYSDK_WLIST_TIME_SEG_MAX_NUM	8	//时间段字符串长度
+#define WTYSDK_WLIST_PERPAGE_MAXSIZE    100 //查询或者导入每页最大值
+#define WTYSDK_WLIST_PIC_SAVEPATH     100	//保存图片路径字符串长度
+#define WTYSDK_WLIST_STOREMAXVALUE    30000 //白名单保存用户和车辆信息最大值
+/*
+*	定义客户信息、用户信息、车辆通行信息结构体
+*/
+//黑白名单记录的客户信息
+typedef struct
+{
+	unsigned	uCustomerID;			//<客户在数据库的ID,用于修改、删除操作(主键)
+	char		strName[WTYSDK_WLIST_CUSTOMER_NAME_LEN];	//<客户姓名
+	char		strCode[WTYSDK_WLIST_CUSTOMER_CODELEN];	//<客户编码,唯一编码
+
+	char		reserved[256];//保留
+}
+WTYSDK_WLIST_CUSTOMER;
+
+//---以下一些做api函数参数的定义
+
+// 黑白名单客户信息查询条件
+typedef struct{
+	int 	UserID;											//客户ID
+	char	UserName[WTYSDK_WLIST_CUSTOMER_NAME_LEN];		//客户名字
+	char 	UserSerial[WTYSDK_WLIST_CUSTOMER_CODELEN];		//客户编号
+	int 	page;											//从0开始算第一页,依次类推
+	int 	pageSize;										//每页查询的数目
+	char	reserved[100];
+}
+WTYSDK_CUSTOMERQUERYCONDITION;
+
+
+//黑白名单中的车辆记录
+typedef struct
+{
+	unsigned	uVehicleID;										//<车辆在数据库的ID
+	char		strPlateID[WTYSDK_WLIST_VEHICLE_PLATE_LEN];			//<车牌字符串
+	unsigned	uCustomerID;									//<客户在数据库的ID,与WTYSDK_WLIST_CUSTOMER::uCustomerID对应
+	unsigned	bEnable;										//<该记录有效标记
+	//unsigned	bEnableTMEnable;								//<是否开启生效时间
+	//unsigned	bEnableTMOverdule;								//<是否开启过期时间
+	char		struTMCreate[WTYSDK_WLIST_VEHICLE_TIME_LEN];									//<该记录创建时间
+	char		struTMEnable[WTYSDK_WLIST_VEHICLE_TIME_LEN];									//<该记录生效时间
+	char		struTMOverdule[WTYSDK_WLIST_VEHICLE_TIME_LEN];									//<该记录过期时间
+	unsigned	bUsingTimeSeg;									//是否使用时间段匹配0不启用1
+	char        struTimeSeg[256];									//<周期时间段信息
+	int 		WeekTimeMatch;									//是否在时间段内使用周期时间段匹配0不启用1启用
+	//int 	TimeMatch;		是否使用时间段匹配0不启用1
+	unsigned	bAlarm;											//<是否触发报警(黑名单记录)
+	int			iColor;											//<车辆颜色
+	int			iPlateType;										//<车牌类型
+	int         iBlackList;										//是否黑名单 0不是 1是
+	char		strCode[WTYSDK_WLIST_VEHICLE_CODE_LEN];			//<车辆编码
+	char		strRemark[100];									//车辆备注说明,可以为空
+	char		reserved[256];									//保留
+}
+WTYSDK_WLIST_VEHICLE;
+//车辆 信息查询条件
+typedef struct{
+	int     PlateinfoID;		//车辆ID
+	int 	UserID;				//用户ID
+	char	UserName[20];		//客户名字
+	char 	UserSerial[20];		//客户编号
+	char 	PlateNumber[16];	//车牌号
+	char 	CarSerial[20];		//车辆代码
+	int 	Blacklist;
+	int 	conditionsflag;		//查询条件设置0 根据用户ID查询 1根据用户名查询 2根据用户编码 3根据车辆ID 4根据车牌号 5根据车辆代码  6查询所有
+	int 	page;				//查询页
+	int 	pageSize;			//每页大小,最大值100
+	char	reserved[256];
+}
+WTY_SDK_VEHICLEQUERYRECORD;
+
+
+//车辆通行信息
+typedef struct
+{
+	int iTrafficId;												//车辆通行ID,自增
+	int iVehicleID;												//车辆ID
+	int iCustomerID;											//用户ID
+	char strPlateNumber[WTYSDK_WLIST_VEHICLE_PLATE_LEN];		//车牌字符串
+	char strPassTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];			//车辆通过时间
+	int  iCarSigned;											//车辆标示,0外来车,1内部车
+	int iIsOpenSigno;											//是否开启道闸, 0未抬杆,1已抬杆
+	char strPicSavePath[WTYSDK_WLIST_PIC_SAVEPATH];				//图片保存路径
+	char		reserved[256];									//保留
+}
+WTYSDK_WLIST_TRAFFIC_INFO;
+//Http记录信息
+typedef struct
+{
+	int		TrafficID;				///*ID号:相机自己生成,无需客户指定 */
+	char  	PlateNumber[16];		///*车牌号码*/
+	char	RecDateTime[20];		///*识别时间*/
+	char	TransDateTime[20];		///*发送时间*/
+	int 	FullImageSize;			///*大图大小*/
+	int 	PlateImageSize;			///*小图大小*/
+	int 	IPtype;					///*使用IP还是域名0 IP */
+	char 	IP_Domain[50];			///*IP 或 域名*/
+	int		Port;					///*端口*/
+	char 	Path[200];				///*路径*/
+	int 	TransType;				///*传送方式  0 即时推送数据 1 异常数据重传*/
+	int 	state;					///*发送结果*/
+	int 	ReciveState;				///*接数据状态*/
+	int		DoorOpen;				///*是否开闸 0 不开 1 开*/
+	int		AbnormalID;				///*续传ID*/
+	char		reserved[256];									//保留
+}
+WTYSDK_WLIST_HTTP_INFO;
+
+//车辆通行信息查询条件
+typedef struct
+{
+	char	StartTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];		//*开始时间
+	char 	EndTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];		//*结束时间
+	char 	chPlateNumber[WTYSDK_WLIST_VEHICLE_PLATE_LEN];	//*车牌号
+	int 	page;											//*当前页数
+	int 	pageSize;										//*每页最多查询的大小,100,大于100返回-1
+	int     queryFlag;										//*0 时间段查询  1 车牌查询 2 分页查询
+	char	reserved[256];
+}
+WTY_SDK_TRAFFIC_QUERYCONDITION;
+//Http记录查询条件
+typedef struct
+{
+	char	StartTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];		//*开始时间
+	char 	EndTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];		//*结束时间
+	char 	chPlateNumber[WTYSDK_WLIST_VEHICLE_PLATE_LEN];	//*车牌号
+	char 	IP[16];		/*IP或者域名*/
+	char	Domain[50];//域名
+	int     ipOrDomain;//1 ip 2 域名
+	int 	state;				/*发送结果*/
+	//int     http_select_type;/*查询方式:1:根据ip或者域名查询 可选时间段:2:推送结果查询 可选时间段 3:发送失败重新上传 可选时间段 4:前一天没有上传成功,后一天成功的*/
+	int 	page;											//*当前页数
+	int 	pageSize;										//*每页最多查询的大小,100,大于100返回-1
+	int     queryFlag;										//*0 时间段查询  1 车牌查询 2 分页查询  3域名或者IP查询 4推送结果查询 5发送失败从新上传  6前一天没有成功,后一天成功
+	int     timeIsEnabled;///使能是否启用时间段匹配
+	char	reserved[256];
+}
+WTY_SDK_HTTP_QUERYCONDITION;
+
+//返回的信息类型
+typedef enum{
+	WTYSDK_WLIST_CB_TYPE_NO = 0,								//无效信息
+	WTYSDK_WLIST_CB_TYPE_CUSTOMER,								//客户信息
+	WTYSDK_WLIST_CB_TYPE_VEHICLE,								//车辆信息
+	WTYSDK_WLIST_CB_TYPE_TRAFFIC,								//车辆通行信息
+	WTYSDK_WLIST_CB_TYPE_ROWS									//车辆和用户综合信息
+}
+WTYSDK_WLIST_CB_TYPE;
+//车辆和用户信息
+typedef struct
+{
+	//int nSize;													//*批量导入车牌和用户数据条数,每次最多100条
+	WTYSDK_WLIST_VEHICLE nCarInfo;								//*批量导入车牌信息结构体数组指针
+	WTYSDK_WLIST_CUSTOMER nUserInfo;							//*批量导入用户信息结构体数组指针
+}
+WTYSDK_IMPORTROWS;
+//白名单批量导入失败标志
+typedef struct
+{
+	int		nRow;//导入失败的条数
+	char 		Result[WTYSDK_WLIST_STOREMAXVALUE];//0 数据库存储大于上限10000条,-1 用户信心错误,-2 车辆信息错误  -3重复车牌
+}
+WTYSDK_IMPORT_FAILDREASON;
+/*
+*  @brief 白名单表、客户信息表、车辆通行信息的查询反馈结果函数
+*  @param  [IN] type 回调函数返回的信息类型
+*  @param  [IN] pLP 查询的车辆信息记录
+*  @param  [IN] pCustomer 查询的客户信息记录
+*  @param  [IN] nTotal 单次查询返回的总数
+*  @param  [IN] pUserData 回调函数中的上下文
+*  @ingroup group_callback
+*/
+typedef void (*WTYSDK_WLIST_QUERY_CALLBACK)(WTYSDK_WLIST_CB_TYPE type, WTYSDK_WLIST_VEHICLE *pLP,
+														   WTYSDK_WLIST_CUSTOMER *pCustomer,
+														   WTYSDK_WLIST_TRAFFIC_INFO *pTrafficInfo,
+														  int nTotal,
+														  void *pUserData);
+
+/*
+*  @brief  HTTP的查询反馈结果函数
+*  @param  [IN] pTrafficInfo 查询的HTTP信息记录
+*  @param  [IN] nTotal 单次查询返回的总数
+*  @param  [IN] pUserData 回调函数中的上下文
+*  @ingroup group_callback
+*/
+typedef void (*WTYSDK_WLIST_QUERY_HTTP_CALLBACK)(WTYSDK_WLIST_HTTP_INFO *pTrafficInfo,int nTotal,void *pUserData);
+
+
+
+/*
+*  @brief 设置白名单表和客户信息表的查询结果回调
+*  @param  [IN] func 查询结果回调函数
+*  @param  [IN] pUserData 回调函数中的上下文  (用户传入指针)
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,其它表示失败
+*  @ingroup group_database
+*/
+int  __stdcall WTYSDK_WhiteListSetQueryCallBack(WTYSDK_WLIST_QUERY_CALLBACK func, void *pUserData,char *pServerIp);
+
+/*
+*  @brief 设置HTTP查询结果回调
+*  @param  [IN] func 查询结果回调函数
+*  @param  [IN] pUserData 回调函数中的上下文
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,其它表示失败
+*  @ingroup group_database
+*/
+int  __stdcall WTYSDK_WhiteListSetQueryHttpCallBack(WTYSDK_WLIST_QUERY_HTTP_CALLBACK func, void *pUserData,char *pServerIp);
+
+
+/*
+*  @brief  获取所有客户信息记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return >=0表示成功,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetCustomerCount(char *pServerIp);
+
+/*
+*  @brief  查询白名单表客户信息数据,客户信息通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] numbers 单次每页查询最大值100(1-100),数据多的话可以分页查询和显示
+*  @param  [IN] nPage   查询页数,当前页数从0开始代表第一页
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadCustomer(char *pServerIp,int numbers,int nPage);
+
+/*
+*  @brief 获取白名单客户信息,通过ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] iCustomerId 客户信息的ID
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadCustomerById(char *pServerIp,int iCustomerId); // id唯一
+
+/*
+*  @brief 获取白名单客户信息,通过客户编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strCode 客户信息的唯一编码
+*  @param  [IN] numbers 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @param  [IN] nPage   查询页数,当前页数从0开始代表第一页
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadCustomerByCode(char *pServerIp,char* strCode,int numbers,int nPage);
+/*
+*  @brief 获取白名单客户信息,通过客户名称
+*  @param  [IN] strName 客户信息的名称
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] numbers 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @param  [IN] nPage   查询页数,当前页数从0开始代表第一页
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadCustomerByName(char *pServerIp,char* strName,int numbers,int nPage);
+/*
+*  @brief 增加用户信息记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pNewCustomer 增加的用户信息的结构体  其中 uCustomerID 为自动生成 填写无用
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListInsertCustomer(char *pServerIp,WTYSDK_WLIST_CUSTOMER  pNewCustomer);
+/*
+*  @brief 删除白名单客户信息,通过ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] iCustomerId 客户信息的ID
+*  @return 0表示成功,<0表示失败
+*/
+
+int __stdcall WTY_WhiteListDeleteCustomerById(char *pServerIp,int iCustomerId);
+/*
+*  @brief 删除白名单客户信息,通过用户名
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strName 客户名
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteCustomerByName(char *pServerIp,char* strName);
+/*
+*  @brief 删除白名单客户信息,通过客户编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strCode 客户信息的唯一编码
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteCustomerByCode(char *pServerIp,char* strCode);
+
+
+/*
+*  @brief 更新白名单客户信息,通过ID   注:id系统生成,更新时候id必须对应,不能随意填
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pNewCustomer 客户信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateCustomerById(char *pServerIp,WTYSDK_WLIST_CUSTOMER  pNewCustomer);
+
+/*
+*  @brief 更新白名单客户信息,通过用户名  注:id系统生成,更新时候id必须对应,不能随意填
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pNewCustomer 客户信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateCustomerByName(char *pServerIp,WTYSDK_WLIST_CUSTOMER pNewCustomer);
+
+/*
+*  @brief 更新白名单客户信息,通过客户编码  id系统生成,更新时候id必须对应,不能随意填  此函数会忽略id,把所有用户编号相同的都改
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pNewCustomer 客户信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateCustomerByCode(char *pServerIp,WTYSDK_WLIST_CUSTOMER pNewCustomer);
+/*
+*  @brief  获取所有车辆通行记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetTrafficCount(char *pServerIp);
+/*
+*  @brief  查询所有车辆通行记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListTrafficLoad(char *pServerIp,WTY_SDK_TRAFFIC_QUERYCONDITION queryConditions);
+
+/*
+*  @brief  通过车辆通行ID删除车辆通行信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] tracfficId 车辆通行记录的ID
+*  @return 0表示成功,-1表示失败
+*/
+int __stdcall WTY_WhiteListTraffiDelete(char *pServerIp,int tracfficId);
+
+/*
+*  @brief  清空车辆通行信息
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListTraffiDeleteAll(char *pServerIp);
+
+/*
+*  @brief  批量导出车辆通行信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [OUT] pExportBuf 存储查询到的记录缓冲区
+*  @param  [OUT] nSucceedCount 存储查询成功的记录总条数
+*  @param  [IN] nIndexTotal  想要获取到的记录总数
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListTraffiExportAll(char *pServerIp,WTYSDK_WLIST_TRAFFIC_INFO *pExportBuf,int *nSucceedCount,int nIndexTotal);
+
+/*
+*  @brief  获取所有车辆信息记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return >=0表示成功获取到的数目,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetVehicleCount(char *pServerIp);
+
+/*
+*  @brief  查询白名单表车辆信息数据,客户信息通过回调函数返回   注:此函数为统查 只关注WTY_SDK_VEHICLEQUERYRECORD 内page 和pagesize
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicle(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+/*
+*  @brief 获取白名单车辆信息,通过车牌号码  注: 只关注WTY_SDK_VEHICLEQUERYRECORD 内page 和pagesize 车牌号码   查找车牌号关键字
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示成功获取车辆总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByPlateId(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+/*
+*  @brief 获取白名单车辆信息,通过车辆自增ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示成功获取车牌总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleById(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+
+/*
+*  @brief 获取白名单车辆信息,通过车辆编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strCode 车辆信息的编码
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示成功获取车辆总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByCode(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+/*
+*  @brief 获取白名单车辆信息,通过用户ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示成功获取车辆总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByUserId(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+
+/*
+*  @brief 获取白名单车辆信息,通过车辆用户名字
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示获取到的车辆总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByUserName(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+
+/*
+*  @brief 获取白名单车辆信息,通过用户编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strCode 车辆信息的编码
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示获取车牌总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByUserCode(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+/*
+*  @brief 更新白名单车辆信息,通过车牌号码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleInfo 车辆信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateVehicleByPlateId(char *pServerIp,WTYSDK_WLIST_VEHICLE strVehicleInfo);
+/*
+*  @brief 更新白名单车辆信息,通过车辆自增ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleInfo 车辆信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateVehicleById(char *pServerIp,WTYSDK_WLIST_VEHICLE  strVehicleInfo);
+/*
+*  @brief 更新白名单车辆信息,通过车辆编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleInfo 车辆信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateVehicleByCode(char *pServerIp,WTYSDK_WLIST_VEHICLE strVehicleInfo);
+/*
+*  @brief 增加白名单车辆信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleInfo 车辆信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListInsertVehicle(char *pServerIp,WTYSDK_WLIST_VEHICLE strVehicleInfo);
+
+/*
+*  @brief 删除白名单车辆信息,通过车牌号码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strPlateNumber 车牌号码
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleByPlateId(char *pServerIp,char* strPlateNumber);
+
+/*
+*  @brief 删除白名单车辆信息,通过车辆自增ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] iVehicleId 车辆信息自增ID
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleById(char *pServerIp,int iVehicleId);
+
+/*
+*  @brief 删除白名单车辆信息,通过车辆编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleCode 车辆信息编码
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleByCode(char *pServerIp,char* strVehicleCode);
+
+/*
+*  @brief 	清空白名单车辆信息
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListEmptyVehicle(char *pServerIp);
+
+/*
+*  @brief  清空所有车辆和用户信息
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListClearCustomerAndVehicles(char *pServerIp);
+
+/*
+*  @brief  从数据库删除客户的车辆信息,通过用户ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleByCustomerId(char *pServerIp ,int userId);
+
+/*
+*  @brief  从数据库删除客户以及客户的车辆信息,通过用户ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleAndUserByCustomerId(char *pServerIp ,int userId);
+
+/*
+*  @brief  获取白名单客户表客户和车辆记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return >=0表示成功,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetRowCount(char *pServerIp);
+/*
+*  @brief  查询白名单表车辆信息数据,客户信息通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nQueryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRows(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  查询白名单表车辆信息数据,通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nQueryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRowsCustomerByUserId(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  查询白名单表车辆信息数据,通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nQueryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRowsCustomerByUserCode(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  查询白名单表车辆信息数据,通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nQueryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRowsCustomerByUserName(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  通过车牌查询白名单用户信息和车辆信息,通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pCarPlate 查询的车牌号
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRowsCustomerAndCarByPlate(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  批量导入白名单表车辆信息和客户信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nImportRows 单次导入最大值100,数据多的话可以分次导入,大于100返回-1
+*  @param  [IN] MyBatchResult 白名单导入失败记录的位置,相应位置的Result值等于1为失败
+*  @param  [IN] importMaxValue 单次导入最多100条
+*  @return >=0表示成功的总数,<0表示失败
+*/
+// pImportRows 导入用户和车匹配信息,单次最多100条
+// faildReason [out]导入结果(WTYSDK_IMPORT_FAILDREASON参数nRow表示导入错误多少条,Result数组表示每一条的执行情况)
+// importMaxValue [int] 表示pImportRows中单次导入的条数(比如导入10条,这参数填入10)--最大100
+int  __stdcall WTY_WhiteListImportRows(char *pServerIp,WTYSDK_IMPORTROWS *pImportRows,WTYSDK_IMPORT_FAILDREASON *faildReason,int importMaxValue);
+/*
+*  @brief  批量导出白名单客户和车辆信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [OUT] nImportRows 导出的数据记录信息结构体指针,大小是结构体大小*nTotal
+*  @param  [OUT] pExportSucceed 导出成功的数目
+*  @param  [IN] WTY_WhiteListGetRowCount 获取到的记录的总条数
+*  @return >=0表示成功的总数,<0表示失败
+*/
+// pExportRows[out]  导出内容
+// pExportSucceed [out] 实际成功导出多少个
+// nTotal [in] 需要导出的数量(希望导出500条,就填500条)  以此来分页导出,每页最多100
+int  __stdcall WTY_WhiteListExportsRows(char *pServerIp,WTYSDK_IMPORTROWS *pExportRows,int *pExportSucceed,int nTotal);
+
+
+/*
+*  @brief  获取所有Http数据库记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return >=0表示获取条数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetHttpCount(char *pServerIp);
+/*
+*  @brief  查询Http数据记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListHttpLoad(char *pServerIp,WTY_SDK_HTTP_QUERYCONDITION queryConditions,int *nTotal);
+
+/*
+*  @brief  通过Http记录ID删除Http记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] tracfficId 车辆通行记录的ID
+*  @return 0表示成功,-1表示失败
+*/
+int __stdcall WTY_WhiteListHttpDelete(char *pServerIp,int tracfficId);
+
+/*
+*  @brief  清空Http记录
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListHttpDeleteAll(char *pServerIp);
+
+/*
+*  @brief  批量导出Http记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [OUT] pExportBuf 存储查询到的记录缓冲区
+*  @param  [OUT] nSucceedCount 存储查询成功的记录总条数
+*  @param  [IN] nIndexTotal 希望导出的个数
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListHttpExportAll(char *pServerIp,WTYSDK_WLIST_HTTP_INFO *pExportBuf,int *nSucceedCount,int nIndexTotal);
+
+/*
+*  @brief  根据车牌查询车辆信息(用于相机traffic)
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pPlate 车牌号
+*  @param  [OUT] pVehicleInfo 车辆信息
+*  @return 0表示成功但未找到,1表示操作成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListTrafficRequestByPlate(char *pServerIp, char *pPlate, PlateInfo_t* pVehicleInfo);
+
+/*
+*  @brief  写入通行量(用于相机traffic)
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pTrafficInfo 要插入的通信信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListTrafficInsertTrafficInfo(char* pServerIp, plateTraffic_t* pTrafficInfo);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

二進制
DLL/linux/x86/64bit/SDK/libwty.a


二進制
DLL/linux/x86/64bit/SDK/libwty.so


+ 4 - 0
DLL/linux/x86/64bit/使用说明.txt

@@ -0,0 +1,4 @@
+LinuxÄںˣº
+	Linux ubuntu 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
+°æ±¾ÐÅÏ¢£º
+	gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)

+ 69 - 0
DLL/windows/32bit/BaseType.h

@@ -0,0 +1,69 @@
+#ifndef _BASE_TYPE_H
+#define _BASE_TYPE_H
+
+/* 车标定义 */
+enum CAR_LOGO
+{
+	CAR_LOGO_0 = 0,		// 未知
+	CAR_LOGO_1 = 1,		// 本田
+	CAR_LOGO_2 = 2,		// 比亚迪
+	CAR_LOGO_3 = 3,		// 丰田
+	CAR_LOGO_4 = 4,		// 江淮
+	CAR_LOGO_5 = 5,		// 雷克萨斯
+	CAR_LOGO_6 = 6,		// 铃木
+	CAR_LOGO_7 = 7,		// 马自达
+	CAR_LOGO_8 = 8,		// 奇瑞
+	CAR_LOGO_9 = 9,		// 起亚
+	CAR_LOGO_10 = 10,		// 日产
+	CAR_LOGO_11 = 11,	// 斯巴鲁
+	CAR_LOGO_12 = 12,	// 五菱
+	CAR_LOGO_13 = 13,	// 现代
+	CAR_LOGO_14 = 14,	// 一汽
+	CAR_LOGO_15 = 15,	// 长安
+	CAR_LOGO_16 = 16,	// 长城
+	CAR_LOGO_17 = 17,	// 奥迪
+	CAR_LOGO_18 = 18,	// 宝马
+	CAR_LOGO_19 = 19,	// 奔驰
+	CAR_LOGO_20 = 20,	// 标致
+	CAR_LOGO_21 = 21,	// 别克
+	CAR_LOGO_22 = 22,	// 大众
+	CAR_LOGO_23 = 23,	// 福特
+	CAR_LOGO_24 = 24,	// 东风
+	CAR_LOGO_25 = 25,	// 路虎
+	CAR_LOGO_26 = 26,	// 斯柯达
+	CAR_LOGO_27 = 27,	// 沃尔沃
+	CAR_LOGO_28 = 28,	// 雪佛兰
+	CAR_LOGO_29 = 29,	// 雪铁龙
+	CAR_LOGO_30 = 30,	// 福田
+	CAR_LOGO_31 = 31,	// 荣威
+	CAR_LOGO_32 = 32,	// 凯迪拉克
+	CAR_LOGO_33 = 33,	// 金杯
+	CAR_LOGO_34 = 34,	// 北汽
+	CAR_LOGO_35 = 35,	// 东南
+	CAR_LOGO_36 = 36,	// 三菱
+	CAR_LOGO_37 = 37,	// 吉利帝豪
+	CAR_LOGO_38 = 38,	// jeep
+	CAR_LOGO_39 = 39,	// mini
+	CAR_LOGO_40 = 40,	// 保时捷
+	CAR_LOGO_41 = 41,	// 哈弗
+	CAR_LOGO_42 = 42,	// 上汽大通
+	CAR_LOGO_50 = 50	// 特斯拉
+
+}CAR_LOGO;
+
+
+/* 车标定义 */
+enum CAR_MODEL
+{
+	CAR_MODEL_0 = 0,		// 未知
+	CAR_MODEL_1 = 1,		// 小轿车
+	CAR_MODEL_2 = 2,		// SUV
+	CAR_MODEL_3 = 3,		// 面包车
+	CAR_MODEL_4 = 4,		// 中巴车
+	CAR_MODEL_5 = 5,		// 大巴车
+	CAR_MODEL_6 = 6,		// 小货车
+	CAR_MODEL_7 = 7			// 大货车
+	
+}CAR_MODEL;
+
+#endif

+ 130 - 0
DLL/windows/32bit/KHT_Log/0.0.0.0/2022-04-20.txt

@@ -0,0 +1,130 @@
+13:06:44.002  Config reconnection thread create success
+13:06:44.027  Reco result reconnection thread create success
+13:06:44.031  rs485 result reconnection thread create success
+13:06:44.033  gpio reconnection thread create success
+13:08:02.972  Config reconnection thread create success
+13:08:02.973  Reco result reconnection thread create success
+13:08:02.975  rs485 result reconnection thread create success
+13:08:02.976  gpio reconnection thread create success
+13:17:57.023  Config reconnection thread create success
+13:17:57.026  Reco result reconnection thread create success
+13:17:57.028  rs485 result reconnection thread create success
+13:17:57.030  gpio reconnection thread create success
+13:18:19.448  sdk destory
+13:18:20.616  Config reconnection thread create success
+13:18:20.617  Reco result reconnection thread create success
+13:18:20.619  rs485 result reconnection thread create success
+13:18:20.621  gpio reconnection thread create success
+13:18:36.009  sdk destory
+13:18:38.800  Config reconnection thread create success
+13:18:38.802  Reco result reconnection thread create success
+13:18:38.803  rs485 result reconnection thread create success
+13:18:38.805  gpio reconnection thread create success
+13:19:05.570  sdk destory
+13:19:17.647  Config reconnection thread create success
+13:19:17.649  Reco result reconnection thread create success
+13:19:17.650  rs485 result reconnection thread create success
+13:19:17.652  gpio reconnection thread create success
+14:02:06.511  Config reconnection thread create success
+14:02:06.512  Reco result reconnection thread create success
+14:02:06.512  rs485 result reconnection thread create success
+14:02:06.513  gpio reconnection thread create success
+14:02:23.941  sdk destory
+14:02:39.810  Config reconnection thread create success
+14:02:39.810  Reco result reconnection thread create success
+14:02:39.811  rs485 result reconnection thread create success
+14:02:39.811  gpio reconnection thread create success
+14:03:39.015  Config reconnection thread create success
+14:03:39.016  Reco result reconnection thread create success
+14:03:39.016  rs485 result reconnection thread create success
+14:03:39.017  gpio reconnection thread create success
+14:04:38.871  Config reconnection thread create success
+14:04:38.872  Reco result reconnection thread create success
+14:04:38.872  rs485 result reconnection thread create success
+14:04:38.873  gpio reconnection thread create success
+14:06:10.711  Config reconnection thread create success
+14:06:10.712  Reco result reconnection thread create success
+14:06:10.713  rs485 result reconnection thread create success
+14:06:10.713  gpio reconnection thread create success
+14:08:16.400  Config reconnection thread create success
+14:08:16.400  Reco result reconnection thread create success
+14:08:16.401  rs485 result reconnection thread create success
+14:08:16.401  gpio reconnection thread create success
+14:18:30.969  Config reconnection thread create success
+14:18:30.972  Reco result reconnection thread create success
+14:18:30.972  rs485 result reconnection thread create success
+14:18:30.973  gpio reconnection thread create success
+14:24:22.724  Config reconnection thread create success
+14:24:22.725  Reco result reconnection thread create success
+14:24:22.726  rs485 result reconnection thread create success
+14:24:22.727  gpio reconnection thread create success
+14:25:37.328  Config reconnection thread create success
+14:25:37.329  Reco result reconnection thread create success
+14:25:37.329  rs485 result reconnection thread create success
+14:25:37.330  gpio reconnection thread create success
+14:26:48.032  Config reconnection thread create success
+14:26:48.033  Reco result reconnection thread create success
+14:26:48.033  rs485 result reconnection thread create success
+14:26:48.034  gpio reconnection thread create success
+14:31:18.593  Config reconnection thread create success
+14:31:18.594  Reco result reconnection thread create success
+14:31:18.595  rs485 result reconnection thread create success
+14:31:18.595  gpio reconnection thread create success
+14:51:59.836  Config reconnection thread create success
+14:51:59.837  Reco result reconnection thread create success
+14:51:59.838  rs485 result reconnection thread create success
+14:51:59.838  gpio reconnection thread create success
+15:13:35.565  Config reconnection thread create success
+15:13:35.651  Reco result reconnection thread create success
+15:13:35.651  rs485 result reconnection thread create success
+15:13:35.652  gpio reconnection thread create success
+15:25:25.652  Config reconnection thread create success
+15:25:25.653  Reco result reconnection thread create success
+15:25:25.653  rs485 result reconnection thread create success
+15:25:25.654  gpio reconnection thread create success
+15:26:26.915  Config reconnection thread create success
+15:26:26.916  Reco result reconnection thread create success
+15:26:26.917  rs485 result reconnection thread create success
+15:26:26.917  gpio reconnection thread create success
+15:26:50.714  Config reconnection thread create success
+15:26:50.715  Reco result reconnection thread create success
+15:26:50.716  rs485 result reconnection thread create success
+15:26:50.716  gpio reconnection thread create success
+15:29:20.451  Config reconnection thread create success
+15:29:20.452  Reco result reconnection thread create success
+15:29:20.452  rs485 result reconnection thread create success
+15:29:20.453  gpio reconnection thread create success
+15:37:41.177  Config reconnection thread create success
+15:37:41.178  Reco result reconnection thread create success
+15:37:41.178  rs485 result reconnection thread create success
+15:37:41.179  gpio reconnection thread create success
+15:37:54.612  Config reconnection thread create success
+15:37:54.613  Reco result reconnection thread create success
+15:37:54.614  rs485 result reconnection thread create success
+15:37:54.614  gpio reconnection thread create success
+15:40:59.772  Config reconnection thread create success
+15:40:59.773  Reco result reconnection thread create success
+15:40:59.774  rs485 result reconnection thread create success
+15:40:59.774  gpio reconnection thread create success
+15:50:08.080  Config reconnection thread create success
+15:50:08.081  Reco result reconnection thread create success
+15:50:08.081  rs485 result reconnection thread create success
+15:50:08.082  gpio reconnection thread create success
+15:54:13.595  Config reconnection thread create success
+15:54:13.596  Reco result reconnection thread create success
+15:54:13.597  rs485 result reconnection thread create success
+15:54:13.597  gpio reconnection thread create success
+16:40:26.206  Config reconnection thread create success
+16:40:26.227  Reco result reconnection thread create success
+16:40:26.228  rs485 result reconnection thread create success
+16:40:26.229  gpio reconnection thread create success
+16:40:44.704  sdk destory
+16:40:47.498  Config reconnection thread create success
+16:40:47.498  Reco result reconnection thread create success
+16:40:47.499  rs485 result reconnection thread create success
+16:40:47.499  gpio reconnection thread create success
+16:41:00.929  sdk destory
+16:41:02.330  Config reconnection thread create success
+16:41:02.330  Reco result reconnection thread create success
+16:41:02.331  rs485 result reconnection thread create success
+16:41:02.331  gpio reconnection thread create success

+ 50 - 0
DLL/windows/32bit/KHT_Log/0.0.0.0/2022-04-21.txt

@@ -0,0 +1,50 @@
+10:19:07.223  Config reconnection thread create success
+10:19:07.224  Reco result reconnection thread create success
+10:19:07.228  rs485 result reconnection thread create success
+10:19:07.228  gpio reconnection thread create success
+10:21:33.673  sdk destory
+10:21:35.145  Config reconnection thread create success
+10:21:35.146  Reco result reconnection thread create success
+10:21:35.146  rs485 result reconnection thread create success
+10:21:35.147  gpio reconnection thread create success
+10:22:15.781  sdk destory
+10:38:26.591  Config reconnection thread create success
+10:38:26.591  Reco result reconnection thread create success
+10:38:26.592  rs485 result reconnection thread create success
+10:38:26.593  gpio reconnection thread create success
+10:45:36.883  Config reconnection thread create success
+10:45:36.884  Reco result reconnection thread create success
+10:45:36.885  rs485 result reconnection thread create success
+10:45:36.885  gpio reconnection thread create success
+11:41:50.197  Config reconnection thread create success
+11:41:50.200  Reco result reconnection thread create success
+11:41:50.201  rs485 result reconnection thread create success
+11:41:50.201  gpio reconnection thread create success
+11:44:09.688  sdk destory
+11:44:11.168  Config reconnection thread create success
+11:44:11.169  Reco result reconnection thread create success
+11:44:11.169  rs485 result reconnection thread create success
+11:44:11.170  gpio reconnection thread create success
+11:46:16.688  Config reconnection thread create success
+11:46:16.688  Reco result reconnection thread create success
+11:46:16.689  rs485 result reconnection thread create success
+11:46:16.689  gpio reconnection thread create success
+11:46:40.167  sdk destory
+11:46:45.185  Config reconnection thread create success
+11:46:45.185  Reco result reconnection thread create success
+11:46:45.186  rs485 result reconnection thread create success
+11:46:45.186  gpio reconnection thread create success
+11:48:31.137  Config reconnection thread create success
+11:48:31.138  Reco result reconnection thread create success
+11:48:31.139  rs485 result reconnection thread create success
+11:48:31.139  gpio reconnection thread create success
+13:05:32.005  Config reconnection thread create success
+13:05:32.008  Reco result reconnection thread create success
+13:05:32.009  rs485 result reconnection thread create success
+13:05:32.009  gpio reconnection thread create success
+13:09:20.052  sdk destory
+13:10:49.820  Config reconnection thread create success
+13:10:49.821  Reco result reconnection thread create success
+13:10:49.821  rs485 result reconnection thread create success
+13:10:49.822  gpio reconnection thread create success
+13:11:32.450  sdk destory

+ 12 - 0
DLL/windows/32bit/KHT_Log/192.168.0.99/2022-04-20.txt

@@ -0,0 +1,12 @@
+13:19:19.113  connect 192.168.0.99 fail!
+13:19:19.114  192.168.0.99:配置文件中获取网卡IP失败, ret = -3
+13:19:19.166  192.168.0.99:通过接口自动匹配本地ip地址失败, ret = -4
+13:19:19.172  获取本机ip地址:192.168.7.12
+13:19:19.173  192.168.0.99:bind 10005 port succeed, hsdk_socket->port = 10005
+13:19:20.186  192.168.0.99:自动分配端口成功, ret = 0,port=10005
+13:19:20.189  192.168.0.99:bind 10005 port succeed, hsdk_socket->port = 10005
+13:19:20.191  192.168.0.99:bind 10005 port success, BindPort
+13:19:20.193  192.168.0.99:bind 10006 port succeed, hsdk_socket->port = 10006
+13:19:20.195  192.168.0.99:bind 10006 port success, nAlivePort
+13:19:22.212  192.168.0.99:接收设备返回数据失败!
+13:19:22.214  192.168.0.99:连接设备失败,错误状态值为:10

+ 4 - 0
DLL/windows/32bit/KHT_Log/192.168.0.99/ErrorLog/2022-04-20.txt

@@ -0,0 +1,4 @@
+13:19:19.114  192.168.0.99:配置文件中获取网卡IP失败, ret = -3
+13:19:19.166  192.168.0.99:通过接口自动匹配本地ip地址失败, ret = -4
+13:19:22.212  192.168.0.99:接收设备返回数据失败!
+13:19:22.214  192.168.0.99:连接设备失败,错误状态值为:10

+ 24 - 0
DLL/windows/32bit/KHT_Log/192.168.2.20/2022-04-20.txt

@@ -0,0 +1,24 @@
+15:26:28.129  connect 192.168.2.20 fail!
+15:26:28.133  192.168.2.20:配置文件中获取网卡IP失败, ret = -3
+15:26:28.215  192.168.2.20:通过接口自动匹配本地ip地址失败, ret = -4
+15:26:28.225  获取本机ip地址:192.168.7.12
+15:26:28.227  192.168.2.20:bind 10005 port succeed, hsdk_socket->port = 10005
+15:26:29.234  192.168.2.20:自动分配端口成功, ret = 0,port=10005
+15:26:29.235  192.168.2.20:bind 10005 port succeed, hsdk_socket->port = 10005
+15:26:29.236  192.168.2.20:bind 10005 port success, BindPort
+15:26:29.237  192.168.2.20:bind 10006 port succeed, hsdk_socket->port = 10006
+15:26:29.237  192.168.2.20:bind 10006 port success, nAlivePort
+15:26:31.259  192.168.2.20:接收设备返回数据失败!
+15:26:31.261  192.168.2.20:连接设备失败,错误状态值为:10
+15:37:42.430  connect 192.168.2.20 fail!
+15:37:42.431  192.168.2.20:配置文件中获取网卡IP失败, ret = -3
+15:37:42.435  192.168.2.20:通过接口自动匹配本地ip地址失败, ret = -4
+15:37:42.436  获取本机ip地址:192.168.7.12
+15:37:42.437  192.168.2.20:bind 10005 port succeed, hsdk_socket->port = 10005
+15:37:43.444  192.168.2.20:自动分配端口成功, ret = 0,port=10005
+15:37:43.445  192.168.2.20:bind 10005 port succeed, hsdk_socket->port = 10005
+15:37:43.445  192.168.2.20:bind 10005 port success, BindPort
+15:37:43.446  192.168.2.20:bind 10006 port succeed, hsdk_socket->port = 10006
+15:37:43.446  192.168.2.20:bind 10006 port success, nAlivePort
+15:37:45.466  192.168.2.20:接收设备返回数据失败!
+15:37:45.470  192.168.2.20:连接设备失败,错误状态值为:10

+ 8 - 0
DLL/windows/32bit/KHT_Log/192.168.2.20/ErrorLog/2022-04-20.txt

@@ -0,0 +1,8 @@
+15:26:28.133  192.168.2.20:配置文件中获取网卡IP失败, ret = -3
+15:26:28.215  192.168.2.20:通过接口自动匹配本地ip地址失败, ret = -4
+15:26:31.259  192.168.2.20:接收设备返回数据失败!
+15:26:31.261  192.168.2.20:连接设备失败,错误状态值为:10
+15:37:42.431  192.168.2.20:配置文件中获取网卡IP失败, ret = -3
+15:37:42.435  192.168.2.20:通过接口自动匹配本地ip地址失败, ret = -4
+15:37:45.466  192.168.2.20:接收设备返回数据失败!
+15:37:45.470  192.168.2.20:连接设备失败,错误状态值为:10

+ 322 - 0
DLL/windows/32bit/KHT_Log/192.168.2.27/2022-04-20.txt

@@ -0,0 +1,322 @@
+13:06:45.943  connect 192.168.2.27 fail!
+13:06:45.944  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+13:06:45.988  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+13:06:45.993  获取本机ip地址:192.168.7.12
+13:06:45.995  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+13:06:47.005  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+13:06:47.007  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+13:06:47.008  192.168.2.27:bind 10005 port success, BindPort
+13:06:47.010  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+13:06:47.011  192.168.2.27:bind 10006 port success, nAlivePort
+13:06:49.025  192.168.2.27:接收设备返回数据失败!
+13:06:49.028  192.168.2.27:连接设备失败,错误状态值为:10
+13:08:04.509  connect 192.168.2.27 fail!
+13:08:04.511  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+13:08:04.516  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+13:08:04.520  获取本机ip地址:192.168.7.12
+13:08:04.521  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+13:08:05.533  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+13:08:05.536  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+13:08:05.537  192.168.2.27:bind 10005 port success, BindPort
+13:08:05.539  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+13:08:05.540  192.168.2.27:bind 10006 port success, nAlivePort
+13:08:07.558  192.168.2.27:接收设备返回数据失败!
+13:08:07.561  192.168.2.27:连接设备失败,错误状态值为:10
+13:17:58.526  connect 192.168.2.27 fail!
+13:17:58.530  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+13:17:58.536  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+13:17:58.540  获取本机ip地址:192.168.7.12
+13:17:58.542  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+13:17:59.552  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+13:17:59.554  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+13:17:59.556  192.168.2.27:bind 10005 port success, BindPort
+13:17:59.558  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+13:17:59.559  192.168.2.27:bind 10006 port success, nAlivePort
+13:18:01.571  192.168.2.27:接收设备返回数据失败!
+13:18:01.577  192.168.2.27:连接设备失败,错误状态值为:10
+14:02:08.018  connect 192.168.2.27 fail!
+14:02:08.019  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:02:08.021  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:02:08.023  获取本机ip地址:192.168.7.12
+14:02:08.023  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:02:09.029  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+14:02:09.029  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:02:09.030  192.168.2.27:bind 10005 port success, BindPort
+14:02:09.030  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+14:02:09.030  192.168.2.27:bind 10006 port success, nAlivePort
+14:02:11.055  192.168.2.27:接收设备返回数据失败!
+14:02:11.056  192.168.2.27:连接设备失败,错误状态值为:10
+14:02:41.267  connect 192.168.2.27 fail!
+14:02:41.269  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:02:41.274  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:02:41.276  获取本机ip地址:192.168.7.12
+14:02:41.278  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:02:42.282  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+14:02:42.284  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:02:42.286  192.168.2.27:bind 10005 port success, BindPort
+14:02:42.288  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+14:02:42.289  192.168.2.27:bind 10006 port success, nAlivePort
+14:02:44.307  192.168.2.27:接收设备返回数据失败!
+14:02:44.311  192.168.2.27:连接设备失败,错误状态值为:10
+14:03:40.524  connect 192.168.2.27 fail!
+14:03:40.524  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:03:40.528  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:03:40.529  获取本机ip地址:192.168.7.12
+14:03:40.530  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:03:41.538  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+14:03:41.539  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:03:41.540  192.168.2.27:bind 10005 port success, BindPort
+14:03:41.541  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+14:03:41.542  192.168.2.27:bind 10006 port success, nAlivePort
+14:03:43.558  192.168.2.27:接收设备返回数据失败!
+14:03:43.559  192.168.2.27:连接设备失败,错误状态值为:10
+14:04:40.353  connect 192.168.2.27 fail!
+14:04:40.353  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:04:40.356  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:04:40.357  获取本机ip地址:192.168.7.12
+14:04:40.358  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:04:41.369  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+14:04:41.369  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:04:41.370  192.168.2.27:bind 10005 port success, BindPort
+14:04:41.370  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+14:04:41.371  192.168.2.27:bind 10006 port success, nAlivePort
+14:04:43.389  192.168.2.27:接收设备返回数据失败!
+14:04:43.390  192.168.2.27:连接设备失败,错误状态值为:10
+14:06:12.164  connect 192.168.2.27 fail!
+14:06:12.164  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:06:12.167  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:06:12.169  获取本机ip地址:192.168.7.12
+14:06:12.169  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:06:13.171  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+14:06:13.173  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:06:13.174  192.168.2.27:bind 10005 port success, BindPort
+14:06:13.177  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+14:06:13.178  192.168.2.27:bind 10006 port success, nAlivePort
+14:06:15.190  192.168.2.27:接收设备返回数据失败!
+14:06:15.191  192.168.2.27:连接设备失败,错误状态值为:10
+14:08:17.884  connect 192.168.2.27 fail!
+14:08:17.885  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:08:17.888  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:08:17.890  获取本机ip地址:192.168.7.12
+14:08:17.890  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:08:18.892  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+14:08:18.893  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:08:18.893  192.168.2.27:bind 10005 port success, BindPort
+14:08:18.894  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+14:08:18.894  192.168.2.27:bind 10006 port success, nAlivePort
+14:08:20.917  192.168.2.27:接收设备返回数据失败!
+14:08:20.919  192.168.2.27:连接设备失败,错误状态值为:10
+14:18:32.450  connect 192.168.2.27 fail!
+14:18:32.453  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:18:32.459  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:18:32.461  获取本机ip地址:192.168.7.12
+14:18:32.461  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:18:33.464  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+14:18:33.465  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:18:33.466  192.168.2.27:bind 10005 port success, BindPort
+14:18:33.467  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+14:18:33.468  192.168.2.27:bind 10006 port success, nAlivePort
+14:18:35.485  192.168.2.27:接收设备返回数据失败!
+14:18:35.487  192.168.2.27:连接设备失败,错误状态值为:10
+14:24:24.181  connect 192.168.2.27 fail!
+14:24:24.181  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:24:24.184  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:24:24.185  获取本机ip地址:192.168.7.12
+14:24:24.186  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:24:25.191  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+14:24:25.192  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:24:25.192  192.168.2.27:bind 10005 port success, BindPort
+14:24:25.193  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+14:24:25.194  192.168.2.27:bind 10006 port success, nAlivePort
+14:24:27.209  192.168.2.27:接收设备返回数据失败!
+14:24:27.211  192.168.2.27:连接设备失败,错误状态值为:10
+14:25:38.800  connect 192.168.2.27 fail!
+14:25:38.802  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:25:38.809  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:25:38.812  获取本机ip地址:192.168.7.12
+14:25:38.813  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:25:39.822  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+14:25:39.823  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:25:39.824  192.168.2.27:bind 10005 port success, BindPort
+14:25:39.825  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+14:25:39.825  192.168.2.27:bind 10006 port success, nAlivePort
+14:25:41.841  192.168.2.27:接收设备返回数据失败!
+14:25:41.843  192.168.2.27:连接设备失败,错误状态值为:10
+14:26:49.524  connect 192.168.2.27 fail!
+14:26:49.527  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:26:49.534  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:26:49.537  获取本机ip地址:192.168.7.12
+14:26:49.539  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:26:50.545  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+14:26:50.545  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:26:50.546  192.168.2.27:bind 10005 port success, BindPort
+14:26:50.547  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+14:26:50.547  192.168.2.27:bind 10006 port success, nAlivePort
+14:26:52.562  192.168.2.27:接收设备返回数据失败!
+14:26:52.563  192.168.2.27:连接设备失败,错误状态值为:10
+14:31:20.051  connect 192.168.2.27 fail!
+14:31:20.052  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:31:20.055  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:31:20.057  获取本机ip地址:192.168.7.12
+14:31:20.057  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:31:21.067  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+14:31:21.068  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:31:21.068  192.168.2.27:bind 10005 port success, BindPort
+14:31:21.069  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+14:31:21.069  192.168.2.27:bind 10006 port success, nAlivePort
+14:31:23.084  192.168.2.27:接收设备返回数据失败!
+14:31:23.085  192.168.2.27:连接设备失败,错误状态值为:10
+14:52:01.481  connect 192.168.2.27 fail!
+14:52:01.482  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:52:01.485  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:52:01.486  获取本机ip地址:192.168.7.12
+14:52:01.486  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:52:02.493  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+14:52:02.494  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+14:52:02.495  192.168.2.27:bind 10005 port success, BindPort
+14:52:02.496  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+14:52:02.496  192.168.2.27:bind 10006 port success, nAlivePort
+14:52:04.522  192.168.2.27:接收设备返回数据失败!
+14:52:04.523  192.168.2.27:连接设备失败,错误状态值为:10
+15:13:37.119  connect 192.168.2.27 fail!
+15:13:37.121  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:13:37.126  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:13:37.127  获取本机ip地址:192.168.7.12
+15:13:37.128  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:13:38.140  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+15:13:38.141  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:13:38.142  192.168.2.27:bind 10005 port success, BindPort
+15:13:38.142  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+15:13:38.142  192.168.2.27:bind 10006 port success, nAlivePort
+15:13:40.165  192.168.2.27:接收设备返回数据失败!
+15:13:40.168  192.168.2.27:连接设备失败,错误状态值为:10
+15:25:27.120  connect 192.168.2.27 fail!
+15:25:27.121  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:25:27.125  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:25:27.127  获取本机ip地址:192.168.7.12
+15:25:27.128  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:25:28.141  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+15:25:28.142  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:25:28.143  192.168.2.27:bind 10005 port success, BindPort
+15:25:28.144  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+15:25:28.145  192.168.2.27:bind 10006 port success, nAlivePort
+15:25:30.167  192.168.2.27:接收设备返回数据失败!
+15:25:30.169  192.168.2.27:连接设备失败,错误状态值为:10
+15:26:52.182  connect 192.168.2.27 fail!
+15:26:52.183  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:26:52.186  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:26:52.188  获取本机ip地址:192.168.7.12
+15:26:52.188  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:26:53.195  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+15:26:53.197  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:26:53.198  192.168.2.27:bind 10005 port success, BindPort
+15:26:53.199  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+15:26:53.200  192.168.2.27:bind 10006 port success, nAlivePort
+15:26:55.216  192.168.2.27:接收设备返回数据失败!
+15:26:55.218  192.168.2.27:连接设备失败,错误状态值为:10
+15:29:21.923  connect 192.168.2.27 fail!
+15:29:21.925  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:29:21.931  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:29:21.934  获取本机ip地址:192.168.7.12
+15:29:21.935  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:29:22.949  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+15:29:22.950  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:29:22.951  192.168.2.27:bind 10005 port success, BindPort
+15:29:22.951  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+15:29:22.952  192.168.2.27:bind 10006 port success, nAlivePort
+15:29:24.970  192.168.2.27:接收设备返回数据失败!
+15:29:24.972  192.168.2.27:连接设备失败,错误状态值为:10
+15:37:46.684  connect 192.168.2.27 fail!
+15:37:46.684  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:37:46.687  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:37:46.689  获取本机ip地址:192.168.7.12
+15:37:46.689  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:37:47.702  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+15:37:47.703  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:37:47.704  192.168.2.27:bind 10005 port success, BindPort
+15:37:47.704  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+15:37:47.705  192.168.2.27:bind 10006 port success, nAlivePort
+15:37:56.094  connect 192.168.2.27 fail!
+15:37:56.095  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:37:56.099  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:37:56.100  获取本机ip地址:192.168.7.12
+15:37:56.101  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:37:57.106  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+15:37:57.106  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:37:57.107  192.168.2.27:bind 10005 port success, BindPort
+15:37:57.108  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+15:37:57.108  192.168.2.27:bind 10006 port success, nAlivePort
+15:37:59.123  192.168.2.27:接收设备返回数据失败!
+15:37:59.124  192.168.2.27:连接设备失败,错误状态值为:10
+15:41:01.249  connect 192.168.2.27 fail!
+15:41:01.250  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:41:01.253  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:41:01.254  获取本机ip地址:192.168.7.12
+15:41:01.255  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:41:02.258  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+15:41:02.260  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:41:02.261  192.168.2.27:bind 10005 port success, BindPort
+15:41:02.262  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+15:41:02.263  192.168.2.27:bind 10006 port success, nAlivePort
+15:41:04.287  192.168.2.27:接收设备返回数据失败!
+15:41:04.288  192.168.2.27:连接设备失败,错误状态值为:10
+15:50:09.536  connect 192.168.2.27 fail!
+15:50:09.536  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:50:09.540  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:50:09.541  获取本机ip地址:192.168.7.12
+15:50:09.542  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:50:10.549  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+15:50:10.549  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:50:10.549  192.168.2.27:bind 10005 port success, BindPort
+15:50:10.550  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+15:50:10.550  192.168.2.27:bind 10006 port success, nAlivePort
+15:50:12.576  192.168.2.27:接收设备返回数据失败!
+15:50:12.576  192.168.2.27:连接设备失败,错误状态值为:10
+15:54:15.061  connect 192.168.2.27 fail!
+15:54:15.062  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:54:15.066  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:54:15.068  获取本机ip地址:192.168.7.12
+15:54:15.068  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:54:16.072  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+15:54:16.073  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:54:16.074  192.168.2.27:bind 10005 port success, BindPort
+15:54:16.074  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+15:54:16.075  192.168.2.27:bind 10006 port success, nAlivePort
+15:54:18.092  192.168.2.27:接收设备返回数据失败!
+15:54:18.093  192.168.2.27:连接设备失败,错误状态值为:10
+16:40:27.759  connect 192.168.2.27 fail!
+16:40:27.793  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+16:40:27.807  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+16:40:27.809  获取本机ip地址:192.168.7.12
+16:40:27.809  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+16:40:28.824  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+16:40:28.825  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+16:40:28.826  192.168.2.27:bind 10005 port success, BindPort
+16:40:28.826  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+16:40:28.827  192.168.2.27:bind 10006 port success, nAlivePort
+16:40:30.849  192.168.2.27:接收设备返回数据失败!
+16:40:30.852  192.168.2.27:连接设备失败,错误状态值为:10
+16:40:48.970  connect 192.168.2.27 fail!
+16:40:48.971  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+16:40:48.976  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+16:40:48.979  获取本机ip地址:192.168.7.12
+16:40:48.980  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+16:40:49.986  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+16:40:49.987  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+16:40:49.989  192.168.2.27:bind 10005 port success, BindPort
+16:40:49.989  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+16:40:49.989  192.168.2.27:bind 10006 port success, nAlivePort
+16:40:52.016  192.168.2.27:接收设备返回数据失败!
+16:40:52.017  192.168.2.27:连接设备失败,错误状态值为:10
+16:41:03.789  connect 192.168.2.27 fail!
+16:41:03.789  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+16:41:03.792  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+16:41:03.794  获取本机ip地址:192.168.7.12
+16:41:03.795  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+16:41:04.799  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+16:41:04.799  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+16:41:04.800  192.168.2.27:bind 10005 port success, BindPort
+16:41:04.801  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+16:41:04.802  192.168.2.27:bind 10006 port success, nAlivePort
+16:41:06.829  192.168.2.27:接收设备返回数据失败!
+16:41:06.830  192.168.2.27:连接设备失败,错误状态值为:10

+ 144 - 0
DLL/windows/32bit/KHT_Log/192.168.2.27/2022-04-21.txt

@@ -0,0 +1,144 @@
+10:19:08.800  connect 192.168.2.27 fail!
+10:19:08.801  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+10:19:08.807  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+10:19:08.811  获取本机ip地址:192.168.7.12
+10:19:08.812  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+10:19:09.812  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+10:19:09.813  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+10:19:09.814  192.168.2.27:bind 10005 port success, BindPort
+10:19:09.814  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+10:19:09.815  192.168.2.27:bind 10006 port success, nAlivePort
+10:19:11.833  192.168.2.27:接收设备返回数据失败!
+10:19:11.834  192.168.2.27:连接设备失败,错误状态值为:10
+10:21:36.621  connect 192.168.2.27 fail!
+10:21:36.622  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+10:21:36.625  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+10:21:36.626  获取本机ip地址:192.168.7.12
+10:21:36.627  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+10:21:37.629  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+10:21:37.630  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+10:21:37.632  192.168.2.27:bind 10005 port success, BindPort
+10:21:37.633  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+10:21:37.633  192.168.2.27:bind 10006 port success, nAlivePort
+10:21:39.648  192.168.2.27:接收设备返回数据失败!
+10:21:39.649  192.168.2.27:连接设备失败,错误状态值为:10
+10:21:40.893  connect 192.168.2.27 fail!
+10:21:40.894  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+10:21:40.897  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+10:21:40.899  获取本机ip地址:192.168.7.12
+10:21:40.900  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+10:21:41.903  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+10:21:41.904  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+10:21:41.904  192.168.2.27:bind 10005 port success, BindPort
+10:21:41.905  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+10:21:41.905  192.168.2.27:bind 10006 port success, nAlivePort
+10:21:43.933  192.168.2.27:接收设备返回数据失败!
+10:21:43.934  192.168.2.27:连接设备失败,错误状态值为:10
+10:38:28.054  connect 192.168.2.27 fail!
+10:38:28.054  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+10:38:28.058  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+10:38:28.059  获取本机ip地址:192.168.7.12
+10:38:28.059  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+10:38:29.069  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+10:38:29.069  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+10:38:29.070  192.168.2.27:bind 10005 port success, BindPort
+10:38:29.070  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+10:38:29.071  192.168.2.27:bind 10006 port success, nAlivePort
+10:38:31.092  192.168.2.27:接收设备返回数据失败!
+10:38:31.093  192.168.2.27:连接设备失败,错误状态值为:10
+10:45:38.411  connect 192.168.2.27 fail!
+10:45:38.412  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+10:45:38.415  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+10:45:38.417  获取本机ip地址:192.168.7.12
+10:45:38.417  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+10:45:39.420  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+10:45:39.421  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+10:45:39.422  192.168.2.27:bind 10005 port success, BindPort
+10:45:39.423  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+10:45:39.423  192.168.2.27:bind 10006 port success, nAlivePort
+10:45:41.441  192.168.2.27:接收设备返回数据失败!
+10:45:41.442  192.168.2.27:连接设备失败,错误状态值为:10
+11:41:51.670  connect 192.168.2.27 fail!
+11:41:51.672  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+11:41:51.677  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+11:41:51.678  获取本机ip地址:192.168.7.12
+11:41:51.680  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+11:41:52.695  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+11:41:52.695  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+11:41:52.696  192.168.2.27:bind 10005 port success, BindPort
+11:41:52.696  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+11:41:52.697  192.168.2.27:bind 10006 port success, nAlivePort
+11:41:54.721  192.168.2.27:接收设备返回数据失败!
+11:41:54.723  192.168.2.27:连接设备失败,错误状态值为:10
+11:44:12.625  connect 192.168.2.27 fail!
+11:44:12.626  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+11:44:12.631  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+11:44:12.633  获取本机ip地址:192.168.7.12
+11:44:12.634  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+11:44:13.650  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+11:44:13.650  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+11:44:13.651  192.168.2.27:bind 10005 port success, BindPort
+11:44:13.651  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+11:44:13.652  192.168.2.27:bind 10006 port success, nAlivePort
+11:44:15.680  192.168.2.27:接收设备返回数据失败!
+11:44:15.681  192.168.2.27:连接设备失败,错误状态值为:10
+11:46:18.173  connect 192.168.2.27 fail!
+11:46:18.174  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+11:46:18.177  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+11:46:18.179  获取本机ip地址:192.168.7.12
+11:46:18.179  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+11:46:19.188  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+11:46:19.189  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+11:46:19.190  192.168.2.27:bind 10005 port success, BindPort
+11:46:19.190  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+11:46:19.190  192.168.2.27:bind 10006 port success, nAlivePort
+11:46:21.211  192.168.2.27:接收设备返回数据失败!
+11:46:21.212  192.168.2.27:连接设备失败,错误状态值为:10
+11:46:46.660  connect 192.168.2.27 fail!
+11:46:46.662  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+11:46:46.670  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+11:46:46.673  获取本机ip地址:192.168.7.12
+11:46:46.674  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+11:46:47.684  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+11:46:47.685  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+11:46:47.686  192.168.2.27:bind 10005 port success, BindPort
+11:46:47.687  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+11:46:47.688  192.168.2.27:bind 10006 port success, nAlivePort
+11:46:49.705  192.168.2.27:接收设备返回数据失败!
+11:46:49.706  192.168.2.27:连接设备失败,错误状态值为:10
+11:48:32.603  connect 192.168.2.27 fail!
+11:48:32.604  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+11:48:32.611  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+11:48:32.614  获取本机ip地址:192.168.7.12
+11:48:32.615  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+11:48:33.630  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+11:48:33.630  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+11:48:33.631  192.168.2.27:bind 10005 port success, BindPort
+11:48:33.631  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+11:48:33.632  192.168.2.27:bind 10006 port success, nAlivePort
+11:48:35.653  192.168.2.27:接收设备返回数据失败!
+11:48:35.654  192.168.2.27:连接设备失败,错误状态值为:10
+13:05:33.453  connect 192.168.2.27 fail!
+13:05:33.456  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+13:05:33.461  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+13:05:33.463  获取本机ip地址:192.168.7.12
+13:05:33.463  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+13:05:34.479  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+13:05:34.479  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+13:05:34.480  192.168.2.27:bind 10005 port success, BindPort
+13:05:34.481  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+13:05:34.481  192.168.2.27:bind 10006 port success, nAlivePort
+13:05:36.495  192.168.2.27:接收设备返回数据失败!
+13:05:36.497  192.168.2.27:连接设备失败,错误状态值为:10
+13:10:51.278  connect 192.168.2.27 fail!
+13:10:51.279  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+13:10:51.282  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+13:10:51.284  获取本机ip地址:192.168.7.12
+13:10:51.285  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+13:10:52.292  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+13:10:52.292  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+13:10:52.293  192.168.2.27:bind 10005 port success, BindPort
+13:10:52.293  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+13:10:52.294  192.168.2.27:bind 10006 port success, nAlivePort
+13:10:54.312  192.168.2.27:接收设备返回数据失败!
+13:10:54.313  192.168.2.27:连接设备失败,错误状态值为:10

+ 106 - 0
DLL/windows/32bit/KHT_Log/192.168.2.27/ErrorLog/2022-04-20.txt

@@ -0,0 +1,106 @@
+13:06:45.944  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+13:06:45.988  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+13:06:49.025  192.168.2.27:接收设备返回数据失败!
+13:06:49.028  192.168.2.27:连接设备失败,错误状态值为:10
+13:08:04.511  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+13:08:04.516  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+13:08:07.558  192.168.2.27:接收设备返回数据失败!
+13:08:07.561  192.168.2.27:连接设备失败,错误状态值为:10
+13:17:58.530  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+13:17:58.536  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+13:18:01.571  192.168.2.27:接收设备返回数据失败!
+13:18:01.577  192.168.2.27:连接设备失败,错误状态值为:10
+14:02:08.019  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:02:08.021  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:02:11.055  192.168.2.27:接收设备返回数据失败!
+14:02:11.056  192.168.2.27:连接设备失败,错误状态值为:10
+14:02:41.269  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:02:41.274  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:02:44.307  192.168.2.27:接收设备返回数据失败!
+14:02:44.311  192.168.2.27:连接设备失败,错误状态值为:10
+14:03:40.524  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:03:40.528  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:03:43.558  192.168.2.27:接收设备返回数据失败!
+14:03:43.559  192.168.2.27:连接设备失败,错误状态值为:10
+14:04:40.353  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:04:40.356  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:04:43.389  192.168.2.27:接收设备返回数据失败!
+14:04:43.390  192.168.2.27:连接设备失败,错误状态值为:10
+14:06:12.164  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:06:12.167  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:06:15.190  192.168.2.27:接收设备返回数据失败!
+14:06:15.191  192.168.2.27:连接设备失败,错误状态值为:10
+14:08:17.885  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:08:17.888  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:08:20.917  192.168.2.27:接收设备返回数据失败!
+14:08:20.919  192.168.2.27:连接设备失败,错误状态值为:10
+14:18:32.453  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:18:32.459  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:18:35.485  192.168.2.27:接收设备返回数据失败!
+14:18:35.487  192.168.2.27:连接设备失败,错误状态值为:10
+14:24:24.181  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:24:24.184  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:24:27.209  192.168.2.27:接收设备返回数据失败!
+14:24:27.211  192.168.2.27:连接设备失败,错误状态值为:10
+14:25:38.802  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:25:38.809  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:25:41.841  192.168.2.27:接收设备返回数据失败!
+14:25:41.843  192.168.2.27:连接设备失败,错误状态值为:10
+14:26:49.527  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:26:49.534  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:26:52.562  192.168.2.27:接收设备返回数据失败!
+14:26:52.563  192.168.2.27:连接设备失败,错误状态值为:10
+14:31:20.052  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:31:20.055  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:31:23.084  192.168.2.27:接收设备返回数据失败!
+14:31:23.085  192.168.2.27:连接设备失败,错误状态值为:10
+14:52:01.482  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+14:52:01.485  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+14:52:04.522  192.168.2.27:接收设备返回数据失败!
+14:52:04.523  192.168.2.27:连接设备失败,错误状态值为:10
+15:13:37.121  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:13:37.126  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:13:40.165  192.168.2.27:接收设备返回数据失败!
+15:13:40.168  192.168.2.27:连接设备失败,错误状态值为:10
+15:25:27.121  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:25:27.125  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:25:30.167  192.168.2.27:接收设备返回数据失败!
+15:25:30.169  192.168.2.27:连接设备失败,错误状态值为:10
+15:26:52.183  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:26:52.186  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:26:55.216  192.168.2.27:接收设备返回数据失败!
+15:26:55.218  192.168.2.27:连接设备失败,错误状态值为:10
+15:29:21.925  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:29:21.931  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:29:24.970  192.168.2.27:接收设备返回数据失败!
+15:29:24.972  192.168.2.27:连接设备失败,错误状态值为:10
+15:37:46.684  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:37:46.687  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:37:56.095  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:37:56.099  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:37:59.123  192.168.2.27:接收设备返回数据失败!
+15:37:59.124  192.168.2.27:连接设备失败,错误状态值为:10
+15:41:01.250  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:41:01.253  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:41:04.287  192.168.2.27:接收设备返回数据失败!
+15:41:04.288  192.168.2.27:连接设备失败,错误状态值为:10
+15:50:09.536  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:50:09.540  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:50:12.576  192.168.2.27:接收设备返回数据失败!
+15:50:12.576  192.168.2.27:连接设备失败,错误状态值为:10
+15:54:15.062  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:54:15.066  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:54:18.092  192.168.2.27:接收设备返回数据失败!
+15:54:18.093  192.168.2.27:连接设备失败,错误状态值为:10
+16:40:27.793  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+16:40:27.807  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+16:40:30.849  192.168.2.27:接收设备返回数据失败!
+16:40:30.852  192.168.2.27:连接设备失败,错误状态值为:10
+16:40:48.971  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+16:40:48.976  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+16:40:52.016  192.168.2.27:接收设备返回数据失败!
+16:40:52.017  192.168.2.27:连接设备失败,错误状态值为:10
+16:41:03.789  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+16:41:03.792  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+16:41:06.829  192.168.2.27:接收设备返回数据失败!
+16:41:06.830  192.168.2.27:连接设备失败,错误状态值为:10

+ 48 - 0
DLL/windows/32bit/KHT_Log/192.168.2.27/ErrorLog/2022-04-21.txt

@@ -0,0 +1,48 @@
+10:19:08.801  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+10:19:08.807  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+10:19:11.833  192.168.2.27:接收设备返回数据失败!
+10:19:11.834  192.168.2.27:连接设备失败,错误状态值为:10
+10:21:36.622  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+10:21:36.625  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+10:21:39.648  192.168.2.27:接收设备返回数据失败!
+10:21:39.649  192.168.2.27:连接设备失败,错误状态值为:10
+10:21:40.894  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+10:21:40.897  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+10:21:43.933  192.168.2.27:接收设备返回数据失败!
+10:21:43.934  192.168.2.27:连接设备失败,错误状态值为:10
+10:38:28.054  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+10:38:28.058  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+10:38:31.092  192.168.2.27:接收设备返回数据失败!
+10:38:31.093  192.168.2.27:连接设备失败,错误状态值为:10
+10:45:38.412  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+10:45:38.415  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+10:45:41.441  192.168.2.27:接收设备返回数据失败!
+10:45:41.442  192.168.2.27:连接设备失败,错误状态值为:10
+11:41:51.672  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+11:41:51.677  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+11:41:54.721  192.168.2.27:接收设备返回数据失败!
+11:41:54.723  192.168.2.27:连接设备失败,错误状态值为:10
+11:44:12.626  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+11:44:12.631  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+11:44:15.680  192.168.2.27:接收设备返回数据失败!
+11:44:15.681  192.168.2.27:连接设备失败,错误状态值为:10
+11:46:18.174  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+11:46:18.177  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+11:46:21.211  192.168.2.27:接收设备返回数据失败!
+11:46:21.212  192.168.2.27:连接设备失败,错误状态值为:10
+11:46:46.662  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+11:46:46.670  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+11:46:49.705  192.168.2.27:接收设备返回数据失败!
+11:46:49.706  192.168.2.27:连接设备失败,错误状态值为:10
+11:48:32.604  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+11:48:32.611  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+11:48:35.653  192.168.2.27:接收设备返回数据失败!
+11:48:35.654  192.168.2.27:连接设备失败,错误状态值为:10
+13:05:33.456  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+13:05:33.461  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+13:05:36.495  192.168.2.27:接收设备返回数据失败!
+13:05:36.497  192.168.2.27:连接设备失败,错误状态值为:10
+13:10:51.279  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+13:10:51.282  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+13:10:54.312  192.168.2.27:接收设备返回数据失败!
+13:10:54.313  192.168.2.27:连接设备失败,错误状态值为:10

+ 563 - 0
DLL/windows/32bit/KHT_Log/192.168.7.225/2022-04-20.txt

@@ -0,0 +1,563 @@
+13:06:44.249  download config file success
+13:06:44.251  192.168.7.225 Config result thread create success
+13:06:44.255  192.168.7.225 config connect success
+13:06:44.269  192.168.7.225: Reco result thread create success
+13:06:44.271  192.168.7.225 reco result connect success
+13:06:44.273  192.168.7.225: Reco result pro thread create success
+13:06:44.278  192.168.7.225 gpio thread create success
+13:06:44.280  192.168.7.225 gpio connect success
+13:06:44.291  192.168.7.225: rs485_1 result recv thread create success
+13:06:44.292  192.168.7.225:9110 rs485_1 connect success[647506790]
+13:08:03.198  download config file success
+13:08:03.200  192.168.7.225 Config result thread create success
+13:08:03.202  192.168.7.225 config connect success
+13:08:03.207  192.168.7.225: Reco result thread create success
+13:08:03.209  192.168.7.225: Reco result pro thread create success
+13:08:03.211  192.168.7.225 reco result connect success
+13:08:03.217  192.168.7.225 gpio thread create success
+13:08:03.218  192.168.7.225 gpio connect success
+13:08:03.234  192.168.7.225: rs485_1 result recv thread create success
+13:08:03.235  192.168.7.225:9110 rs485_1 connect success[1771458352]
+13:17:57.250  download config file success
+13:17:57.253  192.168.7.225 Config result thread create success
+13:17:57.255  192.168.7.225 config connect success
+13:17:57.270  192.168.7.225: Reco result thread create success
+13:17:57.273  192.168.7.225: Reco result pro thread create success
+13:17:57.274  192.168.7.225 reco result connect success
+13:17:57.279  192.168.7.225 gpio thread create success
+13:17:57.281  192.168.7.225 gpio connect success
+13:17:57.303  192.168.7.225: rs485_1 result recv thread create success
+13:17:57.304  192.168.7.225:9110 rs485_1 connect success[433342360]
+13:18:12.935  192.168.7.225 rs485_1 thread exit[433342360]
+13:18:12.938  192.168.7.225 reco result pro thread exit[64380157]
+13:18:12.951  192.168.7.225 config thread exit[64380157]
+13:18:12.967  192.168.7.225 reco result thread exit[64380157]
+13:18:12.968  192.168.7.225 gpio thread exit[64380157]
+13:18:13.173  send RS485_1 RS485_CMD_QUIT success:64380157
+13:18:13.175  send RESULT_CMD_QUIT success:64380157
+13:18:13.177  send GPIO_CMD_QUIT success:64380157
+13:18:20.837  download config file success
+13:18:20.840  192.168.7.225 Config result thread create success
+13:18:20.843  192.168.7.225 config connect success
+13:18:20.849  192.168.7.225: Reco result thread create success
+13:18:20.852  192.168.7.225: Reco result pro thread create success
+13:18:20.855  192.168.7.225 reco result connect success
+13:18:20.873  192.168.7.225 gpio thread create success
+13:18:20.876  192.168.7.225 gpio connect success
+13:18:20.906  192.168.7.225: rs485_1 result recv thread create success
+13:18:20.909  192.168.7.225:9110 rs485_1 connect success[1590704520]
+13:18:29.652  192.168.7.225 reco result pro thread exit[69280427]
+13:18:29.696  192.168.7.225 config thread exit[69280427]
+13:18:29.698  192.168.7.225 rs485_1 thread exit[1590704520]
+13:18:29.699  192.168.7.225 gpio thread exit[69280427]
+13:18:29.712  192.168.7.225 reco result thread exit[69280427]
+13:18:29.713  send RS485_1 RS485_CMD_QUIT success:69280427
+13:18:29.715  send RESULT_CMD_QUIT success:69280427
+13:18:29.717  send GPIO_CMD_QUIT success:69280427
+13:18:39.008  download config file success
+13:18:39.010  192.168.7.225 Config result thread create success
+13:18:39.011  192.168.7.225 config connect success
+13:18:39.015  192.168.7.225: Reco result thread create success
+13:18:39.018  192.168.7.225: Reco result pro thread create success
+13:18:39.019  192.168.7.225 reco result connect success
+13:18:39.026  192.168.7.225 gpio thread create success
+13:18:39.027  192.168.7.225 gpio connect success
+13:18:39.045  192.168.7.225: rs485_1 result recv thread create success
+13:18:39.046  192.168.7.225:9110 rs485_1 connect success[1189303676]
+13:18:52.361  set SDK_CMD_REBOOT success:73143914
+13:18:57.124  tcp recv data fail, ret = 0, error = 0
+13:18:57.125  192.168.7.225 config keeplive fail, abnormal_number = 1, ret = -1(73143914)
+13:18:57.140  tcp recv data fail, ret = 0, error = 0
+13:18:57.141  192.168.7.225 rs485_1 keeplive fail, abnormal_number = 1, ret = -1[1189303676]
+13:18:57.833  192.168.7.225 reco result pro thread exit[73143914]
+13:18:57.845  192.168.7.225 reco result thread exit[73143914]
+13:18:57.847  192.168.7.225 gpio thread exit[73143914]
+13:18:59.185  tcp recv data fail, ret = 0, error = 0
+13:18:59.186  192.168.7.225 config keeplive fail, abnormal_number = 2, ret = -1(73143914)
+13:18:59.216  tcp recv data fail, ret = 0, error = 0
+13:18:59.217  192.168.7.225 rs485_1 keeplive fail, abnormal_number = 2, ret = -1[1189303676]
+13:18:59.248  192.168.7.225 config thread exit[73143914]
+13:18:59.279  192.168.7.225 rs485_1 thread exit[1189303676]
+13:18:59.281  send RS485_1 RS485_CMD_QUIT success:73143914
+13:18:59.283  send RESULT_CMD_QUIT success:73143914
+13:18:59.285  send GPIO_CMD_QUIT success:73143914
+13:19:17.871  download config file success
+13:19:17.872  192.168.7.225 Config result thread create success
+13:19:17.874  192.168.7.225 config connect success
+13:19:17.878  192.168.7.225: Reco result thread create success
+13:19:17.880  192.168.7.225 reco result connect success
+13:19:17.881  192.168.7.225: Reco result pro thread create success
+13:19:17.907  192.168.7.225 gpio thread create success
+13:19:17.909  192.168.7.225 gpio connect success
+13:19:17.917  192.168.7.225: rs485_1 result recv thread create success
+13:19:17.918  192.168.7.225:9110 rs485_1 connect success[1751197537]
+13:19:24.832  set SDK_CMD_REBOOT success:81492958
+13:19:29.974  tcp recv data fail, ret = 0, error = 0
+13:19:29.976  192.168.7.225 config keeplive fail, abnormal_number = 1, ret = -1(81492958)
+13:19:30.005  tcp recv data fail, ret = 0, error = 0
+13:19:30.007  192.168.7.225 rs485_1 keeplive fail, abnormal_number = 1, ret = -1[1751197537]
+13:19:31.020  192.168.7.225 gpio result keeplive fail, abnormal_number = 1, ret = -1
+13:19:32.042  tcp recv data fail, ret = 0, error = 0
+13:19:32.045  192.168.7.225 config keeplive fail, abnormal_number = 2, ret = -1(81492958)
+13:19:32.073  tcp recv data fail, ret = 0, error = 0
+13:19:32.077  192.168.7.225 rs485_1 keeplive fail, abnormal_number = 2, ret = -1[1751197537]
+13:19:32.992  192.168.7.225 reco result keeplive fail, abnormal_number = 2, ret = -1
+13:19:32.995  192.168.7.225 reco result reconnection add
+13:19:33.007  192.168.7.225 reco result pro thread exit[81492958]
+13:19:33.038  192.168.7.225 gpio result keeplive fail, abnormal_number = 2, ret = -1
+13:19:33.040  192.168.7.225 gpio result reconnection add
+13:19:33.041  send GPIO_CMD_QUIT success:81492958
+13:19:33.043  192.168.7.225 gpio thread exit[81492958]
+13:19:33.054  send RESULT_CMD_QUIT success:81492958
+13:19:33.055  192.168.7.225 reco result thread exit[81492958]
+13:19:34.112  tcp recv data fail, ret = 0, error = 0
+13:19:34.114  192.168.7.225 config keeplive fail, abnormal_number = 3, ret = -1(81492958)
+13:19:34.122  192.168.7.225 config reconnection add
+13:19:34.124  192.168.7.225 config thread exit[81492958]
+13:19:34.143  tcp recv data fail, ret = 0, error = 0
+13:19:34.145  192.168.7.225 rs485_1 keeplive fail, abnormal_number = 3, ret = -1[1751197537]
+13:19:34.146  192.168.7.225 rs485_1 reconnection add[1751197537], 0
+13:19:34.148  send RS485_1 RS485_CMD_QUIT success:81492958
+13:19:34.149  192.168.7.225 rs485_1 thread exit[1751197537]
+13:19:34.809  192.168.7.225:9750 reco reconnection fail
+13:19:34.811  192.168.7.225:9760 gpio reconnection fail
+13:19:34.812  192.168.7.225:9110 rs485_1 reconnection fail[1751197537]
+13:19:35.816  192.168.7.225:9110 rs485_1 reconnection fail[1751197537]
+13:19:35.826  192.168.7.225:9730 config reconnection fail
+13:19:36.830  192.168.7.225:9750 reco reconnection fail
+13:19:36.832  192.168.7.225:9760 gpio reconnection fail
+13:19:36.833  192.168.7.225:9110 rs485_1 reconnection fail[1751197537]
+13:19:37.844  192.168.7.225:9110 rs485_1 reconnection fail[1751197537]
+13:19:37.848  192.168.7.225:9730 config reconnection fail
+13:19:38.853  192.168.7.225:9760 gpio reconnection fail
+13:19:38.855  192.168.7.225:9750 reco reconnection fail
+13:19:38.857  192.168.7.225:9110 rs485_1 reconnection fail[1751197537]
+13:19:39.868  192.168.7.225:9110 rs485_1 reconnection fail[1751197537]
+13:19:39.872  192.168.7.225:9730 config reconnection fail
+13:19:40.878  192.168.7.225:9760 gpio reconnection fail
+13:19:40.880  192.168.7.225:9750 reco reconnection fail
+13:19:40.882  192.168.7.225:9110 rs485_1 reconnection fail[1751197537]
+13:19:41.891  192.168.7.225:9110 rs485_1 reconnection fail[1751197537]
+13:19:41.895  192.168.7.225:9730 config reconnection fail
+13:19:42.902  192.168.7.225:9760 gpio reconnection fail
+13:19:42.906  192.168.7.225:9110 rs485_1 reconnection fail[1751197537]
+13:19:43.863  192.168.7.225: Reco result thread create success
+13:19:43.866  192.168.7.225: Reco result pro thread create success
+13:19:43.868  192.168.7.225:9750 reco reconnection success
+13:19:43.913  192.168.7.225:9110 rs485_1 reconnection fail[1751197537]
+13:19:43.934  192.168.7.225 gpio thread create success
+13:19:43.937  192.168.7.225:9760 gpio reconnection success
+13:19:44.033  download config file success
+13:19:44.035  192.168.7.225 Config result thread create success
+13:19:44.037  192.168.7.225:9730 config reconnection success
+13:19:44.948  192.168.7.225: rs485_1 result recv thread create success
+13:19:44.949  192.168.7.225:9110 rs485_1 connect success[1751197537]
+13:19:44.950  192.168.7.225:9110 rs485_1 reconnection success[1751197537]
+13:29:51.576  192.168.7.225 reco result pro thread exit[81492958]
+13:29:51.592  192.168.7.225 rs485_1 thread exit[1751197537]
+13:29:51.607  192.168.7.225 config thread exit[81492958]
+13:29:51.622  192.168.7.225 gpio thread exit[81492958]
+13:29:51.623  192.168.7.225 reco result thread exit[81492958]
+13:29:52.544  send RS485_1 RS485_CMD_QUIT success:81492958
+13:29:52.546  send RESULT_CMD_QUIT success:81492958
+13:29:52.547  send GPIO_CMD_QUIT success:81492958
+14:02:06.728  download config file success
+14:02:06.729  192.168.7.225 Config result thread create success
+14:02:06.730  192.168.7.225 config connect success
+14:02:06.749  192.168.7.225: Reco result thread create success
+14:02:06.750  192.168.7.225: Reco result pro thread create success
+14:02:06.751  192.168.7.225 reco result connect success
+14:02:06.765  192.168.7.225 gpio thread create success
+14:02:06.766  192.168.7.225 gpio connect success
+14:02:06.782  192.168.7.225: rs485_1 result recv thread create success
+14:02:06.783  192.168.7.225:9110 rs485_1 connect success[774008446]
+14:02:17.495  192.168.7.225 reco result pro thread exit[631263694]
+14:02:17.511  192.168.7.225 rs485_1 thread exit[774008446]
+14:02:17.511  192.168.7.225 config thread exit[631263694]
+14:02:17.542  192.168.7.225 gpio thread exit[631263694]
+14:02:17.558  192.168.7.225 reco result thread exit[631263694]
+14:02:17.622  send RS485_1 RS485_CMD_QUIT success:631263694
+14:02:17.622  send RESULT_CMD_QUIT success:631263694
+14:02:17.623  send GPIO_CMD_QUIT success:631263694
+14:02:40.019  download config file success
+14:02:40.019  192.168.7.225 Config result thread create success
+14:02:40.019  192.168.7.225 config connect success
+14:02:40.040  192.168.7.225: Reco result thread create success
+14:02:40.041  192.168.7.225: Reco result pro thread create success
+14:02:40.042  192.168.7.225 reco result connect success
+14:02:40.047  192.168.7.225 gpio thread create success
+14:02:40.048  192.168.7.225 gpio connect success
+14:02:40.072  192.168.7.225: rs485_1 result recv thread create success
+14:02:40.073  192.168.7.225:9110 rs485_1 connect success[753929320]
+14:03:39.284  download config file success
+14:03:39.285  192.168.7.225 Config result thread create success
+14:03:39.286  192.168.7.225 config connect success
+14:03:39.293  192.168.7.225: Reco result thread create success
+14:03:39.294  192.168.7.225 reco result connect success
+14:03:39.296  192.168.7.225: Reco result pro thread create success
+14:03:39.311  192.168.7.225 gpio thread create success
+14:03:39.313  192.168.7.225 gpio connect success
+14:03:39.322  192.168.7.225: rs485_1 result recv thread create success
+14:03:39.323  192.168.7.225:9110 rs485_1 connect success[131732542]
+14:04:39.092  download config file success
+14:04:39.092  192.168.7.225 Config result thread create success
+14:04:39.094  192.168.7.225 config connect success
+14:04:39.120  192.168.7.225: Reco result thread create success
+14:04:39.122  192.168.7.225: Reco result pro thread create success
+14:04:39.124  192.168.7.225 reco result connect success
+14:04:39.129  192.168.7.225 gpio thread create success
+14:04:39.131  192.168.7.225 gpio connect success
+14:04:39.151  192.168.7.225: rs485_1 result recv thread create success
+14:04:39.152  192.168.7.225:9110 rs485_1 connect success[486293014]
+14:06:10.927  download config file success
+14:06:10.928  192.168.7.225 Config result thread create success
+14:06:10.928  192.168.7.225 config connect success
+14:06:10.935  192.168.7.225: Reco result thread create success
+14:06:10.936  192.168.7.225 reco result connect success
+14:06:10.936  192.168.7.225: Reco result pro thread create success
+14:06:10.945  192.168.7.225 gpio thread create success
+14:06:10.946  192.168.7.225 gpio connect success
+14:06:10.958  192.168.7.225: rs485_1 result recv thread create success
+14:06:10.959  192.168.7.225:9110 rs485_1 connect success[820774359]
+14:08:16.620  download config file success
+14:08:16.621  192.168.7.225 Config result thread create success
+14:08:16.622  192.168.7.225 config connect success
+14:08:16.641  192.168.7.225: Reco result thread create success
+14:08:16.642  192.168.7.225: Reco result pro thread create success
+14:08:16.644  192.168.7.225 reco result connect success
+14:08:16.673  192.168.7.225 gpio thread create success
+14:08:16.674  192.168.7.225 gpio connect success
+14:08:16.690  192.168.7.225: rs485_1 result recv thread create success
+14:08:16.691  192.168.7.225:9110 rs485_1 connect success[158419328]
+14:18:31.207  download config file success
+14:18:31.209  192.168.7.225 Config result thread create success
+14:18:31.210  192.168.7.225 config connect success
+14:18:31.234  192.168.7.225: Reco result thread create success
+14:18:31.235  192.168.7.225: Reco result pro thread create success
+14:18:31.236  192.168.7.225 reco result connect success
+14:18:31.241  192.168.7.225 gpio thread create success
+14:18:31.242  192.168.7.225 gpio connect success
+14:18:31.254  192.168.7.225: rs485_1 result recv thread create success
+14:18:31.255  192.168.7.225:9110 rs485_1 connect success[1737178075]
+14:24:22.950  download config file success
+14:24:22.950  192.168.7.225 Config result thread create success
+14:24:22.951  192.168.7.225 config connect success
+14:24:22.958  192.168.7.225: Reco result thread create success
+14:24:22.958  192.168.7.225: Reco result pro thread create success
+14:24:22.960  192.168.7.225 reco result connect success
+14:24:22.976  192.168.7.225 gpio thread create success
+14:24:22.977  192.168.7.225 gpio connect success
+14:24:22.985  192.168.7.225: rs485_1 result recv thread create success
+14:24:22.985  192.168.7.225:9110 rs485_1 connect success[1523022569]
+14:25:37.547  download config file success
+14:25:37.548  192.168.7.225 Config result thread create success
+14:25:37.548  192.168.7.225 config connect success
+14:25:37.555  192.168.7.225: Reco result thread create success
+14:25:37.555  192.168.7.225: Reco result pro thread create success
+14:25:37.557  192.168.7.225 reco result connect success
+14:25:37.584  192.168.7.225 gpio thread create success
+14:25:37.584  192.168.7.225 gpio connect success
+14:25:37.600  192.168.7.225: rs485_1 result recv thread create success
+14:25:37.600  192.168.7.225:9110 rs485_1 connect success[1282147510]
+14:26:48.261  download config file success
+14:26:48.262  192.168.7.225 Config result thread create success
+14:26:48.263  192.168.7.225 config connect success
+14:26:48.289  192.168.7.225: Reco result thread create success
+14:26:48.290  192.168.7.225: Reco result pro thread create success
+14:26:48.291  192.168.7.225 reco result connect success
+14:26:48.305  192.168.7.225 gpio thread create success
+14:26:48.306  192.168.7.225 gpio connect success
+14:26:48.322  192.168.7.225: rs485_1 result recv thread create success
+14:26:48.323  192.168.7.225:9110 rs485_1 connect success[653268613]
+14:31:18.811  download config file success
+14:31:18.812  192.168.7.225 Config result thread create success
+14:31:18.812  192.168.7.225 config connect success
+14:31:18.819  192.168.7.225: Reco result thread create success
+14:31:18.820  192.168.7.225: Reco result pro thread create success
+14:31:18.821  192.168.7.225 reco result connect success
+14:31:18.830  192.168.7.225 gpio thread create success
+14:31:18.831  192.168.7.225 gpio connect success
+14:31:18.842  192.168.7.225: rs485_1 result recv thread create success
+14:31:18.843  192.168.7.225:9110 rs485_1 connect success[1074674124]
+14:52:00.246  download config file success
+14:52:00.248  192.168.7.225 Config result thread create success
+14:52:00.249  192.168.7.225 config connect success
+14:52:00.254  192.168.7.225: Reco result thread create success
+14:52:00.256  192.168.7.225: Reco result pro thread create success
+14:52:00.260  192.168.7.225 reco result connect success
+14:52:00.266  192.168.7.225 gpio thread create success
+14:52:00.268  192.168.7.225 gpio connect success
+14:52:00.290  192.168.7.225: rs485_1 result recv thread create success
+14:52:00.291  192.168.7.225:9110 rs485_1 connect success[124478584]
+15:13:35.880  download config file success
+15:13:35.882  192.168.7.225 Config result thread create success
+15:13:35.883  192.168.7.225 config connect success
+15:13:35.888  192.168.7.225: Reco result thread create success
+15:13:35.889  192.168.7.225: Reco result pro thread create success
+15:13:35.890  192.168.7.225 reco result connect success
+15:13:35.907  192.168.7.225 gpio thread create success
+15:13:35.908  192.168.7.225 gpio connect success
+15:13:35.915  192.168.7.225: rs485_1 result recv thread create success
+15:13:35.916  192.168.7.225:9110 rs485_1 connect success[1288257791]
+15:25:25.861  download config file success
+15:25:25.862  192.168.7.225 Config result thread create success
+15:25:25.862  192.168.7.225 config connect success
+15:25:25.883  192.168.7.225: Reco result thread create success
+15:25:25.884  192.168.7.225: Reco result pro thread create success
+15:25:25.885  192.168.7.225 reco result connect success
+15:25:25.899  192.168.7.225 gpio thread create success
+15:25:25.900  192.168.7.225 gpio connect success
+15:25:25.916  192.168.7.225: rs485_1 result recv thread create success
+15:25:25.916  192.168.7.225:9110 rs485_1 connect success[1442018072]
+15:26:50.933  download config file success
+15:26:50.934  192.168.7.225 Config result thread create success
+15:26:50.936  192.168.7.225 config connect success
+15:26:50.940  192.168.7.225: Reco result thread create success
+15:26:50.942  192.168.7.225: Reco result pro thread create success
+15:26:50.945  192.168.7.225 reco result connect success
+15:26:50.969  192.168.7.225 gpio thread create success
+15:26:50.971  192.168.7.225 gpio connect success
+15:26:50.986  192.168.7.225: rs485_1 result recv thread create success
+15:26:50.987  192.168.7.225:9110 rs485_1 connect success[23734493]
+15:29:20.674  download config file success
+15:29:20.675  192.168.7.225 Config result thread create success
+15:29:20.676  192.168.7.225 config connect success
+15:29:20.696  192.168.7.225: Reco result thread create success
+15:29:20.697  192.168.7.225: Reco result pro thread create success
+15:29:20.698  192.168.7.225 reco result connect success
+15:29:20.712  192.168.7.225 gpio thread create success
+15:29:20.712  192.168.7.225 gpio connect success
+15:29:20.728  192.168.7.225: rs485_1 result recv thread create success
+15:29:20.728  192.168.7.225:9110 rs485_1 connect success[1689468022]
+15:29:30.387  socket_tcp_connect_ex success
+15:29:30.433  File open success
+15:29:30.462  File head read success
+15:29:30.464  Upgrage version send success
+15:29:30.506  Upgrage file head info response recv success
+15:29:30.529  Upgrage file version check ok
+15:29:30.534  Upgrage file data send starting ...
+15:29:34.896  Upgrage file data send complete
+15:29:34.943  Camera is decompressing the upgrage file
+15:29:35.901  Camera is decompressing the upgrage file
+15:29:36.901  Camera is decompressing the upgrage file
+15:29:37.902  Camera is decompressing the upgrage file
+15:29:38.902  Camera is decompressing the upgrage file
+15:29:39.905  Camera is decompressing the upgrage file
+15:29:40.903  Camera is decompressing the upgrage file
+15:29:41.904  Camera is decompressing the upgrage file
+15:29:42.905  Camera is decompressing the upgrage file
+15:29:43.906  Camera is decompressing the upgrage file
+15:29:44.906  Camera is decompressing the upgrage file
+15:29:46.103  Camera is decompressing the upgrage file
+15:29:47.103  Camera is decompressing the upgrage file
+15:29:48.104  Camera is decompressing the upgrage file
+15:29:49.104  Camera is decompressing the upgrage file
+15:29:50.105  Camera is decompressing the upgrage file
+15:29:51.106  Camera is decompressing the upgrage file
+15:29:52.106  Camera is decompressing the upgrage file
+15:29:53.107  Camera is decompressing the upgrage file
+15:29:54.107  Camera is decompressing the upgrage file
+15:29:55.108  Camera is decompressing the upgrage file
+15:29:56.110  Camera is decompressing the upgrage file
+15:29:57.110  Camera is decompressing the upgrage file
+15:29:58.111  Camera is decompressing the upgrage file
+15:29:59.111  Camera is decompressing the upgrage file
+15:30:00.112  Camera is decompressing the upgrage file
+15:30:01.113  Camera is decompressing the upgrage file
+15:30:02.113  Camera is decompressing the upgrage file
+15:30:03.114  Camera is decompressing the upgrage file
+15:30:04.115  Camera is decompressing the upgrage file
+15:30:05.115  Camera is decompressing the upgrage file
+15:30:06.116  Camera is decompressing the upgrage file
+15:30:07.116  Camera is decompressing the upgrage file
+15:30:08.116  Camera is decompressing the upgrage file
+15:30:09.117  Camera is decompressing the upgrage file
+15:30:10.117  Camera is decompressing the upgrage file
+15:30:11.118  Camera is decompressing the upgrage file
+15:30:12.120  Camera is decompressing the upgrage file
+15:30:13.128  Camera is decompressing the upgrage file
+15:30:14.128  Camera is decompressing the upgrage file
+15:30:15.129  Camera is decompressing the upgrage file
+15:30:15.964  Camera unzip upgrage file complete
+15:30:17.139  Camera ready to restart
+15:30:26.165  tcp recv data fail, ret = 0, error = 0
+15:30:26.166  tcp recv data fail, ret = 0, error = 0
+15:30:26.167  192.168.7.225 config keeplive fail, abnormal_number = 1, ret = -1(1751399509)
+15:30:26.167  192.168.7.225 rs485_1 keeplive fail, abnormal_number = 1, ret = -1[1689468022]
+15:30:26.197  192.168.7.225 gpio result keeplive fail, abnormal_number = 1, ret = -1
+15:30:28.078  192.168.7.225 reco result keeplive fail, abnormal_number = 2, ret = -1
+15:30:28.079  192.168.7.225 reco result reconnection add
+15:30:28.094  192.168.7.225 reco result pro thread exit[1751399509]
+15:30:28.142  send RESULT_CMD_QUIT success:1751399509
+15:30:28.143  192.168.7.225 reco result thread exit[1751399509]
+15:30:28.222  192.168.7.225 gpio result keeplive fail, abnormal_number = 2, ret = -1
+15:30:28.223  192.168.7.225 gpio result reconnection add
+15:30:28.224  send GPIO_CMD_QUIT success:1751399509
+15:30:28.224  192.168.7.225 gpio thread exit[1751399509]
+15:30:28.238  tcp recv data fail, ret = 0, error = 0
+15:30:28.239  tcp recv data fail, ret = 0, error = 0
+15:30:28.239  192.168.7.225 config keeplive fail, abnormal_number = 2, ret = -1(1751399509)
+15:30:28.240  192.168.7.225 rs485_1 keeplive fail, abnormal_number = 2, ret = -1[1689468022]
+15:30:30.023  192.168.7.225:9760 gpio reconnection fail
+15:30:30.024  192.168.7.225:9750 reco reconnection fail
+15:30:30.309  tcp recv data fail, ret = 0, error = 0
+15:30:30.310  tcp recv data fail, ret = 0, error = 0
+15:30:30.311  192.168.7.225 config keeplive fail, abnormal_number = 3, ret = -1(1751399509)
+15:30:30.311  192.168.7.225 rs485_1 keeplive fail, abnormal_number = 3, ret = -1[1689468022]
+15:30:30.312  192.168.7.225 rs485_1 reconnection add[1689468022], 0
+15:30:30.313  send RS485_1 RS485_CMD_QUIT success:1751399509
+15:30:30.314  192.168.7.225 rs485_1 thread exit[1689468022]
+15:30:30.326  192.168.7.225 config reconnection add
+15:30:30.327  192.168.7.225 config thread exit[1751399509]
+15:30:31.033  192.168.7.225:9110 rs485_1 reconnection fail[1689468022]
+15:30:32.042  192.168.7.225:9760 gpio reconnection fail
+15:30:32.042  192.168.7.225:9110 rs485_1 reconnection fail[1689468022]
+15:30:32.043  192.168.7.225:9750 reco reconnection fail
+15:30:32.046  192.168.7.225:9730 config reconnection fail
+15:30:33.056  192.168.7.225:9110 rs485_1 reconnection fail[1689468022]
+15:30:34.064  192.168.7.225:9760 gpio reconnection fail
+15:30:34.065  192.168.7.225:9750 reco reconnection fail
+15:30:34.066  192.168.7.225:9110 rs485_1 reconnection fail[1689468022]
+15:30:34.068  192.168.7.225:9730 config reconnection fail
+15:30:35.077  192.168.7.225:9110 rs485_1 reconnection fail[1689468022]
+15:30:36.088  192.168.7.225:9760 gpio reconnection fail
+15:30:36.090  192.168.7.225:9750 reco reconnection fail
+15:30:36.092  192.168.7.225:9110 rs485_1 reconnection fail[1689468022]
+15:30:36.097  192.168.7.225:9730 config reconnection fail
+15:30:37.099  192.168.7.225:9110 rs485_1 reconnection fail[1689468022]
+15:30:38.111  192.168.7.225:9110 rs485_1 reconnection fail[1689468022]
+15:30:38.112  192.168.7.225:9750 reco reconnection fail
+15:30:38.113  192.168.7.225:9760 gpio reconnection fail
+15:30:38.115  192.168.7.225:9730 config reconnection fail
+15:30:39.126  192.168.7.225:9110 rs485_1 reconnection fail[1689468022]
+15:30:40.136  192.168.7.225:9750 reco reconnection fail
+15:30:40.137  192.168.7.225:9760 gpio reconnection fail
+15:30:40.138  192.168.7.225:9110 rs485_1 reconnection fail[1689468022]
+15:30:40.141  192.168.7.225:9730 config reconnection fail
+15:30:41.149  192.168.7.225:9110 rs485_1 reconnection fail[1689468022]
+15:30:42.162  192.168.7.225:9110 rs485_1 reconnection fail[1689468022]
+15:30:42.163  192.168.7.225:9760 gpio reconnection fail
+15:30:42.166  192.168.7.225:9730 config reconnection fail
+15:30:42.689  192.168.7.225: Reco result thread create success
+15:30:42.690  192.168.7.225: Reco result pro thread create success
+15:30:42.692  192.168.7.225:9750 reco reconnection success
+15:30:43.175  192.168.7.225:9110 rs485_1 reconnection fail[1689468022]
+15:30:43.185  download config file success
+15:30:43.186  192.168.7.225 Config result thread create success
+15:30:43.186  192.168.7.225:9730 config reconnection success
+15:30:43.194  192.168.7.225 gpio thread create success
+15:30:43.195  192.168.7.225:9760 gpio reconnection success
+15:30:44.198  192.168.7.225: rs485_1 result recv thread create success
+15:30:44.198  192.168.7.225:9110 rs485_1 connect success[1689468022]
+15:30:44.199  192.168.7.225:9110 rs485_1 reconnection success[1689468022]
+15:37:54.833  download config file success
+15:37:54.834  192.168.7.225 Config result thread create success
+15:37:54.835  192.168.7.225 config connect success
+15:37:54.861  192.168.7.225: Reco result thread create success
+15:37:54.862  192.168.7.225: Reco result pro thread create success
+15:37:54.863  192.168.7.225 reco result connect success
+15:37:54.878  192.168.7.225 gpio thread create success
+15:37:54.879  192.168.7.225 gpio connect success
+15:37:54.894  192.168.7.225: rs485_1 result recv thread create success
+15:37:54.894  192.168.7.225:9110 rs485_1 connect success[10254102]
+15:41:00.003  download config file success
+15:41:00.004  192.168.7.225 Config result thread create success
+15:41:00.005  192.168.7.225 config connect success
+15:41:00.011  192.168.7.225: Reco result thread create success
+15:41:00.012  192.168.7.225 reco result connect success
+15:41:00.015  192.168.7.225: Reco result pro thread create success
+15:41:00.039  192.168.7.225 gpio thread create success
+15:41:00.040  192.168.7.225 gpio connect success
+15:41:00.055  192.168.7.225: rs485_1 result recv thread create success
+15:41:00.056  192.168.7.225:9110 rs485_1 connect success[1849910423]
+15:41:07.784  set SDK_CMD_VIDEO success:1901027461
+15:41:07.803  download config file success
+15:41:11.381  set SDK_CMD_VIDEO success:1901027461
+15:41:11.399  download config file success
+15:50:08.307  download config file success
+15:50:08.307  192.168.7.225 Config result thread create success
+15:50:08.307  192.168.7.225 config connect success
+15:50:08.315  192.168.7.225: Reco result thread create success
+15:50:08.315  192.168.7.225: Reco result pro thread create success
+15:50:08.318  192.168.7.225 reco result connect success
+15:50:08.333  192.168.7.225 gpio thread create success
+15:50:08.334  192.168.7.225 gpio connect success
+15:50:08.342  192.168.7.225: rs485_1 result recv thread create success
+15:50:08.342  192.168.7.225:9110 rs485_1 connect success[344553758]
+15:50:25.528  parsing devinfo success:2018536144
+15:50:33.440  send RS485_1 data success:344553758
+15:50:42.211  set SDK_CMD_GPIO success:2018536144
+15:54:13.804  download config file success
+15:54:13.805  192.168.7.225 Config result thread create success
+15:54:13.806  192.168.7.225 config connect success
+15:54:13.826  192.168.7.225: Reco result thread create success
+15:54:13.826  192.168.7.225: Reco result pro thread create success
+15:54:13.827  192.168.7.225 reco result connect success
+15:54:13.832  192.168.7.225 gpio thread create success
+15:54:13.833  192.168.7.225 gpio connect success
+15:54:13.859  192.168.7.225: rs485_1 result recv thread create success
+15:54:13.859  192.168.7.225:9110 rs485_1 connect success[1562078838]
+15:54:19.876  set SDK_CMD_GPIO success:2070944096
+15:54:22.027  set SDK_CMD_GPIO success:2070944096
+15:54:25.187  set SDK_CMD_GPIO success:2070944096
+15:54:27.676  set SDK_CMD_GPIO success:2070944096
+15:54:29.772  set SDK_CMD_GPIO success:2070944096
+15:54:42.553  set SDK_CMD_TRIG success:2070944096
+15:54:43.225  ÎÞÅÆ³µ
+15:54:45.256  set SDK_CMD_TRIG success:2070944096
+15:54:46.028  ³µÅƺÅÂë: ¼½F579R4
+16:40:26.448  download config file success
+16:40:26.468  192.168.7.225 Config result thread create success
+16:40:26.469  192.168.7.225 config connect success
+16:40:26.473  192.168.7.225: Reco result thread create success
+16:40:26.475  192.168.7.225: Reco result pro thread create success
+16:40:26.478  192.168.7.225 reco result connect success
+16:40:26.499  192.168.7.225 gpio thread create success
+16:40:26.500  192.168.7.225 gpio connect success
+16:40:26.515  192.168.7.225: rs485_1 result recv thread create success
+16:40:26.516  192.168.7.225:9110 rs485_1 connect success[1046420743]
+16:40:35.055  set SDK_CMD_VIDEO success:516908147
+16:40:35.068  download config file success
+16:40:37.981  192.168.7.225 reco result pro thread exit[516908147]
+16:40:37.997  192.168.7.225 rs485_1 thread exit[1046420743]
+16:40:38.013  192.168.7.225 config thread exit[516908147]
+16:40:38.029  192.168.7.225 gpio thread exit[516908147]
+16:40:38.029  192.168.7.225 reco result thread exit[516908147]
+16:40:38.362  send RS485_1 RS485_CMD_QUIT success:516908147
+16:40:38.363  send RESULT_CMD_QUIT success:516908147
+16:40:38.365  send GPIO_CMD_QUIT success:516908147
+16:40:47.713  download config file success
+16:40:47.714  192.168.7.225 Config result thread create success
+16:40:47.715  192.168.7.225 config connect success
+16:40:47.720  192.168.7.225: Reco result thread create success
+16:40:47.720  192.168.7.225: Reco result pro thread create success
+16:40:47.722  192.168.7.225 reco result connect success
+16:40:47.749  192.168.7.225 gpio thread create success
+16:40:47.750  192.168.7.225 gpio connect success
+16:40:47.765  192.168.7.225: rs485_1 result recv thread create success
+16:40:47.766  192.168.7.225:9110 rs485_1 connect success[2009748216]
+16:40:54.067  192.168.7.225 reco result pro thread exit[521426471]
+16:40:54.098  192.168.7.225 rs485_1 thread exit[2009748216]
+16:40:54.113  192.168.7.225 config thread exit[521426471]
+16:40:54.113  192.168.7.225 gpio thread exit[521426471]
+16:40:54.129  192.168.7.225 reco result thread exit[521426471]
+16:40:54.584  send RS485_1 RS485_CMD_QUIT success:521426471
+16:40:54.584  send RESULT_CMD_QUIT success:521426471
+16:40:54.584  send GPIO_CMD_QUIT success:521426471
+16:41:02.547  download config file success
+16:41:02.547  192.168.7.225 Config result thread create success
+16:41:02.548  192.168.7.225 config connect success
+16:41:02.574  192.168.7.225: Reco result thread create success
+16:41:02.575  192.168.7.225 reco result connect success
+16:41:02.576  192.168.7.225: Reco result pro thread create success
+16:41:02.581  192.168.7.225 gpio thread create success
+16:41:02.582  192.168.7.225 gpio connect success
+16:41:02.594  192.168.7.225: rs485_1 result recv thread create success
+16:41:02.594  192.168.7.225:9110 rs485_1 connect success[243619054]
+16:41:17.264  ³µÅƺÅÂë: ´¨F579R4
+16:41:20.092  set SDK_CMD_TRIG success:524635121
+16:41:20.796  ÎÞÅÆ³µ
+16:41:22.270  set SDK_CMD_TRIG success:524635121
+16:41:22.960  ³µÅƺÅÂë: ¼½F579R4
+16:41:23.100  set SDK_CMD_TRIG success:524635121
+16:41:23.703  ÎÞÅÆ³µ

+ 217 - 0
DLL/windows/32bit/KHT_Log/192.168.7.225/2022-04-21.txt

@@ -0,0 +1,217 @@
+10:19:07.442  download config file success
+10:19:07.443  192.168.7.225 Config result thread create success
+10:19:07.446  192.168.7.225 config connect success
+10:19:07.464  192.168.7.225: Reco result thread create success
+10:19:07.465  192.168.7.225: Reco result pro thread create success
+10:19:07.467  192.168.7.225 reco result connect success
+10:19:07.480  192.168.7.225 gpio thread create success
+10:19:07.481  192.168.7.225 gpio connect success
+10:19:07.496  192.168.7.225: rs485_1 result recv thread create success
+10:19:07.497  192.168.7.225:9110 rs485_1 connect success[665981119]
+10:19:13.491  set SDK_CMD_VIDEO success:1226330821
+10:19:13.502  download config file success
+10:19:25.318  set SDK_CMD_TRIG success:1226330821
+10:19:26.285  łľĹĆşĹÂë: žŠAF0236
+10:21:24.066  set SDK_CMD_VIDEO success:1226330821
+10:21:24.087  download config file success
+10:21:26.928  192.168.7.225 config thread exit[1226330821]
+10:21:26.929  192.168.7.225 reco result pro thread exit[1226330821]
+10:21:26.944  192.168.7.225 rs485_1 thread exit[665981119]
+10:21:26.960  192.168.7.225 gpio thread exit[1226330821]
+10:21:26.960  192.168.7.225 reco result thread exit[1226330821]
+10:21:27.327  send RS485_1 RS485_CMD_QUIT success:1226330821
+10:21:27.328  send RESULT_CMD_QUIT success:1226330821
+10:21:27.329  send GPIO_CMD_QUIT success:1226330821
+10:21:35.353  download config file success
+10:21:35.354  192.168.7.225 Config result thread create success
+10:21:35.354  192.168.7.225 config connect success
+10:21:35.375  192.168.7.225: Reco result thread create success
+10:21:35.376  192.168.7.225: Reco result pro thread create success
+10:21:35.378  192.168.7.225 reco result connect success
+10:21:35.406  192.168.7.225 gpio thread create success
+10:21:35.407  192.168.7.225 gpio connect success
+10:21:35.422  192.168.7.225: rs485_1 result recv thread create success
+10:21:35.422  192.168.7.225:9110 rs485_1 connect success[2137811033]
+10:22:09.468  192.168.7.225 gpio thread exit[1257969841]
+10:22:09.469  192.168.7.225 reco result pro thread exit[1257969841]
+10:22:09.469  192.168.7.225 config thread exit[1257969841]
+10:22:09.484  192.168.7.225 rs485_1 thread exit[2137811033]
+10:22:09.484  192.168.7.225 reco result thread exit[1257969841]
+10:22:09.485  send RS485_1 RS485_CMD_QUIT success:1257969841
+10:22:09.486  send RESULT_CMD_QUIT success:1257969841
+10:22:09.487  send GPIO_CMD_QUIT success:1257969841
+10:38:26.823  download config file success
+10:38:26.824  192.168.7.225 Config result thread create success
+10:38:26.824  192.168.7.225 config connect success
+10:38:26.831  192.168.7.225: Reco result thread create success
+10:38:26.832  192.168.7.225 reco result connect success
+10:38:26.833  192.168.7.225: Reco result pro thread create success
+10:38:26.841  192.168.7.225 gpio thread create success
+10:38:26.842  192.168.7.225 gpio connect success
+10:38:26.854  192.168.7.225: rs485_1 result recv thread create success
+10:38:26.855  192.168.7.225:9110 rs485_1 connect success[351346595]
+10:45:37.125  download config file success
+10:45:37.126  192.168.7.225 Config result thread create success
+10:45:37.127  192.168.7.225 config connect success
+10:45:37.152  192.168.7.225: Reco result thread create success
+10:45:37.154  192.168.7.225 reco result connect success
+10:45:37.157  192.168.7.225: Reco result pro thread create success
+10:45:37.184  192.168.7.225 gpio thread create success
+10:45:37.186  192.168.7.225 gpio connect success
+10:45:37.200  192.168.7.225: rs485_1 result recv thread create success
+10:45:37.201  192.168.7.225:9110 rs485_1 connect success[1261109884]
+11:41:50.414  download config file success
+11:41:50.417  192.168.7.225 Config result thread create success
+11:41:50.417  192.168.7.225 config connect success
+11:41:50.421  192.168.7.225: Reco result thread create success
+11:41:50.421  192.168.7.225: Reco result pro thread create success
+11:41:50.423  192.168.7.225 reco result connect success
+11:41:50.451  192.168.7.225 gpio thread create success
+11:41:50.451  192.168.7.225 gpio connect success
+11:41:50.466  192.168.7.225: rs485_1 result recv thread create success
+11:41:50.466  192.168.7.225:9110 rs485_1 connect success[2136825201]
+11:41:56.474  set SDK_CMD_TRIG success:140987162
+11:41:57.008  ÎŢĹĆłľ
+11:44:01.109  set SDK_CMD_VIDEO success:140987162
+11:44:01.132  download config file success
+11:44:02.997  192.168.7.225 gpio thread exit[140987162]
+11:44:02.997  192.168.7.225 reco result pro thread exit[140987162]
+11:44:03.029  192.168.7.225 rs485_1 thread exit[2136825201]
+11:44:03.045  192.168.7.225 config thread exit[140987162]
+11:44:03.061  192.168.7.225 reco result thread exit[140987162]
+11:44:03.347  send RS485_1 RS485_CMD_QUIT success:140987162
+11:44:03.347  send RESULT_CMD_QUIT success:140987162
+11:44:03.348  send GPIO_CMD_QUIT success:140987162
+11:44:11.377  download config file success
+11:44:11.377  192.168.7.225 Config result thread create success
+11:44:11.377  192.168.7.225 config connect success
+11:44:11.396  192.168.7.225: Reco result thread create success
+11:44:11.397  192.168.7.225: Reco result pro thread create success
+11:44:11.400  192.168.7.225 reco result connect success
+11:44:11.404  192.168.7.225 gpio thread create success
+11:44:11.405  192.168.7.225 gpio connect success
+11:44:11.429  192.168.7.225: rs485_1 result recv thread create success
+11:44:11.429  192.168.7.225:9110 rs485_1 connect success[1855791888]
+11:46:16.916  download config file success
+11:46:16.916  192.168.7.225 Config result thread create success
+11:46:16.917  192.168.7.225 config connect success
+11:46:16.944  192.168.7.225: Reco result thread create success
+11:46:16.944  192.168.7.225: Reco result pro thread create success
+11:46:16.946  192.168.7.225 reco result connect success
+11:46:16.951  192.168.7.225 gpio thread create success
+11:46:16.952  192.168.7.225 gpio connect success
+11:46:16.975  192.168.7.225: rs485_1 result recv thread create success
+11:46:16.975  192.168.7.225:9110 rs485_1 connect success[22743226]
+11:46:33.427  192.168.7.225 reco result pro thread exit[197946206]
+11:46:33.428  192.168.7.225 config thread exit[197946206]
+11:46:33.443  192.168.7.225 gpio thread exit[197946206]
+11:46:33.459  192.168.7.225 reco result thread exit[197946206]
+11:46:33.459  192.168.7.225 rs485_1 thread exit[22743226]
+11:46:33.857  send RS485_1 RS485_CMD_QUIT success:197946206
+11:46:33.858  send RESULT_CMD_QUIT success:197946206
+11:46:33.858  send GPIO_CMD_QUIT success:197946206
+11:46:45.400  download config file success
+11:46:45.402  192.168.7.225 Config result thread create success
+11:46:45.403  192.168.7.225 config connect success
+11:46:45.408  192.168.7.225: Reco result thread create success
+11:46:45.409  192.168.7.225: Reco result pro thread create success
+11:46:45.413  192.168.7.225 reco result connect success
+11:46:45.443  192.168.7.225 gpio thread create success
+11:46:45.446  192.168.7.225 gpio connect success
+11:46:45.453  192.168.7.225: rs485_1 result recv thread create success
+11:46:45.454  192.168.7.225:9110 rs485_1 connect success[1762143910]
+11:46:50.698  parsing devinfo success:204090614
+11:46:52.902  set SDK_CMD_GPIO success:204090614
+11:46:53.988  set SDK_CMD_GPIO success:204090614
+11:46:55.818  set SDK_CMD_GPIO success:204090614
+11:46:57.762  send RS485_1 data success:1762143910
+11:48:31.350  download config file success
+11:48:31.350  192.168.7.225 Config result thread create success
+11:48:31.350  192.168.7.225 config connect success
+11:48:31.359  192.168.7.225: Reco result thread create success
+11:48:31.359  192.168.7.225: Reco result pro thread create success
+11:48:31.361  192.168.7.225 reco result connect success
+11:48:31.387  192.168.7.225 gpio thread create success
+11:48:31.388  192.168.7.225 gpio connect success
+11:48:31.403  192.168.7.225: rs485_1 result recv thread create success
+11:48:31.404  192.168.7.225:9110 rs485_1 connect success[1307187805]
+11:49:12.137  tcp recv data fail, ret = -2, error = 0
+11:49:12.137  192.168.7.225 config keeplive fail, abnormal_number = 1, ret = -9(226824057)
+11:49:12.143  192.168.7.225 config reconnection add
+11:49:12.144  192.168.7.225 config thread exit[226824057]
+11:49:12.476  download config file success
+11:49:12.477  192.168.7.225 Config result thread create success
+11:49:12.478  192.168.7.225:9730 config reconnection success
+13:00:32.539  tcp recv data fail, ret = 0, error = 0
+13:00:32.541  192.168.7.225 config keeplive fail, abnormal_number = 1, ret = -1(226824057)
+13:00:32.555  tcp recv data fail, ret = 0, error = 0
+13:00:32.555  192.168.7.225 rs485_1 keeplive fail, abnormal_number = 1, ret = -1[1307187805]
+13:00:32.587  192.168.7.225 gpio result keeplive fail, abnormal_number = 1, ret = -1
+13:00:33.512  tcp recv data fail, ret = -2, error = 10054
+13:00:33.513  192.168.7.225 rs485_1 keeplive fail, abnormal_number = 2, ret = -9[1307187805]
+13:00:33.513  192.168.7.225 rs485_1 reconnection add[1307187805], 0
+13:00:33.513  send RS485_1 RS485_CMD_QUIT success:226824057
+13:00:33.514  192.168.7.225 rs485_1 thread exit[1307187805]
+13:00:33.636  tcp recv data fail, ret = -2, error = 10054
+13:00:33.637  192.168.7.225 config keeplive fail, abnormal_number = 2, ret = -9(226824057)
+13:00:33.640  192.168.7.225 config reconnection add
+13:00:33.641  192.168.7.225 config thread exit[226824057]
+13:00:34.444  192.168.7.225:9110 rs485_1 reconnection fail[1307187805]
+13:00:34.453  download config file success
+13:00:34.454  192.168.7.225 Config result thread create success
+13:00:34.454  192.168.7.225:9730 config reconnection success
+13:00:34.648  192.168.7.225 reco result keeplive fail, abnormal_number = 2, ret = -1
+13:00:34.648  192.168.7.225 gpio result keeplive fail, abnormal_number = 2, ret = -1
+13:00:34.649  192.168.7.225 reco result reconnection add
+13:00:34.649  192.168.7.225 gpio result reconnection add
+13:00:34.650  send GPIO_CMD_QUIT success:226824057
+13:00:34.650  192.168.7.225 gpio thread exit[226824057]
+13:00:34.664  192.168.7.225 reco result pro thread exit[226824057]
+13:00:34.712  send RESULT_CMD_QUIT success:226824057
+13:00:34.712  192.168.7.225 reco result thread exit[226824057]
+13:00:35.175  192.168.7.225 gpio thread create success
+13:00:35.176  192.168.7.225:9760 gpio reconnection success
+13:00:35.398  192.168.7.225: Reco result thread create success
+13:00:35.399  192.168.7.225: Reco result pro thread create success
+13:00:35.400  192.168.7.225:9750 reco reconnection success
+13:00:35.803  192.168.7.225: rs485_1 result recv thread create success
+13:00:35.803  192.168.7.225:9110 rs485_1 connect success[1307187805]
+13:00:35.804  192.168.7.225:9110 rs485_1 reconnection success[1307187805]
+13:05:32.224  download config file success
+13:05:32.224  192.168.7.225 Config result thread create success
+13:05:32.225  192.168.7.225 config connect success
+13:05:32.246  192.168.7.225: Reco result thread create success
+13:05:32.246  192.168.7.225 reco result connect success
+13:05:32.248  192.168.7.225: Reco result pro thread create success
+13:05:32.263  192.168.7.225 gpio thread create success
+13:05:32.264  192.168.7.225 gpio connect success
+13:05:32.270  192.168.7.225: rs485_1 result recv thread create success
+13:05:32.271  192.168.7.225:9110 rs485_1 connect success[1814713338]
+13:09:13.190  192.168.7.225 rs485_1 thread exit[1814713338]
+13:09:13.191  192.168.7.225 reco result pro thread exit[1215787163]
+13:09:13.206  192.168.7.225 gpio thread exit[1215787163]
+13:09:13.207  192.168.7.225 config thread exit[1215787163]
+13:09:13.254  192.168.7.225 reco result thread exit[1215787163]
+13:09:13.743  send RS485_1 RS485_CMD_QUIT success:1215787163
+13:09:13.744  send RESULT_CMD_QUIT success:1215787163
+13:09:13.744  send GPIO_CMD_QUIT success:1215787163
+13:10:50.033  download config file success
+13:10:50.033  192.168.7.225 Config result thread create success
+13:10:50.033  192.168.7.225 config connect success
+13:10:50.053  192.168.7.225: Reco result thread create success
+13:10:50.054  192.168.7.225: Reco result pro thread create success
+13:10:50.056  192.168.7.225 reco result connect success
+13:10:50.060  192.168.7.225 gpio thread create success
+13:10:50.061  192.168.7.225 gpio connect success
+13:10:50.085  192.168.7.225: rs485_1 result recv thread create success
+13:10:50.085  192.168.7.225:9110 rs485_1 connect success[1426667809]
+13:11:01.101  set SDK_CMD_VIDEO success:1283616295
+13:11:01.104  download config file success
+13:11:25.294  192.168.7.225 reco result thread exit[1283616295]
+13:11:25.294  192.168.7.225 reco result pro thread exit[1283616295]
+13:11:25.310  192.168.7.225 rs485_1 thread exit[1426667809]
+13:11:25.341  192.168.7.225 gpio thread exit[1283616295]
+13:11:25.341  192.168.7.225 config thread exit[1283616295]
+13:11:26.157  send RS485_1 RS485_CMD_QUIT success:1283616295
+13:11:26.157  send RESULT_CMD_QUIT success:1283616295
+13:11:26.158  send GPIO_CMD_QUIT success:1283616295

+ 36 - 0
DLL/windows/32bit/KHT_Log/192.168.7.99/2022-04-20.txt

@@ -0,0 +1,36 @@
+13:18:21.107  download config file success
+13:18:21.110  192.168.7.99 Config result thread create success
+13:18:21.117  192.168.7.99 config connect success
+13:18:21.128  192.168.7.99: Reco result thread create success
+13:18:21.132  192.168.7.99: Reco result pro thread create success
+13:18:21.135  192.168.7.99 reco result connect success
+13:18:21.141  192.168.7.99 gpio thread create success
+13:18:21.145  192.168.7.99 gpio connect success
+13:18:21.178  192.168.7.99: rs485_1 result recv thread create success
+13:18:21.180  192.168.7.99:9110 rs485_1 connect success[131623051]
+13:18:29.650  192.168.7.99 rs485_1 thread exit[131623051]
+13:18:29.655  192.168.7.99 reco result pro thread exit[949491628]
+13:18:29.665  192.168.7.99 gpio thread exit[949491628]
+13:18:29.667  192.168.7.99 config thread exit[949491628]
+13:18:29.711  192.168.7.99 reco result thread exit[949491628]
+13:18:29.718  send RS485_1 RS485_CMD_QUIT success:949491628
+13:18:29.720  send RESULT_CMD_QUIT success:949491628
+13:18:29.722  send GPIO_CMD_QUIT success:949491628
+13:18:39.251  download config file success
+13:18:39.253  192.168.7.99 Config result thread create success
+13:18:39.254  192.168.7.99 config connect success
+13:18:39.285  192.168.7.99: Reco result thread create success
+13:18:39.288  192.168.7.99 reco result connect success
+13:18:39.290  192.168.7.99: Reco result pro thread create success
+13:18:39.293  192.168.7.99 gpio thread create success
+13:18:39.295  192.168.7.99 gpio connect success
+13:18:39.305  192.168.7.99: rs485_1 result recv thread create success
+13:18:39.307  192.168.7.99:9110 rs485_1 connect success[1655773880]
+13:18:57.828  192.168.7.99 config thread exit[232139717]
+13:18:57.829  192.168.7.99 rs485_1 thread exit[1655773880]
+13:18:57.831  192.168.7.99 reco result pro thread exit[232139717]
+13:18:57.844  192.168.7.99 gpio thread exit[232139717]
+13:18:57.860  192.168.7.99 reco result thread exit[232139717]
+13:18:59.287  send RS485_1 RS485_CMD_QUIT success:232139717
+13:18:59.289  send RESULT_CMD_QUIT success:232139717
+13:18:59.290  send GPIO_CMD_QUIT success:232139717

+ 791 - 0
DLL/windows/32bit/LPRCClientSDK.h

@@ -0,0 +1,791 @@
+#ifndef _CLIENT_H
+#define _CLIENT_H
+
+#if !defined(WIN32) && !defined(__stdcall)
+#define __stdcall
+#endif
+
+#ifdef WIN32
+typedef   __int64  unsigned_long_long;
+#include <windows.h>
+#else     
+typedef  unsigned long long unsigned_long_long;
+#endif
+
+#ifndef WIN32
+typedef unsigned int UINT;
+typedef void *HWND;
+#endif
+typedef unsigned long LDWORD; 
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define CLIENT_LPRC_BIG_PICSTREAM_SIZE     200000-312		/*相机上传jpeg流每帧占用的内存的最大大小*/
+#define CLIENT_LPRC_BIG_PICSTREAM_SIZE_EX   1*800*1024-312	/*相机上传全景图占用内存的最大大小		*/
+#define CLIENT_LPRC_SMALL_PICSTREAM_SIZE_EX   10000			/*相机上传车牌截图占用内存的最大大小	*/
+
+/* 相机时间 */
+typedef struct 
+{
+	int Year;			/* 年 	*/
+	int Month;			/* 月 	*/
+	int Day;			/* 日 	*/
+	int Hour;			/* 时 	*/
+	int Minute;			/* 分 	*/
+	int Second;			/* 秒 	*/
+	int Millisecond;	/* 微妙 */
+}CLIENT_LPRC_CAMERA_TIME;
+
+/* 识别结果坐标 */
+typedef struct 
+{
+	int 	Left;	/* 左 */
+	int 	Top;	/* 上 */
+	int 	Right;	/* 右 */
+	int 	Bottom;	/* 下 */
+}CLIENT_LPRC_PLATE_LOCATION;
+
+/* 图像信息*/
+typedef struct
+{
+	int				nWidth;							/* 宽度					*/
+	int				nHeight;						/* 高度					*/
+	int				nPitch;							/* 图像宽度的一行像素所占内存字节数*/
+	int				nLen;							/* 图像的长度			*/
+	char			reserved[16];					/* 预留     			*/
+	unsigned char	*pBuffer;						/* 图像内存的首地址		*/
+}CLIENT_LPRC_IMAGE_INFO;
+
+/* 识别结果 */
+typedef struct 
+{	
+	char				chCLIENTIP[16];						/* 相机IP 				*/
+	char				chColor[8];							/* 车牌颜色 			*/
+	char				chLicense[16];						/* 车牌号码 			*/
+	CLIENT_LPRC_PLATE_LOCATION 		pcLocation;				/* 车牌在图像中的坐标 	*/
+	CLIENT_LPRC_CAMERA_TIME			shootTime;				/* 识别出车牌的时间 	*/
+	int					nConfidence;						/* 车牌可信度			*/
+	int					nTime;								/* 识别耗时				*/
+	int					nDirection;							/* 车牌方向		    	*/
+	int					nCarLogo;							/* 车标类型(参考CAR_LOGO)*/
+	int					nCarModel;							/* 车型类型(参考CAR_MODEL)*/
+	char				reserved[256-4-4];					/* 预留     			*/
+	CLIENT_LPRC_IMAGE_INFO		pFullImage;					/* 全景图像数据(注意:相机不传输,此处指针为空) */
+	CLIENT_LPRC_IMAGE_INFO		pPlateImage;				/* 车牌图像数据(注意:相机不传输,此处指针为空) */
+}CLIENT_LPRC_PLATE_RESULTEX;
+
+/* Jpeg流回调返回每一帧jpeg数据结构体 */
+typedef struct 
+{
+	char			chIp[16];				/*相机IP												*/
+	char			*pchBuf;				/*每一帧jpeg数据缓冲区									*/
+	unsigned int	nLen;					/*当前jpeg帧的数据长度									*/
+	int				nStatus;				/* 当前jpeg帧接收状态: 0-正常, 非0-不正常 				*/
+	char			reserved[128];			/* 保留		  											*/
+}CLIENT_LPRC_DEVDATA_INFO;
+
+/*接收串口数据的结构体*/
+typedef struct
+{
+	unsigned char *pData;					/*串口数据指针											*/
+	int nsize;								/*串口数据大小											*/
+	char reserved[128];						/* 保留													*/
+}CLIENT_LPRC_DEVSERIAL_DATA;
+
+/* 搜索设备之后保存设备信息的结构体,注:要是修改ip信息请保证其他信息不被改变*/
+typedef struct 
+{
+	char 			chDevName[256];			/* 设备名		*/
+	char			chSoftVer[20];			/* 软件版本号	*/
+	char 			chHardVer[20];			/* 硬件版本号	*/
+	char 			chSysVer[20];			/* 系统版本	*/
+	int				nSdkPort;				/* sdk端口号			*/
+	char 			chIp[16];				/* ip地址		*/
+	char 			chGateway[16];			/* 网管	*/
+	char 			chNetmask[16];			/* 子网掩码	*/
+	char 			chMac[18];				/* Mac地址		*/
+	char            chRoomID[20];				/*RooMID            */
+	char            chSN[20];					/*SN*/
+	char            chWifiIp[16];			/*wifi_ip*/
+	char			reserved[256-16];			/* 保留		  */
+}CLIENT_LPRC_DeviceInfo;
+
+/*新版本Rs485透传数据结构体*/   
+typedef struct{
+	short           TimeDelay;	/*延时范围:10~200之间
+						        注:1、设置的是本条数据和下一条数据之间的延时时间
+						           2、最后一条数据不需要设置延时*/		
+    unsigned char   *data;      /*存储传输数据的缓冲区指针,需要客户自己申请缓冲区*/
+	short           datalen;    /*缓冲区最大长度2*1024*/
+	char            reserved[10];/*保留*/
+ } CLIENT_LPRC_RS485_Data_t;
+
+/*新版本485透传结构体*/
+typedef struct{
+	CLIENT_LPRC_RS485_Data_t  rS485_data[5];  /*实际发送数据的结构体*/
+	int                       datanum;		  /*每次发送最大支持发送5条数据*/
+} CLIENT_LPRC_RS485_Transparent_t;
+
+/*GPIO 输入口状态 结构体 */
+typedef struct{ 	
+	unsigned  char gpio_in0;//GPIO IN0 0低电平 1 高电平 	
+	unsigned  char gpio_in1;//GPIO IN1 0低电平 1 高电平
+	unsigned  char gpio_in2;//GPIO IN2 0低电平 1 高电平
+	unsigned  char gpio_in3;//GPIO IN3 0低电平 1 高电平 
+}CLIENT_LPRC_GPIO_In_Statue;
+
+
+/*GPIO 输入口状态 结构体 */
+typedef struct{ 	
+	char gpio_out1;//GPIO OUT1 0继电器断开 1 继电器闭合	-1不做变化
+	char gpio_out2;//GPIO OUT2 0继电器断开 1 继电器闭合	-1不做变化
+	char gpio_out3;//GPIO OUT3 0继电器断开 1 继电器闭合 -1不做变化
+}CLIENT_LPRC_GPIO_Out_Statue;
+/*网络参数设置结构体 */
+typedef struct{ 	
+	char 			ip[16];					/* IP address		*/
+	char 			netmask[16];			/* Netmask address	*/
+	char 			gateway[16];			/* gateway address	*/
+	char            dns[16];			    /* DNS				*/
+	char            reserved[64];/*保留*/
+}CLIENT_LPRC_Net_Set_Param;
+
+/************************************************************************/
+/* CLIENT_LPRC_InitSDK: 连接相机												*/
+/*		Parameters:														*/
+/*			nPort[in]:		连接相机的端口,现默认为8080				*/
+/*			hWndHandle[in]:	接收消息的窗体句柄,当为NULL时,表示无窗体  */
+/*			uMsg[in]:		用户自定义消息,当hWndHandle不为NULL时,	*/
+/*							检测到有新的车牌识别结果并准备好当前车牌	*/
+/*							缓冲区信息后,用::PostMessage 给窗口		*/
+/*							hWndHandle发送uMsg消息,其中WPARAM参数为0,	*/
+/*							LPARAM参数为0								*/
+/*			chServerIP[in]:	相机的IP地址								*/
+/*          dwUser[in]:     用户自定义字段,主要用来回传给回调函数。    */
+/*		Return Value:   int												*/
+/*							0	相机连接成功							*/
+/*							1	相机连接失败							*/
+/*		Notice:   														*/
+/*				如果采用回调的方式获取数据时,hWndHandle句柄为NULL,	*/
+/*				uMsg为0,并且注册回调函数,通知有新的数据;				*/
+/*				反之,在主窗口收到消息时,调用CLIENT_LPRC_GetVehicleInfoEx获取	*/
+/*				数据。													*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_InitSDK(UINT nPort,HWND hWndHandle,UINT uMsg,char *chServerIP,LDWORD dwUser);
+int __stdcall CLIENT_LPRC_InitSDK_Ex(UINT nPort,HWND hWndHandle,UINT uMsg,char *chServerIP,void *RecoResultCallback, LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_QuitSDK: 断开所有已经连接设备,释放资源					*/
+/*		Parameters:														*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void  __stdcall CLIENT_LPRC_QuitSDK();
+
+
+/************************************************************************/
+/* 	函数: 根据IP地址,断开指定设备链接									*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP地址							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_QuitDevice(char *pCameraIP);
+
+
+
+/***********************************************************************************/
+/* 回调函数:循环检测并通知相机设备通讯状态的回调函数						       */
+/*		Parameters:														           */
+/*			chCLIENTIP[out]:		返回设备IP								       */
+/*			nStatus[out]:		设备状态:0表示网络异常或设备异常;			       */
+/*										  1表示网络正常,设备已连接		    	   */
+/*										  2表示网络正常,设备已连接,但相机有重启  */
+/*          dwUser[out]         CLIENT_InitSDK传给sdk的用户自定义字段              */
+/*		Return Value:   void											           */
+/***********************************************************************************/
+typedef void (*CLIENT_LPRC_ConnectCallback)(char *chCLIENTIP,UINT nStatus,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegCLIENTConnEvent: 注册相机通讯状态的回调函数			*/
+/*		Parameters:														*/
+/*			CLIENTConnect[in]:	CLIENT_LPRC_ConnectCallback类型回调函数 */
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegCLIENTConnEvent (CLIENT_LPRC_ConnectCallback CLIENTConnect);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_CheckStatus: 主动检查相机设备的通讯状态					*/
+/*		Parameters:														*/
+/*			chCLIENTIP[in]:		要检查的相机的IP						*/
+/*		Return Value:   int												*/
+/*							0	正常									*/
+/*							1	网络不通								*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_CheckStatus (char *chCLIENTIP);
+
+
+/************************************************************************/
+/* 回调函数:获取相机485发送的数据										*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回设备IP								*/
+/*          serialData[out]          串口数据地址						*/
+/*			nlen[out]				串口数据大小						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_SerialDataCallback)(char *chCLIENTIP,CLIENT_LPRC_DEVSERIAL_DATA *pSerialData,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegSerialDataEvent: 注册获取串口数据的回调函数			*/
+/*		Parameters:														*/
+/*			CLIENTSerialData[in]:		处理接收串口数据的回调函数的指针*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegSerialDataEvent(CLIENT_LPRC_SerialDataCallback CLIENTSerialData);
+
+
+/************************************************************************/
+/* 回调函数:获取相机GPIO状态											*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回设备IP								*/
+/*          pGpioState[out]          串口数据地址						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_GetGpioStateCallback)(char *chWTYIP,CLIENT_LPRC_GPIO_In_Statue *pGpioState);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegWTYGetGpioState: 注册获取相机GPIO状态的回调函数		*/
+/*		Parameters:														*/
+/*			CLIENTGpioState[in]:	CLIENT_LPRC_GetGpioStateCallback	*/
+/*									类型回调函数						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegWTYGetGpioState (CLIENT_LPRC_GetGpioStateCallback CLIENTGpioState);
+
+
+/************************************************************************/
+/* 回调函数: 注册接收识别数据回调函数									*/
+/*		Parameters:														*/
+/*			recResult[out]:		识别结果数据							*/
+/*          dwUser[out]         CLIENT_LPRC_InitSDK传给sdk的用户自定义字段*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		新扩展的回调函数,方便用户接收清晰度较高或分辨率较高的JPEG图像	*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_DataEx2Callback)(CLIENT_LPRC_PLATE_RESULTEX *recResultEx,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegDataEx2Event: 注册获取识别结果的回调函数				*/
+/*		Parameters:														*/
+/*			CLIENTData[in]:		处理识别结果的回调函数的指针			*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		接收清晰度较高,或分辨率较高的JPEG图像							*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegDataEx2Event(CLIENT_LPRC_DataEx2Callback CLIENTDataEx2);
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP的相机识别结果。							*/
+/*		  当CLIENT_LPRC_initSDK函数中设置了窗体句柄和消息时,			*/
+/*		  需要在消息处理函数中调用此函数来主动获取识别结果。			*/
+/*		Parameters:														*/
+/*			chCLIENTIP[in]:		根据消息,获取指定IP设备识别数据		*/
+/*			chPlate[in]:		车牌号码								*/
+/*			chColor[in]:		车牌颜色								*/
+/*			chFullImage[in]:	全景图数据								*/
+/*			nFullLen[in]:		全景图数据长度							*/
+/*			chPlateImage[in]:	车牌图数据								*/
+/*			nPlateLen[in]:		车牌图数据长度							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			当设置了传输内容不传时,各自对应的数据为NULL,长度为-1;	*/
+/*			当没有形成数据时,各自对应数据为NULL,长度为0				*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_GetVehicleInfoEx(char *chCLIENTIP,
+								 char *chPlate,	
+								 char *chColor,
+								 void *chFullImage ,
+								 int *nFullLen,
+								 void *chPlateImage,
+								 int *nPlateLen);
+
+/************************************************************************/
+/* CLIENT_LPRC_SetSavePath: 如果用户需要动态库自动保存图片,可以通过该函数设置保*/
+/*					存图片的路径。										*/
+/*		Parameters:														*/
+/*			chSavePath[in]:	文件存储路径,以"\\"结束,如:"D:\\Image\\"	*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:   														*/
+/*			全景图:指定目录\\设备IP\\年月日(YYYYMMDD)\\FullImage\\	*/
+/*									时分秒-毫秒__颜色_车牌号码__.jpg	*/
+/*			车牌图:指定目录\\设备IP\\年月日(YYYYMMDD)\\PlatelImage\\	*/
+/*									时分秒-毫秒__颜色_车牌号码__.jpg	*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_SetSavePath (char *chSavePath);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetTrigger: 手动触发识别(抓取一帧识别)					*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要触发的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	触发成功返回									*/
+/*				  非0	失败											*/
+/************************************************************************/	
+int __stdcall CLIENT_LPRC_SetTrigger(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SenseCoilTrigger: 模拟地感触发识别(需要将识别模式:设置为'视频地感')*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要触发的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	触发成功返回									*/
+/*				  非0	失败											*/
+/*		Note:															*/
+/*			V5以上硬件相机才能支持此接口								*/
+/************************************************************************/	
+int __stdcall CLIENT_LPRC_SetSenseCoilTrigger(char *pCameraIP, int nCameraPort);
+
+/************************************************************************/
+/* CLIENT_LPRC_Reboot: 手动重启					*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要重启	的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	成功返回									*/
+/*				  非0	失败											*/
+/************************************************************************/	
+int __stdcall CLIENT_LPRC_Reboot(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetTransContent: 控制相机设备上传内容					*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:		要设置的设备IP							*/
+/*			nCameraPort[in]:	端口,默认8080							*/
+/*			nFullImg[in]:		全景图,0表示不传,1表示传				*/
+/*			nPlateImg[in]:		车牌图,0表示不传,1表示传				*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetTransContent (char *pCameraIP, int nCameraPort, int nFullImg, int nPlateImg);
+
+
+/************************************************************************/
+/* 函数说明: 控制继电器的闭合											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP								*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:   int												*/
+/*							0	设置成功								*/
+/*						  非0	失败									*/
+/*		Notice:   														*/
+/*				通过此功能,可以在PC端通过一体机设备,来控制道闸的抬起	*/
+/*				设备继电器输出信号为:开关量信号。						*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetRelayClose(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* 函数说明: 控制道闸落下												*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP								*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:   int												*/
+/*							0	设置成功								*/
+/*						  非0	失败									*/
+/*		Notice:   														*/
+/*				通过此功能,可以在PC端通过一体机设备,来控制道闸的落下	*/
+/*				设备继电器输出信号为:开关量信号。						*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_DropRod(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RS485Send: RS485透明传输									*/
+/*		Parameters:														*/
+/*			pCameraIP[in]				相机设备IP地址					*/
+/*			nPort[in]					端口,默认8080					*/
+/*			chData[in]					将要传输的数据块的首地址		*/
+/*			nSendLen[in]				将要传输的数据块的字节数		*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:														*/
+/*				1:用户通过此接口,往相机发送数据,相机设备会原样将数据	*/
+/*				通过RS485接口转发出去,到客户所接的外部设备上。			*/
+/*				2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 */
+/*				能传输识别结果(默认S485传输识别结果)。					*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_RS485Send(char *pCameraIP, int nCameraPort, char *chData, int nSendLen);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RS485SendEx: 新版本RS485透明传输											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]				相机设备IP地址					*/
+/*			nPort[in]					端口,默认9110					*/
+/*			nRs485[in]	传输485数据的结构体		*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:														*/
+/*				1:用户通过此接口,往相机发送数据,相机设备会原样将数据	*/
+/*				通过RS485接口转发出去,到客户所接的外部设备上。			*/
+/*				2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 */
+/*				能传输识别结果(默认S485传输识别结果)。					*/
+/*				3:新版本可以一次性给相机发送最大5条数据,可以设置每条数据*/
+/*				透传的时间间隔。									      */
+/************************************************************************/
+int __stdcall CLIENT_LPRC_RS485SendEx(char *pCameraIP, int nCameraPort, CLIENT_LPRC_RS485_Transparent_t nRs485);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SearchDeviceList:    搜索设备IP列表						*/
+/*		Parameters:														*/
+/*		pBuf[out]			存储搜索到的相机列表信息结构体数组			*/
+/*		Return Value:   	int											*/
+/*							大于0	成功搜索到的设备数					*/
+/*						  	-1	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SearchDeviceList(CLIENT_LPRC_DeviceInfo *pBuf);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_AlterDeviceInfo:    修改指定的设备的设备信息				*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		pBuf[out]			存储需要修改的设备信息结构体				*/
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_AlterDeviceInfo(char *pCameraIP,CLIENT_LPRC_DeviceInfo pBuf);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_GetDeviceInfo	根据IP获取设备的设备信息				*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		相机设备的ip地址				    */
+/*		pBuf[out]			存储设备信息结构体				*/
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_GetDeviceInfo(char *pCameraIP,CLIENT_LPRC_DeviceInfo *pBuf);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetDevTimeParam:    修改设备系统时间							    */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		sysTime[in]			设置时间结构体		*/
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetDevTimeParam(char *pCameraIP, CLIENT_LPRC_CAMERA_TIME *sysTime);
+int __stdcall CLIENT_LPRC_GetDevTimeParam(char *pCameraIP, CLIENT_LPRC_CAMERA_TIME *sysTime);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetEncryptKey:    	设置加密芯片密码					*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetEncryptKey(char *pCameraIP, unsigned_long_long nKey);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_ReSetEncryptKey:    	重置加密芯片密码,密码恢复为123456	*/
+/*                          并且用户数据恢复为空                        */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_ReSetEncryptKey(char *pCameraIP);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetEncryptUserData:  设置加密芯片用户数据,密码必须匹配才可以成功*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*      pUserData[in]       加密芯片用户数据指针,大小24个字节          */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetEncryptUserData(char *pCameraIP, unsigned_long_long nKey,char *pUserData);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_GetEncryptUserData:  设置加密芯片用户数据,密码必须匹配才可以成功*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*      pUserData[out]      存储读取到的用户数据                        */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_GetEncryptUserData(char *pCameraIP, unsigned_long_long nKey,char *pUserData);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_TextToSoundPlay:  文字转音频播报							*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		设备的ip地址							    */
+/*		data[in]			需要播报的内容[UTF-8编码]	                */
+/*      len[in]				需要播报的内容长度                          */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/*		notice:														*/
+/*				播报的内容必须为UTF-8编码								*/
+/************************************************************************/
+int __stdcall  CLIENT_LPRC_TextToSoundPlay(char *pCameraIP, char *data, int len);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetGPioOutParam: 设置GPIO 是输出状态				*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要设置的相机设备的ip地址				    */
+/*		pGpioOut[in]		GPIO输出可控制结构体,0表示继电器断开,1表示继电器闭合,-1不改变*/
+/*		Return Value:   	int											*/
+/*							0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetGPioOutParam(char *pCameraIP, CLIENT_LPRC_GPIO_Out_Statue *pGpioOut);
+
+/************************************************************************/
+/* CLIENT_LPRC_SetNetParam: 设置网络参数			*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要设置的相机设备的ip地址				    */
+/*		netSetParam[in]		需要设置的网络参数,不需要设置的项目memset为0*/
+/*		Return Value:   	int											*/
+/*							0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetNetParam(char *pCameraIP, CLIENT_LPRC_Net_Set_Param *netSetParam);
+
+typedef enum CLIENT_UPGRADE_STATUS
+{
+	UPGRADE_FILE_CONNECT_SUCCESS	 			= 0,		// 连接成功
+	UPGRADE_FILE_CONNECT_FAIL	 				= 1,		// 连接失败
+	UPGRADE_FILE_NO_ACCESS		 				= 2,		// 升级文件不存在
+	UPGRADE_FILE_OPEN_SUCCESS					= 3,		// 升级文件打开成功
+	UPGRADE_FILE_OPEN_FAIL 						= 4,		// 升级文件打开失败
+	UPGRADE_FILE_READ_HEAD_SUCCESS				= 5,		// 升级文件读取文件头信息成功
+	UPGRADE_FILE_READ_HEAD_FAIL					= 6,		// 升级文件读取文件头信息失败
+	UPGRADE_FILE_SEND_HEAD_SUCCESS				= 7,		// 升级文件发送文件头信息成功
+	UPGRADE_FILE_SEND_HEAD_FAIL					= 8,		// 升级文件发送文件头信息失败
+	UPGRADE_FILE_RECV_HEAD_RESPONSE_SUCCESS		= 9,		// 升级文件接收头信息响应成功
+	UPGRADE_FILE_RECV_HEAD_RESPONSE_FAIL		= 10,		// 升级文件接收头信息响应失败
+	UPGRADE_FILE_VERSION_CHECK_SUCCESS			= 11,		// 升级文件版本检查通过
+	UPGRADE_FILE_VERSION_CHECK_FAIL				= 12,		// 升级文件版本检查不通过
+	UPGRADE_FILE_START_SEND						= 13,		// 升级文件正在发送
+	UPGRADE_FILE_SEND_DONE						= 14,		// 升级文件发送完成
+	UPGRADE_FILE_SEND_FAIL						= 15,		// 升级文件发送失败
+	UPGRADE_FILE_SEND_DONE_RESPONSE_SUCCESS		= 16,		// 升级文件接收发送完成响应成功
+	UPGRADE_FILE_SEND_DONE_RESPONSE_FAIL		= 17,		// 升级文件接收发送完成响应失败
+	UPGRADE_FILE_UNZIP_SUCCESS					= 18,		// 升级文件解压成功
+	UPGRADE_FILE_UNZIP_FAIL						= 19,		// 升级文件解压失败
+	UPGRADE_SYSTEM_READY_RESTART				= 20,		// 系统准备重启
+}CLIENT_UPGRADE_STATUS;
+
+typedef void (*CLIENT_LPRC_UpgradeCallback)(int status, int send_size, int total_size);
+int __stdcall CLIENT_LPRC_UpGrade(char *pCameraIP, char* filename,CLIENT_LPRC_UpgradeCallback callback);
+
+
+/*************************************************************************************************************/
+/****************************以下接口属于较早版本,V5相机可能不再会提供支持***********************************/
+/**********************************请客户挂接时候,尽量使用以上接口*******************************************/
+/*************************************************************************************************************/
+
+
+/************************************************************************/
+/* 回调函数: 获取Jpeg流的回调函数										*/
+/*		Parameters:														*/
+/*			JpegInfo[out]:		JPEG流数据信息							*/
+/*          dwUser[out]            CLIENT_LPRC_InitSDK传给sdk的用户自定义字段*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中CLIENT_LPRC_DEVDATA_INFO中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_JpegCallback)(CLIENT_LPRC_DEVDATA_INFO *JpegInfo,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegJpegEvent: 注册获取Jpeg流的回调函数							*/
+/*		Parameters:														*/
+/*			JpegInfo[in]:		CLIENT_LPRC_JpegCallback类型回调函数				*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中CLIENT_LPRC_DEVDATA_INFO中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegJpegEvent(CLIENT_LPRC_JpegCallback JpegInfo);
+
+
+/************************************************************************/
+/* 回调函数: 获取报警信息的回调函数										*/
+/*		Parameters:														*/
+/*			alarmInfo[out]:		报警信息								*/
+/*          dwUser[out]            CLIENT_LPRC_InitSDK传给sdk的用户自定义字段              */
+
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			一台PC连接多台设备时,此函数仅需实现一次。当区分不同设备	*/
+/*			的Alarm时,可以通过输出参数中CLIENT_LPRC_DEVDATA_INFO中的chIp来区分		*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中LPRC_CLIENT_DEVDATA_INFO中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_AlarmCallback)(CLIENT_LPRC_DEVDATA_INFO *alarmInfo,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegAlarmEvent: 注册获取报警信息的回调函数				*/
+/*		Parameters:														*/
+/*			AlarmInfo[in]:		CLIENT_LPRC_AlarmCallback类型回调函数	*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中LPRC_CLIENT_DEVDATA_INFO中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegAlarmEvent(CLIENT_LPRC_AlarmCallback AlarmInfo);
+
+
+/************************************************************************/
+/* 函数: Jpeg流消息处理初始化											*/
+/*		Parameters:														*/
+/*			hWndHandle[in]:	接收消息的窗体句柄							*/
+/*			uMsg[in]:		用户自定义消息								*/
+/*							检测到有数据并准备好缓冲区数据后,			*/
+/*							用::PostMessage 给窗口hWndHandle发送uMsg	*/
+/*							消息,其中WPARAM参数为0,LPARAM参数为0		*/
+/*			chIp[in]:		相机IP地址								*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_JpegMessageInit(HWND hWndHandle,UINT uMsg,char *chIp);
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP的相机的Jpeg流数据							*/
+/*		Parameters:														*/
+/*			chIp[in]:			相机IP地址								*/
+/*			chJpegBuf[in]:		存储JPEG的buffer						*/
+/*			nJpegBufLen[in]:	获取到的JPEG数据长度					*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			使用此函数前需先调用CLIENT_JpegMessageInit函数设置自定义消息	*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_GetJpegStream(char *chIp, char *chJpegBuf, char *nJpegBufLen);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetNetworkCardBind: 手动绑定指定网卡IP					*/
+/*		Parameters:														*/
+/*			pCameraIP[in]		要绑定的网卡IP地址						*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:当PC机存在多网卡的情况时,又不想禁用为单网卡时,可通过该	*/
+/*				函数绑定与相机通讯的网卡IP								*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetNetworkCardBind(char *pCameraIP);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetNetCardName: 设置网卡的名字							*/
+/*		Parameters:														*/
+/*			pNetCardName[in]		Linux网络节点的名字					*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:	此函数仅在Linux下使用,不设置默认的网络节点名字为eth0	*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetNetCardName(char *pNetCardName);
+
+
+/************************************************************************/
+/*CLIENT_LPRC_SnapJpegFrame 快速抓拍一帧,两种保存方式,直接保存到固定目*/
+/*					录或者保存到特定内存,要是保存特定内存模式需要传入	*/
+/*					内存最大值,两种方式可选								*/		
+/*		Parameters:														*/
+/*			chIp[in]		   相机的IP地址								*/
+/*			pSaveFileName[in]  路径和带JPEG后缀名的文件名,用于把当前	*/
+/*							   抓拍到的帧保存为特定文件  默认先匹配		*/
+/*							   文件名									*/
+/*          pSaveBuf[in]       用于保存当前帧在特定内存的,并且需要传输	*/
+/*							   内存可存储的最大值,当文件名为空的时候	*/
+/*							   这个才会生效。							*/  
+/*          Maxlen[in]         保存当前帧特定内存的最大值				*/
+/*		Return Value:   int												*/
+/*						   0	保存到特定目录成功						*/
+/*                         >0   保存到特定内存的数据的实际大小          */
+/*						  -1	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SnapJpegFrame(char *chIp,char *pSaveFileName,unsigned char *pSaveBuf,int Maxlen);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetJpegStreamPlayOrStop: 设置jpeg流的开关				*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要设置的相机设备的ip地址				    */
+/*		onoff[in]			jpeg流开关项,0表示关闭流,1表示打开流		*/
+/*		Return Value:   	int											*/
+/*							0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetJpegStreamPlayOrStop(char *pCameraIP,int onoff);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

+ 774 - 0
DLL/windows/32bit/WTY.H

@@ -0,0 +1,774 @@
+#ifndef _WTY_H
+#define _WTY_H
+
+#if !defined(WIN32) && !defined(__stdcall)
+#define __stdcall
+#endif
+
+#ifndef WIN32
+typedef void *HWND;
+typedef unsigned int UINT;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef WIN32
+typedef   __int64  unsigned_long_long;
+#include <windows.h>
+#else     
+typedef  unsigned long long unsigned_long_long;
+#endif
+#define BIG_PICSTREAM_SIZE     200000-312///		//相机上传全景图占用内存的最大大小
+#define SMALL_PICSTREAM_SIZE   10000////			//相机上传车牌截图占用内存的最大大小
+#define BIG_PICSTREAM_SIZE_EX   1*800*1024-312		//相机上传全景图占用内存的最大大小
+#define SMALL_PICSTREAM_SIZE_EX   10000				//相机上传车牌截图占用内存的最大大小
+
+/* 相机时间 */
+typedef struct 
+{
+	int Year;			/* 年 	*/
+	int Month;			/* 月 	*/
+	int Day;			/* 日 	*/
+	int Hour;			/* 时 	*/
+	int Minute;			/* 分 	*/
+	int Second;			/* 秒 	*/
+	int Millisecond;	/* 微妙 */
+}camera_time;
+
+/* 识别结果坐标 */
+typedef struct 
+{
+	int 	Left;	/* 左 */
+	int 	Top;	/* 上 */
+	int 	Right;	/* 右 */
+	int 	Bottom;	/* 下 */
+}plate_location;
+
+/* 识别结果 */
+typedef struct 
+{	
+	char		chWTYIP[16];						/* 相机IP 				*/
+	int			nFullLen;							/* 全景图像数据大小 	*/
+	int			nPlateLen;							/* 车牌图像数据大小 	*/
+	char		chFullImage[BIG_PICSTREAM_SIZE];	/* 全景图像数据 		*/
+	char		chPlateImage[SMALL_PICSTREAM_SIZE];	/* 车牌图像数据 		*/
+	char		chColor[8];							/* 车牌颜色 			*/
+	char		chLicense[16];						/* 车牌号码 			*/
+	plate_location 	pcLocation;						/* 车牌在图像中的坐标 	*/
+	camera_time		shootTime;						/* 识别出车牌的时间 	*/
+	int			nConfidence;						/* 车牌可信度			*/
+	int			nTime;								/* 识别耗时				*/
+	int			nDirection;							/* 车牌方向				*/
+	int			nCarLogo;							/* 车标类型(参考CAR_LOGO)*/
+	int			nCarModel;							/* 车型类型(参考CAR_MODEL)*/
+	char		reserved[256-12-4-4];
+}plate_result;
+
+/* 图像信息*/
+typedef struct
+{
+	int				nWidth;							/* 宽度					*/
+	int				nHeight;						/* 高度					*/
+	int				nPitch;							/* 图像宽度的一行像素所占内存字节数*/
+	int				nLen;							/* 图像的长度			*/
+	char			reserved[16];					/* 预留     			*/
+	unsigned char	*pBuffer;						/* 图像内存的首地址		*/
+}LPRC_IMAGE_INFO;
+
+
+/* 识别结果 */
+typedef struct 
+{	
+	char				chWTYIP[16];						/* 相机IP 				*/
+	char				chColor[8];							/* 车牌颜色 			*/
+	char				chLicense[16];						/* 车牌号码 			*/
+	plate_location 		pcLocation;							/* 车牌在图像中的坐标 	*/
+	camera_time			shootTime;							/* 识别出车牌的时间 	*/
+	int					nConfidence;						/* 车牌可信度			*/
+	int					nTime;								/* 识别耗时				*/
+	int					nDirection;							/* 车牌方向		    	*/
+	int					nCarLogo;							/* 车标类型(参考CAR_LOGO)*/
+	int					nCarModel;							/* 车型类型(参考CAR_MODEL)*/
+	char				reserved[256-4-4];					/* 预留     			*/
+	LPRC_IMAGE_INFO		pFullImage;							/* 全景图像数据(注意:相机不传输,此处指针为空) */
+	LPRC_IMAGE_INFO		pPlateImage;						/* 车牌图像数据(注意:相机不传输,此处指针为空) */
+}plate_result_ex;
+
+/* Jpeg流回调返回每一帧jpeg数据结构体 */
+typedef struct 
+{
+	char			chIp[16];				/*相机IP												*/
+	char			*pchBuf;				/*每一帧jpeg数据缓冲区									*/
+	unsigned int	nLen;					/*当前jpeg帧的数据长度									*/
+	int				nStatus;				/* 当前jpeg帧接收状态: 0-正常, 非0-不正常 				*/
+	char			reserved[128];			/* 保留		  											*/
+}DevData_info;
+/*接收串口数据的结构体*/
+typedef struct
+{
+	unsigned char *pData;//[1024];////串口数据指针
+	int nsize;///串口数据大小
+	char reserved[128];			/* 保留	*/
+}DevSerial_data;
+
+/* 搜索设备之后保存设备信息的结构体,注:要是修改ip信息请保证其他信息不被改变*/
+typedef struct 
+{
+	char 			chDevName[256];			/* 设备名		*/
+	char			chSoftVer[20];			/* 软件版本号	*/
+	char 			chHardVer[20];			/* 硬件版本号	*/
+	char 			chSysVer[20];			/* 系统版本	*/
+	int				nSdkPort;				/* sdk端口号			*/
+	char 			chIp[16];				/* ip地址		*/
+	char 			chGateway[16];			/* 网管	*/
+	char 			chNetmask[16];			/* 子网掩码	*/
+	char 			chMac[18];				/* Mac地址		*/
+	char            chRoomID[20];			/*RooMID            */
+	char            chSN[20];				/*SN*/
+	char            chWifiIp[16];			/*wifi_ip*/
+	char			reserved[256-16];		/* 保留		  */
+}WTY_DeviceInfo;
+/*新版本Rs485透传数据结构体*/   
+typedef struct{
+	short           TimeDelay;				/*延时范围:10~200毫秒之间
+												 注:1、设置的是本条数据和下一条数据之间的延时时间
+													2、最后一条数据不需要设置延时
+											*/		
+    unsigned char   *data;					/*存储传输数据的缓冲区指针,需要客户自己申请缓冲区*/
+	short           datalen;				/*缓冲区最大长度2*1024*/
+	char            reserved[10];			/*保留*/
+ } WTY_RS485_Data_t;
+
+/*新版本485透传结构体*/
+typedef struct{
+	WTY_RS485_Data_t  rS485_data[5];  /*实际发送数据的结构体*/
+	int               datanum;		  /*每次发送最大支持发送5条数据*/
+} WTY_RS485_Transparent_t;
+
+/*GPIO 输入口状态 结构体 */
+typedef struct{ 	
+	unsigned  char gpio_in0;//GPIO IN0 0低电平 1 高电平 	
+	unsigned  char gpio_in1;//GPIO IN1 0低电平 1 高电平
+	unsigned  char gpio_in2;//GPIO IN2 0低电平 1 高电平
+	unsigned  char gpio_in3;//GPIO IN3 0低电平 1 高电平 
+}WTY_GPIO_In_Statue;
+
+
+/************************************************************************/
+/* WTY_InitSDK: 连接相机												*/
+/*		Parameters:														*/
+/*			nPort[in]:		连接相机的端口,现默认为8080				*/
+/*			hWndHandle[in]:	接收消息的窗体句柄,当为NULL时,表示无窗体  */
+/*			uMsg[in]:		用户自定义消息,当hWndHandle不为NULL时,	*/
+/*							检测到有新的车牌识别结果并准备好当前车牌	*/
+/*							缓冲区信息后,用::PostMessage 给窗口		*/
+/*							hWndHandle发送uMsg消息,其中WPARAM参数为0,	*/
+/*							LPARAM参数为0								*/
+/*			chServerIP[in]:	相机的IP地址								*/
+/*		Return Value:   int												*/
+/*							0	相机连接成功							*/
+/*							1	相机连接失败							*/
+/*		Notice:   														*/
+/*				如果采用回调的方式获取数据时,hWndHandle句柄为NULL,	*/
+/*				uMsg为0,并且注册回调函数,通知有新的数据;				*/
+/*				反之,在主窗口收到消息时,调用WTY_GetVehicleInfo获取	*/
+/*				数据。													*/
+/************************************************************************/
+int __stdcall WTY_InitSDK(UINT nPort,HWND hWndHandle,UINT uMsg,char *chServerIP);
+
+
+/************************************************************************/
+/* 	函数: 根据IP地址,断开指定设备链接									*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP地址							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/************************************************************************/
+int __stdcall WTY_QuitDevice(char *pCameraIP);
+
+
+/************************************************************************/
+/* WTY_QuitSDK: 断开所有已经连接设备,释放资源							*/
+/*		Parameters:														*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void  __stdcall WTY_QuitSDK();
+
+
+/***********************************************************************************/
+/* 回调函数:循环检测并通知相机设备通讯状态的回调函数						       */
+/*		Parameters:														           */
+/*			chWTYIP[out]:		返回设备IP								           */
+/*			nStatus[out]:		设备状态:0表示网络异常或设备异常;			       */
+/*										  1表示网络正常,设备已连接		    	   */
+/*										  2表示网络正常,设备已连接,但相机有重启  */
+/*		Return Value:   void											           */
+/***********************************************************************************/
+typedef void (*WTYConnectCallback)(char *chWTYIP,UINT nStatus);
+
+
+/************************************************************************/
+/* WTY_RegWTYConnEvent: 注册相机通讯状态的回调函数						*/
+/*		Parameters:														*/
+/*			WTYConnect[in]:		ConnectCallback类型回调函数				*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall WTY_RegWTYConnEvent (WTYConnectCallback WTYConnect);
+
+
+/************************************************************************/
+/* WTY_CheckStatus: 主动检查相机设备的通讯状态							*/
+/*		Parameters:														*/
+/*			chWTYIP[in]:		要检查的相机的IP						*/
+/*		Return Value:   int												*/
+/*							0	正常									*/
+/*							1	网络不通								*/
+/************************************************************************/
+int __stdcall WTY_CheckStatus (char *chWTYIP);
+
+
+/************************************************************************/
+/* 回调函数: 注册接收识别数据回调函数									*/
+/*		Parameters:														*/
+/*			recResult[out]:		识别结果数据							*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		新扩展的回调函数,方便用户接收清晰度较高或分辨率较高的JPEG图像	*/
+/************************************************************************/
+typedef void (*WTYDataEx2Callback)(plate_result_ex *recResultEx);
+
+
+/************************************************************************/
+/* WTY_RegDataEx2Event: 注册获取识别结果的回调函数						*/
+/*		Parameters:														*/
+/*			WTYData[in]:		处理识别结果的回调函数的指针			*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		接收清晰度较高,或分辨率较高的JPEG图像							*/
+/************************************************************************/
+void __stdcall WTY_RegDataEx2Event(WTYDataEx2Callback WTYDataEx2);
+
+
+/************************************************************************/
+/* 回调函数:获取相机485发送的数据										*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回设备IP								*/
+/*          serialData[out]          串口数据地址						*/
+/*			nlen[out]				串口数据大小						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*WTYSerialDataCallback)(char *chWTYIP,DevSerial_data *pSerialData);
+
+
+/************************************************************************/
+/* WTY_RegSerialDataEvent: 注册获取串口数据的回调函数					*/
+/*		Parameters:														*/
+/*			WTYSerialData[in]:		处理接收串口数据的回调函数的指针	*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall WTY_RegSerialDataEvent(WTYSerialDataCallback WTYSerialData);
+
+
+/************************************************************************/
+/* 回调函数:获取相机GPIO状态											*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回设备IP								*/
+/*          pGpioState[out]          串口数据地址						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*WTYGetGpioStateCallback)(char *chWTYIP,WTY_GPIO_In_Statue *pGpioState);
+
+
+/************************************************************************/
+/* WTY_RegWTYGetGpioState: 注册获取相机GPIO状态的回调函数				*/
+/*		Parameters:														*/
+/*			WTYGpioState[in]:		WTYGetGpioStateCallback类型回调函数	*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall WTY_RegWTYGetGpioState (WTYGetGpioStateCallback WTYGpioState);
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP的相机识别结果。							*/
+/*		  当WTY_initSDK函数中设置了窗体句柄和消息时,					*/
+/*		  需要在消息处理函数中调用此函数来主动获取识别结果。			*/
+/*		Parameters:														*/
+/*			chWTYIP[in]:		根据消息,获取指定IP设备识别数据		*/
+/*			chPlate[in]:		车牌号码								*/
+/*			chColor[in]:		车牌颜色								*/
+/*			chFullImage[in]:	全景图数据								*/
+/*			nFullLen[in]:		全景图数据长度							*/
+/*			chPlateImage[in]:	车牌图数据								*/
+/*			nPlateLen[in]:		车牌图数据长度							*/
+/*			chTwoImage[in]:		二值化数据								*/
+/*			nTwoLen[in]:		二值化数据长度							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			当设置了传输内容不传时,各自对应的数据为NULL,长度为-1;	*/
+/*			当没有形成数据时,各自对应数据为NULL,长度为0				*/
+/************************************************************************/
+int __stdcall WTY_GetVehicleInfoEx(char *chWTYIP,
+								 char *chPlate,	
+								 char *chColor,
+								 void *chFullImage ,
+								 int *nFullLen,
+								 void *chPlateImage,
+								 int *nPlateLen,
+								 void *chTwoImage,
+								 int *nTwoLen);
+
+
+/************************************************************************/
+/* WTY_SetSavePath: 如果用户需要动态库自动保存图片,可以通过该函数设置保*/
+/*					存图片的路径。										*/
+/*		Parameters:														*/
+/*			chSavePath[in]:	文件存储路径,以"\\"结束,如:"D:\\Image\\"	*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:   														*/
+/*			全景图:指定目录\\设备IP\\年月日(YYYYMMDD)\\FullImage\\	*/
+/*									时分秒-毫秒__颜色_车牌号码__.jpg	*/
+/*			车牌图:指定目录\\设备IP\\年月日(YYYYMMDD)\\PlatelImage\\	*/
+/*									时分秒-毫秒__颜色_车牌号码__.jpg	*/
+/************************************************************************/
+void __stdcall WTY_SetSavePath (char *chSavePath);
+
+
+/************************************************************************/
+/* WTY_SetTrigger: 手动触发识别(抓取一帧识别)							*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要触发的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	触发成功返回									*/
+/*				  非0	失败											*/
+/************************************************************************/	
+int __stdcall WTY_SetTrigger(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* WTY_SetSenseCoilTrigger: 模拟地感触发识别(需要将识别模式:设置为'视频地感')*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要触发的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	触发成功返回									*/
+/*				  非0	失败											*/
+/*		Note:															*/
+/*			V5以上硬件相机才能支持此接口								*/
+/************************************************************************/	
+int __stdcall WTY_SetSenseCoilTrigger(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* 函数说明: 控制继电器的闭合											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP								*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:   int												*/
+/*							0	设置成功								*/
+/*						  非0	失败									*/
+/*		Notice:   														*/
+/*				通过此功能,可以在PC端通过一体机设备,来控制道闸的抬起	*/
+/*				设备继电器输出信号为:开关量信号。						*/
+/************************************************************************/
+int __stdcall WTY_SetRelayClose(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* 函数说明: 控制道闸落下											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP								*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:   int												*/
+/*							0	设置成功								*/
+/*						  非0	失败									*/
+/*		Notice:   														*/
+/*				通过此功能,可以在PC端通过一体机设备,来控制道闸的落下	*/
+/*				设备输出信号为:光耦信号						*/
+/************************************************************************/
+int __stdcall WTY_DropRod(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* WTY_RS485Send: RS485透明传输											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]				相机设备IP地址					*/
+/*			nPort[in]					端口,默认9110					*/
+/*			chData[in]					将要传输的数据块的首地址		*/
+/*			nSendLen[in]				将要传输的数据块的字节数		*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:														*/
+/*				1:用户通过此接口,往相机发送数据,相机设备会原样将数据	*/
+/*				通过RS485接口转发出去,到客户所接的外部设备上。			*/
+/*				2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 */
+/*				能传输识别结果(默认S485传输识别结果)。					*/
+/************************************************************************/
+int __stdcall WTY_RS485Send(char *pCameraIP, int nCameraPort, char *chData, int nSendLen);
+
+
+/************************************************************************/
+/* WTY_RS485SendEx: 新版本RS485透明传输									*/
+/*		Parameters:														*/
+/*			pCameraIP[in]				相机设备IP地址					*/
+/*			nPort[in]					端口,默认9110					*/
+/*			nRs485[in]	传输485数据的结构体								*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:														*/
+/*				1:用户通过此接口,往相机发送数据,相机设备会原样将数据	*/
+/*				通过RS485接口转发出去,到客户所接的外部设备上。			*/
+/*				2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 */
+/*				能传输识别结果(默认S485传输识别结果)。					*/
+/*				3:新版本可以一次性给相机发送最大5条数据,可以设置每条数据*/
+/*				透传的时间间隔。									      */
+/************************************************************************/
+int __stdcall WTY_RS485SendEx(char *pCameraIP, int nCameraPort, WTY_RS485_Transparent_t nRs485);
+
+
+/************************************************************************/
+/* WTY_SearchDeviceList:    搜索设备IP列表							    */
+/*		Parameters:														*/
+/*		pBuf[out]			存储搜索到的相机列表信息结构体数组		    */
+/*		Return Value:   	int											*/
+/*							大于0	成功搜索到的设备数					*/
+/*						  	-1	失败									*/
+/************************************************************************/
+int __stdcall WTY_SearchDeviceList(WTY_DeviceInfo *pBuf);
+
+
+/************************************************************************/
+/* WTY_AlterDeviceInfo:    修改指定的设备的设备信息					    */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		pBuf[out]			存储需要修改的设备信息结构体		        */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_AlterDeviceInfo(char *pCameraIP,WTY_DeviceInfo pBuf);
+
+
+/************************************************************************/
+/* WTY_SetDevTimeParam:    修改设备系统时间							    */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		sysTime[in]			设置时间结构体		                        */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_SetDevTimeParam(char *pCameraIP, camera_time*sysTime);
+
+
+/************************************************************************/
+/* WTY_SetEncryptKey:    	设置加密芯片密码							*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_SetEncryptKey(char *pCameraIP, unsigned_long_long nKey);
+
+
+/************************************************************************/
+/* WTY_ReSetEncryptKey:    	重置加密芯片密码,密码恢复为123456			*/
+/*                          并且用户数据恢复为空                        */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_ReSetEncryptKey(char *pCameraIP);
+
+
+/************************************************************************/
+/* WTY_SetEncryptUserData:  设置加密芯片用户数据,密码必须匹配才可以成功*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*      pUserData[in]       加密芯片用户数据指针,大小24个字节          */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_SetEncryptUserData(char *pCameraIP, unsigned_long_long nKey,char *pUserData);
+
+
+/************************************************************************/
+/* WTY_GetEncryptUserData:  设置加密芯片用户数据,密码必须匹配才可以成功*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*      pUserData[out]      存储读取到的用户数据                        */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_GetEncryptUserData(char *pCameraIP, unsigned_long_long nKey,char *pUserData);
+
+
+
+
+/*************************************************************************************************************/
+/****************************以下接口属于较早版本,V5相机可能不再会提供支持***********************************/
+/**********************************请客户挂接时候,尽量使用以上接口*******************************************/
+/*************************************************************************************************************/
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP相机识别结果。								*/
+/*		  当WTY_initSDK函数中设置了窗体句柄和消息时,					*/
+/*		  需要在消息处理函数中调用此函数来主动获取识别结果。			*/
+/*		Parameters:														*/
+/*			chWTYIP[in]:		根据消息,获取指定IP设备识别数据		*/
+/*			chPlate[in]:		车牌号码								*/
+/*			chColor[in]:		车牌颜色								*/
+/*			chFullImage[in]:	全景图数据								*/
+/*			nFullLen[in]:		全景图数据长度							*/
+/*			chPlateImage[in]:	车牌图数据								*/
+/*			nPlateLen[in]:		车牌图数据长度							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			当设置了传输内容不传时,各自对应的数据为NULL,长度为-1;	*/
+/*			当没有形成数据时,各自对应数据为NULL,长度为0				*/
+/************************************************************************/
+int __stdcall WTY_GetVehicleInfo(char *chWTYIP,
+								 char *chPlate,	
+								 char *chColor,
+								 void *chFullImage ,	
+								 int *nFullLen, 
+								 void *chPlateImage,
+								 int *nPlateLen);
+
+
+/************************************************************************/
+/* 回调函数: 注册接收识别数据回调函数									*/
+/*		Parameters:														*/
+/*			recResult[out]:		识别结果数据							*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*WTYDataExCallback)(plate_result *recResult);
+
+
+/************************************************************************/
+/* WTY_RegDataExEvent: 注册获取识别结果的回调函数						*/
+/*		Parameters:														*/
+/*			WTYData[in]:		处理识别结果的回调函数的指针			*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		接收清晰度较低,或分辨率较低的JPEG图像							*/
+/************************************************************************/
+void __stdcall WTY_RegDataExEvent(WTYDataExCallback WTYDataEx);
+
+
+
+
+
+/************************************************************************/
+/* 回调函数: 获取识别结果的回调函数										*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回识别结果的设备IP					*/
+/*			chPlate[out]:		车牌号码								*/
+/*			chColor[out]:		车牌颜色								*/
+/*			chFullImage[out]:	全景图数据								*/
+/*			nFullLen[out]:		全景图数据长度							*/
+/*			chPlateImage[out]:	车牌图数据								*/
+/*			nPlateLen[out]:		车牌图数据长度							*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*WTYDataCallback)(char *chWTYIP, 
+								char *chPlate,
+								char *chColor,
+								char *chFullImage,
+								int nFullLen, 
+								char *chPlateImage,
+								int nPlateLen);
+
+
+/************************************************************************/
+/* WTY_RegDataEvent: 注册获取识别结果的回调函数							*/
+/*		Parameters:														*/
+/*			WTYData[in]:		处理识别结果的回调函数的指针			*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall WTY_RegDataEvent(WTYDataCallback WTYData);
+
+
+/************************************************************************/
+/* WTY_SetTransContent: 控制相机设备上传内容					        */
+/*		Parameters:														*/
+/*			pCameraIP[in]:		要设置的设备IP							*/
+/*			nCameraPort[in]:	端口,默认8080							*/
+/*			nFullImg[in]:		全景图,0表示不传,1表示传				*/
+/*			nPlateImg[in]:		车牌图,0表示不传,1表示传				*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_SetTransContent (char *pCameraIP, int nCameraPort, int nFullImg, int nPlateImg);
+
+
+/************************************************************************/
+/* 回调函数: 获取Jpeg流的回调函数										*/
+/*		Parameters:														*/
+/*			JpegInfo[out]:		JPEG流数据信息							*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+typedef void (*WTYJpegCallback)(DevData_info *JpegInfo);
+
+
+/************************************************************************/
+/* WTY_RegJpegEvent: 注册获取Jpeg流的回调函数							*/
+/*		Parameters:														*/
+/*			JpegInfo[in]:		WTYJpegCallback类型回调函数				*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+void __stdcall WTY_RegJpegEvent(WTYJpegCallback JpegInfo);
+
+
+/************************************************************************/
+/* 函数: Jpeg流消息处理初始化											*/
+/*		Parameters:														*/
+/*			hWndHandle[in]:	接收消息的窗体句柄							*/
+/*			uMsg[in]:		用户自定义消息								*/
+/*							检测到有数据并准备好缓冲区数据后,			*/
+/*							用::PostMessage 给窗口hWndHandle发送uMsg	*/
+/*							消息,其中WPARAM参数为0,LPARAM参数为0		*/
+/*			chIp[in]:		相机IP地址								*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/************************************************************************/
+int __stdcall WTY_JpegMessageInit(HWND hWndHandle,UINT uMsg,char *chIp);
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP的相机的Jpeg流数据							*/
+/*		Parameters:														*/
+/*			chIp[in]:			相机IP地址								*/
+/*			chJpegBuf[in]:		存储JPEG的buffer						*/
+/*			nJpegBufLen[in]:	获取到的JPEG数据长度					*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			使用此函数前需先调用WTY_JpegMessageInit函数设置自定义消息	*/
+/************************************************************************/
+int __stdcall WTY_GetJpegStream(char *chIp, char *chJpegBuf, char *nJpegBufLen);
+
+
+/************************************************************************/
+/* WTY_SetNetworkCardBind: 手动绑定指定网卡IP							*/
+/*		Parameters:														*/
+/*			pCameraIP[in]		要绑定的网卡IP地址						*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:当PC机存在多网卡的情况时,又不想禁用为单网卡时,可通过该	*/
+/*				函数绑定与相机通讯的网卡IP								*/
+/************************************************************************/
+int __stdcall WTY_SetNetworkCardBind(char *pCameraIP);
+
+
+/************************************************************************/
+/* 回调函数: 获取报警信息的回调函数										*/
+/*		Parameters:														*/
+/*			alarmInfo[out]:		报警信息								*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			一台PC连接多台设备时,此函数仅需实现一次。当区分不同设备	*/
+/*			的Alarm时,可以通过输出参数中DevData_info中的chIp来区分		*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+typedef void (*WTYAlarmCallback)(DevData_info *alarmInfo);
+
+
+/************************************************************************/
+/* WTY_RegAlarmEvent: 注册获取报警信息的回调函数						*/
+/*		Parameters:														*/
+/*			AlarmInfo[in]:		WTYAlarmCallback类型回调函数			*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+
+void __stdcall WTY_RegAlarmEvent(WTYAlarmCallback AlarmInfo);
+
+
+/************************************************************************/
+/*WTY_SnapJpegFrame 快速抓拍一帧,两种保存方式,直接保存到固定目录或者	*/
+/*					保存到特定内存,要是保存特定内存模式需要传入内存		*/
+/*					最大值,两种方式可选									*/		
+/*		Parameters:														*/
+/*			chIp[in]		   相机的IP地址								*/
+/*			pSaveFileName[in]  路径和带JPEG后缀名的文件名,用于把当前	*/
+/*							   抓拍到的帧保存为特定文件  默认先匹配		*/
+/*							   文件名									*/
+/*          pSaveBuf[in]       用于保存当前帧在特定内存的,并且需要传输	*/
+/*							   内存可存储的最大值,当文件名为空的时候	*/
+/*							   这个才会生效。							*/  
+/*          Maxlen[in]         保存当前帧特定内存的最大值				*/
+/*		Return Value:   int												*/
+/*						   0	保存到特定目录成功						*/
+/*                         >0   保存到特定内存的数据的实际大小          */
+/*						  -1	失败									*/
+/************************************************************************/
+int __stdcall WTY_SnapJpegFrame(char *chIp,char *pSaveFileName,unsigned char *pSaveBuf,int Maxlen);
+
+
+/********************************************************************************/
+/* WTY_SetJpegStreamPlayOrStop: 设置jpeg流的开关							    */
+/*		Parameters:														        */
+/*		pCameraIP[in]		需要设置的相机设备的ip地址				            */
+/*		onoff[in]			jpeg流开关项,0表示关闭流,1表示打开流 2打开H264    */
+/*		Return Value:   	int											        */
+/*							0	成功									        */
+/*						  	非0	失败									        */
+/********************************************************************************/
+int __stdcall WTY_SetJpegStreamPlayOrStop(char *pCameraIP,int onoff);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

二進制
DLL/windows/32bit/WTY.dll


二進制
DLL/windows/32bit/WTY.lib


+ 717 - 0
DLL/windows/32bit/WTYSDK_WhiteList.h

@@ -0,0 +1,717 @@
+//用于车牌识别设备的白名单相关的操作
+
+#ifndef _WTYSDK_WHITE_LIST_H_
+#define _WTYSDK_WHITE_LIST_H_
+#if !defined(WIN32) && !defined(__stdcall)
+#define __stdcall
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+
+
+struct PlateInfo_t;
+struct plateTraffic_t;
+
+
+//---一些返回值错误信息定义
+//typedef enum
+//{
+//	WTYSDK_WLIST_ERROR_NO_ERROR=0,					//返回成功!
+//	WTYSDK_WLIST_ERROR_GENERAL=-1,					//调用底层接口库失败
+//	WTYSDK_WLIST_ERROR_IP_NULL=-2,					//IP地址为空
+//	WTYSDK_WLIST_ERROR_SIZEOUTOFRANGE=-3,			//每页大小超过100
+//	WTYSDK_WLIST_ERROR_MALLOCFAIL=-4,				//申请内存失败
+//	WTYSDK_WLIST_ERROR_IP_ILLEGALITY=-5	,			//IP地址非法
+//	WTYSDK_WLIST_DEVICEALREADYREGISTER=1,			//设备已经注册成功
+//	WTYSDK_WLIST_ERROR_DATA=-11,					//导入信息有误
+//	WTYSDK_WLIST_TIME_OUT=-12,						//select超时
+//	WTYSDK_WLIST_SERVER_CLOSED=-13,					//服务器端不存在
+//	WTYSDK_WLIST_WLISTSOCKET_ERROR=-21,				//套接字创建失败
+//	WTYSDK_WLIST_CONNECT_ERROR=-22,					//连接服务器失败
+//	WTYSDK_WLIST_SELECT_ERROR=-23,					//select失败
+//	WTYSDK_WLIST_RECV_ERROR=-24,					//接收数据返回失败
+//	WTYSDK_WLIST_SEND_ERROR=-25,					//发送数据失败
+//	WTYSDK_WLIST_DATABASE_ERROR		=1,				//数据库操作失败
+//	WTYSDK_WLIST_REQ_ERROR			=2,				//请求包格式错误
+//	WTYSDK_WLIST_RECIVE_TIMEOUT     =3,			    //接受包超时
+//	WTYSDK_WLIST_DATA_ERROR			=4,				//数据错误
+//
+//	WTYSDK_WLIST_ERROR_NOREGISTSPACE = -6,  // 无注册预留空间 最多100个 mdf by zhz
+//	WTYSDK_WLIST_ERROR_QUERYCONDITION = -7 // 查询条件出错(比如查询参数不合法) mdf by zhz
+//}
+//CLIENT_LPR_WLIST_ERROR;
+
+
+
+/*
+*	车牌类型宏定义
+*/
+#define WTYSDK_PLATETYPE_UNKNOWN        0           ///未知类型
+#define WTYSDK_PLATETYPE_BLUE           1           ///蓝牌
+#define WTYSDK_PLATETYPE_BLACK          2           ///黑牌
+#define WTYSDK_PLATETYPE_SINGLEYELLOW   3           ///单层黄牌
+#define WTYSDK_PLATETYPE_DOUBLEYELLOW   4           ///双层黄牌
+#define WTYSDK_PLATETYPE_JCPLATE        5			///警车车牌
+#define WTYSDK_PLATETYPE_WJPLATE        6			///武警车牌
+#define WTYSDK_PLATETYPE_INDIVIDUATION  7			///个性化车牌
+#define WTYSDK_PLATETYPE_SINGLEARMY		8			///单层军牌
+#define WTYSDK_PLATETYPE_DOUBLEARMY     9			///双层军牌
+#define WTYSDK_PLATETYPE_EMBASSY        10			///使馆车牌
+#define WTYSDK_PLATETYPE_HKOKATE		11			///香港车牌
+#define WTYSDK_PLATETYPE_TRACTOR        12			///拖拉机
+#define WTYSDK_PLATETYPE_AOMEN			13 			///澳门牌
+#define WTYSDK_PLATETYPE_INTERNAL       14			///内部牌
+#define WTYSDK_PLATETYPE_MHPALTE		15			///民航车牌
+#define WTYSDK_PLATETYPE_CONSULATE      16			///领馆车牌
+
+/*
+*	车辆颜色宏定义
+*/
+#define WTYSDK_CARCOLOR_UNKNOWN         0			///未知类型
+#define WTYSDK_CARCOLOR_BLUE			1			///蓝色
+#define WTYSDK_CARCOLOR_YELLOW			2			///黄色
+#define WTYSDK_CARCOLOR_WHITE			3			///白色
+#define WTYSDK_CARCOLOR_BLACK			4			///黑色
+#define WTYSDK_CARCOLOR_GREEN			5			///绿色
+
+
+/*
+*	定义用户、车辆信息结构体里面的数组大小
+*/
+#define WTYSDK_WLIST_CUSTOMER_NAME_LEN	20   //用户名字符串长度
+#define WTYSDK_WLIST_CUSTOMER_CODELEN	20	 //用户编码字符串长度
+
+#define WTYSDK_WLIST_VEHICLE_PLATE_LEN 16	//车牌字符串长度
+#define WTYSDK_WLIST_VEHICLE_CODE_LEN  20	//车辆编码字符串长度
+#define WTYSDK_WLIST_VEHICLE_TIME_LEN  20	//时间信息字符串长度
+#define WTYSDK_WLIST_HTTP_SELECTTRAFFIC_IP_DOMAIN 50    // http 查询 ip 域名长度
+#define WTYSDK_WLIST_TIME_SEG_MAX_NUM	8	//时间段字符串长度
+#define WTYSDK_WLIST_PERPAGE_MAXSIZE    100 //查询或者导入每页最大值
+#define WTYSDK_WLIST_PIC_SAVEPATH     100	//保存图片路径字符串长度
+#define WTYSDK_WLIST_STOREMAXVALUE    30000 //白名单保存用户和车辆信息最大值
+/*
+*	定义客户信息、用户信息、车辆通行信息结构体
+*/
+//黑白名单记录的客户信息
+typedef struct
+{
+	unsigned	uCustomerID;			//<客户在数据库的ID,用于修改、删除操作(主键)
+	char		strName[WTYSDK_WLIST_CUSTOMER_NAME_LEN];	//<客户姓名
+	char		strCode[WTYSDK_WLIST_CUSTOMER_CODELEN];	//<客户编码,唯一编码
+
+	char		reserved[256];//保留
+}
+WTYSDK_WLIST_CUSTOMER;
+
+//---以下一些做api函数参数的定义
+
+// 黑白名单客户信息查询条件
+typedef struct{
+	int 	UserID;											//客户ID
+	char	UserName[WTYSDK_WLIST_CUSTOMER_NAME_LEN];		//客户名字
+	char 	UserSerial[WTYSDK_WLIST_CUSTOMER_CODELEN];		//客户编号
+	int 	page;											//从0开始算第一页,依次类推
+	int 	pageSize;										//每页查询的数目
+	char	reserved[100];
+}
+WTYSDK_CUSTOMERQUERYCONDITION;
+
+
+//黑白名单中的车辆记录
+typedef struct
+{
+	unsigned	uVehicleID;										//<车辆在数据库的ID
+	char		strPlateID[WTYSDK_WLIST_VEHICLE_PLATE_LEN];			//<车牌字符串
+	unsigned	uCustomerID;									//<客户在数据库的ID,与WTYSDK_WLIST_CUSTOMER::uCustomerID对应
+	unsigned	bEnable;										//<该记录有效标记
+	//unsigned	bEnableTMEnable;								//<是否开启生效时间
+	//unsigned	bEnableTMOverdule;								//<是否开启过期时间
+	char		struTMCreate[WTYSDK_WLIST_VEHICLE_TIME_LEN];									//<该记录创建时间
+	char		struTMEnable[WTYSDK_WLIST_VEHICLE_TIME_LEN];									//<该记录生效时间
+	char		struTMOverdule[WTYSDK_WLIST_VEHICLE_TIME_LEN];									//<该记录过期时间
+	unsigned	bUsingTimeSeg;									//是否使用时间段匹配0不启用1
+	char        struTimeSeg[256];									//<周期时间段信息
+	int 		WeekTimeMatch;									//是否在时间段内使用周期时间段匹配0不启用1启用
+	//int 	TimeMatch;		是否使用时间段匹配0不启用1
+	unsigned	bAlarm;											//<是否触发报警(黑名单记录)
+	int			iColor;											//<车辆颜色
+	int			iPlateType;										//<车牌类型
+	int         iBlackList;										//是否黑名单 0不是 1是
+	char		strCode[WTYSDK_WLIST_VEHICLE_CODE_LEN];			//<车辆编码
+	char		strRemark[100];									//车辆备注说明,可以为空
+	char		reserved[256];									//保留
+}
+WTYSDK_WLIST_VEHICLE;
+//车辆 信息查询条件
+typedef struct{
+	int     PlateinfoID;		//车辆ID
+	int 	UserID;				//用户ID
+	char	UserName[20];		//客户名字
+	char 	UserSerial[20];		//客户编号
+	char 	PlateNumber[16];	//车牌号
+	char 	CarSerial[20];		//车辆代码
+	int 	Blacklist;
+	int 	conditionsflag;		//查询条件设置0 根据用户ID查询 1根据用户名查询 2根据用户编码 3根据车辆ID 4根据车牌号 5根据车辆代码  6查询所有
+	int 	page;				//查询页
+	int 	pageSize;			//每页大小,最大值100
+	char	reserved[256];
+}
+WTY_SDK_VEHICLEQUERYRECORD;
+
+
+//车辆通行信息
+typedef struct
+{
+	int iTrafficId;												//车辆通行ID,自增
+	int iVehicleID;												//车辆ID
+	int iCustomerID;											//用户ID
+	char strPlateNumber[WTYSDK_WLIST_VEHICLE_PLATE_LEN];		//车牌字符串
+	char strPassTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];			//车辆通过时间
+	int  iCarSigned;											//车辆标示,0外来车,1内部车
+	int iIsOpenSigno;											//是否开启道闸, 0未抬杆,1已抬杆
+	char strPicSavePath[WTYSDK_WLIST_PIC_SAVEPATH];				//图片保存路径
+	char		reserved[256];									//保留
+}
+WTYSDK_WLIST_TRAFFIC_INFO;
+//Http记录信息
+typedef struct
+{
+	int		TrafficID;				///*ID号:相机自己生成,无需客户指定 */
+	char  	PlateNumber[16];		///*车牌号码*/
+	char	RecDateTime[20];		///*识别时间*/
+	char	TransDateTime[20];		///*发送时间*/
+	int 	FullImageSize;			///*大图大小*/
+	int 	PlateImageSize;			///*小图大小*/
+	int 	IPtype;					///*使用IP还是域名0 IP */
+	char 	IP_Domain[50];			///*IP 或 域名*/
+	int		Port;					///*端口*/
+	char 	Path[200];				///*路径*/
+	int 	TransType;				///*传送方式  0 即时推送数据 1 异常数据重传*/
+	int 	state;					///*发送结果*/
+	int 	ReciveState;				///*接数据状态*/
+	int		DoorOpen;				///*是否开闸 0 不开 1 开*/
+	int		AbnormalID;				///*续传ID*/
+	char		reserved[256];									//保留
+}
+WTYSDK_WLIST_HTTP_INFO;
+
+//车辆通行信息查询条件
+typedef struct
+{
+	char	StartTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];		//*开始时间
+	char 	EndTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];		//*结束时间
+	char 	chPlateNumber[WTYSDK_WLIST_VEHICLE_PLATE_LEN];	//*车牌号
+	int 	page;											//*当前页数
+	int 	pageSize;										//*每页最多查询的大小,100,大于100返回-1
+	int     queryFlag;										//*0 时间段查询  1 车牌查询 2 分页查询
+	char	reserved[256];
+}
+WTY_SDK_TRAFFIC_QUERYCONDITION;
+//Http记录查询条件
+typedef struct
+{
+	char	StartTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];		//*开始时间
+	char 	EndTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];		//*结束时间
+	char 	chPlateNumber[WTYSDK_WLIST_VEHICLE_PLATE_LEN];	//*车牌号
+	char 	IP[16];		/*IP或者域名*/
+	char	Domain[50];//域名
+	int     ipOrDomain;//1 ip 2 域名
+	int 	state;				/*发送结果*/
+	//int     http_select_type;/*查询方式:1:根据ip或者域名查询 可选时间段:2:推送结果查询 可选时间段 3:发送失败重新上传 可选时间段 4:前一天没有上传成功,后一天成功的*/
+	int 	page;											//*当前页数
+	int 	pageSize;										//*每页最多查询的大小,100,大于100返回-1
+	int     queryFlag;										//*0 时间段查询  1 车牌查询 2 分页查询  3域名或者IP查询 4推送结果查询 5发送失败从新上传  6前一天没有成功,后一天成功
+	int     timeIsEnabled;///使能是否启用时间段匹配
+	char	reserved[256];
+}
+WTY_SDK_HTTP_QUERYCONDITION;
+
+//返回的信息类型
+typedef enum{
+	WTYSDK_WLIST_CB_TYPE_NO = 0,								//无效信息
+	WTYSDK_WLIST_CB_TYPE_CUSTOMER,								//客户信息
+	WTYSDK_WLIST_CB_TYPE_VEHICLE,								//车辆信息
+	WTYSDK_WLIST_CB_TYPE_TRAFFIC,								//车辆通行信息
+	WTYSDK_WLIST_CB_TYPE_ROWS									//车辆和用户综合信息
+}
+WTYSDK_WLIST_CB_TYPE;
+//车辆和用户信息
+typedef struct
+{
+	//int nSize;													//*批量导入车牌和用户数据条数,每次最多100条
+	WTYSDK_WLIST_VEHICLE nCarInfo;								//*批量导入车牌信息结构体数组指针
+	WTYSDK_WLIST_CUSTOMER nUserInfo;							//*批量导入用户信息结构体数组指针
+}
+WTYSDK_IMPORTROWS;
+//白名单批量导入失败标志
+typedef struct
+{
+	int		nRow;//导入失败的条数
+	char 		Result[WTYSDK_WLIST_STOREMAXVALUE];//0 数据库存储大于上限10000条,-1 用户信心错误,-2 车辆信息错误  -3重复车牌
+}
+WTYSDK_IMPORT_FAILDREASON;
+/*
+*  @brief 白名单表、客户信息表、车辆通行信息的查询反馈结果函数
+*  @param  [IN] type 回调函数返回的信息类型
+*  @param  [IN] pLP 查询的车辆信息记录
+*  @param  [IN] pCustomer 查询的客户信息记录
+*  @param  [IN] nTotal 单次查询返回的总数
+*  @param  [IN] pUserData 回调函数中的上下文
+*  @ingroup group_callback
+*/
+typedef void (*WTYSDK_WLIST_QUERY_CALLBACK)(WTYSDK_WLIST_CB_TYPE type, WTYSDK_WLIST_VEHICLE *pLP,
+														   WTYSDK_WLIST_CUSTOMER *pCustomer,
+														   WTYSDK_WLIST_TRAFFIC_INFO *pTrafficInfo,
+														  int nTotal,
+														  void *pUserData);
+
+/*
+*  @brief  HTTP的查询反馈结果函数
+*  @param  [IN] pTrafficInfo 查询的HTTP信息记录
+*  @param  [IN] nTotal 单次查询返回的总数
+*  @param  [IN] pUserData 回调函数中的上下文
+*  @ingroup group_callback
+*/
+typedef void (*WTYSDK_WLIST_QUERY_HTTP_CALLBACK)(WTYSDK_WLIST_HTTP_INFO *pTrafficInfo,int nTotal,void *pUserData);
+
+
+
+/*
+*  @brief 设置白名单表和客户信息表的查询结果回调
+*  @param  [IN] func 查询结果回调函数
+*  @param  [IN] pUserData 回调函数中的上下文  (用户传入指针)
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,其它表示失败
+*  @ingroup group_database
+*/
+int  __stdcall WTYSDK_WhiteListSetQueryCallBack(WTYSDK_WLIST_QUERY_CALLBACK func, void *pUserData,char *pServerIp);
+
+/*
+*  @brief 设置HTTP查询结果回调
+*  @param  [IN] func 查询结果回调函数
+*  @param  [IN] pUserData 回调函数中的上下文
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,其它表示失败
+*  @ingroup group_database
+*/
+int  __stdcall WTYSDK_WhiteListSetQueryHttpCallBack(WTYSDK_WLIST_QUERY_HTTP_CALLBACK func, void *pUserData,char *pServerIp);
+
+
+/*
+*  @brief  获取所有客户信息记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return >=0表示成功,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetCustomerCount(char *pServerIp);
+
+/*
+*  @brief  查询白名单表客户信息数据,客户信息通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] numbers 单次每页查询最大值100(1-100),数据多的话可以分页查询和显示
+*  @param  [IN] nPage   查询页数,当前页数从0开始代表第一页
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadCustomer(char *pServerIp,int numbers,int nPage);
+
+/*
+*  @brief 获取白名单客户信息,通过ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] iCustomerId 客户信息的ID
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadCustomerById(char *pServerIp,int iCustomerId); // id唯一
+
+/*
+*  @brief 获取白名单客户信息,通过客户编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strCode 客户信息的唯一编码
+*  @param  [IN] numbers 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @param  [IN] nPage   查询页数,当前页数从0开始代表第一页
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadCustomerByCode(char *pServerIp,char* strCode,int numbers,int nPage);
+/*
+*  @brief 获取白名单客户信息,通过客户名称
+*  @param  [IN] strName 客户信息的名称
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] numbers 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @param  [IN] nPage   查询页数,当前页数从0开始代表第一页
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadCustomerByName(char *pServerIp,char* strName,int numbers,int nPage);
+/*
+*  @brief 增加用户信息记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pNewCustomer 增加的用户信息的结构体  其中 uCustomerID 为自动生成 填写无用
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListInsertCustomer(char *pServerIp,WTYSDK_WLIST_CUSTOMER  pNewCustomer);
+/*
+*  @brief 删除白名单客户信息,通过ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] iCustomerId 客户信息的ID
+*  @return 0表示成功,<0表示失败
+*/
+
+int __stdcall WTY_WhiteListDeleteCustomerById(char *pServerIp,int iCustomerId);
+/*
+*  @brief 删除白名单客户信息,通过用户名
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strName 客户名
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteCustomerByName(char *pServerIp,char* strName);
+/*
+*  @brief 删除白名单客户信息,通过客户编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strCode 客户信息的唯一编码
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteCustomerByCode(char *pServerIp,char* strCode);
+
+
+/*
+*  @brief 更新白名单客户信息,通过ID   注:id系统生成,更新时候id必须对应,不能随意填
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pNewCustomer 客户信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateCustomerById(char *pServerIp,WTYSDK_WLIST_CUSTOMER  pNewCustomer);
+
+/*
+*  @brief 更新白名单客户信息,通过用户名  注:id系统生成,更新时候id必须对应,不能随意填
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pNewCustomer 客户信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateCustomerByName(char *pServerIp,WTYSDK_WLIST_CUSTOMER pNewCustomer);
+
+/*
+*  @brief 更新白名单客户信息,通过客户编码  id系统生成,更新时候id必须对应,不能随意填  此函数会忽略id,把所有用户编号相同的都改
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pNewCustomer 客户信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateCustomerByCode(char *pServerIp,WTYSDK_WLIST_CUSTOMER pNewCustomer);
+/*
+*  @brief  获取所有车辆通行记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetTrafficCount(char *pServerIp);
+/*
+*  @brief  查询所有车辆通行记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListTrafficLoad(char *pServerIp,WTY_SDK_TRAFFIC_QUERYCONDITION queryConditions);
+
+/*
+*  @brief  通过车辆通行ID删除车辆通行信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] tracfficId 车辆通行记录的ID
+*  @return 0表示成功,-1表示失败
+*/
+int __stdcall WTY_WhiteListTraffiDelete(char *pServerIp,int tracfficId);
+
+/*
+*  @brief  清空车辆通行信息
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListTraffiDeleteAll(char *pServerIp);
+
+/*
+*  @brief  批量导出车辆通行信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [OUT] pExportBuf 存储查询到的记录缓冲区
+*  @param  [OUT] nSucceedCount 存储查询成功的记录总条数
+*  @param  [IN] nIndexTotal  想要获取到的记录总数
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListTraffiExportAll(char *pServerIp,WTYSDK_WLIST_TRAFFIC_INFO *pExportBuf,int *nSucceedCount,int nIndexTotal);
+
+/*
+*  @brief  获取所有车辆信息记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return >=0表示成功获取到的数目,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetVehicleCount(char *pServerIp);
+
+/*
+*  @brief  查询白名单表车辆信息数据,客户信息通过回调函数返回   注:此函数为统查 只关注WTY_SDK_VEHICLEQUERYRECORD 内page 和pagesize
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicle(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+/*
+*  @brief 获取白名单车辆信息,通过车牌号码  注: 只关注WTY_SDK_VEHICLEQUERYRECORD 内page 和pagesize 车牌号码   查找车牌号关键字
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示成功获取车辆总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByPlateId(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+/*
+*  @brief 获取白名单车辆信息,通过车辆自增ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示成功获取车牌总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleById(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+
+/*
+*  @brief 获取白名单车辆信息,通过车辆编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strCode 车辆信息的编码
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示成功获取车辆总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByCode(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+/*
+*  @brief 获取白名单车辆信息,通过用户ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示成功获取车辆总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByUserId(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+
+/*
+*  @brief 获取白名单车辆信息,通过车辆用户名字
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示获取到的车辆总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByUserName(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+
+/*
+*  @brief 获取白名单车辆信息,通过用户编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strCode 车辆信息的编码
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示获取车牌总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByUserCode(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+/*
+*  @brief 更新白名单车辆信息,通过车牌号码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleInfo 车辆信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateVehicleByPlateId(char *pServerIp,WTYSDK_WLIST_VEHICLE strVehicleInfo);
+/*
+*  @brief 更新白名单车辆信息,通过车辆自增ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleInfo 车辆信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateVehicleById(char *pServerIp,WTYSDK_WLIST_VEHICLE  strVehicleInfo);
+/*
+*  @brief 更新白名单车辆信息,通过车辆编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleInfo 车辆信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateVehicleByCode(char *pServerIp,WTYSDK_WLIST_VEHICLE strVehicleInfo);
+/*
+*  @brief 增加白名单车辆信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleInfo 车辆信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListInsertVehicle(char *pServerIp,WTYSDK_WLIST_VEHICLE strVehicleInfo);
+
+/*
+*  @brief 删除白名单车辆信息,通过车牌号码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strPlateNumber 车牌号码
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleByPlateId(char *pServerIp,char* strPlateNumber);
+
+/*
+*  @brief 删除白名单车辆信息,通过车辆自增ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] iVehicleId 车辆信息自增ID
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleById(char *pServerIp,int iVehicleId);
+
+/*
+*  @brief 删除白名单车辆信息,通过车辆编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleCode 车辆信息编码
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleByCode(char *pServerIp,char* strVehicleCode);
+
+/*
+*  @brief 	清空白名单车辆信息
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListEmptyVehicle(char *pServerIp);
+
+/*
+*  @brief  清空所有车辆和用户信息
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListClearCustomerAndVehicles(char *pServerIp);
+
+/*
+*  @brief  从数据库删除客户的车辆信息,通过用户ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleByCustomerId(char *pServerIp ,int userId);
+
+/*
+*  @brief  从数据库删除客户以及客户的车辆信息,通过用户ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleAndUserByCustomerId(char *pServerIp ,int userId);
+
+/*
+*  @brief  获取白名单客户表客户和车辆记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return >=0表示成功,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetRowCount(char *pServerIp);
+/*
+*  @brief  查询白名单表车辆信息数据,客户信息通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nQueryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRows(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  查询白名单表车辆信息数据,通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nQueryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRowsCustomerByUserId(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  查询白名单表车辆信息数据,通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nQueryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRowsCustomerByUserCode(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  查询白名单表车辆信息数据,通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nQueryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRowsCustomerByUserName(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  通过车牌查询白名单用户信息和车辆信息,通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pCarPlate 查询的车牌号
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRowsCustomerAndCarByPlate(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  批量导入白名单表车辆信息和客户信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nImportRows 单次导入最大值100,数据多的话可以分次导入,大于100返回-1
+*  @param  [IN] MyBatchResult 白名单导入失败记录的位置,相应位置的Result值等于1为失败
+*  @param  [IN] importMaxValue 单次导入最多100条
+*  @return >=0表示成功的总数,<0表示失败
+*/
+// pImportRows 导入用户和车匹配信息,单次最多100条
+// faildReason [out]导入结果(WTYSDK_IMPORT_FAILDREASON参数nRow表示导入错误多少条,Result数组表示每一条的执行情况)
+// importMaxValue [int] 表示pImportRows中单次导入的条数(比如导入10条,这参数填入10)--最大100
+int  __stdcall WTY_WhiteListImportRows(char *pServerIp,WTYSDK_IMPORTROWS *pImportRows,WTYSDK_IMPORT_FAILDREASON *faildReason,int importMaxValue);
+/*
+*  @brief  批量导出白名单客户和车辆信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [OUT] nImportRows 导出的数据记录信息结构体指针,大小是结构体大小*nTotal
+*  @param  [OUT] pExportSucceed 导出成功的数目
+*  @param  [IN] WTY_WhiteListGetRowCount 获取到的记录的总条数
+*  @return >=0表示成功的总数,<0表示失败
+*/
+// pExportRows[out]  导出内容
+// pExportSucceed [out] 实际成功导出多少个
+// nTotal [in] 需要导出的数量(希望导出500条,就填500条)  以此来分页导出,每页最多100
+int  __stdcall WTY_WhiteListExportsRows(char *pServerIp,WTYSDK_IMPORTROWS *pExportRows,int *pExportSucceed,int nTotal);
+
+
+/*
+*  @brief  获取所有Http数据库记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return >=0表示获取条数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetHttpCount(char *pServerIp);
+/*
+*  @brief  查询Http数据记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListHttpLoad(char *pServerIp,WTY_SDK_HTTP_QUERYCONDITION queryConditions,int *nTotal);
+
+/*
+*  @brief  通过Http记录ID删除Http记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] tracfficId 车辆通行记录的ID
+*  @return 0表示成功,-1表示失败
+*/
+int __stdcall WTY_WhiteListHttpDelete(char *pServerIp,int tracfficId);
+
+/*
+*  @brief  清空Http记录
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListHttpDeleteAll(char *pServerIp);
+
+/*
+*  @brief  批量导出Http记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [OUT] pExportBuf 存储查询到的记录缓冲区
+*  @param  [OUT] nSucceedCount 存储查询成功的记录总条数
+*  @param  [IN] nIndexTotal 希望导出的个数
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListHttpExportAll(char *pServerIp,WTYSDK_WLIST_HTTP_INFO *pExportBuf,int *nSucceedCount,int nIndexTotal);
+
+/*
+*  @brief  根据车牌查询车辆信息(用于相机traffic)
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pPlate 车牌号
+*  @param  [OUT] pVehicleInfo 车辆信息
+*  @return 0表示成功但未找到,1表示操作成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListTrafficRequestByPlate(char *pServerIp, char *pPlate, PlateInfo_t* pVehicleInfo);
+
+/*
+*  @brief  写入通行量(用于相机traffic)
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pTrafficInfo 要插入的通信信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListTrafficInsertTrafficInfo(char* pServerIp, plateTraffic_t* pTrafficInfo);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

二進制
DLL/windows/32bit/WT_H264.dll


+ 155 - 0
DLL/windows/32bit/WT_H264.h

@@ -0,0 +1,155 @@
+#ifndef _WT_H264_H
+#define _WT_H264_H
+#include "stdafx.h"
+#include "targetver.h"
+typedef unsigned int WT_H264HANDLE;
+
+// 像素格式
+enum WT_PixelFormat_t{
+	WT_PIX_FMT_BGR24,	//BGR24
+	WT_PIX_FMT_YUV420P,//yuv420P
+};
+
+/*解码后图像信息*/
+typedef struct
+{
+	unsigned		uWidth;			/**<宽度*/
+	unsigned		uHeight;		/**<高度*/
+	unsigned		uPitch[6];		/**<图像宽度的一行像素所占内存字节数
+										EP_PIX_FMT_BGR24:
+										uPitch[0]: BGR一行像素所占内存字节数
+										
+										EP_PIX_FMT_YUV420P:
+										uPitch[0]: Y一行像素所占内存字节数
+										uPitch[1]: U一行像素所占内存字节数
+										uPitch[2]: V一行像素所占内存字节数
+									*/
+	unsigned		uPixFmt;		/**<图像像素格式,参考枚举定义图像格式(PixelFormat_t)*/
+	unsigned char	*pBuffer[6];	/**<图像内存的首地址
+										EP_PIX_FMT_BGR24:
+										pBuffer[0]: BGR首地址
+										
+										EP_PIX_FMT_YUV420P:
+										pBuffer[0]: Y首地址
+										pBuffer[1]: U首地址
+										pBuffer[2]: V首地址
+									*/
+}
+WT_ImageInfo_t;
+/*
+解码信息结构体
+*/
+typedef struct WT_H264Decode_t{
+	WT_H264HANDLE	handle;	//解码器句柄
+	WT_ImageInfo_t	imageInfo;//解码后图像信息
+	char			reserved[100];//预留
+}WT_H264Decode_t;
+
+/*******************************************
+函数名
+	WT_H264Init
+函数功能
+	初始化解码库
+参数
+	无
+返回值
+	成功:0
+	失败:<0
+特殊说明
+	此接口仅需调用一次
+*******************************************/
+int __stdcall WT_H264Init();
+
+/***************************************************************
+函数名称:
+	WT_H264Start
+函数功能
+	打开H.264流,并解码显示	
+参数
+	device_ip[in]:要连接的设备IP地址
+	show_window_hwnd[in]:要显示的控件句柄
+	pixelFormat[in]:设置H264解码后的像素格式参照像素格式定义
+	show_enable[in]:设置解码后是否主动显示到控件上 1:显示0:不显示
+
+返回值
+	 成功:返回H264句柄
+	失败:0
+*******************************************************************/
+WT_H264HANDLE __stdcall WT_H264Start(char *device_ip, HWND show_window_hwnd, enum WT_PixelFormat_t pixelFormat, int show_enable) ;
+/**************************************************************************************
+函数名称:
+	WT_H264End
+函数说明:
+	结束H264的链接
+参数:
+	decode_handle[in]:解码器的句柄
+返回值:
+	成功:0
+	失败:<0
+说明
+	断开H.264后,如果使用了控件显示,需要主动调用ShowWindow(TRUE)函数,使控件出来。
+**************************************************************************************/
+int __stdcall WT_H264End(WT_H264HANDLE decode_handle);
+/*************************************************************************************  
+函数名称
+		WT_H264Destory
+函数功能
+		销毁解码库,释放资源	
+参数
+	无
+返回值
+	无
+
+说明
+	销毁资源后,如果使用了控件显示,需要主动调用ShowWindow(TRUE)函数,使控件出来。
+***************************************************************************************/
+void __stdcall WT_H264Destory();
+
+/**************************************************************************************
+函数名称
+		WT_ChangeH264ShowWindows
+函数功能
+		更改H264显示的窗口
+参数
+		decode_handle:	解码器句柄
+		hwnd:			窗体控件句柄
+返回值
+		成功:0
+		失败:<0
+*************************************************************************************/
+int __stdcall WT_ChangeH264ShowWindows(WT_H264HANDLE decode_handle, HWND hwnd);
+
+/***********************************************************************
+说明
+	H.264流解码后的回调,通过该回调可以获取解码后的数据
+参数:
+	h264_decode_info[in]:解码后的数据和信息具体的参照WT_H264Decode_t结构体
+*/
+typedef void (*WT_H264DecodeCallback)(WT_H264Decode_t *h264_decode_info);
+/***************************************
+函数说明
+	注册H.264解码后回调函数
+参数
+	h264_decode_callback[in]:指向回调函数的指针
+返回值
+	无
+***************************************/
+void __stdcall WT_RegH264DecodeEvent(WT_H264DecodeCallback h264_decode_callback);
+/*********************************************************
+函数名称
+		WT_Snap_JPEG
+函数功能
+		抓拍,并保存一张JPEG图像
+参数
+	image_path[in]:存储图像的路径(包括文件名)
+	decode_handle[in]:已经打开的解码器句柄
+返回值
+	-1:解码器句柄不合法
+	-2:存储路径不合法
+	-3:	解码器没有打开
+	1:成功
+
+***********************************************************/
+int __stdcall WT_Snap_JPEG(char *image_path,WT_H264HANDLE decode_handle);
+
+#endif

二進制
DLL/windows/32bit/WT_H264.lib


+ 132 - 0
DLL/windows/32bit/WT_VideoDecode.h

@@ -0,0 +1,132 @@
+#ifndef __WT_VIDEO_DECODE_H_
+#define __WT_VIDEO_DECODE_H_
+#include "WT_H264.h"
+#if !defined(WIN32) && !defined(__stdcall)
+#define __stdcall
+#endif
+
+
+#if !defined(WIN32) && !defined(HWND)
+#define HWND void*
+#endif
+
+/*
+	JPEG图像的存储结构
+*/
+typedef struct
+{
+	WT_H264HANDLE	handle;
+	void *			user_ptr;
+	unsigned		uWidth;			/**<宽度*/
+	unsigned		uHeight;		/**<高度*/
+	unsigned char	*pBuffer;		
+	unsigned		size;	
+	char			device_ip[20];	//设备IP地址
+	char			reserved[100];
+}WT_JPEGInfo_t;
+/* **********************************************************************
+
+接口名称:
+		WT_Stream_Start
+接口功能:
+		打开视频流,并解码显示。
+参数:
+		device_ip[in]:相机IP地址
+		window_hwnd[in]:显示窗口的句柄,不使用的时候传NULL linux传入空
+		pixel_format[in]:解码后的像素格式,参照像素格式枚举定义
+		show_enable[in]:设置解码后是否主动显示到控件上   1:显示  0:不显示 linux不支持显示需要传入0
+		decode_type[in]:设置视频流类型,0:H.264流 1:JPEG流 2:H.265流
+		user_prt		用户自定义指针
+
+
+返回值
+		0:失败
+		>0:返回句柄
+****************************************************************************/
+WT_H264HANDLE __stdcall WT_Stream_Start(char *device_ip, HWND window_hwnd, enum WT_PixelFormat_t pixel_format, int show_enable,int decode_type,void *user_prt) ;
+
+/* ************************************************* 
+说明:
+	获取JPEg数据的回调函数定义
+参数:
+	jpeg_image[in]:JPEG数据		
+******************************************************/
+typedef void (*WT_JPEGCallback)(WT_JPEGInfo_t *jpeg_image);
+
+
+/******************************************************
+函数名称:
+	WT_RegJPEGEvent
+函数功能:
+	注册JPEG回调函数
+参数:
+	jpeg_call_back[in]:指向JPEG回调函数的指针
+返回值:1
+*********************************************************/
+int __stdcall WT_RegJPEGEvent(WT_JPEGCallback jpeg_call_back);
+
+
+
+
+/****************************************************
+函数名称:
+	WT_RegH264DecodeEvent_EX
+函数功能:
+	为已经打开的H.264解码器,单独传入回调函数
+参数:
+	h264_decode_callback[in]:H.264解码回调函数
+	h264_decode_handle[in]:解码器句柄
+返回值:
+	-1失败
+	1成功
+****************************************************/
+int __stdcall WT_RegH264DecodeEvent_EX(WT_H264DecodeCallback h264_decode_callback,WT_H264HANDLE h264_decode_handle);
+/******************************************************
+函数名称:
+	WT_RegJPEGEvent_EX
+函数功能:
+	注册单路JPEG回调函数
+参数:
+	jpeg_call_back[in]:指向JPEG回调函数的指针
+	decode_handle[in]:解码器句柄
+返回值:1
+*********************************************************/
+int __stdcall WT_RegJPEGEvent_EX(WT_JPEGCallback jpeg_call_back,WT_H264HANDLE decode_handle);
+
+/***************************************************************
+函数名称:
+	WT_H264Start_EX
+函数功能
+	指定RTSP端口打开H.264流,并解码显示
+参数
+	device_ip[in]:要连接的设备IP地址
+	show_window_hwnd[in]:要显示的控件句柄linux传入空
+	pixelFormat[in]:设置H264解码后的像素格式参照像素格式定义
+	show_enable[in]:设置解码后是否主动显示到控件上 1:显示0:不显示linux不支持显示需要传入0
+	port[in]:RTSP端口
+返回值
+	 成功:返回H264句柄
+	失败:0
+*****************************************************************/
+WT_H264HANDLE __stdcall WT_H264Start_EX(char *device_ip, HWND show_window_hwnd, enum WT_PixelFormat_t pixelFormat, int show_enable,int port);
+/* **********************************************************************
+
+接口名称:
+		WT_Stream_Start_EX
+接口功能:
+		指定RTSP端口打开视频流,并解码显示。
+参数:
+		device_ip[in]:相机IP地址
+		window_hwnd[in]:显示窗口的句柄,不使用的时候传NULLlinux传入空
+		pixel_format[in]:解码后的像素格式,参照像素格式枚举定义
+		show_enable[in]:设置解码后是否主动显示到控件上   1:显示  0:不显示linux不支持显示需要传入0
+		decode_type[in]:设置视频流类型,0:H.264流 1:JPEG流 2:H.265流
+		user_prt		用户自定义指针
+		port		[in]:RTSP端口
+
+返回值
+		0:失败
+		>0:返回句柄
+****************************************************************************/
+WT_H264HANDLE __stdcall WT_Stream_Start_EX(char *device_ip, HWND window_hwnd, enum WT_PixelFormat_t pixel_format, int show_enable, int decode_type, void *user_prt, int port);
+#endif

+ 69 - 0
DLL/windows/64bit/BaseType.h

@@ -0,0 +1,69 @@
+#ifndef _BASE_TYPE_H
+#define _BASE_TYPE_H
+
+/* 车标定义 */
+enum CAR_LOGO
+{
+	CAR_LOGO_0 = 0,		// 未知
+	CAR_LOGO_1 = 1,		// 本田
+	CAR_LOGO_2 = 2,		// 比亚迪
+	CAR_LOGO_3 = 3,		// 丰田
+	CAR_LOGO_4 = 4,		// 江淮
+	CAR_LOGO_5 = 5,		// 雷克萨斯
+	CAR_LOGO_6 = 6,		// 铃木
+	CAR_LOGO_7 = 7,		// 马自达
+	CAR_LOGO_8 = 8,		// 奇瑞
+	CAR_LOGO_9 = 9,		// 起亚
+	CAR_LOGO_10 = 10,		// 日产
+	CAR_LOGO_11 = 11,	// 斯巴鲁
+	CAR_LOGO_12 = 12,	// 五菱
+	CAR_LOGO_13 = 13,	// 现代
+	CAR_LOGO_14 = 14,	// 一汽
+	CAR_LOGO_15 = 15,	// 长安
+	CAR_LOGO_16 = 16,	// 长城
+	CAR_LOGO_17 = 17,	// 奥迪
+	CAR_LOGO_18 = 18,	// 宝马
+	CAR_LOGO_19 = 19,	// 奔驰
+	CAR_LOGO_20 = 20,	// 标致
+	CAR_LOGO_21 = 21,	// 别克
+	CAR_LOGO_22 = 22,	// 大众
+	CAR_LOGO_23 = 23,	// 福特
+	CAR_LOGO_24 = 24,	// 东风
+	CAR_LOGO_25 = 25,	// 路虎
+	CAR_LOGO_26 = 26,	// 斯柯达
+	CAR_LOGO_27 = 27,	// 沃尔沃
+	CAR_LOGO_28 = 28,	// 雪佛兰
+	CAR_LOGO_29 = 29,	// 雪铁龙
+	CAR_LOGO_30 = 30,	// 福田
+	CAR_LOGO_31 = 31,	// 荣威
+	CAR_LOGO_32 = 32,	// 凯迪拉克
+	CAR_LOGO_33 = 33,	// 金杯
+	CAR_LOGO_34 = 34,	// 北汽
+	CAR_LOGO_35 = 35,	// 东南
+	CAR_LOGO_36 = 36,	// 三菱
+	CAR_LOGO_37 = 37,	// 吉利帝豪
+	CAR_LOGO_38 = 38,	// jeep
+	CAR_LOGO_39 = 39,	// mini
+	CAR_LOGO_40 = 40,	// 保时捷
+	CAR_LOGO_41 = 41,	// 哈弗
+	CAR_LOGO_42 = 42,	// 上汽大通
+	CAR_LOGO_50 = 50	// 特斯拉
+
+}CAR_LOGO;
+
+
+/* 车标定义 */
+enum CAR_MODEL
+{
+	CAR_MODEL_0 = 0,		// 未知
+	CAR_MODEL_1 = 1,		// 小轿车
+	CAR_MODEL_2 = 2,		// SUV
+	CAR_MODEL_3 = 3,		// 面包车
+	CAR_MODEL_4 = 4,		// 中巴车
+	CAR_MODEL_5 = 5,		// 大巴车
+	CAR_MODEL_6 = 6,		// 小货车
+	CAR_MODEL_7 = 7			// 大货车
+	
+}CAR_MODEL;
+
+#endif

+ 2 - 0
DLL/windows/64bit/KHT_Log/(null)/2022-04-21.txt

@@ -0,0 +1,2 @@
+15:42:47.722  (null):bind 0 port succeed, hsdk_socket->port = 0
+15:42:47.927  ûÓÐËѵ½µ½É豸

+ 17 - 0
DLL/windows/64bit/KHT_Log/0.0.0.0/2022-04-21.txt

@@ -0,0 +1,17 @@
+15:42:15.020  Config reconnection thread create success
+15:42:15.022  Reco result reconnection thread create success
+15:42:15.025  rs485 result reconnection thread create success
+15:42:15.025  gpio reconnection thread create success
+15:44:06.268  sdk destory
+15:45:29.379  Config reconnection thread create success
+15:45:29.380  Reco result reconnection thread create success
+15:45:29.381  rs485 result reconnection thread create success
+15:45:29.381  gpio reconnection thread create success
+15:50:34.900  Config reconnection thread create success
+15:50:34.901  Reco result reconnection thread create success
+15:50:34.902  rs485 result reconnection thread create success
+15:50:34.903  gpio reconnection thread create success
+15:56:08.736  Config reconnection thread create success
+15:56:08.753  Reco result reconnection thread create success
+15:56:08.753  rs485 result reconnection thread create success
+15:56:08.754  gpio reconnection thread create success

+ 4 - 0
DLL/windows/64bit/KHT_Log/0.0.0.0/2022-10-28.txt

@@ -0,0 +1,4 @@
+10:25:16.980  Config reconnection thread create success
+10:25:16.980  Reco result reconnection thread create success
+10:25:16.983  rs485 result reconnection thread create success
+10:25:16.983  gpio reconnection thread create success

+ 4 - 0
DLL/windows/64bit/KHT_Log/0.0.0.0/2022-11-11.txt

@@ -0,0 +1,4 @@
+11:02:04.978  Config reconnection thread create success
+11:02:04.992  Reco result reconnection thread create success
+11:02:05.006  rs485 result reconnection thread create success
+11:02:05.007  gpio reconnection thread create success

+ 8 - 0
DLL/windows/64bit/KHT_Log/0.0.0.0/2022-11-15.txt

@@ -0,0 +1,8 @@
+15:19:43.569  Config reconnection thread create success
+15:19:43.584  Reco result reconnection thread create success
+15:19:43.586  rs485 result reconnection thread create success
+15:19:43.586  gpio reconnection thread create success
+16:21:25.764  Config reconnection thread create success
+16:21:25.765  Reco result reconnection thread create success
+16:21:25.765  rs485 result reconnection thread create success
+16:21:25.766  gpio reconnection thread create success

+ 32 - 0
DLL/windows/64bit/KHT_Log/192.168.110.98/2022-10-28.txt

@@ -0,0 +1,32 @@
+10:25:17.216  download config file success
+10:25:17.216  192.168.110.98 Config result thread create success
+10:25:17.220  192.168.110.98 config connect success
+10:25:17.235  192.168.110.98: Reco result thread create success
+10:25:17.236  192.168.110.98 reco result connect success
+10:25:17.236  192.168.110.98: Reco result pro thread create success
+10:25:17.249  192.168.110.98 gpio thread create success
+10:25:17.249  192.168.110.98 gpio connect success
+10:25:17.265  192.168.110.98: rs485_1 result recv thread create success
+10:25:17.265  192.168.110.98:9110 rs485_1 connect success[1481254675]
+10:25:32.768  set SDK_CMD_TRIG success:1259482925
+10:25:33.189  łľĹĆşĹÂë: ÁÉH9F751
+10:25:40.442  set SDK_CMD_TRIG success:1259482925
+10:25:40.986  łľĹĆşĹÂë: ÁÉH9F751
+10:26:47.137  send RS485_1 data success:1481254675
+11:55:49.402  łľĹĆşĹÂë: ÁÉH9F751
+14:00:01.473  łľĹĆşĹÂë: ÁÉH9F751
+14:14:18.457  set SDK_CMD_TRIG success:1259482925
+14:14:18.898  łľĹĆşĹÂë: ÁÉH9F751
+14:38:23.003  łľĹĆşĹÂë: ÁÉH9F751
+14:38:38.038  łľĹĆşĹÂë: ÁÉH9F751
+14:38:58.979  łľĹĆşĹÂë: ÁÉH9F751
+14:39:16.736  łľĹĆşĹÂë: ÁÉH9F751
+14:39:31.478  łľĹĆşĹÂë: ÁÉH9F751
+14:39:46.680  łľĹĆşĹÂë: ÁÉH9F751
+14:40:12.922  łľĹĆşĹÂë: ÁÉH9F751
+14:40:54.283  łľĹĆşĹÂë: ÁÉH9F751
+14:41:12.039  łľĹĆşĹÂë: ÁÉH9F751
+14:41:48.829  łľĹĆşĹÂë: ÁÉH9F751
+14:42:23.316  łľĹĆşĹÂë: ÁÉH9F751
+14:42:53.076  łľĹĆşĹÂë: ÁÉH9F751
+15:03:18.939  łľĹĆşĹÂë: ÁÉH9F751

+ 662 - 0
DLL/windows/64bit/KHT_Log/192.168.110.98/2022-10-29.txt

@@ -0,0 +1,662 @@
+08:30:30.047  车牌号码: 桂R53701
+08:31:12.297  车牌号码: 赣LR5370
+08:31:28.711  车牌号码: 桂R53701
+08:32:41.637  车牌号码: 桂R5370L
+08:33:22.860  车牌号码: 川R53701
+10:13:32.462  车牌号码: 云HR5370
+10:43:57.535  车牌号码: 赣HR5370
+11:04:08.257  车牌号码: 川R5370F
+11:06:05.643  车牌号码: 鄂HR5370
+13:45:37.587  set SDK_CMD_TRIG success:1259482925
+13:45:38.111  车牌号码: 辽HR5370
+13:46:27.500  set SDK_CMD_GPIO success:1259482925
+17:51:40.270  车牌号码: 辽HR5370
+19:27:20.805  无牌车
+19:36:29.335  车牌号码: 辽HTF373
+20:30:43.178  车牌号码: 辽HTF373
+20:35:07.258  车牌号码: 辽HTF373
+20:36:26.728  车牌号码: 辽HTF373
+20:37:01.593  车牌号码: 辽HTF373
+20:37:17.019  车牌号码: 辽HTF373
+20:37:37.159  车牌号码: 辽HTF373
+20:38:00.974  车牌号码: 辽HTF373
+20:38:15.355  车牌号码: 辽HTF373
+20:38:39.142  车牌号码: 辽HTF373
+20:39:01.477  车牌号码: 辽HTF373
+20:39:19.288  车牌号码: 辽HTF373
+20:39:36.536  车牌号码: 辽HTF373
+20:39:49.451  车牌号码: 辽HTF373
+20:40:02.310  车牌号码: 辽HTF373
+20:40:16.129  车牌号码: 辽HTF373
+20:40:31.801  车牌号码: 辽HTF373
+20:40:45.991  车牌号码: 辽HTF373
+20:41:00.814  车牌号码: 辽HTF373
+20:41:13.481  车牌号码: 辽HTF373
+20:41:35.578  车牌号码: 辽HTF373
+20:41:52.152  车牌号码: 辽HTF373
+20:42:11.396  车牌号码: 辽HTF373
+20:42:24.348  车牌号码: 辽HTF373
+20:42:38.837  车牌号码: 辽HTF373
+20:42:51.494  车牌号码: 辽HTF373
+20:43:04.386  车牌号码: 辽HTF373
+20:43:20.894  车牌号码: 辽HTF373
+20:43:34.248  车牌号码: 辽HTF373
+20:43:50.264  车牌号码: 辽HTF373
+20:44:05.719  车牌号码: 辽HTF373
+20:44:18.388  车牌号码: 辽HTF373
+20:44:31.773  车牌号码: 辽HTF373
+20:44:45.401  车牌号码: 辽HTF373
+20:45:03.432  车牌号码: 辽HTF373
+20:45:17.169  车牌号码: 辽HTF373
+20:45:31.919  车牌号码: 辽HTF373
+20:45:46.869  车牌号码: 辽HTF373
+20:46:01.251  车牌号码: 辽HTF373
+20:46:14.787  车牌号码: 辽HTF373
+20:46:30.823  车牌号码: 辽HTF373
+20:46:45.251  车牌号码: 辽HTF373
+20:46:59.598  车牌号码: 辽HTF373
+20:47:12.291  车牌号码: 辽HTF373
+20:47:25.337  车牌号码: 辽HTF373
+20:47:57.121  车牌号码: 辽HTF373
+20:48:20.003  车牌号码: 辽HTF373
+20:48:34.286  车牌号码: 辽HTF373
+20:48:47.296  车牌号码: 辽HTF373
+20:49:08.245  车牌号码: 辽HTF373
+20:49:21.402  车牌号码: 辽HTF373
+20:49:34.479  车牌号码: 辽HTF373
+20:49:51.787  车牌号码: 辽HTF373
+20:50:07.812  车牌号码: 辽HTF373
+20:50:20.707  车牌号码: 辽HTF373
+20:50:36.896  车牌号码: 辽HTF373
+20:50:58.884  车牌号码: 辽HTF373
+20:51:12.476  车牌号码: 辽HTF373
+20:51:50.373  车牌号码: 辽HTF373
+20:57:13.777  车牌号码: 辽HTF373
+20:57:42.639  车牌号码: 辽HTF373
+20:57:55.760  车牌号码: 辽HTF373
+20:58:11.303  车牌号码: 辽HTF373
+20:58:26.690  车牌号码: 辽HTF373
+20:59:06.178  车牌号码: 辽HTF373
+20:59:26.130  车牌号码: 辽HTF373
+20:59:56.994  车牌号码: 辽HTF373
+21:00:20.512  车牌号码: 辽HTF373
+21:00:44.164  车牌号码: 辽HTF373
+21:02:14.955  车牌号码: 辽HTF373
+21:02:41.720  车牌号码: 辽HTF373
+21:03:45.865  车牌号码: 辽HTF373
+21:04:00.604  车牌号码: 辽HTF373
+21:05:24.120  车牌号码: 辽HTF373
+21:07:05.336  车牌号码: 辽HTF373
+21:09:23.095  车牌号码: 辽HTF373
+21:10:36.975  车牌号码: 辽HTF373
+21:10:52.602  车牌号码: 辽HTF373
+21:11:15.174  车牌号码: 辽HTF373
+21:14:32.583  车牌号码: 辽HTF373
+21:15:04.078  车牌号码: 辽HTF373
+21:15:28.033  车牌号码: 辽HTF373
+21:15:50.231  车牌号码: 辽HTF373
+21:16:10.295  车牌号码: 辽HTF373
+21:16:34.521  车牌号码: 辽HTF373
+21:17:38.975  车牌号码: 辽HTF373
+21:18:26.327  车牌号码: 辽HTF373
+21:18:40.792  车牌号码: 辽HTF373
+21:19:59.426  车牌号码: 辽HTF373
+21:20:12.275  车牌号码: 辽HTF373
+21:20:25.119  车牌号码: 辽HTF373
+21:20:43.697  车牌号码: 辽HTF373
+21:21:00.375  车牌号码: 辽HTF373
+21:21:13.067  车牌号码: 辽HTF373
+21:21:25.764  车牌号码: 辽HTF373
+21:21:43.853  车牌号码: 辽HTF373
+21:22:00.066  车牌号码: 辽HTF373
+21:22:14.573  车牌号码: 辽HTF373
+21:22:28.083  车牌号码: 辽HTF373
+21:23:06.811  车牌号码: 辽HTF373
+21:23:24.688  车牌号码: 辽HTF373
+21:23:41.202  车牌号码: 辽HTF373
+21:23:54.157  车牌号码: 辽HTF373
+21:24:11.081  车牌号码: 辽HTF373
+21:24:23.842  车牌号码: 辽HTF373
+21:24:42.945  车牌号码: 辽HTF373
+21:24:56.883  车牌号码: 辽HTF373
+21:25:15.967  车牌号码: 辽HTF373
+21:25:29.705  车牌号码: 辽HTF373
+21:25:42.565  车牌号码: 辽HTF373
+21:26:17.215  车牌号码: 辽HTF373
+21:26:30.827  车牌号码: 辽HTF373
+21:26:45.333  车牌号码: 辽HTF373
+21:26:59.494  车牌号码: 辽HTF373
+21:27:13.432  车牌号码: 辽HTF373
+21:27:34.350  车牌号码: 辽HTF373
+21:27:50.658  车牌号码: 辽HTF373
+21:28:44.506  车牌号码: 辽HTF373
+21:29:16.965  车牌号码: 辽HTF373
+21:29:31.097  车牌号码: 辽HTF373
+21:29:47.118  车牌号码: 辽HTF373
+21:29:59.732  车牌号码: 辽HTF373
+21:30:12.508  车牌号码: 辽HTF373
+21:30:25.341  车牌号码: 辽HTF373
+21:30:38.016  车牌号码: 辽HTF373
+21:31:02.726  车牌号码: 辽HTF373
+21:31:16.050  车牌号码: 辽HTF373
+21:31:28.647  车牌号码: 辽HTF373
+21:31:44.629  车牌号码: 辽HTF373
+21:32:05.512  车牌号码: 辽HTF373
+21:32:23.199  车牌号码: 辽HTF373
+21:32:36.744  车牌号码: 辽HTF373
+21:32:50.158  车牌号码: 辽HTF373
+21:33:02.840  车牌号码: 辽HTF373
+21:33:23.250  车牌号码: 辽HTF373
+21:33:35.862  车牌号码: 辽HTF373
+21:33:48.465  车牌号码: 辽HTF373
+21:34:08.263  车牌号码: 辽HTF373
+21:34:23.010  车牌号码: 辽HTF373
+21:35:02.326  车牌号码: 辽HTF373
+21:35:21.194  车牌号码: 辽HTF373
+21:35:46.011  车牌号码: 辽HTF373
+21:36:10.984  车牌号码: 辽HTF373
+21:36:32.501  车牌号码: 辽HTF373
+21:36:49.148  车牌号码: 辽HTF373
+21:37:06.016  车牌号码: 辽HTF373
+21:37:21.093  车牌号码: 辽HTF373
+21:37:35.830  车牌号码: 辽HTF373
+21:37:49.482  车牌号码: 辽HTF373
+21:38:06.068  车牌号码: 辽HTF373
+21:38:34.729  车牌号码: 辽HTF373
+21:38:47.557  车牌号码: 辽HTF373
+21:39:00.281  车牌号码: 辽HTF373
+21:39:17.530  车牌号码: 辽HTF373
+21:39:33.794  车牌号码: 辽HTF373
+21:39:48.227  车牌号码: 辽HTF373
+21:40:03.865  车牌号码: 辽HTF373
+21:40:17.194  车牌号码: 辽HTF373
+21:40:43.166  车牌号码: 辽HTF373
+21:41:00.631  车牌号码: 辽HTF373
+21:41:35.168  车牌号码: 辽HTF373
+21:41:47.791  车牌号码: 辽HTF373
+21:42:01.299  车牌号码: 辽HTF373
+21:42:28.373  车牌号码: 辽HTF373
+21:42:49.889  车牌号码: 辽HTF373
+21:43:06.752  车牌号码: 辽HTF373
+21:43:30.367  车牌号码: 辽HTF373
+21:43:54.471  车牌号码: 辽HTF373
+21:44:08.972  车牌号码: 辽HTF373
+21:44:24.878  车牌号码: 辽HTF373
+21:44:37.862  车牌号码: 辽HTF373
+21:44:57.641  车牌号码: 辽HTF373
+21:45:16.419  车牌号码: 辽HTF373
+21:45:29.999  车牌号码: 辽HTF373
+21:45:43.727  车牌号码: 辽HTF373
+21:46:01.026  车牌号码: 辽HTF373
+21:46:25.814  车牌号码: 辽HTF373
+21:46:41.326  车牌号码: 辽HTF373
+21:47:02.129  车牌号码: 辽HTF373
+21:47:15.365  车牌号码: 辽HTF373
+21:48:15.763  车牌号码: 辽HTF373
+21:48:35.185  车牌号码: 辽HTF373
+21:48:48.326  车牌号码: 辽HTF373
+21:49:01.046  车牌号码: 辽HTF373
+21:49:27.362  车牌号码: 辽HTF373
+21:49:51.150  车牌号码: 辽HTF373
+21:50:09.596  车牌号码: 辽HTF373
+21:50:34.917  车牌号码: 辽HTF373
+21:50:49.512  车牌号码: 辽HTF373
+21:51:22.116  车牌号码: 辽HTF373
+21:51:35.754  车牌号码: 辽HTF373
+21:52:11.028  车牌号码: 辽HTF373
+21:52:25.703  车牌号码: 辽HTF373
+21:52:49.428  车牌号码: 辽HTF373
+21:53:11.944  车牌号码: 辽HTF373
+21:53:31.750  车牌号码: 辽HTF373
+21:54:07.048  车牌号码: 辽HTF373
+21:54:37.787  车牌号码: 辽HTF373
+21:54:51.316  车牌号码: 辽HTF373
+21:55:04.442  车牌号码: 辽HTF373
+21:55:17.433  车牌号码: 辽HTF373
+21:55:30.256  车牌号码: 辽HTF373
+21:55:48.959  车牌号码: 辽HTF373
+21:56:02.579  车牌号码: 辽HTF373
+21:56:17.435  车牌号码: 辽HTF373
+21:56:30.070  车牌号码: 辽HTF373
+21:56:59.315  车牌号码: 辽HTF373
+21:57:14.994  车牌号码: 辽HTF373
+21:57:32.198  车牌号码: 辽HTF373
+21:57:46.899  车牌号码: 辽HTF373
+21:57:59.463  车牌号码: 辽HTF373
+21:58:14.136  车牌号码: 辽HTF373
+21:58:47.489  车牌号码: 辽HTF373
+21:59:04.263  车牌号码: 辽HTF373
+21:59:22.235  车牌号码: 辽HTF373
+21:59:41.938  车牌号码: 辽HTF373
+22:00:04.444  车牌号码: 辽HTF373
+22:00:17.642  车牌号码: 辽HTF373
+22:00:30.269  车牌号码: 辽HTF373
+22:00:43.121  车牌号码: 辽HTF373
+22:00:56.857  车牌号码: 辽HTF373
+22:01:11.716  车牌号码: 辽HTF373
+22:01:24.686  车牌号码: 辽HTF373
+22:01:37.430  车牌号码: 辽HTF373
+22:02:02.357  车牌号码: 辽HTF373
+22:02:15.397  车牌号码: 辽HTF373
+22:02:41.003  车牌号码: 辽HTF373
+22:02:57.557  车牌号码: 辽HTF373
+22:03:10.671  车牌号码: 辽HTF373
+22:03:31.307  车牌号码: 辽HTF373
+22:03:45.848  车牌号码: 辽HTF373
+22:03:58.683  车牌号码: 辽HTF373
+22:04:12.536  车牌号码: 辽HTF373
+22:04:30.140  车牌号码: 辽HTF373
+22:04:49.885  车牌号码: 辽HTF373
+22:05:08.420  车牌号码: 辽HTF373
+22:05:27.162  车牌号码: 辽HTF373
+22:05:39.858  车牌号码: 辽HTF373
+22:05:52.659  车牌号码: 辽HTF373
+22:06:05.447  车牌号码: 辽HTF373
+22:06:21.919  车牌号码: 辽HTF373
+22:06:45.617  车牌号码: 辽HTF373
+22:07:04.543  车牌号码: 辽HTF373
+22:07:23.817  车牌号码: 辽HTF373
+22:07:44.688  车牌号码: 辽HTF373
+22:07:58.164  车牌号码: 辽HTF373
+22:08:25.593  车牌号码: 辽HTF373
+22:08:40.152  车牌号码: 辽HTF373
+22:08:54.940  车牌号码: 辽HTF373
+22:09:12.738  车牌号码: 辽HTF373
+22:09:31.054  车牌号码: 辽HTF373
+22:09:50.349  车牌号码: 辽HTF373
+22:10:03.189  车牌号码: 辽HTF373
+22:10:17.342  车牌号码: 辽HTF373
+22:10:30.127  车牌号码: 辽HTF373
+22:10:42.849  车牌号码: 辽HTF373
+22:11:01.086  车牌号码: 辽HTF373
+22:11:14.177  车牌号码: 辽HTF373
+22:11:27.231  车牌号码: 辽HTF373
+22:11:44.268  车牌号码: 辽HTF373
+22:11:59.750  车牌号码: 辽HTF373
+22:12:15.544  车牌号码: 辽HTF373
+22:12:28.948  车牌号码: 辽HTF373
+22:12:42.024  车牌号码: 辽HTF373
+22:13:06.008  车牌号码: 辽HTF373
+22:13:26.964  车牌号码: 辽HTF373
+22:13:39.749  车牌号码: 辽HTF373
+22:13:52.626  车牌号码: 辽HTF373
+22:14:05.465  车牌号码: 辽HTF373
+22:14:18.645  车牌号码: 辽HTF373
+22:14:33.543  车牌号码: 辽HTF373
+22:14:47.453  车牌号码: 辽HTF373
+22:15:01.809  车牌号码: 辽HTF373
+22:15:19.729  车牌号码: 辽HTF373
+22:15:33.042  车牌号码: 辽HTF373
+22:16:00.365  车牌号码: 辽HTF373
+22:16:20.361  车牌号码: 辽HTF373
+22:17:05.413  车牌号码: 辽HTF373
+22:17:18.681  车牌号码: 辽HTF373
+22:17:32.735  车牌号码: 辽HTF373
+22:17:47.746  车牌号码: 辽HTF373
+22:18:26.817  车牌号码: 辽HTF373
+22:18:45.501  车牌号码: 辽HTF373
+22:18:58.275  车牌号码: 辽HTF373
+22:19:14.354  车牌号码: 辽HTF373
+22:19:27.110  车牌号码: 辽HTF373
+22:20:15.640  车牌号码: 辽HTF373
+22:20:36.808  车牌号码: 辽HTF373
+22:20:56.075  车牌号码: 辽HTF373
+22:21:09.367  车牌号码: 辽HTF373
+22:21:27.253  车牌号码: 辽HTF373
+22:21:44.979  车牌号码: 辽HTF373
+22:21:58.752  车牌号码: 辽HTF373
+22:22:15.176  车牌号码: 辽HTF373
+22:22:28.036  车牌号码: 辽HTF373
+22:22:41.461  车牌号码: 辽HTF373
+22:22:58.814  车牌号码: 辽HTF373
+22:23:12.177  车牌号码: 辽HTF373
+22:23:24.859  车牌号码: 辽HTF373
+22:23:39.063  车牌号码: 辽HTF373
+22:23:51.955  车牌号码: 辽HTF373
+22:24:12.593  车牌号码: 辽HTF373
+22:24:32.024  车牌号码: 辽HTF373
+22:24:44.878  车牌号码: 辽HTF373
+22:24:57.817  车牌号码: 辽HTF373
+22:25:12.774  车牌号码: 辽HTF373
+22:25:35.707  车牌号码: 辽HTF373
+22:25:48.385  车牌号码: 辽HTF373
+22:26:04.783  车牌号码: 辽HTF373
+22:26:17.674  车牌号码: 辽HTF373
+22:26:30.314  车牌号码: 辽HTF373
+22:26:46.777  车牌号码: 辽HTF373
+22:26:59.447  车牌号码: 辽HTF373
+22:27:12.120  车牌号码: 辽HTF373
+22:27:35.591  车牌号码: 辽HTF373
+22:27:55.690  车牌号码: 辽HTF373
+22:28:11.165  车牌号码: 辽HTF373
+22:28:30.655  车牌号码: 辽HTF373
+22:28:43.267  车牌号码: 辽HTF373
+22:29:03.019  车牌号码: 辽HTF373
+22:29:21.468  车牌号码: 辽HTF373
+22:29:35.724  车牌号码: 辽HTF373
+22:29:48.375  车牌号码: 辽HTF373
+22:30:02.729  车牌号码: 辽HTF373
+22:30:22.211  车牌号码: 辽HTF373
+22:30:34.920  车牌号码: 辽HTF373
+22:30:48.419  车牌号码: 辽HTF373
+22:31:10.141  车牌号码: 辽HTF373
+22:31:29.898  车牌号码: 辽HTF373
+22:31:48.068  车牌号码: 辽HTF373
+22:32:03.115  车牌号码: 辽HTF373
+22:32:29.021  车牌号码: 辽HTF373
+22:32:53.702  车牌号码: 辽HTF373
+22:33:21.397  车牌号码: 辽HTF373
+22:33:45.245  车牌号码: 辽HTF373
+22:33:57.896  车牌号码: 辽HTF373
+22:34:14.711  车牌号码: 辽HTF373
+22:34:30.170  车牌号码: 辽HTF373
+22:34:43.805  车牌号码: 辽HTF373
+22:34:56.446  车牌号码: 辽HTF373
+22:35:10.108  车牌号码: 辽HTF373
+22:35:22.723  车牌号码: 辽HTF373
+22:35:48.085  车牌号码: 辽HTF373
+22:36:02.015  车牌号码: 辽HTF373
+22:36:17.516  车牌号码: 辽HTF373
+22:36:31.423  车牌号码: 辽HTF373
+22:36:47.218  车牌号码: 辽HTF373
+22:37:07.047  车牌号码: 辽HTF373
+22:37:23.228  车牌号码: 辽HTF373
+22:37:36.242  车牌号码: 辽HTF373
+22:37:49.861  车牌号码: 辽HTF373
+22:38:03.346  车牌号码: 辽HTF373
+22:38:21.493  车牌号码: 辽HTF373
+22:38:34.594  车牌号码: 辽HTF373
+22:38:47.972  车牌号码: 辽HTF373
+22:39:07.823  车牌号码: 辽HTF373
+22:39:20.498  车牌号码: 辽HTF373
+22:39:34.825  车牌号码: 辽HTF373
+22:40:04.380  车牌号码: 辽HTF373
+22:40:17.382  车牌号码: 辽HTF373
+22:40:31.049  车牌号码: 辽HTF373
+22:40:44.364  车牌号码: 辽HTF373
+22:41:00.986  车牌号码: 辽HTF373
+22:41:13.718  车牌号码: 辽HTF373
+22:41:27.711  车牌号码: 辽HTF373
+22:41:42.306  车牌号码: 辽HTF373
+22:41:57.359  车牌号码: 辽HTF373
+22:42:12.584  车牌号码: 辽HTF373
+22:42:27.330  车牌号码: 辽HTF373
+22:42:41.647  车牌号码: 辽HTF373
+22:43:07.302  车牌号码: 辽HTF373
+22:43:26.389  车牌号码: 辽HTF373
+22:43:39.714  车牌号码: 辽HTF373
+22:43:57.959  车牌号码: 辽HTF373
+22:44:11.640  车牌号码: 辽HTF373
+22:44:24.267  车牌号码: 辽HTF373
+22:44:36.923  车牌号码: 辽HTF373
+22:44:56.750  车牌号码: 辽HTF373
+22:45:11.248  车牌号码: 辽HTF373
+22:45:24.184  车牌号码: 辽HTF373
+22:45:39.644  车牌号码: 辽HTF373
+22:45:53.642  车牌号码: 辽HTF373
+22:46:06.468  车牌号码: 辽HTF373
+22:46:19.292  车牌号码: 辽HTF373
+22:46:35.329  车牌号码: 辽HTF373
+22:46:51.522  车牌号码: 辽HTF373
+22:47:05.063  车牌号码: 辽HTF373
+22:47:19.409  车牌号码: 辽HTF373
+22:47:35.396  车牌号码: 辽HTF373
+22:47:55.111  车牌号码: 辽HTF373
+22:48:14.830  车牌号码: 辽HTF373
+22:48:33.439  车牌号码: 辽HTF373
+22:48:50.409  车牌号码: 辽HTF373
+22:49:18.321  车牌号码: 辽HTF373
+22:49:31.532  车牌号码: 辽HTF373
+22:49:45.787  车牌号码: 辽HTF373
+22:50:00.672  车牌号码: 辽HTF373
+22:50:15.391  车牌号码: 辽HTF373
+22:50:29.393  车牌号码: 辽HTF373
+22:50:42.184  车牌号码: 辽HTF373
+22:51:07.035  车牌号码: 辽HTF373
+22:51:25.410  车牌号码: 辽HTF373
+22:51:39.805  车牌号码: 辽HTF373
+22:51:52.681  车牌号码: 辽HTF373
+22:52:09.047  车牌号码: 辽HTF373
+22:52:22.332  车牌号码: 辽HTF373
+22:52:36.361  车牌号码: 辽HTF373
+22:52:51.910  车牌号码: 辽HTF373
+22:53:04.526  车牌号码: 辽HTF373
+22:53:26.215  车牌号码: 辽HTF373
+22:53:41.807  车牌号码: 辽HTF373
+22:54:06.157  车牌号码: 辽HTF373
+22:54:20.945  车牌号码: 辽HTF373
+22:54:35.683  车牌号码: 辽HTF373
+22:54:55.183  车牌号码: 辽HTF373
+22:55:08.023  车牌号码: 辽HTF373
+22:55:25.547  车牌号码: 辽HTF373
+22:55:42.876  车牌号码: 辽HTF373
+22:56:08.955  车牌号码: 辽HTF373
+22:56:26.854  车牌号码: 辽HTF373
+22:56:41.482  车牌号码: 辽HTF373
+22:56:54.742  车牌号码: 辽HTF373
+22:57:11.490  车牌号码: 辽HTF373
+22:57:26.055  车牌号码: 辽HTF373
+22:57:41.718  车牌号码: 辽HTF373
+22:57:54.557  车牌号码: 辽HTF373
+22:58:07.365  车牌号码: 辽HTF373
+22:58:21.475  车牌号码: 辽HTF373
+22:58:45.278  车牌号码: 辽HTF373
+22:59:14.936  车牌号码: 辽HTF373
+22:59:42.610  车牌号码: 辽HTF373
+22:59:57.062  车牌号码: 辽HTF373
+23:00:09.929  车牌号码: 辽HTF373
+23:00:32.568  车牌号码: 辽HTF373
+23:00:50.339  车牌号码: 辽HTF373
+23:01:15.666  车牌号码: 辽HTF373
+23:01:28.588  车牌号码: 辽HTF373
+23:01:41.301  车牌号码: 辽HTF373
+23:01:55.436  车牌号码: 辽HTF373
+23:02:14.755  车牌号码: 辽HTF373
+23:02:28.621  车牌号码: 辽HTF373
+23:02:47.338  车牌号码: 辽HTF373
+23:02:59.970  车牌号码: 辽HTF373
+23:03:12.562  车牌号码: 辽HTF373
+23:03:26.897  车牌号码: 辽HTF373
+23:03:40.892  车牌号码: 辽HTF373
+23:03:53.468  车牌号码: 辽HTF373
+23:04:06.782  车牌号码: 辽HTF373
+23:04:21.700  车牌号码: 辽HTF373
+23:04:49.211  车牌号码: 辽HTF373
+23:05:04.706  车牌号码: 辽HTF373
+23:05:18.519  车牌号码: 辽HTF373
+23:05:36.839  车牌号码: 辽HTF373
+23:06:17.307  车牌号码: 辽HTF373
+23:06:33.685  车牌号码: 辽HTF373
+23:06:52.553  车牌号码: 辽HTF373
+23:07:14.438  车牌号码: 辽HTF373
+23:07:27.215  车牌号码: 辽HTF373
+23:07:39.862  车牌号码: 辽HTF373
+23:07:52.632  车牌号码: 辽HTF373
+23:08:05.377  车牌号码: 辽HTF373
+23:08:18.118  车牌号码: 辽HTF373
+23:08:31.793  车牌号码: 辽HTF373
+23:08:46.262  车牌号码: 辽HTF373
+23:08:59.957  车牌号码: 辽HTF373
+23:09:16.396  车牌号码: 辽HTF373
+23:09:29.244  车牌号码: 辽HTF373
+23:09:44.344  车牌号码: 辽HTF373
+23:09:57.409  车牌号码: 辽HTF373
+23:10:11.913  车牌号码: 辽HTF373
+23:10:24.813  车牌号码: 辽HTF373
+23:10:42.089  车牌号码: 辽HTF373
+23:11:15.204  车牌号码: 辽HTF373
+23:11:28.032  车牌号码: 辽HTF373
+23:11:45.253  车牌号码: 辽HTF373
+23:11:58.931  车牌号码: 辽HTF373
+23:12:11.746  车牌号码: 辽HTF373
+23:12:25.098  车牌号码: 辽HTF373
+23:12:37.737  车牌号码: 辽HTF373
+23:12:50.875  车牌号码: 辽HTF373
+23:13:09.920  车牌号码: 辽HTF373
+23:13:24.481  车牌号码: 辽HTF373
+23:13:37.526  车牌号码: 辽HTF373
+23:14:07.436  车牌号码: 辽HTF373
+23:14:22.758  车牌号码: 辽HTF373
+23:14:40.794  车牌号码: 辽HTF373
+23:14:53.420  车牌号码: 辽HTF373
+23:15:10.956  车牌号码: 辽HTF373
+23:15:23.923  车牌号码: 辽HTF373
+23:15:42.218  车牌号码: 辽HTF373
+23:15:55.074  车牌号码: 辽HTF373
+23:16:08.295  车牌号码: 辽HTF373
+23:16:27.506  车牌号码: 辽HTF373
+23:16:42.507  车牌号码: 辽HTF373
+23:16:55.151  车牌号码: 辽HTF373
+23:17:15.840  车牌号码: 辽HTF373
+23:17:29.539  车牌号码: 辽HTF373
+23:17:45.028  车牌号码: 辽HTF373
+23:18:04.846  车牌号码: 辽HTF373
+23:18:25.988  车牌号码: 辽HTF373
+23:18:39.604  车牌号码: 辽HTF373
+23:18:54.506  车牌号码: 辽HTF373
+23:19:09.378  车牌号码: 辽HTF373
+23:19:27.181  车牌号码: 辽HTF373
+23:19:40.637  车牌号码: 辽HTF373
+23:19:54.991  车牌号码: 辽HTF373
+23:20:15.062  车牌号码: 辽HTF373
+23:20:28.889  车牌号码: 辽HTF373
+23:20:42.504  车牌号码: 辽HTF373
+23:21:01.660  车牌号码: 辽HTF373
+23:21:15.552  车牌号码: 辽HTF373
+23:21:31.714  车牌号码: 辽HTF373
+23:21:45.059  车牌号码: 辽HTF373
+23:21:58.264  车牌号码: 辽HTF373
+23:22:14.691  车牌号码: 辽HTF373
+23:22:45.870  车牌号码: 辽HTF373
+23:22:58.733  车牌号码: 辽HTF373
+23:23:11.793  车牌号码: 辽HTF373
+23:23:27.011  车牌号码: 辽HTF373
+23:23:39.838  车牌号码: 辽HTF373
+23:23:53.722  车牌号码: 辽HTF373
+23:24:10.504  车牌号码: 辽HTF373
+23:24:23.382  车牌号码: 辽HTF373
+23:24:50.141  车牌号码: 辽HTF373
+23:25:05.929  车牌号码: 辽HTF373
+23:25:18.846  车牌号码: 辽HTF373
+23:25:35.440  车牌号码: 辽HTF373
+23:25:48.628  车牌号码: 辽HTF373
+23:26:01.900  车牌号码: 辽HTF373
+23:26:16.490  车牌号码: 辽HTF373
+23:26:38.889  车牌号码: 辽HTF373
+23:26:51.660  车牌号码: 辽HTF373
+23:27:04.544  车牌号码: 辽HTF373
+23:27:17.130  车牌号码: 辽HTF373
+23:27:30.001  车牌号码: 辽HTF373
+23:27:51.899  车牌号码: 辽HTF373
+23:28:07.014  车牌号码: 辽HTF373
+23:28:23.330  车牌号码: 辽HTF373
+23:28:37.841  车牌号码: 辽HTF373
+23:28:52.354  车牌号码: 辽HTF373
+23:29:05.094  车牌号码: 辽HTF373
+23:29:19.192  车牌号码: 辽HTF373
+23:29:49.019  车牌号码: 辽HTF373
+23:30:03.801  车牌号码: 辽HTF373
+23:30:34.410  车牌号码: 辽HTF373
+23:30:49.671  车牌号码: 辽HTF373
+23:31:15.966  车牌号码: 辽HTF373
+23:31:32.400  车牌号码: 辽HTF373
+23:31:45.789  车牌号码: 辽HTF373
+23:31:59.309  车牌号码: 辽HTF373
+23:32:13.515  车牌号码: 辽HTF373
+23:32:26.787  车牌号码: 辽HTF373
+23:32:39.457  车牌号码: 辽HTF373
+23:32:54.362  车牌号码: 辽HTF373
+23:33:06.951  车牌号码: 辽HTF373
+23:33:20.872  车牌号码: 辽HTF373
+23:33:36.759  车牌号码: 辽HTF373
+23:33:54.559  车牌号码: 辽HTF373
+23:34:07.448  车牌号码: 辽HTF373
+23:34:24.608  车牌号码: 辽HTF373
+23:34:41.130  车牌号码: 辽HTF373
+23:34:54.497  车牌号码: 辽HTF373
+23:35:08.059  车牌号码: 辽HTF373
+23:35:26.399  车牌号码: 辽HTF373
+23:35:39.054  车牌号码: 辽HTF373
+23:35:52.017  车牌号码: 辽HTF373
+23:36:14.316  车牌号码: 辽HTF373
+23:36:28.190  车牌号码: 辽HTF373
+23:36:42.119  车牌号码: 辽HTF373
+23:36:55.472  车牌号码: 辽HTF373
+23:37:09.832  车牌号码: 辽HTF373
+23:37:25.601  车牌号码: 辽HTF373
+23:37:38.298  车牌号码: 辽HTF373
+23:37:58.970  车牌号码: 辽HTF373
+23:38:21.943  车牌号码: 辽HTF373
+23:38:45.028  车牌号码: 辽HTF373
+23:39:03.264  车牌号码: 辽HTF373
+23:39:17.239  车牌号码: 辽HTF373
+23:39:30.289  车牌号码: 辽HTF373
+23:39:48.102  车牌号码: 辽HTF373
+23:40:03.820  车牌号码: 辽HTF373
+23:40:18.046  车牌号码: 辽HTF373
+23:40:33.315  车牌号码: 辽HTF373
+23:40:46.216  车牌号码: 辽HTF373
+23:41:05.554  车牌号码: 辽HTF373
+23:41:20.297  车牌号码: 辽HTF373
+23:41:35.901  车牌号码: 辽HTF373
+23:41:48.885  车牌号码: 辽HTF373
+23:42:01.737  车牌号码: 辽HTF373
+23:42:14.427  车牌号码: 辽HTF373
+23:42:30.388  车牌号码: 辽HTF373
+23:42:45.084  车牌号码: 辽HTF373
+23:42:58.048  车牌号码: 辽HTF373
+23:43:11.966  车牌号码: 辽HTF373
+23:43:25.389  车牌号码: 辽HTF373
+23:43:44.210  车牌号码: 辽HTF373
+23:44:03.958  车牌号码: 辽HTF373
+23:44:30.659  车牌号码: 辽HTF373
+23:44:43.896  车牌号码: 辽HTF373
+23:44:57.850  车牌号码: 辽HTF373
+23:45:16.481  车牌号码: 辽HTF373
+23:45:29.222  车牌号码: 辽HTF373
+23:45:46.635  车牌号码: 辽HTF373
+23:45:59.527  车牌号码: 辽HTF373
+23:46:15.227  车牌号码: 辽HTF373
+23:46:28.367  车牌号码: 辽HTF373
+23:46:42.968  车牌号码: 辽HTF373
+23:46:56.110  车牌号码: 辽HTF373
+23:47:14.414  车牌号码: 辽HTF373
+23:47:28.076  车牌号码: 辽HTF373
+23:47:44.029  车牌号码: 辽HTF373
+23:47:58.321  车牌号码: 辽HTF373
+23:48:17.186  车牌号码: 辽HTF373
+23:48:32.912  车牌号码: 辽HTF373
+23:48:45.988  车牌号码: 辽HTF373
+23:49:01.607  车牌号码: 辽HTF373
+23:49:14.439  车牌号码: 辽HTF373
+23:49:27.051  车牌号码: 辽HTF373
+23:49:40.912  车牌号码: 辽HTF373
+23:49:55.309  车牌号码: 辽HTF373
+23:50:16.739  车牌号码: 辽HTF373
+23:50:29.546  车牌号码: 辽HTF373
+23:50:42.972  车牌号码: 辽HTF373
+23:51:00.610  车牌号码: 辽HTF373
+23:51:16.051  车牌号码: 辽HTF373
+23:51:45.454  车牌号码: 辽HTF373
+23:51:58.082  车牌号码: 辽HTF373
+23:52:10.774  车牌号码: 辽HTF373
+23:52:58.879  车牌号码: 辽HTF373
+23:53:22.322  车牌号码: 辽HTF373
+23:53:39.960  车牌号码: 辽HTF373
+23:54:08.832  车牌号码: 辽HTF373
+23:54:25.224  车牌号码: 辽HTF373
+23:54:48.141  车牌号码: 辽HTF373
+23:56:10.007  车牌号码: 辽HTF373
+23:56:28.255  车牌号码: 辽HTF373
+23:56:48.216  车牌号码: 辽HTF373
+23:57:01.523  车牌号码: 辽HTF373
+23:57:14.092  车牌号码: 辽HTF373
+23:57:32.394  车牌号码: 辽HTF373
+23:57:49.346  车牌号码: 辽HTF373
+23:58:02.565  车牌号码: 辽HTF373
+23:58:21.982  车牌号码: 辽HTF373
+23:58:35.444  车牌号码: 辽HTF373
+23:59:05.953  车牌号码: 辽HTF373
+23:59:25.732  车牌号码: 辽HTF373
+23:59:38.489  车牌号码: 辽HTF373
+23:59:59.291  车牌号码: 辽HTF373

+ 1166 - 0
DLL/windows/64bit/KHT_Log/192.168.110.98/2022-10-30.txt

@@ -0,0 +1,1166 @@
+00:00:12.344  车牌号码: 辽HTF373
+00:00:41.208  车牌号码: 辽HTF373
+00:00:54.073  车牌号码: 辽HTF373
+00:01:13.335  车牌号码: 辽HTF373
+00:01:28.110  车牌号码: 辽HTF373
+00:01:49.727  车牌号码: 辽HTF373
+00:02:12.335  车牌号码: 辽HTF373
+00:02:34.899  车牌号码: 辽HTF373
+00:02:54.902  车牌号码: 辽HTF373
+00:03:09.935  车牌号码: 辽HTF373
+00:03:22.660  车牌号码: 辽HTF373
+00:03:45.340  车牌号码: 辽HTF373
+00:03:58.456  车牌号码: 辽HTF373
+00:04:11.072  车牌号码: 辽HTF373
+00:04:24.591  车牌号码: 辽HTF373
+00:05:05.878  车牌号码: 辽HTF373
+00:05:18.533  车牌号码: 辽HTF373
+00:05:36.355  车牌号码: 辽HTF373
+00:05:54.415  车牌号码: 辽HTF373
+00:06:09.069  车牌号码: 辽HTF373
+00:06:22.941  车牌号码: 辽HTF373
+00:06:40.508  车牌号码: 辽HTF373
+00:07:01.458  车牌号码: 辽HTF373
+00:07:26.088  车牌号码: 辽HTF373
+00:07:58.144  车牌号码: 辽HTF373
+00:08:11.074  车牌号码: 辽HTF373
+00:08:24.291  车牌号码: 辽HTF373
+00:08:38.035  车牌号码: 辽HTF373
+00:08:52.539  车牌号码: 辽HTF373
+00:09:05.323  车牌号码: 辽HTF373
+00:09:25.384  车牌号码: 辽HTF373
+00:09:38.682  车牌号码: 辽HTF373
+00:09:51.529  车牌号码: 辽HTF373
+00:10:04.145  车牌号码: 辽HTF373
+00:10:17.020  车牌号码: 辽HTF373
+00:10:30.012  车牌号码: 辽HTF373
+00:10:51.090  车牌号码: 辽HTF373
+00:11:14.093  车牌号码: 辽HTF373
+00:11:27.004  车牌号码: 辽HTF373
+00:11:47.465  车牌号码: 辽HTF373
+00:12:05.871  车牌号码: 辽HTF373
+00:12:19.710  车牌号码: 辽HTF373
+00:12:42.679  车牌号码: 辽HTF373
+00:13:07.754  车牌号码: 辽HTF373
+00:13:20.626  车牌号码: 辽HTF373
+00:13:36.762  车牌号码: 辽HTF373
+00:13:57.928  车牌号码: 辽HTF373
+00:14:20.078  车牌号码: 辽HTF373
+00:14:32.960  车牌号码: 辽HTF373
+00:14:47.069  车牌号码: 辽HTF373
+00:15:04.289  车牌号码: 辽HTF373
+00:15:23.403  车牌号码: 辽HTF373
+00:15:43.083  车牌号码: 辽HTF373
+00:16:01.382  车牌号码: 辽HTF373
+00:16:14.143  车牌号码: 辽HTF373
+00:16:27.924  车牌号码: 辽HTF373
+00:16:41.411  车牌号码: 辽HTF373
+00:16:53.978  车牌号码: 辽HTF373
+00:17:07.187  车牌号码: 辽HTF373
+00:17:20.050  车牌号码: 辽HTF373
+00:17:33.868  车牌号码: 辽HTF373
+00:17:47.964  车牌号码: 辽HTF373
+00:18:00.602  车牌号码: 辽HTF373
+00:18:16.269  车牌号码: 辽HTF373
+00:18:32.678  车牌号码: 辽HTF373
+00:18:55.026  车牌号码: 辽HTF373
+00:19:07.659  车牌号码: 辽HTF373
+00:19:20.292  车牌号码: 辽HTF373
+00:19:35.101  车牌号码: 辽HTF373
+00:19:59.819  车牌号码: 辽HTF373
+00:20:12.677  车牌号码: 辽HTF373
+00:20:29.120  车牌号码: 辽HTF373
+00:20:43.066  车牌号码: 辽HTF373
+00:21:02.940  车牌号码: 辽HTF373
+00:21:21.445  车牌号码: 辽HTF373
+00:21:34.775  车牌号码: 辽HTF373
+00:21:49.891  车牌号码: 辽HTF373
+00:22:19.056  车牌号码: 辽HTF373
+00:22:33.526  车牌号码: 辽HTF373
+00:22:52.148  车牌号码: 辽HTF373
+00:23:05.126  车牌号码: 辽HTF373
+00:23:20.128  车牌号码: 辽HTF373
+00:23:35.084  车牌号码: 辽HTF373
+00:23:48.443  车牌号码: 辽HTF373
+00:24:01.865  车牌号码: 辽HTF373
+00:24:29.565  车牌号码: 辽HTF373
+00:24:51.082  车牌号码: 辽HTF373
+00:25:03.758  车牌号码: 辽HTF373
+00:25:21.188  车牌号码: 辽HTF373
+00:25:39.165  车牌号码: 辽HTF373
+00:25:53.003  车牌号码: 辽HTF373
+00:26:05.634  车牌号码: 辽HTF373
+00:26:20.148  车牌号码: 辽HTF373
+00:26:36.475  车牌号码: 辽HTF373
+00:26:49.090  车牌号码: 辽HTF373
+00:27:05.168  车牌号码: 辽HTF373
+00:27:19.642  车牌号码: 辽HTF373
+00:27:33.628  车牌号码: 辽HTF373
+00:27:54.275  车牌号码: 辽HTF373
+00:28:06.959  车牌号码: 辽HTF373
+00:28:22.424  车牌号码: 辽HTF373
+00:28:42.881  车牌号码: 辽HTF373
+00:28:55.987  车牌号码: 辽HTF373
+00:29:11.709  车牌号码: 辽HTF373
+00:29:27.522  车牌号码: 辽HTF373
+00:29:41.853  车牌号码: 辽HTF373
+00:30:01.575  车牌号码: 辽HTF373
+00:30:17.438  车牌号码: 辽HTF373
+00:30:30.568  车牌号码: 辽HTF373
+00:30:44.541  车牌号码: 辽HTF373
+00:30:58.421  车牌号码: 辽HTF373
+00:31:17.743  车牌号码: 辽HTF373
+00:31:32.235  车牌号码: 辽HTF373
+00:31:47.976  车牌号码: 辽HTF373
+00:32:13.618  车牌号码: 辽HTF373
+00:32:26.558  车牌号码: 辽HTF373
+00:32:43.809  车牌号码: 辽HTF373
+00:33:05.761  车牌号码: 辽HTF373
+00:33:20.229  车牌号码: 辽HTF373
+00:33:37.641  车牌号码: 辽HTF373
+00:33:50.418  车牌号码: 辽HTF373
+00:34:08.064  车牌号码: 辽HTF373
+00:34:21.284  车牌号码: 辽HTF373
+00:34:34.059  车牌号码: 辽HTF373
+00:34:46.767  车牌号码: 辽HTF373
+00:34:59.649  车牌号码: 辽HTF373
+00:35:38.185  车牌号码: 辽HTF373
+00:35:51.339  车牌号码: 辽HTF373
+00:36:10.153  车牌号码: 辽HTF373
+00:36:37.706  车牌号码: 辽HTF373
+00:36:56.731  车牌号码: 辽HTF373
+00:37:12.001  车牌号码: 辽HTF373
+00:37:36.229  车牌号码: 辽HTF373
+00:37:49.219  车牌号码: 辽HTF373
+00:38:03.066  车牌号码: 辽HTF373
+00:38:17.308  车牌号码: 辽HTF373
+00:38:30.099  车牌号码: 辽HTF373
+00:38:48.480  车牌号码: 辽HTF373
+00:39:03.166  车牌号码: 辽HTF373
+00:39:16.537  车牌号码: 辽HTF373
+00:39:32.700  车牌号码: 辽HTF373
+00:39:48.629  车牌号码: 辽HTF373
+00:40:09.436  车牌号码: 辽HTF373
+00:40:25.596  车牌号码: 辽HTF373
+00:40:39.439  车牌号码: 辽HTF373
+00:40:53.946  车牌号码: 辽HTF373
+00:41:08.761  车牌号码: 辽HTF373
+00:41:22.696  车牌号码: 辽HTF373
+00:41:35.362  车牌号码: 辽HTF373
+00:41:49.226  车牌号码: 辽HTF373
+00:42:04.773  车牌号码: 辽HTF373
+00:42:18.555  车牌号码: 辽HTF373
+00:42:38.284  车牌号码: 辽HTF373
+00:42:50.866  车牌号码: 辽HTF373
+00:43:03.595  车牌号码: 辽HTF373
+00:43:18.094  车牌号码: 辽HTF373
+00:43:31.176  车牌号码: 辽HTF373
+00:43:44.069  车牌号码: 辽HTF373
+00:43:57.305  车牌号码: 辽HTF373
+00:44:09.925  车牌号码: 辽HTF373
+00:44:48.648  车牌号码: 辽HTF373
+00:45:04.195  车牌号码: 辽HTF373
+00:45:19.173  车牌号码: 辽HTF373
+00:45:33.753  车牌号码: 辽HTF373
+00:46:22.517  车牌号码: 辽HTF373
+00:46:35.531  车牌号码: 辽HTF373
+00:46:55.591  车牌号码: 辽HTF373
+00:47:11.208  车牌号码: 辽HTF373
+00:47:27.258  车牌号码: 辽HTF373
+00:47:39.994  车牌号码: 辽HTF373
+00:48:07.710  车牌号码: 辽HTF373
+00:48:20.784  车牌号码: 辽HTF373
+00:48:34.839  车牌号码: 辽HTF373
+00:48:54.938  车牌号码: 辽HTF373
+00:49:15.594  车牌号码: 辽HTF373
+00:49:28.339  车牌号码: 辽HTF373
+00:49:54.448  车牌号码: 辽HTF373
+00:50:12.728  车牌号码: 辽HTF373
+00:50:25.468  车牌号码: 辽HTF373
+00:50:50.034  车牌号码: 辽HTF373
+00:51:12.569  车牌号码: 辽HTF373
+00:51:25.517  车牌号码: 辽HTF373
+00:51:39.901  车牌号码: 辽HTF373
+00:51:54.121  车牌号码: 辽HTF373
+00:52:07.038  车牌号码: 辽HTF373
+00:52:23.169  车牌号码: 辽HTF373
+00:52:36.684  车牌号码: 辽HTF373
+00:52:51.244  车牌号码: 辽HTF373
+00:53:11.815  车牌号码: 辽HTF373
+00:53:43.189  车牌号码: 辽HTF373
+00:53:59.132  车牌号码: 辽HTF373
+00:54:13.894  车牌号码: 辽HTF373
+00:54:37.971  车牌号码: 辽HTF373
+00:54:51.808  车牌号码: 辽HTF373
+00:55:04.725  车牌号码: 辽HTF373
+00:55:17.789  车牌号码: 辽HTF373
+00:55:30.631  车牌号码: 辽HTF373
+00:55:46.987  车牌号码: 辽HTF373
+00:56:12.561  车牌号码: 辽HTF373
+00:56:28.235  车牌号码: 辽HTF373
+00:56:40.926  车牌号码: 辽HTF373
+00:57:12.601  车牌号码: 辽HTF373
+00:57:29.169  车牌号码: 辽HTF373
+00:57:44.017  车牌号码: 辽HTF373
+00:57:56.919  车牌号码: 辽HTF373
+00:58:43.832  车牌号码: 辽HTF373
+00:59:16.637  车牌号码: 辽HTF373
+00:59:29.520  车牌号码: 辽HTF373
+00:59:42.104  车牌号码: 辽HTF373
+01:00:03.374  车牌号码: 辽HTF373
+01:00:17.204  车牌号码: 辽HTF373
+01:00:37.556  车牌号码: 辽HTF373
+01:00:50.646  车牌号码: 辽HTF373
+01:01:17.653  车牌号码: 辽HTF373
+01:01:30.344  车牌号码: 辽HTF373
+01:01:47.470  车牌号码: 辽HTF373
+01:02:08.684  车牌号码: 辽HTF373
+01:02:34.267  车牌号码: 辽HTF373
+01:02:48.678  车牌号码: 辽HTF373
+01:03:03.732  车牌号码: 辽HTF373
+01:03:18.290  车牌号码: 辽HTF373
+01:03:31.513  车牌号码: 辽HTF373
+01:03:44.389  车牌号码: 辽HTF373
+01:03:58.716  车牌号码: 辽HTF373
+01:04:14.586  车牌号码: 辽HTF373
+01:04:27.294  车牌号码: 辽HTF373
+01:04:44.368  车牌号码: 辽HTF373
+01:05:15.524  车牌号码: 辽HTF373
+01:05:35.659  车牌号码: 辽HTF373
+01:05:49.359  车牌号码: 辽HTF373
+01:06:16.266  车牌号码: 辽HTF373
+01:06:33.002  车牌号码: 辽HTF373
+01:06:48.575  车牌号码: 辽HTF373
+01:07:04.365  车牌号码: 辽HTF373
+01:07:17.037  车牌号码: 辽HTF373
+01:07:30.548  车牌号码: 辽HTF373
+01:07:48.139  车牌号码: 辽HTF373
+01:08:08.053  车牌号码: 辽HTF373
+01:08:21.887  车牌号码: 辽HTF373
+01:08:34.516  车牌号码: 辽HTF373
+01:08:52.167  车牌号码: 辽HTF373
+01:09:08.041  车牌号码: 辽HTF373
+01:09:22.834  车牌号码: 辽HTF373
+01:09:38.474  车牌号码: 辽HTF373
+01:09:51.548  车牌号码: 辽HTF373
+01:10:06.104  车牌号码: 辽HTF373
+01:10:21.043  车牌号码: 辽HTF373
+01:10:33.941  车牌号码: 辽HTF373
+01:10:52.505  车牌号码: 辽HTF373
+01:11:08.335  车牌号码: 辽HTF373
+01:11:21.069  车牌号码: 辽HTF373
+01:11:34.823  车牌号码: 辽HTF373
+01:11:50.614  车牌号码: 辽HTF373
+01:12:08.896  车牌号码: 辽HTF373
+01:12:22.939  车牌号码: 辽HTF373
+01:12:37.655  车牌号码: 辽HTF373
+01:12:52.139  车牌号码: 辽HTF373
+01:13:05.654  车牌号码: 辽HTF373
+01:13:20.489  车牌号码: 辽HTF373
+01:13:36.525  车牌号码: 辽HTF373
+01:13:49.500  车牌号码: 辽HTF373
+01:14:08.510  车牌号码: 辽HTF373
+01:14:26.330  车牌号码: 辽HTF373
+01:14:39.348  车牌号码: 辽HTF373
+01:14:56.596  车牌号码: 辽HTF373
+01:15:11.244  车牌号码: 辽HTF373
+01:15:24.884  车牌号码: 辽HTF373
+01:15:37.462  车牌号码: 辽HTF373
+01:15:51.361  车牌号码: 辽HTF373
+01:16:04.858  车牌号码: 辽HTF373
+01:16:24.973  车牌号码: 辽HTF373
+01:16:39.544  车牌号码: 辽HTF373
+01:16:56.953  车牌号码: 辽HTF373
+01:17:13.062  车牌号码: 辽HTF373
+01:17:26.650  车牌号码: 辽HTF373
+01:17:44.495  车牌号码: 辽HTF373
+01:18:06.231  车牌号码: 辽HTF373
+01:18:26.834  车牌号码: 辽HTF373
+01:18:45.966  车牌号码: 辽HTF373
+01:18:59.031  车牌号码: 辽HTF373
+01:19:13.832  车牌号码: 辽HTF373
+01:19:26.834  车牌号码: 辽HTF373
+01:19:40.018  车牌号码: 辽HTF373
+01:20:04.473  车牌号码: 辽HTF373
+01:20:22.021  车牌号码: 辽HTF373
+01:20:42.450  车牌号码: 辽HTF373
+01:20:56.050  车牌号码: 辽HTF373
+01:21:16.486  车牌号码: 辽HTF373
+01:21:30.397  车牌号码: 辽HTF373
+01:21:50.194  车牌号码: 辽HTF373
+01:22:05.927  车牌号码: 辽HTF373
+01:22:18.449  车牌号码: 辽HTF373
+01:22:31.923  车牌号码: 辽HTF373
+01:22:49.241  车牌号码: 辽HTF373
+01:23:02.076  车牌号码: 辽HTF373
+01:23:15.837  车牌号码: 辽HTF373
+01:23:30.789  车牌号码: 辽HTF373
+01:23:44.909  车牌号码: 辽HTF373
+01:24:02.229  车牌号码: 辽HTF373
+01:24:15.202  车牌号码: 辽HTF373
+01:24:32.691  车牌号码: 辽HTF373
+01:24:49.671  车牌号码: 辽HTF373
+01:25:08.551  车牌号码: 辽HTF373
+01:25:24.532  车牌号码: 辽HTF373
+01:25:41.739  车牌号码: 辽HTF373
+01:25:56.760  车牌号码: 辽HTF373
+01:26:11.474  车牌号码: 辽HTF373
+01:26:35.626  车牌号码: 辽HTF373
+01:26:52.244  车牌号码: 辽HTF373
+01:27:07.401  车牌号码: 辽HTF373
+01:27:22.062  车牌号码: 辽HTF373
+01:27:36.094  车牌号码: 辽HTF373
+01:27:50.217  车牌号码: 辽HTF373
+01:28:02.976  车牌号码: 辽HTF373
+01:28:23.477  车牌号码: 辽HTF373
+01:28:37.386  车牌号码: 辽HTF373
+01:28:54.626  车牌号码: 辽HTF373
+01:29:15.155  车牌号码: 辽HTF373
+01:29:30.045  车牌号码: 辽HTF373
+01:29:45.989  车牌号码: 辽HTF373
+01:30:00.520  车牌号码: 辽HTF373
+01:30:19.993  车牌号码: 辽HTF373
+01:30:40.195  车牌号码: 辽HTF373
+01:30:53.147  车牌号码: 辽HTF373
+01:31:12.295  车牌号码: 辽HTF373
+01:31:26.509  车牌号码: 辽HTF373
+01:31:42.277  车牌号码: 辽HTF373
+01:31:55.153  车牌号码: 辽HTF373
+01:32:09.360  车牌号码: 辽HTF373
+01:32:24.254  车牌号码: 辽HTF373
+01:32:37.273  车牌号码: 辽HTF373
+01:32:53.322  车牌号码: 辽HTF373
+01:33:05.962  车牌号码: 辽HTF373
+01:33:19.172  车牌号码: 辽HTF373
+01:33:31.758  车牌号码: 辽HTF373
+01:33:46.602  车牌号码: 辽HTF373
+01:34:02.683  车牌号码: 辽HTF373
+01:34:15.545  车牌号码: 辽HTF373
+01:34:31.919  车牌号码: 辽HTF373
+01:34:44.936  车牌号码: 辽HTF373
+01:34:57.845  车牌号码: 辽HTF373
+01:35:14.328  车牌号码: 辽HTF373
+01:35:28.996  车牌号码: 辽HTF373
+01:35:42.744  车牌号码: 辽HTF373
+01:36:01.500  车牌号码: 辽HTF373
+01:36:16.169  车牌号码: 辽HTF373
+01:36:30.694  车牌号码: 辽HTF373
+01:36:43.447  车牌号码: 辽HTF373
+01:36:56.299  车牌号码: 辽HTF373
+01:37:09.597  车牌号码: 辽HTF373
+01:37:27.971  车牌号码: 辽HTF373
+01:37:40.630  车牌号码: 辽HTF373
+01:37:59.338  车牌号码: 辽HTF373
+01:38:12.643  车牌号码: 辽HTF373
+01:38:30.692  车牌号码: 辽HTF373
+01:38:47.340  车牌号码: 辽HTF373
+01:39:15.597  车牌号码: 辽HTF373
+01:39:41.409  车牌号码: 辽HTF373
+01:39:58.721  车牌号码: 辽HTF373
+01:40:11.492  车牌号码: 辽HTF373
+01:40:25.164  车牌号码: 辽HTF373
+01:41:01.619  车牌号码: 辽HTF373
+01:41:17.342  车牌号码: 辽HTF373
+01:41:35.928  车牌号码: 辽HTF373
+01:41:51.924  车牌号码: 辽HTF373
+01:42:15.677  车牌号码: 辽HTF373
+01:42:31.484  车牌号码: 辽HTF373
+01:42:44.165  车牌号码: 辽HTF373
+01:43:03.653  车牌号码: 辽HTF373
+01:43:16.560  车牌号码: 辽HTF373
+01:43:31.579  车牌号码: 辽HTF373
+01:43:44.401  车牌号码: 辽HTF373
+01:43:57.496  车牌号码: 辽HTF373
+01:44:10.194  车牌号码: 辽HTF373
+01:44:25.788  车牌号码: 辽HTF373
+01:44:46.629  车牌号码: 辽HTF373
+01:45:06.630  车牌号码: 辽HTF373
+01:45:19.784  车牌号码: 辽HTF373
+01:45:35.524  车牌号码: 辽HTF373
+01:45:57.072  车牌号码: 辽HTF373
+01:46:09.634  车牌号码: 辽HTF373
+01:46:29.676  车牌号码: 辽HTF373
+01:46:44.676  车牌号码: 辽HTF373
+01:46:57.625  车牌号码: 辽HTF373
+01:47:14.125  车牌号码: 辽HTF373
+01:47:27.841  车牌号码: 辽HTF373
+01:47:40.578  车牌号码: 辽HTF373
+01:47:56.022  车牌号码: 辽HTF373
+01:48:16.647  车牌号码: 辽HTF373
+01:48:29.981  车牌号码: 辽HTF373
+01:48:43.382  车牌号码: 辽HTF373
+01:48:57.994  车牌号码: 辽HTF373
+01:49:10.812  车牌号码: 辽HTF373
+01:49:34.543  车牌号码: 辽HTF373
+01:49:47.134  车牌号码: 辽HTF373
+01:50:01.368  车牌号码: 辽HTF373
+01:50:16.397  车牌号码: 辽HTF373
+01:50:31.274  车牌号码: 辽HTF373
+01:50:46.869  车牌号码: 辽HTF373
+01:50:59.535  车牌号码: 辽HTF373
+01:52:13.826  车牌号码: 辽HTF373
+01:53:30.117  车牌号码: 辽HTF373
+01:54:13.080  车牌号码: 辽HTF373
+01:54:28.273  车牌号码: 辽HTF373
+01:54:42.867  车牌号码: 辽HTF373
+01:54:56.810  车牌号码: 辽HTF373
+01:55:09.412  车牌号码: 辽HTF373
+01:55:24.896  车牌号码: 辽HTF373
+01:55:39.249  车牌号码: 辽HTF373
+01:55:55.058  车牌号码: 辽HTF373
+01:56:21.281  车牌号码: 辽HTF373
+01:56:39.169  车牌号码: 辽HTF373
+01:56:52.264  车牌号码: 辽HTF373
+01:57:05.622  车牌号码: 辽HTF373
+01:57:21.601  车牌号码: 辽HTF373
+01:58:00.191  车牌号码: 辽HTF373
+01:58:17.670  车牌号码: 辽HTF373
+01:58:30.388  车牌号码: 辽HTF373
+01:58:43.217  车牌号码: 辽HTF373
+01:58:57.491  车牌号码: 辽HTF373
+01:59:10.228  车牌号码: 辽HTF373
+01:59:45.087  车牌号码: 辽HTF373
+01:59:58.060  车牌号码: 辽HTF373
+02:00:12.192  车牌号码: 辽HTF373
+02:00:27.567  车牌号码: 辽HTF373
+02:00:52.618  车牌号码: 辽HTF373
+02:02:23.029  车牌号码: 辽HTF373
+02:03:28.188  车牌号码: 辽HTF373
+02:06:50.087  车牌号码: 辽HTF373
+02:09:15.855  车牌号码: 辽HTF373
+02:10:26.539  车牌号码: 辽HTF373
+02:11:07.403  车牌号码: 辽HTF373
+02:11:40.530  车牌号码: 辽HTF373
+02:13:36.160  车牌号码: 辽HTF373
+02:14:07.017  车牌号码: 辽HTF373
+02:14:48.577  车牌号码: 辽HTF373
+02:15:04.729  车牌号码: 辽HTF373
+02:15:57.876  车牌号码: 辽HTF373
+02:17:22.788  车牌号码: 辽HTF373
+02:17:47.652  车牌号码: 辽HTF373
+02:18:09.394  车牌号码: 辽HTF373
+02:18:34.522  车牌号码: 辽HTF373
+02:18:52.413  车牌号码: 辽HTF373
+02:19:32.364  车牌号码: 辽HTF373
+02:19:50.118  车牌号码: 辽HTF373
+02:20:40.155  车牌号码: 辽HTF373
+02:22:01.845  车牌号码: 辽HTF373
+02:22:47.664  车牌号码: 辽HTF373
+02:24:11.169  车牌号码: 辽HTF373
+02:24:33.460  车牌号码: 辽HTF373
+02:26:44.885  车牌号码: 辽HTF373
+02:27:40.089  车牌号码: 辽HTF373
+02:29:48.704  车牌号码: 辽HTF373
+02:30:04.024  车牌号码: 辽HTF373
+02:30:41.833  车牌号码: 辽HTF373
+02:30:57.497  车牌号码: 辽HTF373
+02:31:43.946  车牌号码: 辽HTF373
+02:32:35.722  车牌号码: 辽HTF373
+02:33:14.934  车牌号码: 辽HTF373
+02:33:35.136  车牌号码: 辽HTF373
+02:34:14.717  车牌号码: 辽HTF373
+02:34:33.890  车牌号码: 辽HTF373
+02:35:07.504  车牌号码: 辽HTF373
+02:35:40.407  车牌号码: 辽HTF373
+02:35:55.798  车牌号码: 辽HTF373
+02:36:43.831  车牌号码: 辽HTF373
+02:37:08.913  车牌号码: 辽HTF373
+02:38:08.398  车牌号码: 辽HTF373
+02:39:11.338  车牌号码: 辽HTF373
+02:39:25.684  车牌号码: 辽HTF373
+02:43:06.530  车牌号码: 辽HTF373
+02:43:51.891  车牌号码: 辽HTF373
+02:47:39.950  车牌号码: 辽HTF373
+02:52:04.279  车牌号码: 辽HTF373
+02:52:29.346  车牌号码: 辽HTF373
+02:53:40.548  车牌号码: 辽HTF373
+02:54:29.991  车牌号码: 辽HTF373
+02:56:00.334  车牌号码: 辽HTF373
+02:56:37.979  车牌号码: 辽HTF373
+02:57:24.971  车牌号码: 辽HTF373
+02:58:35.721  车牌号码: 辽HTF373
+03:01:43.180  车牌号码: 辽HTF373
+03:02:49.617  车牌号码: 辽HTF373
+03:03:25.937  车牌号码: 辽HTF373
+03:04:04.625  车牌号码: 辽HTF373
+03:04:57.372  车牌号码: 辽HTF373
+03:06:12.235  车牌号码: 辽HTF373
+03:06:30.589  车牌号码: 辽HTF373
+03:08:55.282  车牌号码: 辽HTF373
+03:10:10.512  车牌号码: 辽HTF373
+03:10:23.289  车牌号码: 辽HTF373
+03:12:02.963  车牌号码: 辽HTF373
+03:16:17.352  车牌号码: 辽HTF373
+03:16:47.324  车牌号码: 辽HTF373
+03:18:28.968  车牌号码: 辽HTF373
+03:18:53.875  车牌号码: 辽HTF373
+03:22:38.698  车牌号码: 辽HTF373
+03:24:03.365  车牌号码: 辽HTF373
+03:24:40.192  车牌号码: 辽HTF373
+03:26:57.956  车牌号码: 辽HTF373
+03:27:45.242  车牌号码: 辽HTF373
+03:28:00.382  车牌号码: 辽HTF373
+03:28:14.905  车牌号码: 辽HTF373
+03:28:27.702  车牌号码: 辽HTF373
+03:29:41.403  车牌号码: 辽HTF373
+03:30:53.122  车牌号码: 辽HTF373
+03:32:19.892  车牌号码: 辽HTF373
+03:32:57.238  车牌号码: 辽HTF373
+03:33:26.748  车牌号码: 辽HTF373
+03:33:39.453  车牌号码: 辽HTF373
+03:34:16.421  车牌号码: 辽HTF373
+03:35:15.468  车牌号码: 辽HTF373
+03:35:33.219  车牌号码: 辽HTF373
+03:36:23.815  车牌号码: 辽HTF373
+03:37:01.098  车牌号码: 辽HTF373
+03:37:21.786  车牌号码: 辽HTF373
+03:38:35.560  车牌号码: 辽HTF373
+03:39:55.904  车牌号码: 辽HTF373
+03:40:22.323  车牌号码: 辽HTF373
+03:40:47.568  车牌号码: 辽HTF373
+03:41:44.623  车牌号码: 辽HTF373
+03:49:01.376  车牌号码: 辽HTF373
+03:50:18.047  车牌号码: 辽HTF373
+03:50:30.758  车牌号码: 辽HTF373
+03:51:12.766  车牌号码: 辽HTF373
+03:51:55.339  车牌号码: 辽HTF373
+03:52:49.487  车牌号码: 辽HTF373
+03:54:02.758  车牌号码: 辽HTF373
+03:55:03.158  车牌号码: 辽HTF373
+04:01:12.940  车牌号码: 辽HTF373
+04:07:28.973  车牌号码: 辽HTF373
+04:08:07.444  车牌号码: 辽HTF373
+04:08:20.161  车牌号码: 辽HTF373
+04:10:03.710  车牌号码: 辽HTF373
+04:10:27.137  车牌号码: 辽HTF373
+04:10:52.974  车牌号码: 辽HTF373
+04:11:05.964  车牌号码: 辽HTF373
+04:11:39.049  车牌号码: 辽HTF373
+04:12:19.254  车牌号码: 辽HTF373
+04:18:37.305  车牌号码: 辽HTF373
+04:19:11.682  车牌号码: 辽HTF373
+04:20:26.159  车牌号码: 辽HTF373
+04:23:40.964  车牌号码: 辽HTF373
+04:24:05.628  车牌号码: 辽HTF373
+04:24:18.490  车牌号码: 辽HTF373
+04:24:54.465  车牌号码: 辽HTF373
+04:26:13.752  车牌号码: 辽HTF373
+04:27:46.879  车牌号码: 辽HTF373
+04:29:07.706  车牌号码: 辽HTF373
+04:29:35.433  车牌号码: 辽HTF373
+04:32:05.337  车牌号码: 辽HTF373
+04:33:14.684  车牌号码: 辽HTF373
+04:33:30.253  车牌号码: 辽HTF373
+04:34:20.819  车牌号码: 辽HTF373
+04:35:37.833  车牌号码: 辽HTF373
+04:37:03.199  车牌号码: 辽HTF373
+04:37:59.111  车牌号码: 辽HTF373
+04:38:31.241  车牌号码: 辽HTF373
+04:40:10.873  车牌号码: 辽HTF373
+04:40:40.040  车牌号码: 辽HTF373
+04:41:27.873  车牌号码: 辽HTF373
+04:41:49.669  车牌号码: 辽HTF373
+04:42:41.228  车牌号码: 辽HTF373
+04:47:01.234  车牌号码: 辽HTF373
+04:47:53.498  车牌号码: 辽HTF373
+04:48:18.916  车牌号码: 辽HTF373
+04:50:12.637  车牌号码: 辽HTF373
+04:53:58.964  车牌号码: 辽HTF373
+04:54:24.552  车牌号码: 辽HTF373
+04:56:27.321  车牌号码: 辽HTF373
+05:05:23.744  车牌号码: 辽HTF373
+05:07:52.124  车牌号码: 辽HTF373
+05:08:38.724  车牌号码: 辽HTF373
+05:09:14.877  车牌号码: 辽HTF373
+05:09:50.612  车牌号码: 辽HTF373
+05:12:06.566  车牌号码: 辽HTF373
+05:14:32.408  车牌号码: 辽HTF373
+05:14:45.479  车牌号码: 辽HTF373
+05:15:11.963  车牌号码: 辽HTF373
+05:16:59.120  车牌号码: 辽HTF373
+05:17:24.094  车牌号码: 辽HTF373
+05:20:05.244  车牌号码: 辽HTF373
+05:21:18.675  车牌号码: 辽HTF373
+05:22:27.687  车牌号码: 辽HTF373
+05:23:44.249  车牌号码: 辽HTF373
+05:24:00.838  车牌号码: 辽HTF373
+05:26:28.684  车牌号码: 辽HTF373
+05:27:01.573  车牌号码: 辽HTF373
+05:27:14.918  车牌号码: 辽HTF373
+05:28:34.780  车牌号码: 辽HTF373
+05:29:01.517  车牌号码: 辽HTF373
+05:29:41.694  车牌号码: 辽HTF373
+05:30:02.970  车牌号码: 辽HTF373
+05:33:45.784  车牌号码: 辽HTF373
+05:34:34.897  车牌号码: 辽HTF373
+05:37:35.644  车牌号码: 辽HTF373
+05:38:28.027  车牌号码: 辽HTF373
+05:39:23.084  车牌号码: 辽HTF373
+05:42:37.213  车牌号码: 辽HTF373
+05:43:54.835  车牌号码: 辽HTF373
+05:45:07.729  车牌号码: 辽HTF373
+05:48:43.559  车牌号码: 辽HTF373
+05:48:56.704  车牌号码: 辽HTF373
+05:49:09.589  车牌号码: 辽HTF373
+05:50:10.971  车牌号码: 辽HTF373
+05:50:24.004  车牌号码: 辽HTF373
+05:50:54.950  车牌号码: 辽HTF373
+05:51:10.988  车牌号码: 辽HTF373
+05:51:24.213  车牌号码: 辽HTF373
+05:51:42.896  车牌号码: 辽HTF373
+05:52:38.557  车牌号码: 辽HTF373
+05:52:53.725  车牌号码: 辽HTF373
+05:53:14.590  车牌号码: 辽HTF373
+05:53:30.562  车牌号码: 辽HTF373
+05:53:45.780  车牌号码: 辽HTF373
+05:54:15.097  车牌号码: 辽HTF373
+05:54:28.132  车牌号码: 辽HTF373
+05:54:46.628  车牌号码: 辽HTF373
+05:55:07.213  车牌号码: 辽HTF373
+05:55:23.529  车牌号码: 辽HTF373
+05:55:37.203  车牌号码: 辽HTF373
+05:55:50.761  车牌号码: 辽HTF373
+05:56:03.987  车牌号码: 辽HTF373
+05:56:23.028  车牌号码: 辽HTF373
+05:56:36.181  车牌号码: 辽HTF373
+05:56:50.992  车牌号码: 辽HTF373
+05:57:04.897  车牌号码: 辽HTF373
+05:57:20.731  车牌号码: 辽HTF373
+05:57:35.048  车牌号码: 辽HTF373
+05:57:50.000  车牌号码: 辽HTF373
+05:58:05.087  车牌号码: 辽HTF373
+05:58:18.097  车牌号码: 辽HTF373
+05:58:31.969  车牌号码: 辽HTF373
+05:58:47.618  车牌号码: 辽HTF373
+05:59:25.502  车牌号码: 辽HTF373
+06:00:01.103  车牌号码: 辽HTF373
+06:00:21.896  车牌号码: 辽HTF373
+06:01:06.093  车牌号码: 辽HTF373
+06:01:56.642  车牌号码: 辽HTF373
+06:02:39.192  车牌号码: 辽HTF373
+06:03:01.899  车牌号码: 辽HTF373
+06:03:27.011  车牌号码: 辽HTF373
+06:03:50.471  车牌号码: 辽HTF373
+06:04:58.057  车牌号码: 辽HTF373
+06:06:55.200  车牌号码: 辽HTF373
+06:07:17.226  车牌号码: 辽HTF373
+06:08:03.168  车牌号码: 辽HTF373
+06:10:09.744  车牌号码: 辽HTF373
+06:10:43.761  车牌号码: 辽HTF373
+06:10:58.379  车牌号码: 辽HTF373
+06:11:44.588  车牌号码: 辽HTF373
+06:12:06.353  车牌号码: 辽HTF373
+06:14:17.080  车牌号码: 辽HTF373
+06:14:32.198  车牌号码: 辽HTF373
+06:16:26.366  车牌号码: 辽HTF373
+06:18:32.591  车牌号码: 辽HTF373
+06:19:49.114  车牌号码: 辽HTF373
+06:20:21.510  车牌号码: 辽HTF373
+06:20:52.701  车牌号码: 辽HTF373
+06:21:11.445  车牌号码: 辽HTF373
+06:23:24.634  车牌号码: 辽HTF373
+06:24:13.484  车牌号码: 辽HTF373
+06:30:07.265  车牌号码: 辽HTF373
+06:30:42.844  车牌号码: 辽HTF373
+06:32:05.990  车牌号码: 辽HTF373
+06:32:20.020  车牌号码: 辽HTF373
+06:32:37.777  车牌号码: 辽HTF373
+06:32:50.666  车牌号码: 辽HTF373
+06:33:11.036  车牌号码: 辽HTF373
+06:33:25.625  车牌号码: 辽HTF373
+06:33:38.750  车牌号码: 辽HTF373
+06:33:55.601  车牌号码: 辽HTF373
+06:34:09.495  车牌号码: 辽HTF373
+16:55:53.983  车牌号码: 辽HTF373
+16:56:53.373  车牌号码: 辽HTF373
+16:57:08.478  车牌号码: 辽HTF373
+16:57:22.466  车牌号码: 辽HTF373
+16:58:02.058  车牌号码: 辽HTF373
+16:58:53.529  车牌号码: 辽HTF373
+16:59:29.596  车牌号码: 辽HTF373
+16:59:48.468  车牌号码: 辽HTF373
+17:00:28.165  车牌号码: 辽HTF373
+17:00:42.391  车牌号码: 辽HTF373
+17:01:13.771  车牌号码: 辽HTF373
+17:01:30.626  车牌号码: 辽HTF373
+17:01:46.205  车牌号码: 辽HTF373
+17:02:10.273  车牌号码: 辽HTF373
+17:02:26.069  车牌号码: 辽HTF373
+17:02:46.539  车牌号码: 辽HTF373
+17:03:03.136  车牌号码: 辽HTF373
+17:03:20.493  车牌号码: 辽HTF373
+17:03:39.893  车牌号码: 辽HTF373
+17:04:04.419  车牌号码: 辽HTF373
+17:04:27.686  车牌号码: 辽HTF373
+17:05:01.289  车牌号码: 辽HTF373
+17:05:48.429  车牌号码: 辽HTF373
+20:51:51.587  车牌号码: 辽HTF373
+21:38:30.164  车牌号码: 辽HTF373
+21:38:52.579  车牌号码: 辽HTF373
+21:39:06.515  车牌号码: 辽HTF373
+21:39:30.516  车牌号码: 辽HTF373
+21:39:47.831  车牌号码: 辽HTF373
+21:40:01.691  车牌号码: 辽HTF373
+21:40:15.190  车牌号码: 辽HTF373
+21:40:28.660  车牌号码: 辽HTF373
+21:41:10.242  车牌号码: 辽HTF373
+21:41:25.811  车牌号码: 辽HTF373
+21:41:40.210  车牌号码: 辽HTF373
+21:42:16.271  车牌号码: 辽HTF373
+21:42:30.503  车牌号码: 辽HTF373
+21:42:51.178  车牌号码: 辽HTF373
+21:43:05.527  车牌号码: 辽HTF373
+21:43:22.148  车牌号码: 辽HTF373
+21:43:38.741  车牌号码: 辽HTF373
+21:43:52.384  车牌号码: 辽HTF373
+21:44:07.965  车牌号码: 辽HTF373
+21:44:23.818  车牌号码: 辽HTF373
+21:44:36.398  车牌号码: 辽HTF373
+21:44:55.920  车牌号码: 辽HTF373
+21:45:12.951  车牌号码: 辽HTF373
+21:45:28.677  车牌号码: 辽HTF373
+21:45:41.731  车牌号码: 辽HTF373
+21:45:56.323  车牌号码: 辽HTF373
+21:46:20.609  车牌号码: 辽HTF373
+21:46:36.323  车牌号码: 辽HTF373
+21:46:51.519  车牌号码: 辽HTF373
+21:47:13.398  车牌号码: 辽HTF373
+21:47:33.182  车牌号码: 辽HTF373
+21:47:53.302  车牌号码: 辽HTF373
+21:48:15.874  车牌号码: 辽HTF373
+21:48:29.077  车牌号码: 辽HTF373
+21:48:51.046  车牌号码: 辽HTF373
+21:49:07.249  车牌号码: 辽HTF373
+21:49:21.478  车牌号码: 辽HTF373
+21:49:37.517  车牌号码: 辽HTF373
+21:49:51.039  车牌号码: 辽HTF373
+21:50:07.815  车牌号码: 辽HTF373
+21:50:23.337  车牌号码: 辽HTF373
+21:51:11.655  车牌号码: 辽HTF373
+21:51:33.725  车牌号码: 辽HTF373
+21:51:46.621  车牌号码: 辽HTF373
+21:52:00.034  车牌号码: 辽HTF373
+21:52:15.610  车牌号码: 辽HTF373
+21:52:43.651  车牌号码: 辽HTF373
+21:52:57.897  车牌号码: 辽HTF373
+21:53:19.518  车牌号码: 辽HTF373
+21:53:38.427  车牌号码: 辽HTF373
+21:53:53.309  车牌号码: 辽HTF373
+21:54:07.460  车牌号码: 辽HTF373
+21:54:20.389  车牌号码: 辽HTF373
+21:54:39.181  车牌号码: 辽HTF373
+21:55:03.997  车牌号码: 辽HTF373
+21:55:17.049  车牌号码: 辽HTF373
+21:55:30.679  车牌号码: 辽HTF373
+21:55:47.481  车牌号码: 辽HTF373
+21:56:15.699  车牌号码: 辽HTF373
+21:56:28.366  车牌号码: 辽HTF373
+21:56:51.110  车牌号码: 辽HTF373
+21:57:04.252  车牌号码: 辽HTF373
+21:57:17.243  车牌号码: 辽HTF373
+21:57:36.536  车牌号码: 辽HTF373
+21:57:56.017  车牌号码: 辽HTF373
+21:58:13.427  车牌号码: 辽HTF373
+21:58:27.487  车牌号码: 辽HTF373
+21:58:44.780  车牌号码: 辽HTF373
+21:59:03.052  车牌号码: 辽HTF373
+21:59:21.845  车牌号码: 辽HTF373
+21:59:37.561  车牌号码: 辽HTF373
+21:59:51.269  车牌号码: 辽HTF373
+22:00:04.175  车牌号码: 辽HTF373
+22:00:21.546  车牌号码: 辽HTF373
+22:00:37.159  车牌号码: 辽HTF373
+22:00:54.965  车牌号码: 辽HTF373
+22:01:08.156  车牌号码: 辽HTF373
+22:01:21.000  车牌号码: 辽HTF373
+22:01:34.832  车牌号码: 辽HTF373
+22:01:49.643  车牌号码: 辽HTF373
+22:02:10.418  车牌号码: 辽HTF373
+22:02:27.051  车牌号码: 辽HTF373
+22:02:51.322  车牌号码: 辽HTF373
+22:03:05.838  车牌号码: 辽HTF373
+22:03:21.846  车牌号码: 辽HTF373
+22:03:34.887  车牌号码: 辽HTF373
+22:03:52.012  车牌号码: 辽HTF373
+22:04:05.003  车牌号码: 辽HTF373
+22:04:19.688  车牌号码: 辽HTF373
+22:04:34.251  车牌号码: 辽HTF373
+22:04:50.687  车牌号码: 辽HTF373
+22:05:10.942  车牌号码: 辽HTF373
+22:05:28.032  车牌号码: 辽HTF373
+22:05:41.513  车牌号码: 辽HTF373
+22:06:04.400  车牌号码: 辽HTF373
+22:06:24.866  车牌号码: 辽HTF373
+22:06:38.718  车牌号码: 辽HTF373
+22:07:01.960  车牌号码: 辽HTF373
+22:07:19.601  车牌号码: 辽HTF373
+22:07:40.687  车牌号码: 辽HTF373
+22:07:56.328  车牌号码: 辽HTF373
+22:08:12.841  车牌号码: 辽HTF373
+22:08:29.660  车牌号码: 辽HTF373
+22:08:44.247  车牌号码: 辽HTF373
+22:08:59.042  车牌号码: 辽HTF373
+22:09:14.271  车牌号码: 辽HTF373
+22:09:31.840  车牌号码: 辽HTF373
+22:09:47.726  车牌号码: 辽HTF373
+22:10:01.516  车牌号码: 辽HTF373
+22:10:27.592  车牌号码: 辽HTF373
+22:10:50.191  车牌号码: 辽HTF373
+22:11:06.778  车牌号码: 辽HTF373
+22:11:20.380  车牌号码: 辽HTF373
+22:11:36.412  车牌号码: 辽HTF373
+22:12:03.805  车牌号码: 辽HTF373
+22:12:22.265  车牌号码: 辽HTF373
+22:12:38.444  车牌号码: 辽HTF373
+22:12:54.149  车牌号码: 辽HTF373
+22:13:10.002  车牌号码: 辽HTF373
+22:13:27.447  车牌号码: 辽HTF373
+22:13:44.069  车牌号码: 辽HTF373
+22:14:07.138  车牌号码: 辽HTF373
+22:14:51.002  车牌号码: 辽HTF373
+22:15:05.937  车牌号码: 辽HTF373
+22:15:18.773  车牌号码: 辽HTF373
+22:15:41.978  车牌号码: 辽HTF373
+22:15:57.601  车牌号码: 辽HTF373
+22:16:20.023  车牌号码: 辽HTF373
+22:16:56.103  车牌号码: 辽HTF373
+22:17:14.731  车牌号码: 辽HTF373
+22:17:28.536  车牌号码: 辽HTF373
+22:17:44.474  车牌号码: 辽HTF373
+22:18:05.541  车牌号码: 辽HTF373
+22:18:19.370  车牌号码: 辽HTF373
+22:18:37.732  车牌号码: 辽HTF373
+22:18:52.174  车牌号码: 辽HTF373
+22:19:09.768  车牌号码: 辽HTF373
+22:19:27.613  车牌号码: 辽HTF373
+22:19:50.937  车牌号码: 辽HTF373
+22:20:27.032  车牌号码: 辽HTF373
+22:20:40.299  车牌号码: 辽HTF373
+22:21:01.265  车牌号码: 辽HTF373
+22:21:16.118  车牌号码: 辽HTF373
+22:21:29.157  车牌号码: 辽HTF373
+22:21:42.919  车牌号码: 辽HTF373
+22:22:03.829  车牌号码: 辽HTF373
+22:22:17.553  车牌号码: 辽HTF373
+22:22:30.857  车牌号码: 辽HTF373
+22:22:44.719  车牌号码: 辽HTF373
+22:22:58.144  车牌号码: 辽HTF373
+22:23:10.733  车牌号码: 辽HTF373
+22:23:28.177  车牌号码: 辽HTF373
+22:23:46.194  车牌号码: 辽HTF373
+22:24:09.180  车牌号码: 辽HTF373
+22:24:24.492  车牌号码: 辽HTF373
+22:24:46.903  车牌号码: 辽HTF373
+22:25:01.788  车牌号码: 辽HTF373
+22:25:27.555  车牌号码: 辽HTF373
+22:25:40.170  车牌号码: 辽HTF373
+22:26:04.780  车牌号码: 辽HTF373
+22:26:18.954  车牌号码: 辽HTF373
+22:26:43.328  车牌号码: 辽HTF373
+22:26:57.364  车牌号码: 辽HTF373
+22:27:14.086  车牌号码: 辽HTF373
+22:27:29.464  车牌号码: 辽HTF373
+22:27:42.927  车牌号码: 辽HTF373
+22:27:55.871  车牌号码: 辽HTF373
+22:28:12.582  车牌号码: 辽HTF373
+22:28:25.575  车牌号码: 辽HTF373
+22:28:40.013  车牌号码: 辽HTF373
+22:29:02.747  车牌号码: 辽HTF373
+22:29:18.859  车牌号码: 辽HTF373
+22:29:35.508  车牌号码: 辽HTF373
+22:29:48.814  车牌号码: 辽HTF373
+22:30:02.697  车牌号码: 辽HTF373
+22:30:17.444  车牌号码: 辽HTF373
+22:30:30.166  车牌号码: 辽HTF373
+22:30:43.117  车牌号码: 辽HTF373
+22:31:10.034  车牌号码: 辽HTF373
+22:31:28.955  车牌号码: 辽HTF373
+22:31:43.121  车牌号码: 辽HTF373
+22:32:03.721  车牌号码: 辽HTF373
+22:32:56.767  车牌号码: 辽HTF373
+22:33:12.452  车牌号码: 辽HTF373
+22:33:34.283  车牌号码: 辽HTF373
+22:34:05.924  车牌号码: 辽HTF373
+22:34:18.852  车牌号码: 辽HTF373
+22:34:33.118  车牌号码: 辽HTF373
+22:34:46.925  车牌号码: 辽HTF373
+22:35:01.262  车牌号码: 辽HTF373
+22:35:17.645  车牌号码: 辽HTF373
+22:35:31.857  车牌号码: 辽HTF373
+22:35:49.007  车牌号码: 辽HTF373
+22:36:05.256  车牌号码: 辽HTF373
+22:36:24.121  车牌号码: 辽HTF373
+22:36:48.554  车牌号码: 辽HTF373
+22:37:08.537  车牌号码: 辽HTF373
+22:37:21.608  车牌号码: 辽HTF373
+22:37:42.111  车牌号码: 辽HTF373
+22:37:55.382  车牌号码: 辽HTF373
+22:38:38.920  车牌号码: 辽HTF373
+22:38:53.954  车牌号码: 辽HTF373
+22:39:07.649  车牌号码: 辽HTF373
+22:39:20.529  车牌号码: 辽HTF373
+22:39:36.455  车牌号码: 辽HTF373
+22:39:49.933  车牌号码: 辽HTF373
+22:40:03.625  车牌号码: 辽HTF373
+22:40:33.500  车牌号码: 辽HTF373
+22:40:48.410  车牌号码: 辽HTF373
+22:41:17.054  车牌号码: 辽HTF373
+22:41:31.334  车牌号码: 辽HTF373
+22:41:46.570  车牌号码: 辽HTF373
+22:42:00.280  车牌号码: 辽HTF373
+22:42:13.869  车牌号码: 辽HTF373
+22:42:30.037  车牌号码: 辽HTF373
+22:42:48.155  车牌号码: 辽HTF373
+22:43:12.881  车牌号码: 辽HTF373
+22:43:30.355  车牌号码: 辽HTF373
+22:43:48.678  车牌号码: 辽HTF373
+22:44:05.370  车牌号码: 辽HTF373
+22:44:20.896  车牌号码: 辽HTF373
+22:44:34.852  车牌号码: 辽HTF373
+22:44:55.043  车牌号码: 辽HTF373
+22:45:20.458  车牌号码: 辽HTF373
+22:45:35.383  车牌号码: 辽HTF373
+22:45:50.670  车牌号码: 辽HTF373
+22:46:07.867  车牌号码: 辽HTF373
+22:46:21.302  车牌号码: 辽HTF373
+22:46:35.732  车牌号码: 辽HTF373
+22:46:48.457  车牌号码: 辽HTF373
+22:47:05.808  车牌号码: 辽HTF373
+22:47:40.430  车牌号码: 辽HTF373
+22:48:01.618  车牌号码: 辽HTF373
+22:48:16.286  车牌号码: 辽HTF373
+22:48:31.064  车牌号码: 辽HTF373
+22:48:44.930  车牌号码: 辽HTF373
+22:48:58.668  车牌号码: 辽HTF373
+22:49:25.009  车牌号码: 辽HTF373
+22:49:51.426  车牌号码: 辽HTF373
+22:50:10.735  车牌号码: 辽HTF373
+22:50:25.580  车牌号码: 辽HTF373
+22:50:42.019  车牌号码: 辽HTF373
+22:50:56.773  车牌号码: 辽HTF373
+22:51:12.743  车牌号码: 辽HTF373
+22:51:31.283  车牌号码: 辽HTF373
+22:51:49.455  车牌号码: 辽HTF373
+22:52:11.323  车牌号码: 辽HTF373
+22:52:31.875  车牌号码: 辽HTF373
+22:52:51.810  车牌号码: 辽HTF373
+22:53:07.877  车牌号码: 辽HTF373
+22:53:21.577  车牌号码: 辽HTF373
+22:53:36.388  车牌号码: 辽HTF373
+22:53:50.672  车牌号码: 辽HTF373
+22:54:03.682  车牌号码: 辽HTF373
+22:54:21.848  车牌号码: 辽HTF373
+22:54:39.477  车牌号码: 辽HTF373
+22:55:01.473  车牌号码: 辽HTF373
+22:55:23.883  车牌号码: 辽HTF373
+22:55:39.699  车牌号码: 辽HTF373
+22:55:53.089  车牌号码: 辽HTF373
+22:56:10.660  车牌号码: 辽HTF373
+22:56:25.789  车牌号码: 辽HTF373
+22:56:39.637  车牌号码: 辽HTF373
+22:56:53.264  车牌号码: 辽HTF373
+22:57:06.620  车牌号码: 辽HTF373
+22:57:23.898  车牌号码: 辽HTF373
+22:57:36.802  车牌号码: 辽HTF373
+22:57:49.802  车牌号码: 辽HTF373
+22:58:06.325  车牌号码: 辽HTF373
+22:58:27.514  车牌号码: 辽HTF373
+22:58:47.388  车牌号码: 辽HTF373
+22:59:05.813  车牌号码: 辽HTF373
+22:59:30.764  车牌号码: 辽HTF373
+22:59:55.247  车牌号码: 辽HTF373
+23:00:11.828  车牌号码: 辽HTF373
+23:00:29.158  车牌号码: 辽HTF373
+23:00:44.964  车牌号码: 辽HTF373
+23:00:57.937  车牌号码: 辽HTF373
+23:01:11.697  车牌号码: 辽HTF373
+23:01:30.118  车牌号码: 辽HTF373
+23:01:43.112  车牌号码: 辽HTF373
+23:02:01.616  车牌号码: 辽HTF373
+23:02:26.213  车牌号码: 辽HTF373
+23:03:01.425  车牌号码: 辽HTF373
+23:03:20.917  车牌号码: 辽HTF373
+23:03:34.647  车牌号码: 辽HTF373
+23:03:59.394  车牌号码: 辽HTF373
+23:04:14.293  车牌号码: 辽HTF373
+23:04:29.309  车牌号码: 辽HTF373
+23:04:46.035  车牌号码: 辽HTF373
+23:05:03.297  车牌号码: 辽HTF373
+23:05:16.999  车牌号码: 辽HTF373
+23:05:46.910  车牌号码: 辽HTF373
+23:06:04.457  车牌号码: 辽HTF373
+23:06:23.895  车牌号码: 辽HTF373
+23:06:39.384  车牌号码: 辽HTF373
+23:06:52.151  车牌号码: 辽HTF373
+23:07:06.839  车牌号码: 辽HTF373
+23:07:22.461  车牌号码: 辽HTF373
+23:07:35.387  车牌号码: 辽HTF373
+23:07:50.662  车牌号码: 辽HTF373
+23:08:03.366  车牌号码: 辽HTF373
+23:08:40.737  车牌号码: 辽HTF373
+23:08:53.812  车牌号码: 辽HTF373
+23:09:14.724  车牌号码: 辽HTF373
+23:09:31.345  车牌号码: 辽HTF373
+23:09:44.231  车牌号码: 辽HTF373
+23:09:57.507  车牌号码: 辽HTF373
+23:10:21.427  车牌号码: 辽HTF373
+23:10:43.397  车牌号码: 辽HTF373
+23:10:56.441  车牌号码: 辽HTF373
+23:11:09.947  车牌号码: 辽HTF373
+23:11:25.589  车牌号码: 辽HTF373
+23:11:43.455  车牌号码: 辽HTF373
+23:12:01.415  车牌号码: 辽HTF373
+23:12:15.785  车牌号码: 辽HTF373
+23:12:30.650  车牌号码: 辽HTF373
+23:12:44.253  车牌号码: 辽HTF373
+23:13:05.783  车牌号码: 辽HTF373
+23:13:23.296  车牌号码: 辽HTF373
+23:13:37.977  车牌号码: 辽HTF373
+23:13:55.371  车牌号码: 辽HTF373
+23:14:08.409  车牌号码: 辽HTF373
+23:14:28.423  车牌号码: 辽HTF373
+23:14:42.270  车牌号码: 辽HTF373
+23:14:54.990  车牌号码: 辽HTF373
+23:15:09.285  车牌号码: 辽HTF373
+23:15:22.006  车牌号码: 辽HTF373
+23:15:34.782  车牌号码: 辽HTF373
+23:15:47.972  车牌号码: 辽HTF373
+23:16:15.919  车牌号码: 辽HTF373
+23:16:33.348  车牌号码: 辽HTF373
+23:16:59.504  车牌号码: 辽HTF373
+23:17:19.894  车牌号码: 辽HTF373
+23:17:33.164  车牌号码: 辽HTF373
+23:17:45.856  车牌号码: 辽HTF373
+23:17:59.428  车牌号码: 辽HTF373
+23:18:14.833  车牌号码: 辽HTF373
+23:18:32.699  车牌号码: 辽HTF373
+23:18:45.444  车牌号码: 辽HTF373
+23:18:58.752  车牌号码: 辽HTF373
+23:19:15.026  车牌号码: 辽HTF373
+23:19:30.570  车牌号码: 辽HTF373
+23:19:44.657  车牌号码: 辽HTF373
+23:19:59.609  车牌号码: 辽HTF373
+23:20:16.189  车牌号码: 辽HTF373
+23:20:41.674  车牌号码: 辽HTF373
+23:21:02.743  车牌号码: 辽HTF373
+23:21:15.399  车牌号码: 辽HTF373
+23:21:30.598  车牌号码: 辽HTF373
+23:21:44.503  车牌号码: 辽HTF373
+23:21:59.707  车牌号码: 辽HTF373
+23:22:18.976  车牌号码: 辽HTF373
+23:22:34.823  车牌号码: 辽HTF373
+23:22:49.723  车牌号码: 辽HTF373
+23:23:43.841  车牌号码: 辽HTF373
+23:23:58.342  车牌号码: 辽HTF373
+23:24:16.598  车牌号码: 辽HTF373
+23:24:32.978  车牌号码: 辽HTF373
+23:24:51.409  车牌号码: 辽HTF373
+23:25:06.512  车牌号码: 辽HTF373
+23:25:22.560  车牌号码: 辽HTF373
+23:25:54.319  车牌号码: 辽HTF373
+23:26:11.710  车牌号码: 辽HTF373
+23:26:25.719  车牌号码: 辽HTF373
+23:26:39.917  车牌号码: 辽HTF373
+23:27:07.174  车牌号码: 辽HTF373
+23:27:23.471  车牌号码: 辽HTF373
+23:27:36.882  车牌号码: 辽HTF373
+23:28:03.082  车牌号码: 辽HTF373
+23:28:21.498  车牌号码: 辽HTF373
+23:28:38.511  车牌号码: 辽HTF373
+23:28:54.761  车牌号码: 辽HTF373
+23:29:09.847  车牌号码: 辽HTF373
+23:29:28.155  车牌号码: 辽HTF373
+23:29:41.474  车牌号码: 辽HTF373
+23:29:57.214  车牌号码: 辽HTF373
+23:30:13.735  车牌号码: 辽HTF373
+23:30:33.686  车牌号码: 辽HTF373
+23:30:49.731  车牌号码: 辽HTF373
+23:31:04.734  车牌号码: 辽HTF373
+23:31:19.879  车牌号码: 辽HTF373
+23:31:32.559  车牌号码: 辽HTF373
+23:31:50.460  车牌号码: 辽HTF373
+23:32:04.265  车牌号码: 辽HTF373
+23:32:18.355  车牌号码: 辽HTF373
+23:32:35.326  车牌号码: 辽HTF373
+23:32:52.999  车牌号码: 辽HTF373
+23:33:08.309  车牌号码: 辽HTF373
+23:33:22.143  车牌号码: 辽HTF373
+23:33:36.038  车牌号码: 辽HTF373
+23:33:50.926  车牌号码: 辽HTF373
+23:34:03.660  车牌号码: 辽HTF373
+23:34:18.086  车牌号码: 辽HTF373
+23:34:32.523  车牌号码: 辽HTF373
+23:34:48.928  车牌号码: 辽HTF373
+23:35:06.049  车牌号码: 辽HTF373
+23:35:21.011  车牌号码: 辽HTF373
+23:35:48.310  车牌号码: 辽HTF373
+23:36:02.194  车牌号码: 辽HTF373
+23:36:19.414  车牌号码: 辽HTF373
+23:36:34.327  车牌号码: 辽HTF373
+23:36:48.552  车牌号码: 辽HTF373
+23:37:04.321  车牌号码: 辽HTF373
+23:37:17.822  车牌号码: 辽HTF373
+23:37:31.266  车牌号码: 辽HTF373
+23:37:46.459  车牌号码: 辽HTF373
+23:37:59.436  车牌号码: 辽HTF373
+23:38:12.250  车牌号码: 辽HTF373
+23:38:30.785  车牌号码: 辽HTF373
+23:38:49.601  车牌号码: 辽HTF373
+23:39:02.617  车牌号码: 辽HTF373
+23:39:38.132  车牌号码: 辽HTF373
+23:39:52.607  车牌号码: 辽HTF373
+23:40:27.779  车牌号码: 辽HTF373
+23:40:57.736  车牌号码: 辽HTF373
+23:41:25.217  车牌号码: 辽HTF373
+23:41:48.644  车牌号码: 辽HTF373
+23:42:03.931  车牌号码: 辽HTF373
+23:42:25.811  车牌号码: 辽HTF373
+23:43:00.789  车牌号码: 辽HTF373
+23:43:21.094  车牌号码: 辽HTF373
+23:43:37.695  车牌号码: 辽HTF373
+23:44:17.490  车牌号码: 辽HTF373
+23:45:06.189  车牌号码: 辽HTF373
+23:46:10.850  车牌号码: 辽HTF373
+23:46:23.575  车牌号码: 辽HTF373
+23:46:54.011  车牌号码: 辽HTF373
+23:47:16.472  车牌号码: 辽HTF373
+23:48:29.299  车牌号码: 辽HTF373
+23:49:03.725  车牌号码: 辽HTF373
+23:49:23.721  车牌号码: 辽HTF373
+23:50:04.341  车牌号码: 辽HTF373
+23:50:25.126  车牌号码: 辽HTF373
+23:50:46.273  车牌号码: 辽HTF373
+23:51:00.129  车牌号码: 辽HTF373
+23:51:12.822  车牌号码: 辽HTF373
+23:51:25.407  车牌号码: 辽HTF373
+23:51:38.789  车牌号码: 辽HTF373
+23:51:55.524  车牌号码: 辽HTF373
+23:52:08.365  车牌号码: 辽HTF373
+23:52:31.613  车牌号码: 辽HTF373
+23:52:46.261  车牌号码: 辽HTF373
+23:53:11.289  车牌号码: 辽HTF373
+23:53:27.969  车牌号码: 辽HTF373
+23:53:42.788  车牌号码: 辽HTF373
+23:54:09.222  车牌号码: 辽HTF373
+23:54:22.024  车牌号码: 辽HTF373
+23:54:35.516  车牌号码: 辽HTF373
+23:54:49.691  车牌号码: 辽HTF373
+23:55:03.255  车牌号码: 辽HTF373
+23:55:18.255  车牌号码: 辽HTF373
+23:55:34.782  车牌号码: 辽HTF373
+23:55:51.084  车牌号码: 辽HTF373
+23:56:06.357  车牌号码: 辽HTF373
+23:56:21.934  车牌号码: 辽HTF373
+23:56:39.727  车牌号码: 辽HTF373
+23:56:56.150  车牌号码: 辽HTF373
+23:57:11.016  车牌号码: 辽HTF373
+23:57:24.173  车牌号码: 辽HTF373
+23:57:47.826  车牌号码: 辽HTF373
+23:58:00.820  车牌号码: 辽HTF373
+23:58:14.946  车牌号码: 辽HTF373
+23:58:29.597  车牌号码: 辽HTF373
+23:58:44.583  车牌号码: 辽HTF373
+23:59:04.452  车牌号码: 辽HTF373
+23:59:17.359  车牌号码: 辽HTF373
+23:59:34.603  车牌号码: 辽HTF373
+23:59:47.869  车牌号码: 辽HTF373

+ 1329 - 0
DLL/windows/64bit/KHT_Log/192.168.110.98/2022-10-31.txt

@@ -0,0 +1,1329 @@
+00:00:10.848  车牌号码: 辽HTF373
+00:00:24.168  车牌号码: 辽HTF373
+00:00:42.634  车牌号码: 辽HTF373
+00:01:01.608  车牌号码: 辽HTF373
+00:01:16.192  车牌号码: 辽HTF373
+00:01:33.684  车牌号码: 辽HTF373
+00:01:46.466  车牌号码: 辽HTF373
+00:02:00.120  车牌号码: 辽HTF373
+00:02:23.746  车牌号码: 辽HTF373
+00:02:44.945  车牌号码: 辽HTF373
+00:02:58.442  车牌号码: 辽HTF373
+00:03:13.120  车牌号码: 辽HTF373
+00:03:25.800  车牌号码: 辽HTF373
+00:03:38.815  车牌号码: 辽HTF373
+00:03:55.118  车牌号码: 辽HTF373
+00:04:10.811  车牌号码: 辽HTF373
+00:04:24.730  车牌号码: 辽HTF373
+00:04:43.870  车牌号码: 辽HTF373
+00:04:57.042  车牌号码: 辽HTF373
+00:05:09.662  车牌号码: 辽HTF373
+00:05:22.734  车牌号码: 辽HTF373
+00:05:36.460  车牌号码: 辽HTF373
+00:05:49.555  车牌号码: 辽HTF373
+00:06:02.811  车牌号码: 辽HTF373
+00:06:18.603  车牌号码: 辽HTF373
+00:06:33.183  车牌号码: 辽HTF373
+00:07:00.949  车牌号码: 辽HTF373
+00:07:15.181  车牌号码: 辽HTF373
+00:07:30.096  车牌号码: 辽HTF373
+00:07:51.832  车牌号码: 辽HTF373
+00:08:04.618  车牌号码: 辽HTF373
+00:08:18.414  车牌号码: 辽HTF373
+00:08:36.950  车牌号码: 辽HTF373
+00:08:59.816  车牌号码: 辽HTF373
+00:09:13.243  车牌号码: 辽HTF373
+00:09:26.023  车牌号码: 辽HTF373
+00:09:38.860  车牌号码: 辽HTF373
+00:09:53.987  车牌号码: 辽HTF373
+00:10:16.710  车牌号码: 辽HTF373
+00:10:31.235  车牌号码: 辽HTF373
+00:10:47.245  车牌号码: 辽HTF373
+00:11:01.305  车牌号码: 辽HTF373
+00:11:16.515  车牌号码: 辽HTF373
+00:11:29.136  车牌号码: 辽HTF373
+00:11:42.289  车牌号码: 辽HTF373
+00:11:56.102  车牌号码: 辽HTF373
+00:12:14.779  车牌号码: 辽HTF373
+00:12:30.430  车牌号码: 辽HTF373
+00:12:45.827  车牌号码: 辽HTF373
+00:12:59.005  车牌号码: 辽HTF373
+00:13:14.351  车牌号码: 辽HTF373
+00:13:29.357  车牌号码: 辽HTF373
+00:13:44.912  车牌号码: 辽HTF373
+00:14:01.032  车牌号码: 辽HTF373
+00:14:13.921  车牌号码: 辽HTF373
+00:14:32.020  车牌号码: 辽HTF373
+00:14:47.328  车牌号码: 辽HTF373
+00:15:00.168  车牌号码: 辽HTF373
+00:15:18.679  车牌号码: 辽HTF373
+00:15:34.384  车牌号码: 辽HTF373
+00:15:47.108  车牌号码: 辽HTF373
+00:16:10.333  车牌号码: 辽HTF373
+00:16:23.204  车牌号码: 辽HTF373
+00:16:37.186  车牌号码: 辽HTF373
+00:16:57.856  车牌号码: 辽HTF373
+00:17:12.968  车牌号码: 辽HTF373
+00:17:26.685  车牌号码: 辽HTF373
+00:17:39.612  车牌号码: 辽HTF373
+00:17:52.844  车牌号码: 辽HTF373
+00:18:07.699  车牌号码: 辽HTF373
+00:18:20.436  车牌号码: 辽HTF373
+00:18:35.575  车牌号码: 辽HTF373
+00:18:49.012  车牌号码: 辽HTF373
+00:19:05.330  车牌号码: 辽HTF373
+00:19:22.920  车牌号码: 辽HTF373
+00:19:35.970  车牌号码: 辽HTF373
+00:19:59.927  车牌号码: 辽HTF373
+00:20:13.562  车牌号码: 辽HTF373
+00:20:38.933  车牌号码: 辽HTF373
+00:20:51.673  车牌号码: 辽HTF373
+00:21:08.391  车牌号码: 辽HTF373
+00:21:21.186  车牌号码: 辽HTF373
+00:21:37.596  车牌号码: 辽HTF373
+00:21:52.129  车牌号码: 辽HTF373
+00:22:17.490  车牌号码: 辽HTF373
+00:22:34.800  车牌号码: 辽HTF373
+00:22:55.585  车牌号码: 辽HTF373
+00:23:10.157  车牌号码: 辽HTF373
+00:23:28.027  车牌号码: 辽HTF373
+00:23:42.451  车牌号码: 辽HTF373
+00:23:55.974  车牌号码: 辽HTF373
+00:24:10.367  车牌号码: 辽HTF373
+00:24:24.526  车牌号码: 辽HTF373
+00:24:37.242  车牌号码: 辽HTF373
+00:24:53.597  车牌号码: 辽HTF373
+00:25:22.534  车牌号码: 辽HTF373
+00:25:37.392  车牌号码: 辽HTF373
+00:25:52.399  车牌号码: 辽HTF373
+00:26:05.694  车牌号码: 辽HTF373
+00:26:22.485  车牌号码: 辽HTF373
+00:26:40.252  车牌号码: 辽HTF373
+00:26:52.876  车牌号码: 辽HTF373
+00:27:08.193  车牌号码: 辽HTF373
+00:27:25.433  车牌号码: 辽HTF373
+00:27:46.172  车牌号码: 辽HTF373
+00:27:59.219  车牌号码: 辽HTF373
+00:28:28.071  车牌号码: 辽HTF373
+00:28:42.789  车牌号码: 辽HTF373
+00:28:59.801  车牌号码: 辽HTF373
+00:29:32.518  车牌号码: 辽HTF373
+00:29:45.930  车牌号码: 辽HTF373
+00:30:00.532  车牌号码: 辽HTF373
+00:30:13.394  车牌号码: 辽HTF373
+00:30:27.364  车牌号码: 辽HTF373
+00:30:44.348  车牌号码: 辽HTF373
+00:31:07.749  车牌号码: 辽HTF373
+00:31:20.527  车牌号码: 辽HTF373
+00:31:33.608  车牌号码: 辽HTF373
+00:31:56.203  车牌号码: 辽HTF373
+00:32:13.678  车牌号码: 辽HTF373
+00:32:31.935  车牌号码: 辽HTF373
+00:32:46.549  车牌号码: 辽HTF373
+00:33:08.752  车牌号码: 辽HTF373
+00:33:24.558  车牌号码: 辽HTF373
+00:33:38.420  车牌号码: 辽HTF373
+00:33:56.150  车牌号码: 辽HTF373
+00:34:08.890  车牌号码: 辽HTF373
+00:34:37.695  车牌号码: 辽HTF373
+00:34:52.252  车牌号码: 辽HTF373
+00:35:05.525  车牌号码: 辽HTF373
+00:35:23.714  车牌号码: 辽HTF373
+00:35:40.358  车牌号码: 辽HTF373
+00:35:58.521  车牌号码: 辽HTF373
+00:36:29.026  车牌号码: 辽HTF373
+00:36:44.027  车牌号码: 辽HTF373
+00:36:58.158  车牌号码: 辽HTF373
+00:37:29.510  车牌号码: 辽HTF373
+00:37:44.021  车牌号码: 辽HTF373
+00:37:56.713  车牌号码: 辽HTF373
+00:38:09.417  车牌号码: 辽HTF373
+00:38:22.236  车牌号码: 辽HTF373
+00:38:36.570  车牌号码: 辽HTF373
+00:38:50.468  车牌号码: 辽HTF373
+00:39:04.242  车牌号码: 辽HTF373
+00:39:21.612  车牌号码: 辽HTF373
+00:39:35.741  车牌号码: 辽HTF373
+00:39:48.568  车牌号码: 辽HTF373
+00:40:04.479  车牌号码: 辽HTF373
+00:40:21.616  车牌号码: 辽HTF373
+00:40:43.012  车牌号码: 辽HTF373
+00:40:56.320  车牌号码: 辽HTF373
+00:41:15.817  车牌号码: 辽HTF373
+00:41:31.414  车牌号码: 辽HTF373
+00:41:48.710  车牌号码: 辽HTF373
+00:42:03.015  车牌号码: 辽HTF373
+00:42:15.613  车牌号码: 辽HTF373
+00:42:37.746  车牌号码: 辽HTF373
+00:42:51.211  车牌号码: 辽HTF373
+00:43:04.908  车牌号码: 辽HTF373
+00:43:20.901  车牌号码: 辽HTF373
+00:43:33.765  车牌号码: 辽HTF373
+00:43:47.122  车牌号码: 辽HTF373
+00:44:01.622  车牌号码: 辽HTF373
+00:44:25.770  车牌号码: 辽HTF373
+00:44:40.919  车牌号码: 辽HTF373
+00:44:57.390  车牌号码: 辽HTF373
+00:45:12.370  车牌号码: 辽HTF373
+00:45:28.399  车牌号码: 辽HTF373
+00:45:48.294  车牌号码: 辽HTF373
+00:46:09.156  车牌号码: 辽HTF373
+00:46:29.820  车牌号码: 辽HTF373
+00:46:47.042  车牌号码: 辽HTF373
+00:47:01.139  车牌号码: 辽HTF373
+00:47:17.627  车牌号码: 辽HTF373
+00:47:31.975  车牌号码: 辽HTF373
+00:47:48.499  车牌号码: 辽HTF373
+00:48:07.966  车牌号码: 辽HTF373
+00:48:31.591  车牌号码: 辽HTF373
+00:48:55.227  车牌号码: 辽HTF373
+00:49:08.434  车牌号码: 辽HTF373
+00:49:34.258  车牌号码: 辽HTF373
+00:49:52.748  车牌号码: 辽HTF373
+00:50:08.632  车牌号码: 辽HTF373
+00:50:35.993  车牌号码: 辽HTF373
+00:51:01.977  车牌号码: 辽HTF373
+00:51:17.882  车牌号码: 辽HTF373
+00:51:36.362  车牌号码: 辽HTF373
+00:51:54.167  车牌号码: 辽HTF373
+00:52:08.284  车牌号码: 辽HTF373
+00:52:25.987  车牌号码: 辽HTF373
+00:52:40.640  车牌号码: 辽HTF373
+00:52:54.125  车牌号码: 辽HTF373
+00:53:07.935  车牌号码: 辽HTF373
+00:53:29.823  车牌号码: 辽HTF373
+00:53:49.513  车牌号码: 辽HTF373
+00:54:03.179  车牌号码: 辽HTF373
+00:54:20.817  车牌号码: 辽HTF373
+00:54:36.181  车牌号码: 辽HTF373
+00:54:54.970  车牌号码: 辽HTF373
+00:55:13.171  车牌号码: 辽HTF373
+00:55:33.873  车牌号码: 辽HTF373
+00:55:54.363  车牌号码: 辽HTF373
+00:56:08.917  车牌号码: 辽HTF373
+00:56:23.309  车牌号码: 辽HTF373
+00:56:41.041  车牌号码: 辽HTF373
+00:56:54.751  车牌号码: 辽HTF373
+00:57:16.650  车牌号码: 辽HTF373
+00:57:30.469  车牌号码: 辽HTF373
+00:57:44.764  车牌号码: 辽HTF373
+00:58:10.266  车牌号码: 辽HTF373
+00:58:26.018  车牌号码: 辽HTF373
+00:58:39.668  车牌号码: 辽HTF373
+00:58:55.204  车牌号码: 辽HTF373
+00:59:10.236  车牌号码: 辽HTF373
+00:59:27.843  车牌号码: 辽HTF373
+00:59:48.193  车牌号码: 辽HTF373
+01:00:04.867  车牌号码: 辽HTF373
+01:00:25.962  车牌号码: 辽HTF373
+01:00:42.598  车牌号码: 辽HTF373
+01:00:58.678  车牌号码: 辽HTF373
+01:01:20.661  车牌号码: 辽HTF373
+01:01:35.342  车牌号码: 辽HTF373
+01:01:49.292  车牌号码: 辽HTF373
+01:02:08.663  车牌号码: 辽HTF373
+01:02:22.285  车牌号码: 辽HTF373
+01:02:36.088  车牌号码: 辽HTF373
+01:02:53.201  车牌号码: 辽HTF373
+01:03:14.445  车牌号码: 辽HTF373
+01:03:29.885  车牌号码: 辽HTF373
+01:03:48.107  车牌号码: 辽HTF373
+01:04:00.813  车牌号码: 辽HTF373
+01:04:20.228  车牌号码: 辽HTF373
+01:04:33.302  车牌号码: 辽HTF373
+01:04:46.673  车牌号码: 辽HTF373
+01:05:09.598  车牌号码: 辽HTF373
+01:05:24.917  车牌号码: 辽HTF373
+01:05:42.775  车牌号码: 辽HTF373
+01:05:58.244  车牌号码: 辽HTF373
+01:06:15.921  车牌号码: 辽HTF373
+01:06:31.300  车牌号码: 辽HTF373
+01:06:45.889  车牌号码: 辽HTF373
+01:07:00.180  车牌号码: 辽HTF373
+01:07:13.601  车牌号码: 辽HTF373
+01:07:30.141  车牌号码: 辽HTF373
+01:07:44.931  车牌号码: 辽HTF373
+01:08:00.852  车牌号码: 辽HTF373
+01:08:14.927  车牌号码: 辽HTF373
+01:08:30.303  车牌号码: 辽HTF373
+01:08:50.225  车牌号码: 辽HTF373
+01:09:04.270  车牌号码: 辽HTF373
+01:09:17.238  车牌号码: 辽HTF373
+01:09:37.766  车牌号码: 辽HTF373
+01:09:52.417  车牌号码: 辽HTF373
+01:10:06.916  车牌号码: 辽HTF373
+01:10:22.141  车牌号码: 辽HTF373
+01:10:43.023  车牌号码: 辽HTF373
+01:11:04.341  车牌号码: 辽HTF373
+01:11:22.362  车牌号码: 辽HTF373
+01:11:35.164  车牌号码: 辽HTF373
+01:11:49.847  车牌号码: 辽HTF373
+01:12:10.675  车牌号码: 辽HTF373
+01:12:27.452  车牌号码: 辽HTF373
+01:12:45.137  车牌号码: 辽HTF373
+01:12:58.299  车牌号码: 辽HTF373
+01:13:11.438  车牌号码: 辽HTF373
+01:13:25.193  车牌号码: 辽HTF373
+01:13:38.440  车牌号码: 辽HTF373
+01:13:51.157  车牌号码: 辽HTF373
+01:14:10.598  车牌号码: 辽HTF373
+01:14:27.594  车牌号码: 辽HTF373
+01:14:40.234  车牌号码: 辽HTF373
+01:14:58.868  车牌号码: 辽HTF373
+01:15:11.810  车牌号码: 辽HTF373
+01:15:28.445  车牌号码: 辽HTF373
+01:15:44.308  车牌号码: 辽HTF373
+01:15:58.509  车牌号码: 辽HTF373
+01:16:13.107  车牌号码: 辽HTF373
+01:16:25.889  车牌号码: 辽HTF373
+01:16:43.031  车牌号码: 辽HTF373
+01:16:56.506  车牌号码: 辽HTF373
+01:17:09.084  车牌号码: 辽HTF373
+01:17:23.278  车牌号码: 辽HTF373
+01:17:44.635  车牌号码: 辽HTF373
+01:18:00.544  车牌号码: 辽HTF373
+01:18:24.662  车牌号码: 辽HTF373
+01:18:42.957  车牌号码: 辽HTF373
+01:18:56.526  车牌号码: 辽HTF373
+01:19:11.323  车牌号码: 辽HTF373
+01:19:24.189  车牌号码: 辽HTF373
+01:19:40.439  车牌号码: 辽HTF373
+01:19:55.646  车牌号码: 辽HTF373
+01:20:08.828  车牌号码: 辽HTF373
+01:20:28.545  车牌号码: 辽HTF373
+01:20:41.568  车牌号码: 辽HTF373
+01:20:56.202  车牌号码: 辽HTF373
+01:21:09.442  车牌号码: 辽HTF373
+01:21:22.761  车牌号码: 辽HTF373
+01:21:40.932  车牌号码: 辽HTF373
+01:22:05.491  车牌号码: 辽HTF373
+01:22:18.106  车牌号码: 辽HTF373
+01:22:34.173  车牌号码: 辽HTF373
+01:22:54.208  车牌号码: 辽HTF373
+01:23:13.404  车牌号码: 辽HTF373
+01:23:30.142  车牌号码: 辽HTF373
+01:23:43.226  车牌号码: 辽HTF373
+01:23:56.410  车牌号码: 辽HTF373
+01:24:09.976  车牌号码: 辽HTF373
+01:24:25.558  车牌号码: 辽HTF373
+01:24:38.352  车牌号码: 辽HTF373
+01:24:53.648  车牌号码: 辽HTF373
+01:25:07.876  车牌号码: 辽HTF373
+01:25:24.192  车牌号码: 辽HTF373
+01:25:37.687  车牌号码: 辽HTF373
+01:25:55.731  车牌号码: 辽HTF373
+01:26:10.329  车牌号码: 辽HTF373
+01:26:23.501  车牌号码: 辽HTF373
+01:26:36.632  车牌号码: 辽HTF373
+01:26:53.172  车牌号码: 辽HTF373
+01:27:06.390  车牌号码: 辽HTF373
+01:27:19.412  车牌号码: 辽HTF373
+01:27:32.373  车牌号码: 辽HTF373
+01:27:45.818  车牌号码: 辽HTF373
+01:27:59.708  车牌号码: 辽HTF373
+01:28:14.239  车牌号码: 辽HTF373
+01:28:29.890  车牌号码: 辽HTF373
+01:28:44.594  车牌号码: 辽HTF373
+01:28:58.555  车牌号码: 辽HTF373
+01:29:11.131  车牌号码: 辽HTF373
+01:29:24.694  车牌号码: 辽HTF373
+01:29:37.587  车牌号码: 辽HTF373
+01:29:50.486  车牌号码: 辽HTF373
+01:30:09.153  车牌号码: 辽HTF373
+01:30:25.460  车牌号码: 辽HTF373
+01:30:39.154  车牌号码: 辽HTF373
+01:30:54.179  车牌号码: 辽HTF373
+01:31:11.352  车牌号码: 辽HTF373
+01:31:24.253  车牌号码: 辽HTF373
+01:31:37.902  车牌号码: 辽HTF373
+01:31:50.765  车牌号码: 辽HTF373
+01:32:07.650  车牌号码: 辽HTF373
+01:32:20.323  车牌号码: 辽HTF373
+01:32:34.421  车牌号码: 辽HTF373
+01:32:48.852  车牌号码: 辽HTF373
+01:33:02.414  车牌号码: 辽HTF373
+01:33:17.760  车牌号码: 辽HTF373
+01:33:32.286  车牌号码: 辽HTF373
+01:33:45.734  车牌号码: 辽HTF373
+01:33:59.310  车牌号码: 辽HTF373
+01:34:13.412  车牌号码: 辽HTF373
+01:34:28.466  车牌号码: 辽HTF373
+01:34:42.215  车牌号码: 辽HTF373
+01:34:55.021  车牌号码: 辽HTF373
+01:35:11.538  车牌号码: 辽HTF373
+01:35:36.884  车牌号码: 辽HTF373
+01:35:49.782  车牌号码: 辽HTF373
+01:36:10.382  车牌号码: 辽HTF373
+01:36:24.180  车牌号码: 辽HTF373
+01:36:39.384  车牌号码: 辽HTF373
+01:36:52.447  车牌号码: 辽HTF373
+01:37:05.619  车牌号码: 辽HTF373
+01:37:19.163  车牌号码: 辽HTF373
+01:37:34.279  车牌号码: 辽HTF373
+01:37:47.164  车牌号码: 辽HTF373
+01:38:00.776  车牌号码: 辽HTF373
+01:38:19.642  车牌号码: 辽HTF373
+01:38:32.496  车牌号码: 辽HTF373
+01:38:57.566  车牌号码: 辽HTF373
+01:39:11.654  车牌号码: 辽HTF373
+01:39:26.301  车牌号码: 辽HTF373
+01:39:39.806  车牌号码: 辽HTF373
+01:39:56.286  车牌号码: 辽HTF373
+01:40:09.534  车牌号码: 辽HTF373
+01:40:22.418  车牌号码: 辽HTF373
+01:40:35.035  车牌号码: 辽HTF373
+01:40:50.683  车牌号码: 辽HTF373
+01:41:17.085  车牌号码: 辽HTF373
+01:41:33.644  车牌号码: 辽HTF373
+01:41:46.964  车牌号码: 辽HTF373
+01:42:03.525  车牌号码: 辽HTF373
+01:42:16.193  车牌号码: 辽HTF373
+01:42:29.491  车牌号码: 辽HTF373
+01:42:42.902  车牌号码: 辽HTF373
+01:43:00.954  车牌号码: 辽HTF373
+01:43:15.221  车牌号码: 辽HTF373
+01:43:27.991  车牌号码: 辽HTF373
+01:43:41.295  车牌号码: 辽HTF373
+01:44:11.589  车牌号码: 辽HTF373
+01:44:27.136  车牌号码: 辽HTF373
+01:44:47.004  车牌号码: 辽HTF373
+01:45:00.876  车牌号码: 辽HTF373
+01:45:13.552  车牌号码: 辽HTF373
+01:45:38.149  车牌号码: 辽HTF373
+01:45:51.747  车牌号码: 辽HTF373
+01:46:05.754  车牌号码: 辽HTF373
+01:46:18.706  车牌号码: 辽HTF373
+01:46:32.599  车牌号码: 辽HTF373
+01:46:55.159  车牌号码: 辽HTF373
+01:47:13.207  车牌号码: 辽HTF373
+01:47:26.025  车牌号码: 辽HTF373
+01:47:45.136  车牌号码: 辽HTF373
+01:47:59.083  车牌号码: 辽HTF373
+01:48:13.265  车牌号码: 辽HTF373
+01:48:37.642  车牌号码: 辽HTF373
+01:48:50.380  车牌号码: 辽HTF373
+01:49:04.799  车牌号码: 辽HTF373
+01:49:18.115  车牌号码: 辽HTF373
+01:49:31.129  车牌号码: 辽HTF373
+01:49:47.900  车牌号码: 辽HTF373
+01:50:02.289  车牌号码: 辽HTF373
+01:50:15.823  车牌号码: 辽HTF373
+01:50:30.950  车牌号码: 辽HTF373
+01:50:48.791  车牌号码: 辽HTF373
+01:51:03.673  车牌号码: 辽HTF373
+01:51:18.001  车牌号码: 辽HTF373
+01:51:30.733  车牌号码: 辽HTF373
+01:51:51.945  车牌号码: 辽HTF373
+01:52:05.006  车牌号码: 辽HTF373
+01:52:18.259  车牌号码: 辽HTF373
+01:52:33.189  车牌号码: 辽HTF373
+01:52:47.205  车牌号码: 辽HTF373
+01:53:03.941  车牌号码: 辽HTF373
+01:53:18.389  车牌号码: 辽HTF373
+01:53:34.732  车牌号码: 辽HTF373
+01:53:51.526  车牌号码: 辽HTF373
+01:54:04.313  车牌号码: 辽HTF373
+01:54:17.141  车牌号码: 辽HTF373
+01:54:31.373  车牌号码: 辽HTF373
+01:54:45.672  车牌号码: 辽HTF373
+01:54:58.300  车牌号码: 辽HTF373
+01:55:11.675  车牌号码: 辽HTF373
+01:55:24.395  车牌号码: 辽HTF373
+01:55:39.649  车牌号码: 辽HTF373
+01:55:59.048  车牌号码: 辽HTF373
+01:56:11.678  车牌号码: 辽HTF373
+01:56:25.172  车牌号码: 辽HTF373
+01:56:37.893  车牌号码: 辽HTF373
+01:56:55.758  车牌号码: 辽HTF373
+01:57:11.271  车牌号码: 辽HTF373
+01:57:26.334  车牌号码: 辽HTF373
+01:57:40.912  车牌号码: 辽HTF373
+01:57:53.952  车牌号码: 辽HTF373
+01:58:07.906  车牌号码: 辽HTF373
+01:58:21.676  车牌号码: 辽HTF373
+01:58:37.118  车牌号码: 辽HTF373
+01:58:53.973  车牌号码: 辽HTF373
+01:59:17.914  车牌号码: 辽HTF373
+01:59:35.843  车牌号码: 辽HTF373
+01:59:48.892  车牌号码: 辽HTF373
+02:00:04.736  车牌号码: 辽HTF373
+02:00:22.023  车牌号码: 辽HTF373
+02:00:37.330  车牌号码: 辽HTF373
+02:00:50.624  车牌号码: 辽HTF373
+02:01:03.730  车牌号码: 辽HTF373
+02:01:17.026  车牌号码: 辽HTF373
+02:01:45.026  车牌号码: 辽HTF373
+02:02:03.285  车牌号码: 辽HTF373
+02:02:16.519  车牌号码: 辽HTF373
+02:02:36.833  车牌号码: 辽HTF373
+02:02:52.445  车牌号码: 辽HTF373
+02:03:05.355  车牌号码: 辽HTF373
+02:03:37.520  车牌号码: 辽HTF373
+02:03:50.236  车牌号码: 辽HTF373
+02:04:07.697  车牌号码: 辽HTF373
+02:04:28.224  车牌号码: 辽HTF373
+02:04:41.546  车牌号码: 辽HTF373
+02:04:54.409  车牌号码: 辽HTF373
+02:05:17.784  车牌号码: 辽HTF373
+02:05:39.862  车牌号码: 辽HTF373
+02:05:55.135  车牌号码: 辽HTF373
+02:06:10.894  车牌号码: 辽HTF373
+02:06:27.729  车牌号码: 辽HTF373
+02:06:56.141  车牌号码: 辽HTF373
+02:07:09.757  车牌号码: 辽HTF373
+02:07:25.108  车牌号码: 辽HTF373
+02:07:37.702  车牌号码: 辽HTF373
+02:07:55.031  车牌号码: 辽HTF373
+02:08:09.158  车牌号码: 辽HTF373
+02:08:25.576  车牌号码: 辽HTF373
+02:08:51.290  车牌号码: 辽HTF373
+02:09:15.102  车牌号码: 辽HTF373
+02:09:44.119  车牌号码: 辽HTF373
+02:10:16.383  车牌号码: 辽HTF373
+02:10:29.408  车牌号码: 辽HTF373
+02:10:46.200  车牌号码: 辽HTF373
+02:11:11.690  车牌号码: 辽HTF373
+02:11:24.584  车牌号码: 辽HTF373
+02:11:42.616  车牌号码: 辽HTF373
+02:12:04.854  车牌号码: 辽HTF373
+02:12:18.152  车牌号码: 辽HTF373
+02:12:31.147  车牌号码: 辽HTF373
+02:12:48.190  车牌号码: 辽HTF373
+02:13:03.897  车牌号码: 辽HTF373
+02:13:23.009  车牌号码: 辽HTF373
+02:13:36.597  车牌号码: 辽HTF373
+02:13:49.493  车牌号码: 辽HTF373
+02:14:17.325  车牌号码: 辽HTF373
+02:14:30.103  车牌号码: 辽HTF373
+02:15:05.861  车牌号码: 辽HTF373
+02:15:18.475  车牌号码: 辽HTF373
+02:15:31.883  车牌号码: 辽HTF373
+02:15:44.881  车牌号码: 辽HTF373
+02:16:01.690  车牌号码: 辽HTF373
+02:16:18.728  车牌号码: 辽HTF373
+02:16:38.929  车牌号码: 辽HTF373
+02:16:51.720  车牌号码: 辽HTF373
+02:17:04.678  车牌号码: 辽HTF373
+02:17:17.298  车牌号码: 辽HTF373
+02:17:32.436  车牌号码: 辽HTF373
+02:17:47.806  车牌号码: 辽HTF373
+02:18:05.709  车牌号码: 辽HTF373
+02:18:19.854  车牌号码: 辽HTF373
+02:18:37.848  车牌号码: 辽HTF373
+02:19:04.509  车牌号码: 辽HTF373
+02:19:17.690  车牌号码: 辽HTF373
+02:19:38.309  车牌号码: 辽HTF373
+02:19:51.657  车牌号码: 辽HTF373
+02:20:06.838  车牌号码: 辽HTF373
+02:20:34.277  车牌号码: 辽HTF373
+02:20:49.042  车牌号码: 辽HTF373
+02:21:06.215  车牌号码: 辽HTF373
+02:21:19.246  车牌号码: 辽HTF373
+02:21:36.319  车牌号码: 辽HTF373
+02:21:49.373  车牌号码: 辽HTF373
+02:22:07.138  车牌号码: 辽HTF373
+02:22:33.224  车牌号码: 辽HTF373
+02:22:45.924  车牌号码: 辽HTF373
+02:23:01.811  车牌号码: 辽HTF373
+02:23:16.079  车牌号码: 辽HTF373
+02:23:33.102  车牌号码: 辽HTF373
+02:23:52.108  车牌号码: 辽HTF373
+02:24:05.679  车牌号码: 辽HTF373
+02:24:18.616  车牌号码: 辽HTF373
+02:25:14.217  车牌号码: 辽HTF373
+02:25:26.881  车牌号码: 辽HTF373
+02:25:57.863  车牌号码: 辽HTF373
+02:26:15.126  车牌号码: 辽HTF373
+02:26:27.699  车牌号码: 辽HTF373
+02:26:44.936  车牌号码: 辽HTF373
+02:27:04.530  车牌号码: 辽HTF373
+02:27:21.771  车牌号码: 辽HTF373
+02:27:35.900  车牌号码: 辽HTF373
+02:27:54.135  车牌号码: 辽HTF373
+02:28:07.241  车牌号码: 辽HTF373
+02:28:23.271  车牌号码: 辽HTF373
+02:28:35.943  车牌号码: 辽HTF373
+02:28:54.147  车牌号码: 辽HTF373
+02:29:16.738  车牌号码: 辽HTF373
+02:29:29.307  车牌号码: 辽HTF373
+02:29:52.190  车牌号码: 辽HTF373
+02:30:10.630  车牌号码: 辽HTF373
+02:30:29.196  车牌号码: 辽HTF373
+02:30:42.805  车牌号码: 辽HTF373
+02:30:56.356  车牌号码: 辽HTF373
+02:31:13.885  车牌号码: 辽HTF373
+02:31:28.184  车牌号码: 辽HTF373
+02:31:51.107  车牌号码: 辽HTF373
+02:32:12.171  车牌号码: 辽HTF373
+02:32:34.328  车牌号码: 辽HTF373
+02:32:55.067  车牌号码: 辽HTF373
+02:33:07.631  车牌号码: 辽HTF373
+02:33:23.378  车牌号码: 辽HTF373
+02:33:38.224  车牌号码: 辽HTF373
+02:33:54.496  车牌号码: 辽HTF373
+02:34:28.833  车牌号码: 辽HTF373
+02:34:55.322  车牌号码: 辽HTF373
+02:35:13.070  车牌号码: 辽HTF373
+02:35:25.811  车牌号码: 辽HTF373
+02:35:38.670  车牌号码: 辽HTF373
+02:35:52.078  车牌号码: 辽HTF373
+02:36:08.286  车牌号码: 辽HTF373
+02:36:25.814  车牌号码: 辽HTF373
+02:37:12.783  车牌号码: 辽HTF373
+02:37:25.400  车牌号码: 辽HTF373
+02:37:38.262  车牌号码: 辽HTF373
+02:37:51.294  车牌号码: 辽HTF373
+02:38:04.142  车牌号码: 辽HTF373
+02:38:23.307  车牌号码: 辽HTF373
+02:38:38.324  车牌号码: 辽HTF373
+02:39:03.542  车牌号码: 辽HTF373
+02:39:20.250  车牌号码: 辽HTF373
+02:39:34.403  车牌号码: 辽HTF373
+02:39:54.199  车牌号码: 辽HTF373
+02:40:12.308  车牌号码: 辽HTF373
+02:40:47.848  车牌号码: 辽HTF373
+02:41:06.800  车牌号码: 辽HTF373
+02:41:27.344  车牌号码: 辽HTF373
+02:41:52.001  车牌号码: 辽HTF373
+02:42:16.223  车牌号码: 辽HTF373
+02:42:32.283  车牌号码: 辽HTF373
+02:42:49.990  车牌号码: 辽HTF373
+02:43:02.988  车牌号码: 辽HTF373
+02:43:19.889  车牌号码: 辽HTF373
+02:43:40.477  车牌号码: 辽HTF373
+02:43:53.869  车牌号码: 辽HTF373
+02:44:18.347  车牌号码: 辽HTF373
+02:44:31.157  车牌号码: 辽HTF373
+02:44:54.945  车牌号码: 辽HTF373
+02:45:09.724  车牌号码: 辽HTF373
+02:45:25.334  车牌号码: 辽HTF373
+02:45:38.466  车牌号码: 辽HTF373
+02:45:59.044  车牌号码: 辽HTF373
+02:46:26.633  车牌号码: 辽HTF373
+02:46:39.810  车牌号码: 辽HTF373
+02:47:01.510  车牌号码: 辽HTF373
+02:47:15.360  车牌号码: 辽HTF373
+02:47:29.419  车牌号码: 辽HTF373
+02:47:42.331  车牌号码: 辽HTF373
+02:48:01.843  车牌号码: 辽HTF373
+02:48:27.751  车牌号码: 辽HTF373
+02:48:42.258  车牌号码: 辽HTF373
+02:49:02.078  车牌号码: 辽HTF373
+02:49:18.896  车牌号码: 辽HTF373
+02:49:36.839  车牌号码: 辽HTF373
+02:49:50.486  车牌号码: 辽HTF373
+02:50:03.591  车牌号码: 辽HTF373
+02:50:33.071  车牌号码: 辽HTF373
+02:50:54.839  车牌号码: 辽HTF373
+02:51:10.339  车牌号码: 辽HTF373
+02:51:31.175  车牌号码: 辽HTF373
+02:51:44.839  车牌号码: 辽HTF373
+02:52:02.049  车牌号码: 辽HTF373
+02:52:14.845  车牌号码: 辽HTF373
+02:52:28.569  车牌号码: 辽HTF373
+02:52:44.132  车牌号码: 辽HTF373
+02:52:56.807  车牌号码: 辽HTF373
+02:53:12.306  车牌号码: 辽HTF373
+02:53:25.116  车牌号码: 辽HTF373
+02:53:37.790  车牌号码: 辽HTF373
+02:53:50.677  车牌号码: 辽HTF373
+02:54:11.183  车牌号码: 辽HTF373
+02:54:45.085  车牌号码: 辽HTF373
+02:54:59.193  车牌号码: 辽HTF373
+02:55:29.621  车牌号码: 辽HTF373
+02:55:45.169  车牌号码: 辽HTF373
+02:56:05.608  车牌号码: 辽HTF373
+02:56:24.151  车牌号码: 辽HTF373
+02:56:36.916  车牌号码: 辽HTF373
+02:56:59.922  车牌号码: 辽HTF373
+02:57:14.346  车牌号码: 辽HTF373
+02:57:27.871  车牌号码: 辽HTF373
+02:57:40.600  车牌号码: 辽HTF373
+02:57:58.647  车牌号码: 辽HTF373
+02:58:16.493  车牌号码: 辽HTF373
+02:58:30.480  车牌号码: 辽HTF373
+02:58:43.354  车牌号码: 辽HTF373
+02:59:08.480  车牌号码: 辽HTF373
+02:59:21.776  车牌号码: 辽HTF373
+02:59:42.113  车牌号码: 辽HTF373
+02:59:54.820  车牌号码: 辽HTF373
+03:00:17.441  车牌号码: 辽HTF373
+03:00:30.130  车牌号码: 辽HTF373
+03:00:44.914  车牌号码: 辽HTF373
+03:01:07.860  车牌号码: 辽HTF373
+03:01:21.075  车牌号码: 辽HTF373
+03:01:35.109  车牌号码: 辽HTF373
+03:02:07.037  车牌号码: 辽HTF373
+03:02:27.931  车牌号码: 辽HTF373
+03:02:41.464  车牌号码: 辽HTF373
+03:02:57.178  车牌号码: 辽HTF373
+03:03:14.138  车牌号码: 辽HTF373
+03:03:29.011  车牌号码: 辽HTF373
+03:03:41.851  车牌号码: 辽HTF373
+03:04:01.760  车牌号码: 辽HTF373
+03:04:14.671  车牌号码: 辽HTF373
+03:04:27.773  车牌号码: 辽HTF373
+03:04:40.851  车牌号码: 辽HTF373
+03:05:06.773  车牌号码: 辽HTF373
+03:05:26.624  车牌号码: 辽HTF373
+03:05:41.817  车牌号码: 辽HTF373
+03:05:55.605  车牌号码: 辽HTF373
+03:06:27.979  车牌号码: 辽HTF373
+03:12:38.054  车牌号码: 辽HTF373
+03:16:39.847  车牌号码: 辽HTF373
+03:17:00.916  车牌号码: 辽HTF373
+03:17:27.813  车牌号码: 辽HTF373
+03:17:43.826  车牌号码: 辽HTF373
+03:18:20.517  车牌号码: 辽HTF373
+03:18:41.270  车牌号码: 辽HTF373
+03:18:53.975  车牌号码: 辽HTF373
+03:19:28.556  车牌号码: 辽HTF373
+03:19:54.158  车牌号码: 辽HTF373
+03:20:06.935  车牌号码: 辽HTF373
+03:20:19.759  车牌号码: 辽HTF373
+03:20:33.126  车牌号码: 辽HTF373
+03:21:11.097  车牌号码: 辽HTF373
+03:21:52.460  车牌号码: 辽HTF373
+03:22:32.321  车牌号码: 辽HTF373
+03:22:59.577  车牌号码: 辽HTF373
+03:24:01.793  车牌号码: 辽HTF373
+03:24:14.522  车牌号码: 辽HTF373
+03:24:27.432  车牌号码: 辽HTF373
+03:24:49.895  车牌号码: 辽HTF373
+03:25:02.651  车牌号码: 辽HTF373
+03:25:23.306  车牌号码: 辽HTF373
+03:25:37.949  车牌号码: 辽HTF373
+03:25:50.973  车牌号码: 辽HTF373
+03:26:08.237  车牌号码: 辽HTF373
+03:26:21.010  车牌号码: 辽HTF373
+03:26:39.227  车牌号码: 辽HTF373
+03:26:51.844  车牌号码: 辽HTF373
+03:27:09.525  车牌号码: 辽HTF373
+03:27:32.250  车牌号码: 辽HTF373
+03:27:45.260  车牌号码: 辽HTF373
+03:27:58.229  车牌号码: 辽HTF373
+03:28:13.472  车牌号码: 辽HTF373
+03:28:33.463  车牌号码: 辽HTF373
+03:28:48.264  车牌号码: 辽HTF373
+03:29:05.451  车牌号码: 辽HTF373
+03:29:22.888  车牌号码: 辽HTF373
+03:29:38.265  车牌号码: 辽HTF373
+03:29:59.896  车牌号码: 辽HTF373
+03:30:21.839  车牌号码: 辽HTF373
+03:30:34.550  车牌号码: 辽HTF373
+03:30:48.778  车牌号码: 辽HTF373
+03:31:01.665  车牌号码: 辽HTF373
+03:31:16.719  车牌号码: 辽HTF373
+03:31:34.625  车牌号码: 辽HTF373
+03:31:51.169  车牌号码: 辽HTF373
+03:32:04.867  车牌号码: 辽HTF373
+03:32:17.826  车牌号码: 辽HTF373
+03:32:30.498  车牌号码: 辽HTF373
+03:32:43.094  车牌号码: 辽HTF373
+03:32:57.694  车牌号码: 辽HTF373
+03:33:13.501  车牌号码: 辽HTF373
+03:33:28.372  车牌号码: 辽HTF373
+03:33:45.074  车牌号码: 辽HTF373
+03:34:04.160  车牌号码: 辽HTF373
+03:34:17.442  车牌号码: 辽HTF373
+03:34:35.331  车牌号码: 辽HTF373
+03:34:48.497  车牌号码: 辽HTF373
+03:35:01.260  车牌号码: 辽HTF373
+03:35:19.961  车牌号码: 辽HTF373
+03:35:34.120  车牌号码: 辽HTF373
+03:35:59.066  车牌号码: 辽HTF373
+03:36:13.022  车牌号码: 辽HTF373
+03:36:38.546  车牌号码: 辽HTF373
+03:36:52.941  车牌号码: 辽HTF373
+03:37:08.139  车牌号码: 辽HTF373
+03:37:22.001  车牌号码: 辽HTF373
+03:37:35.145  车牌号码: 辽HTF373
+03:37:49.857  车牌号码: 辽HTF373
+03:38:08.540  车牌号码: 辽HTF373
+03:38:24.581  车牌号码: 辽HTF373
+03:38:38.837  车牌号码: 辽HTF373
+03:38:57.329  车牌号码: 辽HTF373
+03:39:10.266  车牌号码: 辽HTF373
+03:39:28.663  车牌号码: 辽HTF373
+03:39:44.144  车牌号码: 辽HTF373
+03:39:59.615  车牌号码: 辽HTF373
+03:40:15.714  车牌号码: 辽HTF373
+03:40:29.609  车牌号码: 辽HTF373
+03:40:42.601  车牌号码: 辽HTF373
+03:40:56.331  车牌号码: 辽HTF373
+03:41:11.909  车牌号码: 辽HTF373
+03:41:25.306  车牌号码: 辽HTF373
+03:41:38.803  车牌号码: 辽HTF373
+03:41:53.881  车牌号码: 辽HTF373
+03:42:23.804  车牌号码: 辽HTF373
+03:42:39.278  车牌号码: 辽HTF373
+03:42:56.822  车牌号码: 辽HTF373
+03:43:13.750  车牌号码: 辽HTF373
+03:43:36.240  车牌号码: 辽HTF373
+03:43:52.232  车牌号码: 辽HTF373
+03:44:05.484  车牌号码: 辽HTF373
+03:44:23.221  车牌号码: 辽HTF373
+03:44:38.802  车牌号码: 辽HTF373
+03:44:58.599  车牌号码: 辽HTF373
+03:45:11.438  车牌号码: 辽HTF373
+03:45:27.804  车牌号码: 辽HTF373
+03:45:41.926  车牌号码: 辽HTF373
+03:46:00.878  车牌号码: 辽HTF373
+03:46:15.631  车牌号码: 辽HTF373
+03:46:28.437  车牌号码: 辽HTF373
+03:46:41.730  车牌号码: 辽HTF373
+03:47:06.613  车牌号码: 辽HTF373
+03:47:21.639  车牌号码: 辽HTF373
+03:47:34.753  车牌号码: 辽HTF373
+03:47:47.510  车牌号码: 辽HTF373
+03:48:01.186  车牌号码: 辽HTF373
+03:48:13.863  车牌号码: 辽HTF373
+03:48:26.656  车牌号码: 辽HTF373
+03:48:40.471  车牌号码: 辽HTF373
+03:49:01.057  车牌号码: 辽HTF373
+03:49:22.967  车牌号码: 辽HTF373
+03:49:47.641  车牌号码: 辽HTF373
+03:50:04.882  车牌号码: 辽HTF373
+03:50:19.077  车牌号码: 辽HTF373
+03:50:32.027  车牌号码: 辽HTF373
+03:50:50.206  车牌号码: 辽HTF373
+03:51:27.469  车牌号码: 辽HTF373
+03:52:27.342  车牌号码: 辽HTF373
+03:52:40.168  车牌号码: 辽HTF373
+03:53:41.342  车牌号码: 辽HTF373
+03:53:54.249  车牌号码: 辽HTF373
+03:54:42.963  车牌号码: 辽HTF373
+03:55:05.257  车牌号码: 辽HTF373
+03:55:34.133  车牌号码: 辽HTF373
+03:56:45.796  车牌号码: 辽HTF373
+03:56:58.803  车牌号码: 辽HTF373
+03:57:20.135  车牌号码: 辽HTF373
+03:57:36.141  车牌号码: 辽HTF373
+03:57:54.568  车牌号码: 辽HTF373
+03:58:36.793  车牌号码: 辽HTF373
+03:58:53.146  车牌号码: 辽HTF373
+03:59:14.565  车牌号码: 辽HTF373
+03:59:44.112  车牌号码: 辽HTF373
+04:00:04.270  车牌号码: 辽HTF373
+04:00:19.365  车牌号码: 辽HTF373
+04:00:43.698  车牌号码: 辽HTF373
+04:00:59.742  车牌号码: 辽HTF373
+04:01:12.461  车牌号码: 辽HTF373
+04:01:49.112  车牌号码: 辽HTF373
+04:02:19.005  车牌号码: 辽HTF373
+04:03:18.016  车牌号码: 辽HTF373
+04:03:38.536  车牌号码: 辽HTF373
+04:03:51.959  车牌号码: 辽HTF373
+04:04:04.811  车牌号码: 辽HTF373
+04:04:26.885  车牌号码: 辽HTF373
+04:04:51.197  车牌号码: 辽HTF373
+04:05:17.341  车牌号码: 辽HTF373
+04:06:08.964  车牌号码: 辽HTF373
+04:06:21.734  车牌号码: 辽HTF373
+04:06:52.643  车牌号码: 辽HTF373
+04:07:32.789  车牌号码: 辽HTF373
+04:08:03.568  车牌号码: 辽HTF373
+04:08:23.392  车牌号码: 辽HTF373
+04:08:59.941  车牌号码: 辽HTF373
+04:09:12.547  车牌号码: 辽HTF373
+04:10:06.383  车牌号码: 辽HTF373
+04:10:28.621  车牌号码: 辽HTF373
+04:10:44.576  车牌号码: 辽HTF373
+04:11:03.847  车牌号码: 辽HTF373
+04:11:25.083  车牌号码: 辽HTF373
+04:11:44.106  车牌号码: 辽HTF373
+04:13:04.541  车牌号码: 辽HTF373
+04:13:38.537  车牌号码: 辽HTF373
+04:14:00.072  车牌号码: 辽HTF373
+04:14:14.191  车牌号码: 辽HTF373
+04:14:27.592  车牌号码: 辽HTF373
+04:14:46.787  车牌号码: 辽HTF373
+04:15:12.245  车牌号码: 辽HTF373
+04:15:29.957  车牌号码: 辽HTF373
+04:15:42.563  车牌号码: 辽HTF373
+04:15:59.465  车牌号码: 辽HTF373
+04:16:13.869  车牌号码: 辽HTF373
+04:16:28.332  车牌号码: 辽HTF373
+04:16:43.325  车牌号码: 辽HTF373
+04:16:56.474  车牌号码: 辽HTF373
+04:17:09.283  车牌号码: 辽HTF373
+04:17:27.062  车牌号码: 辽HTF373
+04:17:40.697  车牌号码: 辽HTF373
+04:18:00.184  车牌号码: 辽HTF373
+04:18:14.614  车牌号码: 辽HTF373
+04:18:28.729  车牌号码: 辽HTF373
+04:18:44.845  车牌号码: 辽HTF373
+04:19:01.369  车牌号码: 辽HTF373
+04:19:19.737  车牌号码: 辽HTF373
+04:19:36.688  车牌号码: 辽HTF373
+04:19:51.139  车牌号码: 辽HTF373
+04:20:07.704  车牌号码: 辽HTF373
+04:20:22.219  车牌号码: 辽HTF373
+04:20:39.233  车牌号码: 辽HTF373
+04:20:53.069  车牌号码: 辽HTF373
+04:21:06.461  车牌号码: 辽HTF373
+04:21:35.361  车牌号码: 辽HTF373
+04:21:53.962  车牌号码: 辽HTF373
+04:22:09.306  车牌号码: 辽HTF373
+04:22:23.009  车牌号码: 辽HTF373
+04:22:36.778  车牌号码: 辽HTF373
+04:22:50.467  车牌号码: 辽HTF373
+04:23:03.232  车牌号码: 辽HTF373
+04:23:16.182  车牌号码: 辽HTF373
+04:23:29.186  车牌号码: 辽HTF373
+04:23:45.424  车牌号码: 辽HTF373
+04:23:59.180  车牌号码: 辽HTF373
+04:24:13.190  车牌号码: 辽HTF373
+04:24:26.559  车牌号码: 辽HTF373
+04:24:41.773  车牌号码: 辽HTF373
+04:24:56.165  车牌号码: 辽HTF373
+04:25:09.621  车牌号码: 辽HTF373
+04:25:29.220  车牌号码: 辽HTF373
+04:25:42.795  车牌号码: 辽HTF373
+04:25:55.770  车牌号码: 辽HTF373
+04:26:10.121  车牌号码: 辽HTF373
+04:26:23.547  车牌号码: 辽HTF373
+04:26:37.547  车牌号码: 辽HTF373
+04:26:56.186  车牌号码: 辽HTF373
+04:27:15.436  车牌号码: 辽HTF373
+04:27:33.190  车牌号码: 辽HTF373
+04:27:48.201  车牌号码: 辽HTF373
+04:28:01.261  车牌号码: 辽HTF373
+04:28:14.704  车牌号码: 辽HTF373
+04:28:30.324  车牌号码: 辽HTF373
+04:28:43.705  车牌号码: 辽HTF373
+04:29:02.940  车牌号码: 辽HTF373
+04:29:22.380  车牌号码: 辽HTF373
+04:29:35.896  车牌号码: 辽HTF373
+04:29:53.159  车牌号码: 辽HTF373
+04:30:05.953  车牌号码: 辽HTF373
+04:30:18.803  车牌号码: 辽HTF373
+04:30:39.369  车牌号码: 辽HTF373
+04:30:52.983  车牌号码: 辽HTF373
+04:31:10.380  车牌号码: 辽HTF373
+04:31:27.715  车牌号码: 辽HTF373
+04:31:40.357  车牌号码: 辽HTF373
+04:31:53.668  车牌号码: 辽HTF373
+04:32:06.580  车牌号码: 辽HTF373
+04:32:19.732  车牌号码: 辽HTF373
+04:32:34.488  车牌号码: 辽HTF373
+04:32:49.082  车牌号码: 辽HTF373
+04:33:07.397  车牌号码: 辽HTF373
+04:33:21.286  车牌号码: 辽HTF373
+04:33:41.076  车牌号码: 辽HTF373
+04:34:12.576  车牌号码: 辽HTF373
+04:34:25.416  车牌号码: 辽HTF373
+04:34:39.281  车牌号码: 辽HTF373
+04:34:53.081  车牌号码: 辽HTF373
+04:35:07.864  车牌号码: 辽HTF373
+04:35:23.341  车牌号码: 辽HTF373
+04:35:38.757  车牌号码: 辽HTF373
+04:35:51.835  车牌号码: 辽HTF373
+04:36:08.280  车牌号码: 辽HTF373
+04:36:25.420  车牌号码: 辽HTF373
+04:36:38.627  车牌号码: 辽HTF373
+04:36:51.566  车牌号码: 辽HTF373
+04:37:05.606  车牌号码: 辽HTF373
+04:37:20.111  车牌号码: 辽HTF373
+04:37:37.312  车牌号码: 辽HTF373
+04:37:49.919  车牌号码: 辽HTF373
+04:38:16.333  车牌号码: 辽HTF373
+04:38:30.146  车牌号码: 辽HTF373
+04:38:45.269  车牌号码: 辽HTF373
+04:39:03.927  车牌号码: 辽HTF373
+04:39:17.845  车牌号码: 辽HTF373
+04:39:33.917  车牌号码: 辽HTF373
+04:39:47.852  车牌号码: 辽HTF373
+04:40:04.712  车牌号码: 辽HTF373
+04:40:19.820  车牌号码: 辽HTF373
+04:40:39.964  车牌号码: 辽HTF373
+04:40:53.144  车牌号码: 辽HTF373
+04:41:06.243  车牌号码: 辽HTF373
+04:41:19.944  车牌号码: 辽HTF373
+04:41:37.234  车牌号码: 辽HTF373
+04:41:52.215  车牌号码: 辽HTF373
+04:42:05.027  车牌号码: 辽HTF373
+04:42:19.206  车牌号码: 辽HTF373
+04:42:32.561  车牌号码: 辽HTF373
+04:42:54.219  车牌号码: 辽HTF373
+04:43:14.594  车牌号码: 辽HTF373
+04:43:30.608  车牌号码: 辽HTF373
+04:43:44.765  车牌号码: 辽HTF373
+04:43:59.889  车牌号码: 辽HTF373
+04:44:13.624  车牌号码: 辽HTF373
+04:44:27.930  车牌号码: 辽HTF373
+04:44:42.407  车牌号码: 辽HTF373
+04:44:55.601  车牌号码: 辽HTF373
+04:45:10.101  车牌号码: 辽HTF373
+04:45:24.604  车牌号码: 辽HTF373
+04:45:40.225  车牌号码: 辽HTF373
+04:45:59.631  车牌号码: 辽HTF373
+04:46:17.154  车牌号码: 辽HTF373
+04:46:30.277  车牌号码: 辽HTF373
+04:46:44.826  车牌号码: 辽HTF373
+04:47:05.619  车牌号码: 辽HTF373
+04:47:25.506  车牌号码: 辽HTF373
+04:47:39.752  车牌号码: 辽HTF373
+04:47:52.622  车牌号码: 辽HTF373
+04:48:05.724  车牌号码: 辽HTF373
+04:48:19.475  车牌号码: 辽HTF373
+04:48:32.794  车牌号码: 辽HTF373
+04:48:47.307  车牌号码: 辽HTF373
+04:49:04.121  车牌号码: 辽HTF373
+04:49:24.372  车牌号码: 辽HTF373
+04:49:51.358  车牌号码: 辽HTF373
+04:50:05.890  车牌号码: 辽HTF373
+04:50:22.743  车牌号码: 辽HTF373
+04:50:39.603  车牌号码: 辽HTF373
+04:50:55.387  车牌号码: 辽HTF373
+04:51:08.677  车牌号码: 辽HTF373
+04:51:24.841  车牌号码: 辽HTF373
+04:51:38.019  车牌号码: 辽HTF373
+04:51:52.605  车牌号码: 辽HTF373
+04:52:06.849  车牌号码: 辽HTF373
+04:52:19.412  车牌号码: 辽HTF373
+04:52:32.329  车牌号码: 辽HTF373
+04:52:56.099  车牌号码: 辽HTF373
+04:53:11.058  车牌号码: 辽HTF373
+04:53:23.656  车牌号码: 辽HTF373
+04:53:36.434  车牌号码: 辽HTF373
+04:53:56.674  车牌号码: 辽HTF373
+04:54:12.030  车牌号码: 辽HTF373
+04:54:26.650  车牌号码: 辽HTF373
+04:54:42.340  车牌号码: 辽HTF373
+04:55:09.815  车牌号码: 辽HTF373
+04:55:24.089  车牌号码: 辽HTF373
+04:55:37.516  车牌号码: 辽HTF373
+04:55:54.804  车牌号码: 辽HTF373
+04:56:10.194  车牌号码: 辽HTF373
+04:56:25.783  车牌号码: 辽HTF373
+04:56:40.300  车牌号码: 辽HTF373
+04:56:55.575  车牌号码: 辽HTF373
+04:57:08.813  车牌号码: 辽HTF373
+04:57:23.971  车牌号码: 辽HTF373
+04:57:40.137  车牌号码: 辽HTF373
+04:57:57.448  车牌号码: 辽HTF373
+04:58:10.183  车牌号码: 辽HTF373
+04:58:25.173  车牌号码: 辽HTF373
+04:58:39.920  车牌号码: 辽HTF373
+04:58:57.974  车牌号码: 辽HTF373
+04:59:12.377  车牌号码: 辽HTF373
+04:59:33.968  车牌号码: 辽HTF373
+04:59:48.669  车牌号码: 辽HTF373
+05:00:01.617  车牌号码: 辽HTF373
+05:00:14.419  车牌号码: 辽HTF373
+05:00:31.208  车牌号码: 辽HTF373
+05:00:44.007  车牌号码: 辽HTF373
+05:00:59.842  车牌号码: 辽HTF373
+05:01:13.808  车牌号码: 辽HTF373
+05:01:27.231  车牌号码: 辽HTF373
+05:01:39.928  车牌号码: 辽HTF373
+05:01:53.943  车牌号码: 辽HTF373
+05:02:07.923  车牌号码: 辽HTF373
+05:02:23.499  车牌号码: 辽HTF373
+05:02:48.066  车牌号码: 辽HTF373
+05:03:02.120  车牌号码: 辽HTF373
+05:03:20.913  车牌号码: 辽HTF373
+05:03:33.820  车牌号码: 辽HTF373
+05:03:48.494  车牌号码: 辽HTF373
+05:04:01.747  车牌号码: 辽HTF373
+05:04:15.015  车牌号码: 辽HTF373
+05:04:35.575  车牌号码: 辽HTF373
+05:04:55.333  车牌号码: 辽HTF373
+05:05:10.321  车牌号码: 辽HTF373
+05:05:42.771  车牌号码: 辽HTF373
+05:06:00.491  车牌号码: 辽HTF373
+05:06:20.795  车牌号码: 辽HTF373
+05:06:35.035  车牌号码: 辽HTF373
+05:06:50.180  车牌号码: 辽HTF373
+05:07:06.232  车牌号码: 辽HTF373
+05:07:18.874  车牌号码: 辽HTF373
+05:07:36.446  车牌号码: 辽HTF373
+05:07:51.450  车牌号码: 辽HTF373
+05:08:04.489  车牌号码: 辽HTF373
+05:08:17.926  车牌号码: 辽HTF373
+05:08:39.503  车牌号码: 辽HTF373
+05:08:54.627  车牌号码: 辽HTF373
+05:09:17.704  车牌号码: 辽HTF373
+05:09:37.506  车牌号码: 辽HTF373
+05:09:50.887  车牌号码: 辽HTF373
+05:10:08.871  车牌号码: 辽HTF373
+05:10:22.128  车牌号码: 辽HTF373
+05:10:42.142  车牌号码: 辽HTF373
+05:11:03.210  车牌号码: 辽HTF373
+05:11:24.139  车牌号码: 辽HTF373
+05:11:37.515  车牌号码: 辽HTF373
+05:11:52.175  车牌号码: 辽HTF373
+05:12:05.089  车牌号码: 辽HTF373
+05:12:28.642  车牌号码: 辽HTF373
+05:12:57.983  车牌号码: 辽HTF373
+05:13:18.338  车牌号码: 辽HTF373
+05:13:31.037  车牌号码: 辽HTF373
+05:13:48.641  车牌号码: 辽HTF373
+05:14:22.290  车牌号码: 辽HTF373
+05:14:39.019  车牌号码: 辽HTF373
+05:14:57.466  车牌号码: 辽HTF373
+05:15:20.832  车牌号码: 辽HTF373
+05:15:36.251  车牌号码: 辽HTF373
+05:15:49.240  车牌号码: 辽HTF373
+05:16:02.170  车牌号码: 辽HTF373
+05:16:14.748  车牌号码: 辽HTF373
+05:16:38.281  车牌号码: 辽HTF373
+05:17:11.343  车牌号码: 辽HTF373
+05:17:26.965  车牌号码: 辽HTF373
+05:17:39.924  车牌号码: 辽HTF373
+05:17:53.014  车牌号码: 辽HTF373
+05:18:05.812  车牌号码: 辽HTF373
+05:18:20.544  车牌号码: 辽HTF373
+05:18:33.213  车牌号码: 辽HTF373
+05:18:52.833  车牌号码: 辽HTF373
+05:19:22.456  车牌号码: 辽HTF373
+05:19:35.242  车牌号码: 辽HTF373
+05:19:51.918  车牌号码: 辽HTF373
+05:20:04.840  车牌号码: 辽HTF373
+05:20:21.910  车牌号码: 辽HTF373
+05:20:39.938  车牌号码: 辽HTF373
+05:20:59.326  车牌号码: 辽HTF373
+05:21:14.190  车牌号码: 辽HTF373
+05:21:27.042  车牌号码: 辽HTF373
+05:21:40.042  车牌号码: 辽HTF373
+05:21:53.724  车牌号码: 辽HTF373
+05:22:10.580  车牌号码: 辽HTF373
+05:22:30.302  车牌号码: 辽HTF373
+05:22:44.191  车牌号码: 辽HTF373
+05:22:57.825  车牌号码: 辽HTF373
+05:23:14.312  车牌号码: 辽HTF373
+05:23:37.929  车牌号码: 辽HTF373
+05:23:54.865  车牌号码: 辽HTF373
+05:24:11.898  车牌号码: 辽HTF373
+05:24:41.973  车牌号码: 辽HTF373
+05:25:09.716  车牌号码: 辽HTF373
+05:25:31.611  车牌号码: 辽HTF373
+05:25:44.946  车牌号码: 辽HTF373
+05:25:57.683  车牌号码: 辽HTF373
+05:26:12.446  车牌号码: 辽HTF373
+05:26:27.269  车牌号码: 辽HTF373
+05:26:43.781  车牌号码: 辽HTF373
+05:26:56.676  车牌号码: 辽HTF373
+05:27:10.012  车牌号码: 辽HTF373
+05:27:23.832  车牌号码: 辽HTF373
+05:27:42.649  车牌号码: 辽HTF373
+05:28:04.014  车牌号码: 辽HTF373
+05:28:17.206  车牌号码: 辽HTF373
+05:28:29.835  车牌号码: 辽HTF373
+05:28:42.605  车牌号码: 辽HTF373
+05:28:59.675  车牌号码: 辽HTF373
+05:29:15.910  车牌号码: 辽HTF373
+05:29:31.008  车牌号码: 辽HTF373
+05:29:46.067  车牌号码: 辽HTF373
+05:30:05.164  车牌号码: 辽HTF373
+05:30:18.214  车牌号码: 辽HTF373
+05:30:34.989  车牌号码: 辽HTF373
+05:30:47.988  车牌号码: 辽HTF373
+05:31:01.716  车牌号码: 辽HTF373
+05:31:31.375  车牌号码: 辽HTF373
+05:31:46.769  车牌号码: 辽HTF373
+05:31:59.320  车牌号码: 辽HTF373
+05:32:15.688  车牌号码: 辽HTF373
+05:32:50.373  车牌号码: 辽HTF373
+05:33:03.030  车牌号码: 辽HTF373
+05:33:17.207  车牌号码: 辽HTF373
+05:33:34.206  车牌号码: 辽HTF373
+05:33:49.578  车牌号码: 辽HTF373
+05:34:06.173  车牌号码: 辽HTF373
+05:34:20.926  车牌号码: 辽HTF373
+05:34:33.929  车牌号码: 辽HTF373
+05:34:47.663  车牌号码: 辽HTF373
+05:35:01.028  车牌号码: 辽HTF373
+05:35:14.247  车牌号码: 辽HTF373
+05:35:29.236  车牌号码: 辽HTF373
+05:35:41.983  车牌号码: 辽HTF373
+05:35:55.887  车牌号码: 辽HTF373
+05:36:12.882  车牌号码: 辽HTF373
+05:36:31.628  车牌号码: 辽HTF373
+05:36:44.672  车牌号码: 辽HTF373
+05:36:57.553  车牌号码: 辽HTF373
+05:37:14.057  车牌号码: 辽HTF373
+05:37:37.981  车牌号码: 辽HTF373
+05:37:50.874  车牌号码: 辽HTF373
+05:38:08.351  车牌号码: 辽HTF373
+05:38:21.862  车牌号码: 辽HTF373
+05:38:40.768  车牌号码: 辽HTF373
+05:38:54.623  车牌号码: 辽HTF373
+05:39:07.254  车牌号码: 辽HTF373
+05:39:21.209  车牌号码: 辽HTF373
+05:39:35.662  车牌号码: 辽HTF373
+05:39:52.858  车牌号码: 辽HTF373
+05:40:05.439  车牌号码: 辽HTF373
+05:40:18.279  车牌号码: 辽HTF373
+05:40:30.900  车牌号码: 辽HTF373
+05:40:49.328  车牌号码: 辽HTF373
+05:41:02.415  车牌号码: 辽HTF373
+05:41:22.520  车牌号码: 辽HTF373
+05:41:44.646  车牌号码: 辽HTF373
+05:41:59.115  车牌号码: 辽HTF373
+05:42:14.320  车牌号码: 辽HTF373
+05:42:29.180  车牌号码: 辽HTF373
+05:42:43.896  车牌号码: 辽HTF373
+05:42:59.931  车牌号码: 辽HTF373
+05:43:17.020  车牌号码: 辽HTF373
+05:43:32.762  车牌号码: 辽HTF373
+05:43:45.436  车牌号码: 辽HTF373
+05:43:58.920  车牌号码: 辽HTF373
+05:44:15.740  车牌号码: 辽HTF373
+05:44:33.895  车牌号码: 辽HTF373
+05:44:49.324  车牌号码: 辽HTF373
+05:45:06.260  车牌号码: 辽HTF373
+05:45:21.008  车牌号码: 辽HTF373
+05:45:34.422  车牌号码: 辽HTF373
+05:45:48.218  车牌号码: 辽HTF373
+05:46:00.864  车牌号码: 辽HTF373
+05:46:15.264  车牌号码: 辽HTF373
+05:46:28.095  车牌号码: 辽HTF373
+05:46:48.549  车牌号码: 辽HTF373
+05:47:01.633  车牌号码: 辽HTF373
+05:47:16.416  车牌号码: 辽HTF373
+05:47:34.943  车牌号码: 辽HTF373
+05:47:53.332  车牌号码: 辽HTF373
+05:48:07.106  车牌号码: 辽HTF373
+05:48:19.736  车牌号码: 辽HTF373
+05:48:35.372  车牌号码: 辽HTF373
+05:48:50.050  车牌号码: 辽HTF373
+05:49:05.151  车牌号码: 辽HTF373
+05:49:20.742  车牌号码: 辽HTF373
+05:51:06.061  车牌号码: 辽HTF373
+05:52:03.060  车牌号码: 辽HTF373
+05:52:53.670  车牌号码: 辽HTF373
+05:54:33.733  车牌号码: 辽HTF373
+05:55:14.380  车牌号码: 辽HTF373
+05:55:27.084  车牌号码: 辽HTF373
+05:55:41.054  车牌号码: 辽HTF373
+05:55:53.975  车牌号码: 辽HTF373
+05:56:58.631  车牌号码: 辽HTF373
+05:57:32.788  车牌号码: 辽HTF373
+05:57:49.474  车牌号码: 辽HTF373
+05:58:04.343  车牌号码: 辽HTF373
+05:58:16.916  车牌号码: 辽HTF373
+05:58:47.056  车牌号码: 辽HTF373
+05:58:59.942  车牌号码: 辽HTF373
+05:59:12.559  车牌号码: 辽HTF373
+05:59:36.441  车牌号码: 辽HTF373
+05:59:52.033  车牌号码: 辽HTF373
+06:00:04.690  车牌号码: 辽HTF373
+06:00:18.668  车牌号码: 辽HTF373
+06:00:31.861  车牌号码: 辽HTF373
+06:00:49.704  车牌号码: 辽HTF373
+06:01:10.679  车牌号码: 辽HTF373
+06:01:24.301  车牌号码: 辽HTF373
+06:01:39.402  车牌号码: 辽HTF373
+06:01:52.913  车牌号码: 辽HTF373
+06:02:06.869  车牌号码: 辽HTF373
+06:02:20.951  车牌号码: 辽HTF373
+06:02:41.669  车牌号码: 辽HTF373
+06:02:55.852  车牌号码: 辽HTF373
+06:03:27.415  车牌号码: 辽HTF373
+06:03:43.425  车牌号码: 辽HTF373
+06:04:02.042  车牌号码: 辽HTF373
+06:04:16.424  车牌号码: 辽HTF373
+06:04:49.188  车牌号码: 辽HTF373
+06:05:04.031  车牌号码: 辽HTF373
+06:05:19.382  车牌号码: 辽HTF373
+06:13:16.390  车牌号码: 辽HTF373
+06:15:05.346  车牌号码: 辽HTF373
+06:15:21.924  车牌号码: 辽HTF373
+06:15:42.101  车牌号码: 辽HTF373
+06:16:09.441  车牌号码: 辽HTF373
+06:16:26.855  车牌号码: 辽HTF373
+06:16:48.533  车牌号码: 辽HTF373
+06:17:03.840  车牌号码: 辽HTF373
+06:17:32.001  车牌号码: 辽HTF373
+06:17:48.810  车牌号码: 辽HTF373
+06:18:01.597  车牌号码: 辽HTF373
+06:18:33.341  车牌号码: 辽HTF373
+06:18:47.534  车牌号码: 辽HTF373
+06:19:01.739  车牌号码: 辽HTF373
+06:19:20.959  车牌号码: 辽HTF373
+06:19:39.797  车牌号码: 辽HTF373
+06:20:03.263  车牌号码: 辽HTF373
+06:20:17.258  车牌号码: 辽HTF373
+06:20:32.495  车牌号码: 辽HTF373
+06:20:46.155  车牌号码: 辽HTF373
+06:21:00.427  车牌号码: 辽HTF373
+06:21:16.629  车牌号码: 辽HTF373
+06:21:45.034  车牌号码: 辽HTF373
+06:21:59.213  车牌号码: 辽HTF373
+06:22:17.556  车牌号码: 辽HTF373
+06:22:35.370  车牌号码: 辽HTF373
+06:22:49.840  车牌号码: 辽HTF373
+06:23:19.950  车牌号码: 辽HTF373
+06:23:42.974  车牌号码: 辽HTF373
+06:23:59.208  车牌号码: 辽HTF373
+06:24:19.747  车牌号码: 辽HTF373
+06:24:39.890  车牌号码: 辽HTF373
+06:24:58.023  车牌号码: 辽HTF373
+06:25:18.133  车牌号码: 辽HTF373
+06:25:31.763  车牌号码: 辽HTF373
+06:25:49.403  车牌号码: 辽HTF373
+06:26:03.753  车牌号码: 辽HTF373
+06:26:17.741  车牌号码: 辽HTF373
+06:26:40.826  车牌号码: 辽HTF373
+06:26:54.776  车牌号码: 辽HTF373
+06:27:10.977  车牌号码: 辽HTF373
+06:27:35.474  车牌号码: 辽HTF373
+06:27:54.477  车牌号码: 辽HTF373
+06:28:11.317  车牌号码: 辽HTF373
+06:28:29.481  车牌号码: 辽HTF373
+06:28:50.880  车牌号码: 辽HTF373
+06:29:05.605  车牌号码: 辽HTF373
+06:29:20.279  车牌号码: 辽HTF373
+06:29:33.695  车牌号码: 辽HTF373
+06:29:49.652  车牌号码: 辽HTF373
+06:30:06.178  车牌号码: 辽HTF373
+06:30:21.795  车牌号码: 辽HTF373
+06:30:41.362  车牌号码: 辽HTF373
+06:31:03.098  车牌号码: 辽HTF373
+06:31:22.863  车牌号码: 辽HTF373
+06:31:39.660  车牌号码: 辽HTF373
+06:31:56.184  车牌号码: 辽HTF373
+06:32:10.581  车牌号码: 辽HTF373
+06:32:24.114  车牌号码: 辽HTF373
+06:32:39.766  车牌号码: 辽HTF373
+06:32:53.255  车牌号码: 辽HTF373
+06:33:15.913  车牌号码: 辽HTF373
+06:33:33.584  车牌号码: 辽HTF373
+06:33:49.644  车牌号码: 辽HTF373
+06:34:06.343  车牌号码: 辽HTF373
+06:34:20.676  车牌号码: 辽HTF373
+06:34:39.872  车牌号码: 辽HTF373
+06:35:05.323  车牌号码: 辽HTF373
+06:35:18.899  车牌号码: 辽HTF373
+06:35:36.247  车牌号码: 辽HTF373
+06:35:49.247  车牌号码: 辽HTF373
+06:36:02.142  车牌号码: 辽HTF373
+06:36:15.604  车牌号码: 辽HTF373
+06:36:34.275  车牌号码: 辽HTF373
+06:36:53.398  车牌号码: 辽HTF373
+06:37:07.185  车牌号码: 辽HTF373
+06:37:21.558  车牌号码: 辽HTF373
+06:37:36.618  车牌号码: 辽HTF373
+06:37:51.099  车牌号码: 辽HTF373
+06:38:04.276  车牌号码: 辽HTF373
+06:38:18.229  车牌号码: 辽HTF373
+06:38:32.201  车牌号码: 辽HTF373
+06:38:46.279  车牌号码: 辽HTF373
+06:39:00.338  车牌号码: 辽HTF373
+06:39:17.961  车牌号码: 辽HTF373
+06:39:32.806  车牌号码: 辽HTF373
+06:39:47.121  车牌号码: 辽HTF373
+06:40:05.254  车牌号码: 辽HTF373
+06:40:18.155  车牌号码: 辽HTF373
+06:40:35.053  车牌号码: 辽HTF373
+06:40:47.739  车牌号码: 辽HTF373
+06:41:08.595  车牌号码: 辽HTF373
+06:41:22.224  车牌号码: 辽HTF373
+06:41:35.272  车牌号码: 辽HTF373
+06:42:33.234  车牌号码: 辽HTF373
+06:42:48.714  车牌号码: 辽HTF373
+06:43:05.691  车牌号码: 辽HTF373
+06:43:28.695  车牌号码: 辽HTF373
+08:12:45.913  车牌号码: 辽HTF373

+ 58 - 0
DLL/windows/64bit/KHT_Log/192.168.110.98/2022-11-11.txt

@@ -0,0 +1,58 @@
+11:02:20.268  download config file success
+11:02:20.277  192.168.110.98 Config result thread create success
+11:02:20.279  192.168.110.98 config connect success
+11:02:20.301  192.168.110.98: Reco result thread create success
+11:02:20.301  192.168.110.98 reco result connect success
+11:02:20.306  192.168.110.98: Reco result pro thread create success
+11:02:20.327  192.168.110.98 gpio thread create success
+11:02:20.328  192.168.110.98 gpio connect success
+11:02:20.341  192.168.110.98: rs485_1 result recv thread create success
+11:02:20.343  192.168.110.98:9110 rs485_1 connect success[1223636623]
+11:02:33.096  set SDK_CMD_TRIG success:756644957
+11:02:33.530  ³µÅƺÅÂë: ÁÉHLQ877
+11:02:34.507  tcp recv data fail, ret = -2, error = 0
+11:02:34.507  192.168.110.98 rs485_1 keeplive fail, abnormal_number = 1, ret = -9[1223636623]
+11:02:34.507  192.168.110.98 rs485_1 reconnection add[1223636623], 0
+11:02:34.507  send RS485_1 RS485_CMD_QUIT success:756644957
+11:02:34.507  192.168.110.98 rs485_1 thread exit[1223636623]
+11:02:36.263  192.168.110.98:9110 rs485_1 reconnection fail[1223636623]
+11:02:36.470  tcp recv data fail, ret = -2, error = 0
+11:02:36.470  192.168.110.98 config keeplive fail, abnormal_number = 1, ret = -9(756644957)
+11:02:36.471  192.168.110.98 config reconnection add
+11:02:36.471  192.168.110.98 config thread exit[756644957]
+11:02:37.273  192.168.110.98:9110 rs485_1 reconnection fail[1223636623]
+11:02:37.433  192.168.110.98 gpio result keeplive fail, abnormal_number = 1, ret = -1
+11:02:38.250  192.168.110.98:9730 config reconnection fail
+11:02:38.281  192.168.110.98:9110 rs485_1 reconnection fail[1223636623]
+11:02:39.288  192.168.110.98:9110 rs485_1 reconnection fail[1223636623]
+11:02:39.396  192.168.110.98 reco result keeplive fail, abnormal_number = 2, ret = -1
+11:02:39.396  192.168.110.98 reco result reconnection add
+11:02:39.400  192.168.110.98 reco result pro thread exit[756644957]
+11:02:39.433  192.168.110.98 gpio result keeplive fail, abnormal_number = 2, ret = -1
+11:02:39.433  192.168.110.98 gpio result reconnection add
+11:02:39.433  send GPIO_CMD_QUIT success:756644957
+11:02:39.433  192.168.110.98 gpio thread exit[756644957]
+11:02:39.448  send RESULT_CMD_QUIT success:756644957
+11:02:39.449  192.168.110.98 reco result thread exit[756644957]
+11:02:40.269  192.168.110.98:9730 config reconnection fail
+11:02:40.300  192.168.110.98:9110 rs485_1 reconnection fail[1223636623]
+11:02:41.311  192.168.110.98:9110 rs485_1 reconnection fail[1223636623]
+11:02:41.312  192.168.110.98:9760 gpio reconnection fail
+11:02:41.319  192.168.110.98: Reco result thread create success
+11:02:41.319  192.168.110.98:9750 reco reconnection success
+11:02:41.319  192.168.110.98: Reco result pro thread create success
+11:02:41.368  download config file success
+11:02:41.368  192.168.110.98 Config result thread create success
+11:02:41.368  192.168.110.98:9730 config reconnection success
+11:02:42.328  192.168.110.98: rs485_1 result recv thread create success
+11:02:42.328  192.168.110.98:9110 rs485_1 connect success[1223636623]
+11:02:42.328  192.168.110.98:9110 rs485_1 reconnection success[1223636623]
+11:02:42.340  192.168.110.98 gpio thread create success
+11:02:42.341  192.168.110.98:9760 gpio reconnection success
+13:50:24.703  ³µÅƺÅÂë: ÁÉHE733J
+13:50:28.890  ³µÅƺÅÂë: ÁÉHE7338
+14:10:10.640  ³µÅƺÅÂë: ÁÉHLQ877
+14:21:22.863  ³µÅƺÅÂë: ÁÉHVS981
+15:01:13.707  ³µÅƺÅÂë: ÁÉHVS981
+15:11:54.221  ³µÅƺÅÂë: ÁÉHVX956
+17:24:46.284  ³µÅƺÅÂë: ÁÉHVX956

+ 3 - 0
DLL/windows/64bit/KHT_Log/192.168.110.98/2022-11-12.txt

@@ -0,0 +1,3 @@
+07:40:49.817  车牌号码: 辽B90GS1
+08:14:01.153  车牌号码: 辽B90GS1
+17:00:48.505  车牌号码: 辽B90GS1

+ 1 - 0
DLL/windows/64bit/KHT_Log/192.168.110.98/2022-11-13.txt

@@ -0,0 +1 @@
+09:38:30.784  车牌号码: 辽H88X20

+ 3 - 0
DLL/windows/64bit/KHT_Log/192.168.110.98/2022-11-14.txt

@@ -0,0 +1,3 @@
+11:06:25.576  车牌号码: 辽H1M741
+14:30:28.712  车牌号码: 辽H1M741
+15:33:43.123  车牌号码: 辽H86962

+ 31 - 0
DLL/windows/64bit/KHT_Log/192.168.110.98/2022-11-15.txt

@@ -0,0 +1,31 @@
+07:52:24.081  łľĹĆşĹÂë: ÁÉH4999K
+15:19:43.815  download config file success
+15:19:43.834  192.168.110.98 Config result thread create success
+15:19:43.834  192.168.110.98 config connect success
+15:19:43.861  192.168.110.98: Reco result thread create success
+15:19:43.861  192.168.110.98 reco result connect success
+15:19:43.861  192.168.110.98: Reco result pro thread create success
+15:19:43.876  192.168.110.98 gpio thread create success
+15:19:43.876  192.168.110.98 gpio connect success
+15:19:43.891  192.168.110.98: rs485_1 result recv thread create success
+15:19:43.892  192.168.110.98:9110 rs485_1 connect success[1192970409]
+15:20:09.920  192.168.110.98 rs485_1 thread exit[1192970409]
+15:20:09.920  send RS485_1 RS485_CMD_QUIT success:718499322
+15:20:09.920  192.168.110.98 disconnect
+15:20:09.936  192.168.110.98 reco result pro thread exit[718499322]
+15:20:09.952  send RESULT_CMD_QUIT success:718499322
+15:20:09.953  192.168.110.98 reco result thread exit[718499322]
+15:20:09.953  send SDK_CMD_QUIT success:718499322
+15:20:09.982  192.168.110.98 config thread exit[718499322]
+15:20:10.042  192.168.110.98 gpio thread exit[718499322]
+15:20:10.073  send GPIO_CMD_QUIT success:718499322
+16:21:25.981  download config file success
+16:21:25.982  192.168.110.98 Config result thread create success
+16:21:25.982  192.168.110.98 config connect success
+16:21:26.006  192.168.110.98: Reco result thread create success
+16:21:26.006  192.168.110.98 reco result connect success
+16:21:26.007  192.168.110.98: Reco result pro thread create success
+16:21:26.022  192.168.110.98 gpio thread create success
+16:21:26.022  192.168.110.98 gpio connect success
+16:21:26.037  192.168.110.98: rs485_1 result recv thread create success
+16:21:26.038  192.168.110.98:9110 rs485_1 connect success[1673925308]

+ 11 - 0
DLL/windows/64bit/KHT_Log/192.168.110.99/2022-11-11.txt

@@ -0,0 +1,11 @@
+11:02:06.206  connect 192.168.110.99 fail!
+11:02:06.206  192.168.110.99:配置文件中获取网卡IP失败, ret = -3
+11:02:06.209  192.168.110.99:通过接口自动匹配本地ip地址为:192.168.110.82
+11:02:06.210  192.168.110.99:bind 10005 port succeed, hsdk_socket->port = 10005
+11:02:07.217  192.168.110.99:自动分配端口成功, ret = 0,port=10005
+11:02:07.217  192.168.110.99:bind 10005 port succeed, hsdk_socket->port = 10005
+11:02:07.217  192.168.110.99:bind 10005 port success, BindPort
+11:02:07.218  192.168.110.99:bind 10006 port succeed, hsdk_socket->port = 10006
+11:02:07.218  192.168.110.99:bind 10006 port success, nAlivePort
+11:02:09.245  192.168.110.99:接收设备返回数据失败!
+11:02:09.247  192.168.110.99:连接设备失败,错误状态值为:10

+ 3 - 0
DLL/windows/64bit/KHT_Log/192.168.110.99/ErrorLog/2022-11-11.txt

@@ -0,0 +1,3 @@
+11:02:06.206  192.168.110.99:配置文件中获取网卡IP失败, ret = -3
+11:02:09.245  192.168.110.99:接收设备返回数据失败!
+11:02:09.247  192.168.110.99:连接设备失败,错误状态值为:10

+ 48 - 0
DLL/windows/64bit/KHT_Log/192.168.2.27/2022-04-21.txt

@@ -0,0 +1,48 @@
+15:42:16.495  connect 192.168.2.27 fail!
+15:42:16.496  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:42:16.500  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:42:16.504  获取本机ip地址:192.168.7.12
+15:42:16.505  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:42:17.518  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+15:42:17.519  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:42:17.519  192.168.2.27:bind 10005 port success, BindPort
+15:42:17.520  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+15:42:17.520  192.168.2.27:bind 10006 port success, nAlivePort
+15:42:19.535  192.168.2.27:接收设备返回数据失败!
+15:42:19.538  192.168.2.27:连接设备失败,错误状态值为:10
+15:45:30.859  connect 192.168.2.27 fail!
+15:45:30.860  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:45:30.863  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:45:30.864  获取本机ip地址:192.168.7.12
+15:45:30.865  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:45:31.868  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+15:45:31.868  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:45:31.869  192.168.2.27:bind 10005 port success, BindPort
+15:45:31.869  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+15:45:31.870  192.168.2.27:bind 10006 port success, nAlivePort
+15:45:33.896  192.168.2.27:接收设备返回数据失败!
+15:45:33.898  192.168.2.27:连接设备失败,错误状态值为:10
+15:50:36.360  connect 192.168.2.27 fail!
+15:50:36.360  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:50:36.362  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:50:36.364  获取本机ip地址:192.168.7.12
+15:50:36.365  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:50:37.367  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+15:50:37.368  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:50:37.368  192.168.2.27:bind 10005 port success, BindPort
+15:50:37.368  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+15:50:37.369  192.168.2.27:bind 10006 port success, nAlivePort
+15:50:39.391  192.168.2.27:接收设备返回数据失败!
+15:50:39.392  192.168.2.27:连接设备失败,错误状态值为:10
+15:56:10.207  connect 192.168.2.27 fail!
+15:56:10.227  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:56:10.244  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:56:10.246  获取本机ip地址:192.168.7.12
+15:56:10.246  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:56:11.246  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+15:56:11.246  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:56:11.247  192.168.2.27:bind 10005 port success, BindPort
+15:56:11.247  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+15:56:11.248  192.168.2.27:bind 10006 port success, nAlivePort
+15:56:13.264  192.168.2.27:接收设备返回数据失败!
+15:56:13.265  192.168.2.27:连接设备失败,错误状态值为:10

+ 12 - 0
DLL/windows/64bit/KHT_Log/192.168.2.27/2022-10-28.txt

@@ -0,0 +1,12 @@
+10:25:18.454  connect 192.168.2.27 fail!
+10:25:18.454  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+10:25:18.457  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+10:25:18.459  获取本机ip地址:192.168.110.82
+10:25:18.459  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+10:25:19.466  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+10:25:19.466  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+10:25:19.466  192.168.2.27:bind 10005 port success, BindPort
+10:25:19.467  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+10:25:19.467  192.168.2.27:bind 10006 port success, nAlivePort
+10:25:21.494  192.168.2.27:接收设备返回数据失败!
+10:25:21.494  192.168.2.27:连接设备失败,错误状态值为:10

+ 24 - 0
DLL/windows/64bit/KHT_Log/192.168.2.27/2022-11-11.txt

@@ -0,0 +1,24 @@
+11:02:10.443  connect 192.168.2.27 fail!
+11:02:10.445  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+11:02:10.449  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+11:02:10.452  获取本机ip地址:192.168.110.82
+11:02:10.452  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+11:02:11.453  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+11:02:11.453  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+11:02:11.453  192.168.2.27:bind 10005 port success, BindPort
+11:02:11.454  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+11:02:11.454  192.168.2.27:bind 10006 port success, nAlivePort
+11:02:13.480  192.168.2.27:接收设备返回数据失败!
+11:02:13.480  192.168.2.27:连接设备失败,错误状态值为:10
+11:02:21.533  connect 192.168.2.27 fail!
+11:02:21.533  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+11:02:21.534  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+11:02:21.535  获取本机ip地址:192.168.110.82
+11:02:21.535  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+11:02:22.541  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+11:02:22.541  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+11:02:22.542  192.168.2.27:bind 10005 port success, BindPort
+11:02:22.542  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+11:02:22.542  192.168.2.27:bind 10006 port success, nAlivePort
+11:02:24.569  192.168.2.27:接收设备返回数据失败!
+11:02:24.571  192.168.2.27:连接设备失败,错误状态值为:10

+ 24 - 0
DLL/windows/64bit/KHT_Log/192.168.2.27/2022-11-15.txt

@@ -0,0 +1,24 @@
+15:19:45.085  connect 192.168.2.27 fail!
+15:19:45.086  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:19:45.088  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:19:45.090  获取本机ip地址:192.168.110.82
+15:19:45.090  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:19:46.100  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+15:19:46.100  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+15:19:46.100  192.168.2.27:bind 10005 port success, BindPort
+15:19:46.101  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+15:19:46.101  192.168.2.27:bind 10006 port success, nAlivePort
+15:19:48.122  192.168.2.27:接收设备返回数据失败!
+15:19:48.123  192.168.2.27:连接设备失败,错误状态值为:10
+16:21:27.235  connect 192.168.2.27 fail!
+16:21:27.237  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+16:21:27.238  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+16:21:27.239  获取本机ip地址:192.168.110.82
+16:21:27.239  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+16:21:28.249  192.168.2.27:自动分配端口成功, ret = 0,port=10005
+16:21:28.249  192.168.2.27:bind 10005 port succeed, hsdk_socket->port = 10005
+16:21:28.249  192.168.2.27:bind 10005 port success, BindPort
+16:21:28.249  192.168.2.27:bind 10006 port succeed, hsdk_socket->port = 10006
+16:21:28.250  192.168.2.27:bind 10006 port success, nAlivePort
+16:21:30.275  192.168.2.27:接收设备返回数据失败!
+16:21:30.275  192.168.2.27:连接设备失败,错误状态值为:10

+ 16 - 0
DLL/windows/64bit/KHT_Log/192.168.2.27/ErrorLog/2022-04-21.txt

@@ -0,0 +1,16 @@
+15:42:16.496  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:42:16.500  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:42:19.535  192.168.2.27:接收设备返回数据失败!
+15:42:19.538  192.168.2.27:连接设备失败,错误状态值为:10
+15:45:30.860  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:45:30.863  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:45:33.896  192.168.2.27:接收设备返回数据失败!
+15:45:33.898  192.168.2.27:连接设备失败,错误状态值为:10
+15:50:36.360  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:50:36.362  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:50:39.391  192.168.2.27:接收设备返回数据失败!
+15:50:39.392  192.168.2.27:连接设备失败,错误状态值为:10
+15:56:10.227  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:56:10.244  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:56:13.264  192.168.2.27:接收设备返回数据失败!
+15:56:13.265  192.168.2.27:连接设备失败,错误状态值为:10

+ 4 - 0
DLL/windows/64bit/KHT_Log/192.168.2.27/ErrorLog/2022-10-28.txt

@@ -0,0 +1,4 @@
+10:25:18.454  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+10:25:18.457  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+10:25:21.494  192.168.2.27:接收设备返回数据失败!
+10:25:21.494  192.168.2.27:连接设备失败,错误状态值为:10

+ 8 - 0
DLL/windows/64bit/KHT_Log/192.168.2.27/ErrorLog/2022-11-11.txt

@@ -0,0 +1,8 @@
+11:02:10.445  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+11:02:10.449  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+11:02:13.480  192.168.2.27:接收设备返回数据失败!
+11:02:13.480  192.168.2.27:连接设备失败,错误状态值为:10
+11:02:21.533  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+11:02:21.534  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+11:02:24.569  192.168.2.27:接收设备返回数据失败!
+11:02:24.571  192.168.2.27:连接设备失败,错误状态值为:10

+ 8 - 0
DLL/windows/64bit/KHT_Log/192.168.2.27/ErrorLog/2022-11-15.txt

@@ -0,0 +1,8 @@
+15:19:45.086  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+15:19:45.088  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+15:19:48.122  192.168.2.27:接收设备返回数据失败!
+15:19:48.123  192.168.2.27:连接设备失败,错误状态值为:10
+16:21:27.237  192.168.2.27:配置文件中获取网卡IP失败, ret = -3
+16:21:27.238  192.168.2.27:通过接口自动匹配本地ip地址失败, ret = -4
+16:21:30.275  192.168.2.27:接收设备返回数据失败!
+16:21:30.275  192.168.2.27:连接设备失败,错误状态值为:10

+ 55 - 0
DLL/windows/64bit/KHT_Log/192.168.7.225/2022-04-21.txt

@@ -0,0 +1,55 @@
+15:42:15.246  download config file success
+15:42:15.247  192.168.7.225 Config result thread create success
+15:42:15.250  192.168.7.225 config connect success
+15:42:15.253  192.168.7.225: Reco result thread create success
+15:42:15.254  192.168.7.225 reco result connect success
+15:42:15.255  192.168.7.225: Reco result pro thread create success
+15:42:15.282  192.168.7.225 gpio thread create success
+15:42:15.283  192.168.7.225 gpio connect success
+15:42:15.298  192.168.7.225: rs485_1 result recv thread create success
+15:42:15.299  192.168.7.225:9110 rs485_1 connect success[193946821]
+15:42:38.634  set SDK_CMD_GPIO success:1080629916
+15:42:56.630  set SDK_CMD_TRIG success:1080629916
+15:42:57.290  ÎŢĹĆłľ
+15:43:00.623  set SDK_CMD_TRIG success:1080629916
+15:43:01.006  łľĹĆşĹÂë: ź˝F579R4
+15:43:01.286  łľĹĆşĹÂë: ź˝F579R4
+15:43:56.648  set SDK_CMD_GPIO success:1080629916
+15:43:59.010  192.168.7.225 rs485_1 thread exit[193946821]
+15:43:59.010  192.168.7.225 reco result pro thread exit[1080629916]
+15:43:59.025  192.168.7.225 config thread exit[1080629916]
+15:43:59.041  192.168.7.225 reco result thread exit[1080629916]
+15:43:59.041  192.168.7.225 gpio thread exit[1080629916]
+15:43:59.971  send RS485_1 RS485_CMD_QUIT success:1080629916
+15:43:59.971  send RESULT_CMD_QUIT success:1080629916
+15:43:59.972  send GPIO_CMD_QUIT success:1080629916
+15:45:29.595  download config file success
+15:45:29.597  192.168.7.225 Config result thread create success
+15:45:29.599  192.168.7.225 config connect success
+15:45:29.604  192.168.7.225: Reco result thread create success
+15:45:29.605  192.168.7.225 reco result connect success
+15:45:29.606  192.168.7.225: Reco result pro thread create success
+15:45:29.632  192.168.7.225 gpio thread create success
+15:45:29.634  192.168.7.225 gpio connect success
+15:45:29.663  192.168.7.225: rs485_1 result recv thread create success
+15:45:29.664  192.168.7.225:9110 rs485_1 connect success[1832919104]
+15:50:35.125  download config file success
+15:50:35.125  192.168.7.225 Config result thread create success
+15:50:35.126  192.168.7.225 config connect success
+15:50:35.150  192.168.7.225: Reco result thread create success
+15:50:35.150  192.168.7.225 reco result connect success
+15:50:35.151  192.168.7.225: Reco result pro thread create success
+15:50:35.155  192.168.7.225 gpio thread create success
+15:50:35.155  192.168.7.225 gpio connect success
+15:50:35.168  192.168.7.225: rs485_1 result recv thread create success
+15:50:35.169  192.168.7.225:9110 rs485_1 connect success[280763759]
+15:56:08.972  download config file success
+15:56:08.972  192.168.7.225 Config result thread create success
+15:56:08.973  192.168.7.225 config connect success
+15:56:08.980  192.168.7.225: Reco result thread create success
+15:56:08.980  192.168.7.225 reco result connect success
+15:56:08.981  192.168.7.225: Reco result pro thread create success
+15:56:08.990  192.168.7.225 gpio thread create success
+15:56:08.990  192.168.7.225 gpio connect success
+15:56:09.003  192.168.7.225: rs485_1 result recv thread create success
+15:56:09.004  192.168.7.225:9110 rs485_1 connect success[468009098]

+ 791 - 0
DLL/windows/64bit/LPRCClientSDK.h

@@ -0,0 +1,791 @@
+#ifndef _CLIENT_H
+#define _CLIENT_H
+
+#if !defined(WIN32) && !defined(__stdcall)
+#define __stdcall
+#endif
+
+#ifdef WIN32
+typedef   __int64  unsigned_long_long;
+#include <windows.h>
+#else     
+typedef  unsigned long long unsigned_long_long;
+#endif
+
+#ifndef WIN32
+typedef unsigned int UINT;
+typedef void *HWND;
+#endif
+typedef unsigned long LDWORD; 
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define CLIENT_LPRC_BIG_PICSTREAM_SIZE     200000-312		/*相机上传jpeg流每帧占用的内存的最大大小*/
+#define CLIENT_LPRC_BIG_PICSTREAM_SIZE_EX   1*800*1024-312	/*相机上传全景图占用内存的最大大小		*/
+#define CLIENT_LPRC_SMALL_PICSTREAM_SIZE_EX   10000			/*相机上传车牌截图占用内存的最大大小	*/
+
+/* 相机时间 */
+typedef struct 
+{
+	int Year;			/* 年 	*/
+	int Month;			/* 月 	*/
+	int Day;			/* 日 	*/
+	int Hour;			/* 时 	*/
+	int Minute;			/* 分 	*/
+	int Second;			/* 秒 	*/
+	int Millisecond;	/* 微妙 */
+}CLIENT_LPRC_CAMERA_TIME;
+
+/* 识别结果坐标 */
+typedef struct 
+{
+	int 	Left;	/* 左 */
+	int 	Top;	/* 上 */
+	int 	Right;	/* 右 */
+	int 	Bottom;	/* 下 */
+}CLIENT_LPRC_PLATE_LOCATION;
+
+/* 图像信息*/
+typedef struct
+{
+	int				nWidth;							/* 宽度					*/
+	int				nHeight;						/* 高度					*/
+	int				nPitch;							/* 图像宽度的一行像素所占内存字节数*/
+	int				nLen;							/* 图像的长度			*/
+	char			reserved[16];					/* 预留     			*/
+	unsigned char	*pBuffer;						/* 图像内存的首地址		*/
+}CLIENT_LPRC_IMAGE_INFO;
+
+/* 识别结果 */
+typedef struct 
+{	
+	char				chCLIENTIP[16];						/* 相机IP 				*/
+	char				chColor[8];							/* 车牌颜色 			*/
+	char				chLicense[16];						/* 车牌号码 			*/
+	CLIENT_LPRC_PLATE_LOCATION 		pcLocation;				/* 车牌在图像中的坐标 	*/
+	CLIENT_LPRC_CAMERA_TIME			shootTime;				/* 识别出车牌的时间 	*/
+	int					nConfidence;						/* 车牌可信度			*/
+	int					nTime;								/* 识别耗时				*/
+	int					nDirection;							/* 车牌方向		    	*/
+	int					nCarLogo;							/* 车标类型(参考CAR_LOGO)*/
+	int					nCarModel;							/* 车型类型(参考CAR_MODEL)*/
+	char				reserved[256-4-4];					/* 预留     			*/
+	CLIENT_LPRC_IMAGE_INFO		pFullImage;					/* 全景图像数据(注意:相机不传输,此处指针为空) */
+	CLIENT_LPRC_IMAGE_INFO		pPlateImage;				/* 车牌图像数据(注意:相机不传输,此处指针为空) */
+}CLIENT_LPRC_PLATE_RESULTEX;
+
+/* Jpeg流回调返回每一帧jpeg数据结构体 */
+typedef struct 
+{
+	char			chIp[16];				/*相机IP												*/
+	char			*pchBuf;				/*每一帧jpeg数据缓冲区									*/
+	unsigned int	nLen;					/*当前jpeg帧的数据长度									*/
+	int				nStatus;				/* 当前jpeg帧接收状态: 0-正常, 非0-不正常 				*/
+	char			reserved[128];			/* 保留		  											*/
+}CLIENT_LPRC_DEVDATA_INFO;
+
+/*接收串口数据的结构体*/
+typedef struct
+{
+	unsigned char *pData;					/*串口数据指针											*/
+	int nsize;								/*串口数据大小											*/
+	char reserved[128];						/* 保留													*/
+}CLIENT_LPRC_DEVSERIAL_DATA;
+
+/* 搜索设备之后保存设备信息的结构体,注:要是修改ip信息请保证其他信息不被改变*/
+typedef struct 
+{
+	char 			chDevName[256];			/* 设备名		*/
+	char			chSoftVer[20];			/* 软件版本号	*/
+	char 			chHardVer[20];			/* 硬件版本号	*/
+	char 			chSysVer[20];			/* 系统版本	*/
+	int				nSdkPort;				/* sdk端口号			*/
+	char 			chIp[16];				/* ip地址		*/
+	char 			chGateway[16];			/* 网管	*/
+	char 			chNetmask[16];			/* 子网掩码	*/
+	char 			chMac[18];				/* Mac地址		*/
+	char            chRoomID[20];				/*RooMID            */
+	char            chSN[20];					/*SN*/
+	char            chWifiIp[16];			/*wifi_ip*/
+	char			reserved[256-16];			/* 保留		  */
+}CLIENT_LPRC_DeviceInfo;
+
+/*新版本Rs485透传数据结构体*/   
+typedef struct{
+	short           TimeDelay;	/*延时范围:10~200之间
+						        注:1、设置的是本条数据和下一条数据之间的延时时间
+						           2、最后一条数据不需要设置延时*/		
+    unsigned char   *data;      /*存储传输数据的缓冲区指针,需要客户自己申请缓冲区*/
+	short           datalen;    /*缓冲区最大长度2*1024*/
+	char            reserved[10];/*保留*/
+ } CLIENT_LPRC_RS485_Data_t;
+
+/*新版本485透传结构体*/
+typedef struct{
+	CLIENT_LPRC_RS485_Data_t  rS485_data[5];  /*实际发送数据的结构体*/
+	int                       datanum;		  /*每次发送最大支持发送5条数据*/
+} CLIENT_LPRC_RS485_Transparent_t;
+
+/*GPIO 输入口状态 结构体 */
+typedef struct{ 	
+	unsigned  char gpio_in0;//GPIO IN0 0低电平 1 高电平 	
+	unsigned  char gpio_in1;//GPIO IN1 0低电平 1 高电平
+	unsigned  char gpio_in2;//GPIO IN2 0低电平 1 高电平
+	unsigned  char gpio_in3;//GPIO IN3 0低电平 1 高电平 
+}CLIENT_LPRC_GPIO_In_Statue;
+
+
+/*GPIO 输入口状态 结构体 */
+typedef struct{ 	
+	char gpio_out1;//GPIO OUT1 0继电器断开 1 继电器闭合	-1不做变化
+	char gpio_out2;//GPIO OUT2 0继电器断开 1 继电器闭合	-1不做变化
+	char gpio_out3;//GPIO OUT3 0继电器断开 1 继电器闭合 -1不做变化
+}CLIENT_LPRC_GPIO_Out_Statue;
+/*网络参数设置结构体 */
+typedef struct{ 	
+	char 			ip[16];					/* IP address		*/
+	char 			netmask[16];			/* Netmask address	*/
+	char 			gateway[16];			/* gateway address	*/
+	char            dns[16];			    /* DNS				*/
+	char            reserved[64];/*保留*/
+}CLIENT_LPRC_Net_Set_Param;
+
+/************************************************************************/
+/* CLIENT_LPRC_InitSDK: 连接相机												*/
+/*		Parameters:														*/
+/*			nPort[in]:		连接相机的端口,现默认为8080				*/
+/*			hWndHandle[in]:	接收消息的窗体句柄,当为NULL时,表示无窗体  */
+/*			uMsg[in]:		用户自定义消息,当hWndHandle不为NULL时,	*/
+/*							检测到有新的车牌识别结果并准备好当前车牌	*/
+/*							缓冲区信息后,用::PostMessage 给窗口		*/
+/*							hWndHandle发送uMsg消息,其中WPARAM参数为0,	*/
+/*							LPARAM参数为0								*/
+/*			chServerIP[in]:	相机的IP地址								*/
+/*          dwUser[in]:     用户自定义字段,主要用来回传给回调函数。    */
+/*		Return Value:   int												*/
+/*							0	相机连接成功							*/
+/*							1	相机连接失败							*/
+/*		Notice:   														*/
+/*				如果采用回调的方式获取数据时,hWndHandle句柄为NULL,	*/
+/*				uMsg为0,并且注册回调函数,通知有新的数据;				*/
+/*				反之,在主窗口收到消息时,调用CLIENT_LPRC_GetVehicleInfoEx获取	*/
+/*				数据。													*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_InitSDK(UINT nPort,HWND hWndHandle,UINT uMsg,char *chServerIP,LDWORD dwUser);
+int __stdcall CLIENT_LPRC_InitSDK_Ex(UINT nPort,HWND hWndHandle,UINT uMsg,char *chServerIP,void *RecoResultCallback, LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_QuitSDK: 断开所有已经连接设备,释放资源					*/
+/*		Parameters:														*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void  __stdcall CLIENT_LPRC_QuitSDK();
+
+
+/************************************************************************/
+/* 	函数: 根据IP地址,断开指定设备链接									*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP地址							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_QuitDevice(char *pCameraIP);
+
+
+
+/***********************************************************************************/
+/* 回调函数:循环检测并通知相机设备通讯状态的回调函数						       */
+/*		Parameters:														           */
+/*			chCLIENTIP[out]:		返回设备IP								       */
+/*			nStatus[out]:		设备状态:0表示网络异常或设备异常;			       */
+/*										  1表示网络正常,设备已连接		    	   */
+/*										  2表示网络正常,设备已连接,但相机有重启  */
+/*          dwUser[out]         CLIENT_InitSDK传给sdk的用户自定义字段              */
+/*		Return Value:   void											           */
+/***********************************************************************************/
+typedef void (*CLIENT_LPRC_ConnectCallback)(char *chCLIENTIP,UINT nStatus,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegCLIENTConnEvent: 注册相机通讯状态的回调函数			*/
+/*		Parameters:														*/
+/*			CLIENTConnect[in]:	CLIENT_LPRC_ConnectCallback类型回调函数 */
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegCLIENTConnEvent (CLIENT_LPRC_ConnectCallback CLIENTConnect);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_CheckStatus: 主动检查相机设备的通讯状态					*/
+/*		Parameters:														*/
+/*			chCLIENTIP[in]:		要检查的相机的IP						*/
+/*		Return Value:   int												*/
+/*							0	正常									*/
+/*							1	网络不通								*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_CheckStatus (char *chCLIENTIP);
+
+
+/************************************************************************/
+/* 回调函数:获取相机485发送的数据										*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回设备IP								*/
+/*          serialData[out]          串口数据地址						*/
+/*			nlen[out]				串口数据大小						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_SerialDataCallback)(char *chCLIENTIP,CLIENT_LPRC_DEVSERIAL_DATA *pSerialData,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegSerialDataEvent: 注册获取串口数据的回调函数			*/
+/*		Parameters:														*/
+/*			CLIENTSerialData[in]:		处理接收串口数据的回调函数的指针*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegSerialDataEvent(CLIENT_LPRC_SerialDataCallback CLIENTSerialData);
+
+
+/************************************************************************/
+/* 回调函数:获取相机GPIO状态											*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回设备IP								*/
+/*          pGpioState[out]          串口数据地址						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_GetGpioStateCallback)(char *chWTYIP,CLIENT_LPRC_GPIO_In_Statue *pGpioState);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegWTYGetGpioState: 注册获取相机GPIO状态的回调函数		*/
+/*		Parameters:														*/
+/*			CLIENTGpioState[in]:	CLIENT_LPRC_GetGpioStateCallback	*/
+/*									类型回调函数						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegWTYGetGpioState (CLIENT_LPRC_GetGpioStateCallback CLIENTGpioState);
+
+
+/************************************************************************/
+/* 回调函数: 注册接收识别数据回调函数									*/
+/*		Parameters:														*/
+/*			recResult[out]:		识别结果数据							*/
+/*          dwUser[out]         CLIENT_LPRC_InitSDK传给sdk的用户自定义字段*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		新扩展的回调函数,方便用户接收清晰度较高或分辨率较高的JPEG图像	*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_DataEx2Callback)(CLIENT_LPRC_PLATE_RESULTEX *recResultEx,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegDataEx2Event: 注册获取识别结果的回调函数				*/
+/*		Parameters:														*/
+/*			CLIENTData[in]:		处理识别结果的回调函数的指针			*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		接收清晰度较高,或分辨率较高的JPEG图像							*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegDataEx2Event(CLIENT_LPRC_DataEx2Callback CLIENTDataEx2);
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP的相机识别结果。							*/
+/*		  当CLIENT_LPRC_initSDK函数中设置了窗体句柄和消息时,			*/
+/*		  需要在消息处理函数中调用此函数来主动获取识别结果。			*/
+/*		Parameters:														*/
+/*			chCLIENTIP[in]:		根据消息,获取指定IP设备识别数据		*/
+/*			chPlate[in]:		车牌号码								*/
+/*			chColor[in]:		车牌颜色								*/
+/*			chFullImage[in]:	全景图数据								*/
+/*			nFullLen[in]:		全景图数据长度							*/
+/*			chPlateImage[in]:	车牌图数据								*/
+/*			nPlateLen[in]:		车牌图数据长度							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			当设置了传输内容不传时,各自对应的数据为NULL,长度为-1;	*/
+/*			当没有形成数据时,各自对应数据为NULL,长度为0				*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_GetVehicleInfoEx(char *chCLIENTIP,
+								 char *chPlate,	
+								 char *chColor,
+								 void *chFullImage ,
+								 int *nFullLen,
+								 void *chPlateImage,
+								 int *nPlateLen);
+
+/************************************************************************/
+/* CLIENT_LPRC_SetSavePath: 如果用户需要动态库自动保存图片,可以通过该函数设置保*/
+/*					存图片的路径。										*/
+/*		Parameters:														*/
+/*			chSavePath[in]:	文件存储路径,以"\\"结束,如:"D:\\Image\\"	*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:   														*/
+/*			全景图:指定目录\\设备IP\\年月日(YYYYMMDD)\\FullImage\\	*/
+/*									时分秒-毫秒__颜色_车牌号码__.jpg	*/
+/*			车牌图:指定目录\\设备IP\\年月日(YYYYMMDD)\\PlatelImage\\	*/
+/*									时分秒-毫秒__颜色_车牌号码__.jpg	*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_SetSavePath (char *chSavePath);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetTrigger: 手动触发识别(抓取一帧识别)					*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要触发的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	触发成功返回									*/
+/*				  非0	失败											*/
+/************************************************************************/	
+int __stdcall CLIENT_LPRC_SetTrigger(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SenseCoilTrigger: 模拟地感触发识别(需要将识别模式:设置为'视频地感')*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要触发的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	触发成功返回									*/
+/*				  非0	失败											*/
+/*		Note:															*/
+/*			V5以上硬件相机才能支持此接口								*/
+/************************************************************************/	
+int __stdcall CLIENT_LPRC_SetSenseCoilTrigger(char *pCameraIP, int nCameraPort);
+
+/************************************************************************/
+/* CLIENT_LPRC_Reboot: 手动重启					*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要重启	的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	成功返回									*/
+/*				  非0	失败											*/
+/************************************************************************/	
+int __stdcall CLIENT_LPRC_Reboot(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetTransContent: 控制相机设备上传内容					*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:		要设置的设备IP							*/
+/*			nCameraPort[in]:	端口,默认8080							*/
+/*			nFullImg[in]:		全景图,0表示不传,1表示传				*/
+/*			nPlateImg[in]:		车牌图,0表示不传,1表示传				*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetTransContent (char *pCameraIP, int nCameraPort, int nFullImg, int nPlateImg);
+
+
+/************************************************************************/
+/* 函数说明: 控制继电器的闭合											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP								*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:   int												*/
+/*							0	设置成功								*/
+/*						  非0	失败									*/
+/*		Notice:   														*/
+/*				通过此功能,可以在PC端通过一体机设备,来控制道闸的抬起	*/
+/*				设备继电器输出信号为:开关量信号。						*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetRelayClose(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* 函数说明: 控制道闸落下												*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP								*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:   int												*/
+/*							0	设置成功								*/
+/*						  非0	失败									*/
+/*		Notice:   														*/
+/*				通过此功能,可以在PC端通过一体机设备,来控制道闸的落下	*/
+/*				设备继电器输出信号为:开关量信号。						*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_DropRod(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RS485Send: RS485透明传输									*/
+/*		Parameters:														*/
+/*			pCameraIP[in]				相机设备IP地址					*/
+/*			nPort[in]					端口,默认8080					*/
+/*			chData[in]					将要传输的数据块的首地址		*/
+/*			nSendLen[in]				将要传输的数据块的字节数		*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:														*/
+/*				1:用户通过此接口,往相机发送数据,相机设备会原样将数据	*/
+/*				通过RS485接口转发出去,到客户所接的外部设备上。			*/
+/*				2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 */
+/*				能传输识别结果(默认S485传输识别结果)。					*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_RS485Send(char *pCameraIP, int nCameraPort, char *chData, int nSendLen);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RS485SendEx: 新版本RS485透明传输											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]				相机设备IP地址					*/
+/*			nPort[in]					端口,默认9110					*/
+/*			nRs485[in]	传输485数据的结构体		*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:														*/
+/*				1:用户通过此接口,往相机发送数据,相机设备会原样将数据	*/
+/*				通过RS485接口转发出去,到客户所接的外部设备上。			*/
+/*				2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 */
+/*				能传输识别结果(默认S485传输识别结果)。					*/
+/*				3:新版本可以一次性给相机发送最大5条数据,可以设置每条数据*/
+/*				透传的时间间隔。									      */
+/************************************************************************/
+int __stdcall CLIENT_LPRC_RS485SendEx(char *pCameraIP, int nCameraPort, CLIENT_LPRC_RS485_Transparent_t nRs485);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SearchDeviceList:    搜索设备IP列表						*/
+/*		Parameters:														*/
+/*		pBuf[out]			存储搜索到的相机列表信息结构体数组			*/
+/*		Return Value:   	int											*/
+/*							大于0	成功搜索到的设备数					*/
+/*						  	-1	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SearchDeviceList(CLIENT_LPRC_DeviceInfo *pBuf);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_AlterDeviceInfo:    修改指定的设备的设备信息				*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		pBuf[out]			存储需要修改的设备信息结构体				*/
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_AlterDeviceInfo(char *pCameraIP,CLIENT_LPRC_DeviceInfo pBuf);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_GetDeviceInfo	根据IP获取设备的设备信息				*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		相机设备的ip地址				    */
+/*		pBuf[out]			存储设备信息结构体				*/
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_GetDeviceInfo(char *pCameraIP,CLIENT_LPRC_DeviceInfo *pBuf);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetDevTimeParam:    修改设备系统时间							    */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		sysTime[in]			设置时间结构体		*/
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetDevTimeParam(char *pCameraIP, CLIENT_LPRC_CAMERA_TIME *sysTime);
+int __stdcall CLIENT_LPRC_GetDevTimeParam(char *pCameraIP, CLIENT_LPRC_CAMERA_TIME *sysTime);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetEncryptKey:    	设置加密芯片密码					*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetEncryptKey(char *pCameraIP, unsigned_long_long nKey);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_ReSetEncryptKey:    	重置加密芯片密码,密码恢复为123456	*/
+/*                          并且用户数据恢复为空                        */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_ReSetEncryptKey(char *pCameraIP);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetEncryptUserData:  设置加密芯片用户数据,密码必须匹配才可以成功*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*      pUserData[in]       加密芯片用户数据指针,大小24个字节          */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetEncryptUserData(char *pCameraIP, unsigned_long_long nKey,char *pUserData);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_GetEncryptUserData:  设置加密芯片用户数据,密码必须匹配才可以成功*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*      pUserData[out]      存储读取到的用户数据                        */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_GetEncryptUserData(char *pCameraIP, unsigned_long_long nKey,char *pUserData);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_TextToSoundPlay:  文字转音频播报							*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		设备的ip地址							    */
+/*		data[in]			需要播报的内容[UTF-8编码]	                */
+/*      len[in]				需要播报的内容长度                          */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/*		notice:														*/
+/*				播报的内容必须为UTF-8编码								*/
+/************************************************************************/
+int __stdcall  CLIENT_LPRC_TextToSoundPlay(char *pCameraIP, char *data, int len);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetGPioOutParam: 设置GPIO 是输出状态				*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要设置的相机设备的ip地址				    */
+/*		pGpioOut[in]		GPIO输出可控制结构体,0表示继电器断开,1表示继电器闭合,-1不改变*/
+/*		Return Value:   	int											*/
+/*							0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetGPioOutParam(char *pCameraIP, CLIENT_LPRC_GPIO_Out_Statue *pGpioOut);
+
+/************************************************************************/
+/* CLIENT_LPRC_SetNetParam: 设置网络参数			*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要设置的相机设备的ip地址				    */
+/*		netSetParam[in]		需要设置的网络参数,不需要设置的项目memset为0*/
+/*		Return Value:   	int											*/
+/*							0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetNetParam(char *pCameraIP, CLIENT_LPRC_Net_Set_Param *netSetParam);
+
+typedef enum CLIENT_UPGRADE_STATUS
+{
+	UPGRADE_FILE_CONNECT_SUCCESS	 			= 0,		// 连接成功
+	UPGRADE_FILE_CONNECT_FAIL	 				= 1,		// 连接失败
+	UPGRADE_FILE_NO_ACCESS		 				= 2,		// 升级文件不存在
+	UPGRADE_FILE_OPEN_SUCCESS					= 3,		// 升级文件打开成功
+	UPGRADE_FILE_OPEN_FAIL 						= 4,		// 升级文件打开失败
+	UPGRADE_FILE_READ_HEAD_SUCCESS				= 5,		// 升级文件读取文件头信息成功
+	UPGRADE_FILE_READ_HEAD_FAIL					= 6,		// 升级文件读取文件头信息失败
+	UPGRADE_FILE_SEND_HEAD_SUCCESS				= 7,		// 升级文件发送文件头信息成功
+	UPGRADE_FILE_SEND_HEAD_FAIL					= 8,		// 升级文件发送文件头信息失败
+	UPGRADE_FILE_RECV_HEAD_RESPONSE_SUCCESS		= 9,		// 升级文件接收头信息响应成功
+	UPGRADE_FILE_RECV_HEAD_RESPONSE_FAIL		= 10,		// 升级文件接收头信息响应失败
+	UPGRADE_FILE_VERSION_CHECK_SUCCESS			= 11,		// 升级文件版本检查通过
+	UPGRADE_FILE_VERSION_CHECK_FAIL				= 12,		// 升级文件版本检查不通过
+	UPGRADE_FILE_START_SEND						= 13,		// 升级文件正在发送
+	UPGRADE_FILE_SEND_DONE						= 14,		// 升级文件发送完成
+	UPGRADE_FILE_SEND_FAIL						= 15,		// 升级文件发送失败
+	UPGRADE_FILE_SEND_DONE_RESPONSE_SUCCESS		= 16,		// 升级文件接收发送完成响应成功
+	UPGRADE_FILE_SEND_DONE_RESPONSE_FAIL		= 17,		// 升级文件接收发送完成响应失败
+	UPGRADE_FILE_UNZIP_SUCCESS					= 18,		// 升级文件解压成功
+	UPGRADE_FILE_UNZIP_FAIL						= 19,		// 升级文件解压失败
+	UPGRADE_SYSTEM_READY_RESTART				= 20,		// 系统准备重启
+}CLIENT_UPGRADE_STATUS;
+
+typedef void (*CLIENT_LPRC_UpgradeCallback)(int status, int send_size, int total_size);
+int __stdcall CLIENT_LPRC_UpGrade(char *pCameraIP, char* filename,CLIENT_LPRC_UpgradeCallback callback);
+
+
+/*************************************************************************************************************/
+/****************************以下接口属于较早版本,V5相机可能不再会提供支持***********************************/
+/**********************************请客户挂接时候,尽量使用以上接口*******************************************/
+/*************************************************************************************************************/
+
+
+/************************************************************************/
+/* 回调函数: 获取Jpeg流的回调函数										*/
+/*		Parameters:														*/
+/*			JpegInfo[out]:		JPEG流数据信息							*/
+/*          dwUser[out]            CLIENT_LPRC_InitSDK传给sdk的用户自定义字段*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中CLIENT_LPRC_DEVDATA_INFO中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_JpegCallback)(CLIENT_LPRC_DEVDATA_INFO *JpegInfo,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegJpegEvent: 注册获取Jpeg流的回调函数							*/
+/*		Parameters:														*/
+/*			JpegInfo[in]:		CLIENT_LPRC_JpegCallback类型回调函数				*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中CLIENT_LPRC_DEVDATA_INFO中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegJpegEvent(CLIENT_LPRC_JpegCallback JpegInfo);
+
+
+/************************************************************************/
+/* 回调函数: 获取报警信息的回调函数										*/
+/*		Parameters:														*/
+/*			alarmInfo[out]:		报警信息								*/
+/*          dwUser[out]            CLIENT_LPRC_InitSDK传给sdk的用户自定义字段              */
+
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			一台PC连接多台设备时,此函数仅需实现一次。当区分不同设备	*/
+/*			的Alarm时,可以通过输出参数中CLIENT_LPRC_DEVDATA_INFO中的chIp来区分		*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中LPRC_CLIENT_DEVDATA_INFO中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+typedef void (*CLIENT_LPRC_AlarmCallback)(CLIENT_LPRC_DEVDATA_INFO *alarmInfo,LDWORD dwUser);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_RegAlarmEvent: 注册获取报警信息的回调函数				*/
+/*		Parameters:														*/
+/*			AlarmInfo[in]:		CLIENT_LPRC_AlarmCallback类型回调函数	*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中LPRC_CLIENT_DEVDATA_INFO中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+void __stdcall CLIENT_LPRC_RegAlarmEvent(CLIENT_LPRC_AlarmCallback AlarmInfo);
+
+
+/************************************************************************/
+/* 函数: Jpeg流消息处理初始化											*/
+/*		Parameters:														*/
+/*			hWndHandle[in]:	接收消息的窗体句柄							*/
+/*			uMsg[in]:		用户自定义消息								*/
+/*							检测到有数据并准备好缓冲区数据后,			*/
+/*							用::PostMessage 给窗口hWndHandle发送uMsg	*/
+/*							消息,其中WPARAM参数为0,LPARAM参数为0		*/
+/*			chIp[in]:		相机IP地址								*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_JpegMessageInit(HWND hWndHandle,UINT uMsg,char *chIp);
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP的相机的Jpeg流数据							*/
+/*		Parameters:														*/
+/*			chIp[in]:			相机IP地址								*/
+/*			chJpegBuf[in]:		存储JPEG的buffer						*/
+/*			nJpegBufLen[in]:	获取到的JPEG数据长度					*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			使用此函数前需先调用CLIENT_JpegMessageInit函数设置自定义消息	*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_GetJpegStream(char *chIp, char *chJpegBuf, char *nJpegBufLen);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetNetworkCardBind: 手动绑定指定网卡IP					*/
+/*		Parameters:														*/
+/*			pCameraIP[in]		要绑定的网卡IP地址						*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:当PC机存在多网卡的情况时,又不想禁用为单网卡时,可通过该	*/
+/*				函数绑定与相机通讯的网卡IP								*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetNetworkCardBind(char *pCameraIP);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetNetCardName: 设置网卡的名字							*/
+/*		Parameters:														*/
+/*			pNetCardName[in]		Linux网络节点的名字					*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:	此函数仅在Linux下使用,不设置默认的网络节点名字为eth0	*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetNetCardName(char *pNetCardName);
+
+
+/************************************************************************/
+/*CLIENT_LPRC_SnapJpegFrame 快速抓拍一帧,两种保存方式,直接保存到固定目*/
+/*					录或者保存到特定内存,要是保存特定内存模式需要传入	*/
+/*					内存最大值,两种方式可选								*/		
+/*		Parameters:														*/
+/*			chIp[in]		   相机的IP地址								*/
+/*			pSaveFileName[in]  路径和带JPEG后缀名的文件名,用于把当前	*/
+/*							   抓拍到的帧保存为特定文件  默认先匹配		*/
+/*							   文件名									*/
+/*          pSaveBuf[in]       用于保存当前帧在特定内存的,并且需要传输	*/
+/*							   内存可存储的最大值,当文件名为空的时候	*/
+/*							   这个才会生效。							*/  
+/*          Maxlen[in]         保存当前帧特定内存的最大值				*/
+/*		Return Value:   int												*/
+/*						   0	保存到特定目录成功						*/
+/*                         >0   保存到特定内存的数据的实际大小          */
+/*						  -1	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SnapJpegFrame(char *chIp,char *pSaveFileName,unsigned char *pSaveBuf,int Maxlen);
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetJpegStreamPlayOrStop: 设置jpeg流的开关				*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要设置的相机设备的ip地址				    */
+/*		onoff[in]			jpeg流开关项,0表示关闭流,1表示打开流		*/
+/*		Return Value:   	int											*/
+/*							0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall CLIENT_LPRC_SetJpegStreamPlayOrStop(char *pCameraIP,int onoff);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

+ 774 - 0
DLL/windows/64bit/WTY.H

@@ -0,0 +1,774 @@
+#ifndef _WTY_H
+#define _WTY_H
+
+#if !defined(WIN32) && !defined(__stdcall)
+#define __stdcall
+#endif
+
+#ifndef WIN32
+typedef void *HWND;
+typedef unsigned int UINT;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef WIN32
+typedef   __int64  unsigned_long_long;
+#include <windows.h>
+#else     
+typedef  unsigned long long unsigned_long_long;
+#endif
+#define BIG_PICSTREAM_SIZE     200000-312///		//相机上传全景图占用内存的最大大小
+#define SMALL_PICSTREAM_SIZE   10000////			//相机上传车牌截图占用内存的最大大小
+#define BIG_PICSTREAM_SIZE_EX   1*800*1024-312		//相机上传全景图占用内存的最大大小
+#define SMALL_PICSTREAM_SIZE_EX   10000				//相机上传车牌截图占用内存的最大大小
+
+/* 相机时间 */
+typedef struct 
+{
+	int Year;			/* 年 	*/
+	int Month;			/* 月 	*/
+	int Day;			/* 日 	*/
+	int Hour;			/* 时 	*/
+	int Minute;			/* 分 	*/
+	int Second;			/* 秒 	*/
+	int Millisecond;	/* 微妙 */
+}camera_time;
+
+/* 识别结果坐标 */
+typedef struct 
+{
+	int 	Left;	/* 左 */
+	int 	Top;	/* 上 */
+	int 	Right;	/* 右 */
+	int 	Bottom;	/* 下 */
+}plate_location;
+
+/* 识别结果 */
+typedef struct 
+{	
+	char		chWTYIP[16];						/* 相机IP 				*/
+	int			nFullLen;							/* 全景图像数据大小 	*/
+	int			nPlateLen;							/* 车牌图像数据大小 	*/
+	char		chFullImage[BIG_PICSTREAM_SIZE];	/* 全景图像数据 		*/
+	char		chPlateImage[SMALL_PICSTREAM_SIZE];	/* 车牌图像数据 		*/
+	char		chColor[8];							/* 车牌颜色 			*/
+	char		chLicense[16];						/* 车牌号码 			*/
+	plate_location 	pcLocation;						/* 车牌在图像中的坐标 	*/
+	camera_time		shootTime;						/* 识别出车牌的时间 	*/
+	int			nConfidence;						/* 车牌可信度			*/
+	int			nTime;								/* 识别耗时				*/
+	int			nDirection;							/* 车牌方向				*/
+	int			nCarLogo;							/* 车标类型(参考CAR_LOGO)*/
+	int			nCarModel;							/* 车型类型(参考CAR_MODEL)*/
+	char		reserved[256-12-4-4];
+}plate_result;
+
+/* 图像信息*/
+typedef struct
+{
+	int				nWidth;							/* 宽度					*/
+	int				nHeight;						/* 高度					*/
+	int				nPitch;							/* 图像宽度的一行像素所占内存字节数*/
+	int				nLen;							/* 图像的长度			*/
+	char			reserved[16];					/* 预留     			*/
+	unsigned char	*pBuffer;						/* 图像内存的首地址		*/
+}LPRC_IMAGE_INFO;
+
+
+/* 识别结果 */
+typedef struct 
+{	
+	char				chWTYIP[16];						/* 相机IP 				*/
+	char				chColor[8];							/* 车牌颜色 			*/
+	char				chLicense[16];						/* 车牌号码 			*/
+	plate_location 		pcLocation;							/* 车牌在图像中的坐标 	*/
+	camera_time			shootTime;							/* 识别出车牌的时间 	*/
+	int					nConfidence;						/* 车牌可信度			*/
+	int					nTime;								/* 识别耗时				*/
+	int					nDirection;							/* 车牌方向		    	*/
+	int					nCarLogo;							/* 车标类型(参考CAR_LOGO)*/
+	int					nCarModel;							/* 车型类型(参考CAR_MODEL)*/
+	char				reserved[256-4-4];					/* 预留     			*/
+	LPRC_IMAGE_INFO		pFullImage;							/* 全景图像数据(注意:相机不传输,此处指针为空) */
+	LPRC_IMAGE_INFO		pPlateImage;						/* 车牌图像数据(注意:相机不传输,此处指针为空) */
+}plate_result_ex;
+
+/* Jpeg流回调返回每一帧jpeg数据结构体 */
+typedef struct 
+{
+	char			chIp[16];				/*相机IP												*/
+	char			*pchBuf;				/*每一帧jpeg数据缓冲区									*/
+	unsigned int	nLen;					/*当前jpeg帧的数据长度									*/
+	int				nStatus;				/* 当前jpeg帧接收状态: 0-正常, 非0-不正常 				*/
+	char			reserved[128];			/* 保留		  											*/
+}DevData_info;
+/*接收串口数据的结构体*/
+typedef struct
+{
+	unsigned char *pData;//[1024];////串口数据指针
+	int nsize;///串口数据大小
+	char reserved[128];			/* 保留	*/
+}DevSerial_data;
+
+/* 搜索设备之后保存设备信息的结构体,注:要是修改ip信息请保证其他信息不被改变*/
+typedef struct 
+{
+	char 			chDevName[256];			/* 设备名		*/
+	char			chSoftVer[20];			/* 软件版本号	*/
+	char 			chHardVer[20];			/* 硬件版本号	*/
+	char 			chSysVer[20];			/* 系统版本	*/
+	int				nSdkPort;				/* sdk端口号			*/
+	char 			chIp[16];				/* ip地址		*/
+	char 			chGateway[16];			/* 网管	*/
+	char 			chNetmask[16];			/* 子网掩码	*/
+	char 			chMac[18];				/* Mac地址		*/
+	char            chRoomID[20];			/*RooMID            */
+	char            chSN[20];				/*SN*/
+	char            chWifiIp[16];			/*wifi_ip*/
+	char			reserved[256-16];		/* 保留		  */
+}WTY_DeviceInfo;
+/*新版本Rs485透传数据结构体*/   
+typedef struct{
+	short           TimeDelay;				/*延时范围:10~200毫秒之间
+												 注:1、设置的是本条数据和下一条数据之间的延时时间
+													2、最后一条数据不需要设置延时
+											*/		
+    unsigned char   *data;					/*存储传输数据的缓冲区指针,需要客户自己申请缓冲区*/
+	short           datalen;				/*缓冲区最大长度2*1024*/
+	char            reserved[10];			/*保留*/
+ } WTY_RS485_Data_t;
+
+/*新版本485透传结构体*/
+typedef struct{
+	WTY_RS485_Data_t  rS485_data[5];  /*实际发送数据的结构体*/
+	int               datanum;		  /*每次发送最大支持发送5条数据*/
+} WTY_RS485_Transparent_t;
+
+/*GPIO 输入口状态 结构体 */
+typedef struct{ 	
+	unsigned  char gpio_in0;//GPIO IN0 0低电平 1 高电平 	
+	unsigned  char gpio_in1;//GPIO IN1 0低电平 1 高电平
+	unsigned  char gpio_in2;//GPIO IN2 0低电平 1 高电平
+	unsigned  char gpio_in3;//GPIO IN3 0低电平 1 高电平 
+}WTY_GPIO_In_Statue;
+
+
+/************************************************************************/
+/* WTY_InitSDK: 连接相机												*/
+/*		Parameters:														*/
+/*			nPort[in]:		连接相机的端口,现默认为8080				*/
+/*			hWndHandle[in]:	接收消息的窗体句柄,当为NULL时,表示无窗体  */
+/*			uMsg[in]:		用户自定义消息,当hWndHandle不为NULL时,	*/
+/*							检测到有新的车牌识别结果并准备好当前车牌	*/
+/*							缓冲区信息后,用::PostMessage 给窗口		*/
+/*							hWndHandle发送uMsg消息,其中WPARAM参数为0,	*/
+/*							LPARAM参数为0								*/
+/*			chServerIP[in]:	相机的IP地址								*/
+/*		Return Value:   int												*/
+/*							0	相机连接成功							*/
+/*							1	相机连接失败							*/
+/*		Notice:   														*/
+/*				如果采用回调的方式获取数据时,hWndHandle句柄为NULL,	*/
+/*				uMsg为0,并且注册回调函数,通知有新的数据;				*/
+/*				反之,在主窗口收到消息时,调用WTY_GetVehicleInfo获取	*/
+/*				数据。													*/
+/************************************************************************/
+int __stdcall WTY_InitSDK(UINT nPort,HWND hWndHandle,UINT uMsg,char *chServerIP);
+
+
+/************************************************************************/
+/* 	函数: 根据IP地址,断开指定设备链接									*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP地址							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/************************************************************************/
+int __stdcall WTY_QuitDevice(char *pCameraIP);
+
+
+/************************************************************************/
+/* WTY_QuitSDK: 断开所有已经连接设备,释放资源							*/
+/*		Parameters:														*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void  __stdcall WTY_QuitSDK();
+
+
+/***********************************************************************************/
+/* 回调函数:循环检测并通知相机设备通讯状态的回调函数						       */
+/*		Parameters:														           */
+/*			chWTYIP[out]:		返回设备IP								           */
+/*			nStatus[out]:		设备状态:0表示网络异常或设备异常;			       */
+/*										  1表示网络正常,设备已连接		    	   */
+/*										  2表示网络正常,设备已连接,但相机有重启  */
+/*		Return Value:   void											           */
+/***********************************************************************************/
+typedef void (*WTYConnectCallback)(char *chWTYIP,UINT nStatus);
+
+
+/************************************************************************/
+/* WTY_RegWTYConnEvent: 注册相机通讯状态的回调函数						*/
+/*		Parameters:														*/
+/*			WTYConnect[in]:		ConnectCallback类型回调函数				*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall WTY_RegWTYConnEvent (WTYConnectCallback WTYConnect);
+
+
+/************************************************************************/
+/* WTY_CheckStatus: 主动检查相机设备的通讯状态							*/
+/*		Parameters:														*/
+/*			chWTYIP[in]:		要检查的相机的IP						*/
+/*		Return Value:   int												*/
+/*							0	正常									*/
+/*							1	网络不通								*/
+/************************************************************************/
+int __stdcall WTY_CheckStatus (char *chWTYIP);
+
+
+/************************************************************************/
+/* 回调函数: 注册接收识别数据回调函数									*/
+/*		Parameters:														*/
+/*			recResult[out]:		识别结果数据							*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		新扩展的回调函数,方便用户接收清晰度较高或分辨率较高的JPEG图像	*/
+/************************************************************************/
+typedef void (*WTYDataEx2Callback)(plate_result_ex *recResultEx);
+
+
+/************************************************************************/
+/* WTY_RegDataEx2Event: 注册获取识别结果的回调函数						*/
+/*		Parameters:														*/
+/*			WTYData[in]:		处理识别结果的回调函数的指针			*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		接收清晰度较高,或分辨率较高的JPEG图像							*/
+/************************************************************************/
+void __stdcall WTY_RegDataEx2Event(WTYDataEx2Callback WTYDataEx2);
+
+
+/************************************************************************/
+/* 回调函数:获取相机485发送的数据										*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回设备IP								*/
+/*          serialData[out]          串口数据地址						*/
+/*			nlen[out]				串口数据大小						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*WTYSerialDataCallback)(char *chWTYIP,DevSerial_data *pSerialData);
+
+
+/************************************************************************/
+/* WTY_RegSerialDataEvent: 注册获取串口数据的回调函数					*/
+/*		Parameters:														*/
+/*			WTYSerialData[in]:		处理接收串口数据的回调函数的指针	*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall WTY_RegSerialDataEvent(WTYSerialDataCallback WTYSerialData);
+
+
+/************************************************************************/
+/* 回调函数:获取相机GPIO状态											*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回设备IP								*/
+/*          pGpioState[out]          串口数据地址						*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*WTYGetGpioStateCallback)(char *chWTYIP,WTY_GPIO_In_Statue *pGpioState);
+
+
+/************************************************************************/
+/* WTY_RegWTYGetGpioState: 注册获取相机GPIO状态的回调函数				*/
+/*		Parameters:														*/
+/*			WTYGpioState[in]:		WTYGetGpioStateCallback类型回调函数	*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall WTY_RegWTYGetGpioState (WTYGetGpioStateCallback WTYGpioState);
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP的相机识别结果。							*/
+/*		  当WTY_initSDK函数中设置了窗体句柄和消息时,					*/
+/*		  需要在消息处理函数中调用此函数来主动获取识别结果。			*/
+/*		Parameters:														*/
+/*			chWTYIP[in]:		根据消息,获取指定IP设备识别数据		*/
+/*			chPlate[in]:		车牌号码								*/
+/*			chColor[in]:		车牌颜色								*/
+/*			chFullImage[in]:	全景图数据								*/
+/*			nFullLen[in]:		全景图数据长度							*/
+/*			chPlateImage[in]:	车牌图数据								*/
+/*			nPlateLen[in]:		车牌图数据长度							*/
+/*			chTwoImage[in]:		二值化数据								*/
+/*			nTwoLen[in]:		二值化数据长度							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			当设置了传输内容不传时,各自对应的数据为NULL,长度为-1;	*/
+/*			当没有形成数据时,各自对应数据为NULL,长度为0				*/
+/************************************************************************/
+int __stdcall WTY_GetVehicleInfoEx(char *chWTYIP,
+								 char *chPlate,	
+								 char *chColor,
+								 void *chFullImage ,
+								 int *nFullLen,
+								 void *chPlateImage,
+								 int *nPlateLen,
+								 void *chTwoImage,
+								 int *nTwoLen);
+
+
+/************************************************************************/
+/* WTY_SetSavePath: 如果用户需要动态库自动保存图片,可以通过该函数设置保*/
+/*					存图片的路径。										*/
+/*		Parameters:														*/
+/*			chSavePath[in]:	文件存储路径,以"\\"结束,如:"D:\\Image\\"	*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:   														*/
+/*			全景图:指定目录\\设备IP\\年月日(YYYYMMDD)\\FullImage\\	*/
+/*									时分秒-毫秒__颜色_车牌号码__.jpg	*/
+/*			车牌图:指定目录\\设备IP\\年月日(YYYYMMDD)\\PlatelImage\\	*/
+/*									时分秒-毫秒__颜色_车牌号码__.jpg	*/
+/************************************************************************/
+void __stdcall WTY_SetSavePath (char *chSavePath);
+
+
+/************************************************************************/
+/* WTY_SetTrigger: 手动触发识别(抓取一帧识别)							*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要触发的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	触发成功返回									*/
+/*				  非0	失败											*/
+/************************************************************************/	
+int __stdcall WTY_SetTrigger(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* WTY_SetSenseCoilTrigger: 模拟地感触发识别(需要将识别模式:设置为'视频地感')*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			要触发的相机设备的IP				*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:													*/
+/*					0	触发成功返回									*/
+/*				  非0	失败											*/
+/*		Note:															*/
+/*			V5以上硬件相机才能支持此接口								*/
+/************************************************************************/	
+int __stdcall WTY_SetSenseCoilTrigger(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* 函数说明: 控制继电器的闭合											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP								*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:   int												*/
+/*							0	设置成功								*/
+/*						  非0	失败									*/
+/*		Notice:   														*/
+/*				通过此功能,可以在PC端通过一体机设备,来控制道闸的抬起	*/
+/*				设备继电器输出信号为:开关量信号。						*/
+/************************************************************************/
+int __stdcall WTY_SetRelayClose(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* 函数说明: 控制道闸落下											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]:			相机IP								*/
+/*			nCameraPort[in]:		端口,默认8080						*/
+/*		Return Value:   int												*/
+/*							0	设置成功								*/
+/*						  非0	失败									*/
+/*		Notice:   														*/
+/*				通过此功能,可以在PC端通过一体机设备,来控制道闸的落下	*/
+/*				设备输出信号为:光耦信号						*/
+/************************************************************************/
+int __stdcall WTY_DropRod(char *pCameraIP, int nCameraPort);
+
+
+/************************************************************************/
+/* WTY_RS485Send: RS485透明传输											*/
+/*		Parameters:														*/
+/*			pCameraIP[in]				相机设备IP地址					*/
+/*			nPort[in]					端口,默认9110					*/
+/*			chData[in]					将要传输的数据块的首地址		*/
+/*			nSendLen[in]				将要传输的数据块的字节数		*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:														*/
+/*				1:用户通过此接口,往相机发送数据,相机设备会原样将数据	*/
+/*				通过RS485接口转发出去,到客户所接的外部设备上。			*/
+/*				2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 */
+/*				能传输识别结果(默认S485传输识别结果)。					*/
+/************************************************************************/
+int __stdcall WTY_RS485Send(char *pCameraIP, int nCameraPort, char *chData, int nSendLen);
+
+
+/************************************************************************/
+/* WTY_RS485SendEx: 新版本RS485透明传输									*/
+/*		Parameters:														*/
+/*			pCameraIP[in]				相机设备IP地址					*/
+/*			nPort[in]					端口,默认9110					*/
+/*			nRs485[in]	传输485数据的结构体								*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:														*/
+/*				1:用户通过此接口,往相机发送数据,相机设备会原样将数据	*/
+/*				通过RS485接口转发出去,到客户所接的外部设备上。			*/
+/*				2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 */
+/*				能传输识别结果(默认S485传输识别结果)。					*/
+/*				3:新版本可以一次性给相机发送最大5条数据,可以设置每条数据*/
+/*				透传的时间间隔。									      */
+/************************************************************************/
+int __stdcall WTY_RS485SendEx(char *pCameraIP, int nCameraPort, WTY_RS485_Transparent_t nRs485);
+
+
+/************************************************************************/
+/* WTY_SearchDeviceList:    搜索设备IP列表							    */
+/*		Parameters:														*/
+/*		pBuf[out]			存储搜索到的相机列表信息结构体数组		    */
+/*		Return Value:   	int											*/
+/*							大于0	成功搜索到的设备数					*/
+/*						  	-1	失败									*/
+/************************************************************************/
+int __stdcall WTY_SearchDeviceList(WTY_DeviceInfo *pBuf);
+
+
+/************************************************************************/
+/* WTY_AlterDeviceInfo:    修改指定的设备的设备信息					    */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		pBuf[out]			存储需要修改的设备信息结构体		        */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_AlterDeviceInfo(char *pCameraIP,WTY_DeviceInfo pBuf);
+
+
+/************************************************************************/
+/* WTY_SetDevTimeParam:    修改设备系统时间							    */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		sysTime[in]			设置时间结构体		                        */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_SetDevTimeParam(char *pCameraIP, camera_time*sysTime);
+
+
+/************************************************************************/
+/* WTY_SetEncryptKey:    	设置加密芯片密码							*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_SetEncryptKey(char *pCameraIP, unsigned_long_long nKey);
+
+
+/************************************************************************/
+/* WTY_ReSetEncryptKey:    	重置加密芯片密码,密码恢复为123456			*/
+/*                          并且用户数据恢复为空                        */
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_ReSetEncryptKey(char *pCameraIP);
+
+
+/************************************************************************/
+/* WTY_SetEncryptUserData:  设置加密芯片用户数据,密码必须匹配才可以成功*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*      pUserData[in]       加密芯片用户数据指针,大小24个字节          */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_SetEncryptUserData(char *pCameraIP, unsigned_long_long nKey,char *pUserData);
+
+
+/************************************************************************/
+/* WTY_GetEncryptUserData:  设置加密芯片用户数据,密码必须匹配才可以成功*/
+/*		Parameters:														*/
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    */
+/*		nKey[in]			加密芯片密码,8个字节大小	                */
+/*      pUserData[out]      存储读取到的用户数据                        */
+/*		Return Value:   	int											*/
+/*							==0	成功									*/
+/*						  	非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_GetEncryptUserData(char *pCameraIP, unsigned_long_long nKey,char *pUserData);
+
+
+
+
+/*************************************************************************************************************/
+/****************************以下接口属于较早版本,V5相机可能不再会提供支持***********************************/
+/**********************************请客户挂接时候,尽量使用以上接口*******************************************/
+/*************************************************************************************************************/
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP相机识别结果。								*/
+/*		  当WTY_initSDK函数中设置了窗体句柄和消息时,					*/
+/*		  需要在消息处理函数中调用此函数来主动获取识别结果。			*/
+/*		Parameters:														*/
+/*			chWTYIP[in]:		根据消息,获取指定IP设备识别数据		*/
+/*			chPlate[in]:		车牌号码								*/
+/*			chColor[in]:		车牌颜色								*/
+/*			chFullImage[in]:	全景图数据								*/
+/*			nFullLen[in]:		全景图数据长度							*/
+/*			chPlateImage[in]:	车牌图数据								*/
+/*			nPlateLen[in]:		车牌图数据长度							*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			当设置了传输内容不传时,各自对应的数据为NULL,长度为-1;	*/
+/*			当没有形成数据时,各自对应数据为NULL,长度为0				*/
+/************************************************************************/
+int __stdcall WTY_GetVehicleInfo(char *chWTYIP,
+								 char *chPlate,	
+								 char *chColor,
+								 void *chFullImage ,	
+								 int *nFullLen, 
+								 void *chPlateImage,
+								 int *nPlateLen);
+
+
+/************************************************************************/
+/* 回调函数: 注册接收识别数据回调函数									*/
+/*		Parameters:														*/
+/*			recResult[out]:		识别结果数据							*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*WTYDataExCallback)(plate_result *recResult);
+
+
+/************************************************************************/
+/* WTY_RegDataExEvent: 注册获取识别结果的回调函数						*/
+/*		Parameters:														*/
+/*			WTYData[in]:		处理识别结果的回调函数的指针			*/
+/*		Return Value:   void											*/
+/*	Note:																*/
+/*		接收清晰度较低,或分辨率较低的JPEG图像							*/
+/************************************************************************/
+void __stdcall WTY_RegDataExEvent(WTYDataExCallback WTYDataEx);
+
+
+
+
+
+/************************************************************************/
+/* 回调函数: 获取识别结果的回调函数										*/
+/*		Parameters:														*/
+/*			chWTYIP[out]:		返回识别结果的设备IP					*/
+/*			chPlate[out]:		车牌号码								*/
+/*			chColor[out]:		车牌颜色								*/
+/*			chFullImage[out]:	全景图数据								*/
+/*			nFullLen[out]:		全景图数据长度							*/
+/*			chPlateImage[out]:	车牌图数据								*/
+/*			nPlateLen[out]:		车牌图数据长度							*/
+/*		Return Value:   void											*/
+/************************************************************************/
+typedef void (*WTYDataCallback)(char *chWTYIP, 
+								char *chPlate,
+								char *chColor,
+								char *chFullImage,
+								int nFullLen, 
+								char *chPlateImage,
+								int nPlateLen);
+
+
+/************************************************************************/
+/* WTY_RegDataEvent: 注册获取识别结果的回调函数							*/
+/*		Parameters:														*/
+/*			WTYData[in]:		处理识别结果的回调函数的指针			*/
+/*		Return Value:   void											*/
+/************************************************************************/
+void __stdcall WTY_RegDataEvent(WTYDataCallback WTYData);
+
+
+/************************************************************************/
+/* WTY_SetTransContent: 控制相机设备上传内容					        */
+/*		Parameters:														*/
+/*			pCameraIP[in]:		要设置的设备IP							*/
+/*			nCameraPort[in]:	端口,默认8080							*/
+/*			nFullImg[in]:		全景图,0表示不传,1表示传				*/
+/*			nPlateImg[in]:		车牌图,0表示不传,1表示传				*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/************************************************************************/
+int __stdcall WTY_SetTransContent (char *pCameraIP, int nCameraPort, int nFullImg, int nPlateImg);
+
+
+/************************************************************************/
+/* 回调函数: 获取Jpeg流的回调函数										*/
+/*		Parameters:														*/
+/*			JpegInfo[out]:		JPEG流数据信息							*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+typedef void (*WTYJpegCallback)(DevData_info *JpegInfo);
+
+
+/************************************************************************/
+/* WTY_RegJpegEvent: 注册获取Jpeg流的回调函数							*/
+/*		Parameters:														*/
+/*			JpegInfo[in]:		WTYJpegCallback类型回调函数				*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+void __stdcall WTY_RegJpegEvent(WTYJpegCallback JpegInfo);
+
+
+/************************************************************************/
+/* 函数: Jpeg流消息处理初始化											*/
+/*		Parameters:														*/
+/*			hWndHandle[in]:	接收消息的窗体句柄							*/
+/*			uMsg[in]:		用户自定义消息								*/
+/*							检测到有数据并准备好缓冲区数据后,			*/
+/*							用::PostMessage 给窗口hWndHandle发送uMsg	*/
+/*							消息,其中WPARAM参数为0,LPARAM参数为0		*/
+/*			chIp[in]:		相机IP地址								*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/************************************************************************/
+int __stdcall WTY_JpegMessageInit(HWND hWndHandle,UINT uMsg,char *chIp);
+
+
+/************************************************************************/
+/* 	函数: 消息方式获取指定IP的相机的Jpeg流数据							*/
+/*		Parameters:														*/
+/*			chIp[in]:			相机IP地址								*/
+/*			chJpegBuf[in]:		存储JPEG的buffer						*/
+/*			nJpegBufLen[in]:	获取到的JPEG数据长度					*/
+/*		Return Value:   int												*/
+/*							0	获取成功								*/
+/*							1	获取失败								*/
+/*		Notice:   														*/
+/*			使用此函数前需先调用WTY_JpegMessageInit函数设置自定义消息	*/
+/************************************************************************/
+int __stdcall WTY_GetJpegStream(char *chIp, char *chJpegBuf, char *nJpegBufLen);
+
+
+/************************************************************************/
+/* WTY_SetNetworkCardBind: 手动绑定指定网卡IP							*/
+/*		Parameters:														*/
+/*			pCameraIP[in]		要绑定的网卡IP地址						*/
+/*		Return Value:   int												*/
+/*							0	成功									*/
+/*						  非0	失败									*/
+/*		notice:当PC机存在多网卡的情况时,又不想禁用为单网卡时,可通过该	*/
+/*				函数绑定与相机通讯的网卡IP								*/
+/************************************************************************/
+int __stdcall WTY_SetNetworkCardBind(char *pCameraIP);
+
+
+/************************************************************************/
+/* 回调函数: 获取报警信息的回调函数										*/
+/*		Parameters:														*/
+/*			alarmInfo[out]:		报警信息								*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			一台PC连接多台设备时,此函数仅需实现一次。当区分不同设备	*/
+/*			的Alarm时,可以通过输出参数中DevData_info中的chIp来区分		*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+typedef void (*WTYAlarmCallback)(DevData_info *alarmInfo);
+
+
+/************************************************************************/
+/* WTY_RegAlarmEvent: 注册获取报警信息的回调函数						*/
+/*		Parameters:														*/
+/*			AlarmInfo[in]:		WTYAlarmCallback类型回调函数			*/
+/*		Return Value:   void											*/
+/*																		*/
+/*		Notice:															*/
+/*			1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同		*/
+/*			设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来	*/
+/*			区分.														*/
+/*			2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本,				*/
+/*			  V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能			*/
+/************************************************************************/
+
+void __stdcall WTY_RegAlarmEvent(WTYAlarmCallback AlarmInfo);
+
+
+/************************************************************************/
+/*WTY_SnapJpegFrame 快速抓拍一帧,两种保存方式,直接保存到固定目录或者	*/
+/*					保存到特定内存,要是保存特定内存模式需要传入内存		*/
+/*					最大值,两种方式可选									*/		
+/*		Parameters:														*/
+/*			chIp[in]		   相机的IP地址								*/
+/*			pSaveFileName[in]  路径和带JPEG后缀名的文件名,用于把当前	*/
+/*							   抓拍到的帧保存为特定文件  默认先匹配		*/
+/*							   文件名									*/
+/*          pSaveBuf[in]       用于保存当前帧在特定内存的,并且需要传输	*/
+/*							   内存可存储的最大值,当文件名为空的时候	*/
+/*							   这个才会生效。							*/  
+/*          Maxlen[in]         保存当前帧特定内存的最大值				*/
+/*		Return Value:   int												*/
+/*						   0	保存到特定目录成功						*/
+/*                         >0   保存到特定内存的数据的实际大小          */
+/*						  -1	失败									*/
+/************************************************************************/
+int __stdcall WTY_SnapJpegFrame(char *chIp,char *pSaveFileName,unsigned char *pSaveBuf,int Maxlen);
+
+
+/********************************************************************************/
+/* WTY_SetJpegStreamPlayOrStop: 设置jpeg流的开关							    */
+/*		Parameters:														        */
+/*		pCameraIP[in]		需要设置的相机设备的ip地址				            */
+/*		onoff[in]			jpeg流开关项,0表示关闭流,1表示打开流 2打开H264    */
+/*		Return Value:   	int											        */
+/*							0	成功									        */
+/*						  	非0	失败									        */
+/********************************************************************************/
+int __stdcall WTY_SetJpegStreamPlayOrStop(char *pCameraIP,int onoff);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

二進制
DLL/windows/64bit/WTY.dll


二進制
DLL/windows/64bit/WTY.lib


+ 717 - 0
DLL/windows/64bit/WTYSDK_WhiteList.h

@@ -0,0 +1,717 @@
+//用于车牌识别设备的白名单相关的操作
+
+#ifndef _WTYSDK_WHITE_LIST_H_
+#define _WTYSDK_WHITE_LIST_H_
+#if !defined(WIN32) && !defined(__stdcall)
+#define __stdcall
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+
+
+struct PlateInfo_t;
+struct plateTraffic_t;
+
+
+//---一些返回值错误信息定义
+//typedef enum
+//{
+//	WTYSDK_WLIST_ERROR_NO_ERROR=0,					//返回成功!
+//	WTYSDK_WLIST_ERROR_GENERAL=-1,					//调用底层接口库失败
+//	WTYSDK_WLIST_ERROR_IP_NULL=-2,					//IP地址为空
+//	WTYSDK_WLIST_ERROR_SIZEOUTOFRANGE=-3,			//每页大小超过100
+//	WTYSDK_WLIST_ERROR_MALLOCFAIL=-4,				//申请内存失败
+//	WTYSDK_WLIST_ERROR_IP_ILLEGALITY=-5	,			//IP地址非法
+//	WTYSDK_WLIST_DEVICEALREADYREGISTER=1,			//设备已经注册成功
+//	WTYSDK_WLIST_ERROR_DATA=-11,					//导入信息有误
+//	WTYSDK_WLIST_TIME_OUT=-12,						//select超时
+//	WTYSDK_WLIST_SERVER_CLOSED=-13,					//服务器端不存在
+//	WTYSDK_WLIST_WLISTSOCKET_ERROR=-21,				//套接字创建失败
+//	WTYSDK_WLIST_CONNECT_ERROR=-22,					//连接服务器失败
+//	WTYSDK_WLIST_SELECT_ERROR=-23,					//select失败
+//	WTYSDK_WLIST_RECV_ERROR=-24,					//接收数据返回失败
+//	WTYSDK_WLIST_SEND_ERROR=-25,					//发送数据失败
+//	WTYSDK_WLIST_DATABASE_ERROR		=1,				//数据库操作失败
+//	WTYSDK_WLIST_REQ_ERROR			=2,				//请求包格式错误
+//	WTYSDK_WLIST_RECIVE_TIMEOUT     =3,			    //接受包超时
+//	WTYSDK_WLIST_DATA_ERROR			=4,				//数据错误
+//
+//	WTYSDK_WLIST_ERROR_NOREGISTSPACE = -6,  // 无注册预留空间 最多100个 mdf by zhz
+//	WTYSDK_WLIST_ERROR_QUERYCONDITION = -7 // 查询条件出错(比如查询参数不合法) mdf by zhz
+//}
+//CLIENT_LPR_WLIST_ERROR;
+
+
+
+/*
+*	车牌类型宏定义
+*/
+#define WTYSDK_PLATETYPE_UNKNOWN        0           ///未知类型
+#define WTYSDK_PLATETYPE_BLUE           1           ///蓝牌
+#define WTYSDK_PLATETYPE_BLACK          2           ///黑牌
+#define WTYSDK_PLATETYPE_SINGLEYELLOW   3           ///单层黄牌
+#define WTYSDK_PLATETYPE_DOUBLEYELLOW   4           ///双层黄牌
+#define WTYSDK_PLATETYPE_JCPLATE        5			///警车车牌
+#define WTYSDK_PLATETYPE_WJPLATE        6			///武警车牌
+#define WTYSDK_PLATETYPE_INDIVIDUATION  7			///个性化车牌
+#define WTYSDK_PLATETYPE_SINGLEARMY		8			///单层军牌
+#define WTYSDK_PLATETYPE_DOUBLEARMY     9			///双层军牌
+#define WTYSDK_PLATETYPE_EMBASSY        10			///使馆车牌
+#define WTYSDK_PLATETYPE_HKOKATE		11			///香港车牌
+#define WTYSDK_PLATETYPE_TRACTOR        12			///拖拉机
+#define WTYSDK_PLATETYPE_AOMEN			13 			///澳门牌
+#define WTYSDK_PLATETYPE_INTERNAL       14			///内部牌
+#define WTYSDK_PLATETYPE_MHPALTE		15			///民航车牌
+#define WTYSDK_PLATETYPE_CONSULATE      16			///领馆车牌
+
+/*
+*	车辆颜色宏定义
+*/
+#define WTYSDK_CARCOLOR_UNKNOWN         0			///未知类型
+#define WTYSDK_CARCOLOR_BLUE			1			///蓝色
+#define WTYSDK_CARCOLOR_YELLOW			2			///黄色
+#define WTYSDK_CARCOLOR_WHITE			3			///白色
+#define WTYSDK_CARCOLOR_BLACK			4			///黑色
+#define WTYSDK_CARCOLOR_GREEN			5			///绿色
+
+
+/*
+*	定义用户、车辆信息结构体里面的数组大小
+*/
+#define WTYSDK_WLIST_CUSTOMER_NAME_LEN	20   //用户名字符串长度
+#define WTYSDK_WLIST_CUSTOMER_CODELEN	20	 //用户编码字符串长度
+
+#define WTYSDK_WLIST_VEHICLE_PLATE_LEN 16	//车牌字符串长度
+#define WTYSDK_WLIST_VEHICLE_CODE_LEN  20	//车辆编码字符串长度
+#define WTYSDK_WLIST_VEHICLE_TIME_LEN  20	//时间信息字符串长度
+#define WTYSDK_WLIST_HTTP_SELECTTRAFFIC_IP_DOMAIN 50    // http 查询 ip 域名长度
+#define WTYSDK_WLIST_TIME_SEG_MAX_NUM	8	//时间段字符串长度
+#define WTYSDK_WLIST_PERPAGE_MAXSIZE    100 //查询或者导入每页最大值
+#define WTYSDK_WLIST_PIC_SAVEPATH     100	//保存图片路径字符串长度
+#define WTYSDK_WLIST_STOREMAXVALUE    30000 //白名单保存用户和车辆信息最大值
+/*
+*	定义客户信息、用户信息、车辆通行信息结构体
+*/
+//黑白名单记录的客户信息
+typedef struct
+{
+	unsigned	uCustomerID;			//<客户在数据库的ID,用于修改、删除操作(主键)
+	char		strName[WTYSDK_WLIST_CUSTOMER_NAME_LEN];	//<客户姓名
+	char		strCode[WTYSDK_WLIST_CUSTOMER_CODELEN];	//<客户编码,唯一编码
+
+	char		reserved[256];//保留
+}
+WTYSDK_WLIST_CUSTOMER;
+
+//---以下一些做api函数参数的定义
+
+// 黑白名单客户信息查询条件
+typedef struct{
+	int 	UserID;											//客户ID
+	char	UserName[WTYSDK_WLIST_CUSTOMER_NAME_LEN];		//客户名字
+	char 	UserSerial[WTYSDK_WLIST_CUSTOMER_CODELEN];		//客户编号
+	int 	page;											//从0开始算第一页,依次类推
+	int 	pageSize;										//每页查询的数目
+	char	reserved[100];
+}
+WTYSDK_CUSTOMERQUERYCONDITION;
+
+
+//黑白名单中的车辆记录
+typedef struct
+{
+	unsigned	uVehicleID;										//<车辆在数据库的ID
+	char		strPlateID[WTYSDK_WLIST_VEHICLE_PLATE_LEN];			//<车牌字符串
+	unsigned	uCustomerID;									//<客户在数据库的ID,与WTYSDK_WLIST_CUSTOMER::uCustomerID对应
+	unsigned	bEnable;										//<该记录有效标记
+	//unsigned	bEnableTMEnable;								//<是否开启生效时间
+	//unsigned	bEnableTMOverdule;								//<是否开启过期时间
+	char		struTMCreate[WTYSDK_WLIST_VEHICLE_TIME_LEN];									//<该记录创建时间
+	char		struTMEnable[WTYSDK_WLIST_VEHICLE_TIME_LEN];									//<该记录生效时间
+	char		struTMOverdule[WTYSDK_WLIST_VEHICLE_TIME_LEN];									//<该记录过期时间
+	unsigned	bUsingTimeSeg;									//是否使用时间段匹配0不启用1
+	char        struTimeSeg[256];									//<周期时间段信息
+	int 		WeekTimeMatch;									//是否在时间段内使用周期时间段匹配0不启用1启用
+	//int 	TimeMatch;		是否使用时间段匹配0不启用1
+	unsigned	bAlarm;											//<是否触发报警(黑名单记录)
+	int			iColor;											//<车辆颜色
+	int			iPlateType;										//<车牌类型
+	int         iBlackList;										//是否黑名单 0不是 1是
+	char		strCode[WTYSDK_WLIST_VEHICLE_CODE_LEN];			//<车辆编码
+	char		strRemark[100];									//车辆备注说明,可以为空
+	char		reserved[256];									//保留
+}
+WTYSDK_WLIST_VEHICLE;
+//车辆 信息查询条件
+typedef struct{
+	int     PlateinfoID;		//车辆ID
+	int 	UserID;				//用户ID
+	char	UserName[20];		//客户名字
+	char 	UserSerial[20];		//客户编号
+	char 	PlateNumber[16];	//车牌号
+	char 	CarSerial[20];		//车辆代码
+	int 	Blacklist;
+	int 	conditionsflag;		//查询条件设置0 根据用户ID查询 1根据用户名查询 2根据用户编码 3根据车辆ID 4根据车牌号 5根据车辆代码  6查询所有
+	int 	page;				//查询页
+	int 	pageSize;			//每页大小,最大值100
+	char	reserved[256];
+}
+WTY_SDK_VEHICLEQUERYRECORD;
+
+
+//车辆通行信息
+typedef struct
+{
+	int iTrafficId;												//车辆通行ID,自增
+	int iVehicleID;												//车辆ID
+	int iCustomerID;											//用户ID
+	char strPlateNumber[WTYSDK_WLIST_VEHICLE_PLATE_LEN];		//车牌字符串
+	char strPassTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];			//车辆通过时间
+	int  iCarSigned;											//车辆标示,0外来车,1内部车
+	int iIsOpenSigno;											//是否开启道闸, 0未抬杆,1已抬杆
+	char strPicSavePath[WTYSDK_WLIST_PIC_SAVEPATH];				//图片保存路径
+	char		reserved[256];									//保留
+}
+WTYSDK_WLIST_TRAFFIC_INFO;
+//Http记录信息
+typedef struct
+{
+	int		TrafficID;				///*ID号:相机自己生成,无需客户指定 */
+	char  	PlateNumber[16];		///*车牌号码*/
+	char	RecDateTime[20];		///*识别时间*/
+	char	TransDateTime[20];		///*发送时间*/
+	int 	FullImageSize;			///*大图大小*/
+	int 	PlateImageSize;			///*小图大小*/
+	int 	IPtype;					///*使用IP还是域名0 IP */
+	char 	IP_Domain[50];			///*IP 或 域名*/
+	int		Port;					///*端口*/
+	char 	Path[200];				///*路径*/
+	int 	TransType;				///*传送方式  0 即时推送数据 1 异常数据重传*/
+	int 	state;					///*发送结果*/
+	int 	ReciveState;				///*接数据状态*/
+	int		DoorOpen;				///*是否开闸 0 不开 1 开*/
+	int		AbnormalID;				///*续传ID*/
+	char		reserved[256];									//保留
+}
+WTYSDK_WLIST_HTTP_INFO;
+
+//车辆通行信息查询条件
+typedef struct
+{
+	char	StartTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];		//*开始时间
+	char 	EndTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];		//*结束时间
+	char 	chPlateNumber[WTYSDK_WLIST_VEHICLE_PLATE_LEN];	//*车牌号
+	int 	page;											//*当前页数
+	int 	pageSize;										//*每页最多查询的大小,100,大于100返回-1
+	int     queryFlag;										//*0 时间段查询  1 车牌查询 2 分页查询
+	char	reserved[256];
+}
+WTY_SDK_TRAFFIC_QUERYCONDITION;
+//Http记录查询条件
+typedef struct
+{
+	char	StartTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];		//*开始时间
+	char 	EndTime[WTYSDK_WLIST_VEHICLE_TIME_LEN];		//*结束时间
+	char 	chPlateNumber[WTYSDK_WLIST_VEHICLE_PLATE_LEN];	//*车牌号
+	char 	IP[16];		/*IP或者域名*/
+	char	Domain[50];//域名
+	int     ipOrDomain;//1 ip 2 域名
+	int 	state;				/*发送结果*/
+	//int     http_select_type;/*查询方式:1:根据ip或者域名查询 可选时间段:2:推送结果查询 可选时间段 3:发送失败重新上传 可选时间段 4:前一天没有上传成功,后一天成功的*/
+	int 	page;											//*当前页数
+	int 	pageSize;										//*每页最多查询的大小,100,大于100返回-1
+	int     queryFlag;										//*0 时间段查询  1 车牌查询 2 分页查询  3域名或者IP查询 4推送结果查询 5发送失败从新上传  6前一天没有成功,后一天成功
+	int     timeIsEnabled;///使能是否启用时间段匹配
+	char	reserved[256];
+}
+WTY_SDK_HTTP_QUERYCONDITION;
+
+//返回的信息类型
+typedef enum{
+	WTYSDK_WLIST_CB_TYPE_NO = 0,								//无效信息
+	WTYSDK_WLIST_CB_TYPE_CUSTOMER,								//客户信息
+	WTYSDK_WLIST_CB_TYPE_VEHICLE,								//车辆信息
+	WTYSDK_WLIST_CB_TYPE_TRAFFIC,								//车辆通行信息
+	WTYSDK_WLIST_CB_TYPE_ROWS									//车辆和用户综合信息
+}
+WTYSDK_WLIST_CB_TYPE;
+//车辆和用户信息
+typedef struct
+{
+	//int nSize;													//*批量导入车牌和用户数据条数,每次最多100条
+	WTYSDK_WLIST_VEHICLE nCarInfo;								//*批量导入车牌信息结构体数组指针
+	WTYSDK_WLIST_CUSTOMER nUserInfo;							//*批量导入用户信息结构体数组指针
+}
+WTYSDK_IMPORTROWS;
+//白名单批量导入失败标志
+typedef struct
+{
+	int		nRow;//导入失败的条数
+	char 		Result[WTYSDK_WLIST_STOREMAXVALUE];//0 数据库存储大于上限10000条,-1 用户信心错误,-2 车辆信息错误  -3重复车牌
+}
+WTYSDK_IMPORT_FAILDREASON;
+/*
+*  @brief 白名单表、客户信息表、车辆通行信息的查询反馈结果函数
+*  @param  [IN] type 回调函数返回的信息类型
+*  @param  [IN] pLP 查询的车辆信息记录
+*  @param  [IN] pCustomer 查询的客户信息记录
+*  @param  [IN] nTotal 单次查询返回的总数
+*  @param  [IN] pUserData 回调函数中的上下文
+*  @ingroup group_callback
+*/
+typedef void (*WTYSDK_WLIST_QUERY_CALLBACK)(WTYSDK_WLIST_CB_TYPE type, WTYSDK_WLIST_VEHICLE *pLP,
+														   WTYSDK_WLIST_CUSTOMER *pCustomer,
+														   WTYSDK_WLIST_TRAFFIC_INFO *pTrafficInfo,
+														  int nTotal,
+														  void *pUserData);
+
+/*
+*  @brief  HTTP的查询反馈结果函数
+*  @param  [IN] pTrafficInfo 查询的HTTP信息记录
+*  @param  [IN] nTotal 单次查询返回的总数
+*  @param  [IN] pUserData 回调函数中的上下文
+*  @ingroup group_callback
+*/
+typedef void (*WTYSDK_WLIST_QUERY_HTTP_CALLBACK)(WTYSDK_WLIST_HTTP_INFO *pTrafficInfo,int nTotal,void *pUserData);
+
+
+
+/*
+*  @brief 设置白名单表和客户信息表的查询结果回调
+*  @param  [IN] func 查询结果回调函数
+*  @param  [IN] pUserData 回调函数中的上下文  (用户传入指针)
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,其它表示失败
+*  @ingroup group_database
+*/
+int  __stdcall WTYSDK_WhiteListSetQueryCallBack(WTYSDK_WLIST_QUERY_CALLBACK func, void *pUserData,char *pServerIp);
+
+/*
+*  @brief 设置HTTP查询结果回调
+*  @param  [IN] func 查询结果回调函数
+*  @param  [IN] pUserData 回调函数中的上下文
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,其它表示失败
+*  @ingroup group_database
+*/
+int  __stdcall WTYSDK_WhiteListSetQueryHttpCallBack(WTYSDK_WLIST_QUERY_HTTP_CALLBACK func, void *pUserData,char *pServerIp);
+
+
+/*
+*  @brief  获取所有客户信息记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return >=0表示成功,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetCustomerCount(char *pServerIp);
+
+/*
+*  @brief  查询白名单表客户信息数据,客户信息通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] numbers 单次每页查询最大值100(1-100),数据多的话可以分页查询和显示
+*  @param  [IN] nPage   查询页数,当前页数从0开始代表第一页
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadCustomer(char *pServerIp,int numbers,int nPage);
+
+/*
+*  @brief 获取白名单客户信息,通过ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] iCustomerId 客户信息的ID
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadCustomerById(char *pServerIp,int iCustomerId); // id唯一
+
+/*
+*  @brief 获取白名单客户信息,通过客户编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strCode 客户信息的唯一编码
+*  @param  [IN] numbers 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @param  [IN] nPage   查询页数,当前页数从0开始代表第一页
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadCustomerByCode(char *pServerIp,char* strCode,int numbers,int nPage);
+/*
+*  @brief 获取白名单客户信息,通过客户名称
+*  @param  [IN] strName 客户信息的名称
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] numbers 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @param  [IN] nPage   查询页数,当前页数从0开始代表第一页
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadCustomerByName(char *pServerIp,char* strName,int numbers,int nPage);
+/*
+*  @brief 增加用户信息记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pNewCustomer 增加的用户信息的结构体  其中 uCustomerID 为自动生成 填写无用
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListInsertCustomer(char *pServerIp,WTYSDK_WLIST_CUSTOMER  pNewCustomer);
+/*
+*  @brief 删除白名单客户信息,通过ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] iCustomerId 客户信息的ID
+*  @return 0表示成功,<0表示失败
+*/
+
+int __stdcall WTY_WhiteListDeleteCustomerById(char *pServerIp,int iCustomerId);
+/*
+*  @brief 删除白名单客户信息,通过用户名
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strName 客户名
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteCustomerByName(char *pServerIp,char* strName);
+/*
+*  @brief 删除白名单客户信息,通过客户编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strCode 客户信息的唯一编码
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteCustomerByCode(char *pServerIp,char* strCode);
+
+
+/*
+*  @brief 更新白名单客户信息,通过ID   注:id系统生成,更新时候id必须对应,不能随意填
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pNewCustomer 客户信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateCustomerById(char *pServerIp,WTYSDK_WLIST_CUSTOMER  pNewCustomer);
+
+/*
+*  @brief 更新白名单客户信息,通过用户名  注:id系统生成,更新时候id必须对应,不能随意填
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pNewCustomer 客户信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateCustomerByName(char *pServerIp,WTYSDK_WLIST_CUSTOMER pNewCustomer);
+
+/*
+*  @brief 更新白名单客户信息,通过客户编码  id系统生成,更新时候id必须对应,不能随意填  此函数会忽略id,把所有用户编号相同的都改
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pNewCustomer 客户信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateCustomerByCode(char *pServerIp,WTYSDK_WLIST_CUSTOMER pNewCustomer);
+/*
+*  @brief  获取所有车辆通行记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetTrafficCount(char *pServerIp);
+/*
+*  @brief  查询所有车辆通行记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListTrafficLoad(char *pServerIp,WTY_SDK_TRAFFIC_QUERYCONDITION queryConditions);
+
+/*
+*  @brief  通过车辆通行ID删除车辆通行信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] tracfficId 车辆通行记录的ID
+*  @return 0表示成功,-1表示失败
+*/
+int __stdcall WTY_WhiteListTraffiDelete(char *pServerIp,int tracfficId);
+
+/*
+*  @brief  清空车辆通行信息
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListTraffiDeleteAll(char *pServerIp);
+
+/*
+*  @brief  批量导出车辆通行信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [OUT] pExportBuf 存储查询到的记录缓冲区
+*  @param  [OUT] nSucceedCount 存储查询成功的记录总条数
+*  @param  [IN] nIndexTotal  想要获取到的记录总数
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListTraffiExportAll(char *pServerIp,WTYSDK_WLIST_TRAFFIC_INFO *pExportBuf,int *nSucceedCount,int nIndexTotal);
+
+/*
+*  @brief  获取所有车辆信息记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return >=0表示成功获取到的数目,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetVehicleCount(char *pServerIp);
+
+/*
+*  @brief  查询白名单表车辆信息数据,客户信息通过回调函数返回   注:此函数为统查 只关注WTY_SDK_VEHICLEQUERYRECORD 内page 和pagesize
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicle(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+/*
+*  @brief 获取白名单车辆信息,通过车牌号码  注: 只关注WTY_SDK_VEHICLEQUERYRECORD 内page 和pagesize 车牌号码   查找车牌号关键字
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示成功获取车辆总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByPlateId(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+/*
+*  @brief 获取白名单车辆信息,通过车辆自增ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示成功获取车牌总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleById(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+
+/*
+*  @brief 获取白名单车辆信息,通过车辆编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strCode 车辆信息的编码
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示成功获取车辆总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByCode(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+/*
+*  @brief 获取白名单车辆信息,通过用户ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示成功获取车辆总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByUserId(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+
+/*
+*  @brief 获取白名单车辆信息,通过车辆用户名字
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示获取到的车辆总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByUserName(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+
+/*
+*  @brief 获取白名单车辆信息,通过用户编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strCode 车辆信息的编码
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示获取车牌总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListLoadVehicleByUserCode(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD queryConditions);
+/*
+*  @brief 更新白名单车辆信息,通过车牌号码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleInfo 车辆信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateVehicleByPlateId(char *pServerIp,WTYSDK_WLIST_VEHICLE strVehicleInfo);
+/*
+*  @brief 更新白名单车辆信息,通过车辆自增ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleInfo 车辆信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateVehicleById(char *pServerIp,WTYSDK_WLIST_VEHICLE  strVehicleInfo);
+/*
+*  @brief 更新白名单车辆信息,通过车辆编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleInfo 车辆信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListUpdateVehicleByCode(char *pServerIp,WTYSDK_WLIST_VEHICLE strVehicleInfo);
+/*
+*  @brief 增加白名单车辆信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleInfo 车辆信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListInsertVehicle(char *pServerIp,WTYSDK_WLIST_VEHICLE strVehicleInfo);
+
+/*
+*  @brief 删除白名单车辆信息,通过车牌号码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strPlateNumber 车牌号码
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleByPlateId(char *pServerIp,char* strPlateNumber);
+
+/*
+*  @brief 删除白名单车辆信息,通过车辆自增ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] iVehicleId 车辆信息自增ID
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleById(char *pServerIp,int iVehicleId);
+
+/*
+*  @brief 删除白名单车辆信息,通过车辆编码
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] strVehicleCode 车辆信息编码
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleByCode(char *pServerIp,char* strVehicleCode);
+
+/*
+*  @brief 	清空白名单车辆信息
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListEmptyVehicle(char *pServerIp);
+
+/*
+*  @brief  清空所有车辆和用户信息
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListClearCustomerAndVehicles(char *pServerIp);
+
+/*
+*  @brief  从数据库删除客户的车辆信息,通过用户ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleByCustomerId(char *pServerIp ,int userId);
+
+/*
+*  @brief  从数据库删除客户以及客户的车辆信息,通过用户ID
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListDeleteVehicleAndUserByCustomerId(char *pServerIp ,int userId);
+
+/*
+*  @brief  获取白名单客户表客户和车辆记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return >=0表示成功,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetRowCount(char *pServerIp);
+/*
+*  @brief  查询白名单表车辆信息数据,客户信息通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nQueryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRows(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  查询白名单表车辆信息数据,通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nQueryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRowsCustomerByUserId(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  查询白名单表车辆信息数据,通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nQueryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRowsCustomerByUserCode(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  查询白名单表车辆信息数据,通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nQueryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRowsCustomerByUserName(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  通过车牌查询白名单用户信息和车辆信息,通过回调函数返回
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pCarPlate 查询的车牌号
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListLoadRowsCustomerAndCarByPlate(char *pServerIp,WTY_SDK_VEHICLEQUERYRECORD nQueryConditions);
+
+/*
+*  @brief  批量导入白名单表车辆信息和客户信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] nImportRows 单次导入最大值100,数据多的话可以分次导入,大于100返回-1
+*  @param  [IN] MyBatchResult 白名单导入失败记录的位置,相应位置的Result值等于1为失败
+*  @param  [IN] importMaxValue 单次导入最多100条
+*  @return >=0表示成功的总数,<0表示失败
+*/
+// pImportRows 导入用户和车匹配信息,单次最多100条
+// faildReason [out]导入结果(WTYSDK_IMPORT_FAILDREASON参数nRow表示导入错误多少条,Result数组表示每一条的执行情况)
+// importMaxValue [int] 表示pImportRows中单次导入的条数(比如导入10条,这参数填入10)--最大100
+int  __stdcall WTY_WhiteListImportRows(char *pServerIp,WTYSDK_IMPORTROWS *pImportRows,WTYSDK_IMPORT_FAILDREASON *faildReason,int importMaxValue);
+/*
+*  @brief  批量导出白名单客户和车辆信息
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [OUT] nImportRows 导出的数据记录信息结构体指针,大小是结构体大小*nTotal
+*  @param  [OUT] pExportSucceed 导出成功的数目
+*  @param  [IN] WTY_WhiteListGetRowCount 获取到的记录的总条数
+*  @return >=0表示成功的总数,<0表示失败
+*/
+// pExportRows[out]  导出内容
+// pExportSucceed [out] 实际成功导出多少个
+// nTotal [in] 需要导出的数量(希望导出500条,就填500条)  以此来分页导出,每页最多100
+int  __stdcall WTY_WhiteListExportsRows(char *pServerIp,WTYSDK_IMPORTROWS *pExportRows,int *pExportSucceed,int nTotal);
+
+
+/*
+*  @brief  获取所有Http数据库记录的条数
+*  @param  [IN] pServerIp 服务器IP
+*  @return >=0表示获取条数,<0表示失败
+*/
+int  __stdcall WTY_WhiteListGetHttpCount(char *pServerIp);
+/*
+*  @brief  查询Http数据记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] queryConditions 单次每页查询最大值100,数据多的话可以分页查询和显示,大于100返回-1
+*  @return >=0表示查询到的总数,<0表示失败
+*/
+int __stdcall WTY_WhiteListHttpLoad(char *pServerIp,WTY_SDK_HTTP_QUERYCONDITION queryConditions,int *nTotal);
+
+/*
+*  @brief  通过Http记录ID删除Http记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] tracfficId 车辆通行记录的ID
+*  @return 0表示成功,-1表示失败
+*/
+int __stdcall WTY_WhiteListHttpDelete(char *pServerIp,int tracfficId);
+
+/*
+*  @brief  清空Http记录
+*  @param  [IN] pServerIp 服务器IP
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListHttpDeleteAll(char *pServerIp);
+
+/*
+*  @brief  批量导出Http记录
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [OUT] pExportBuf 存储查询到的记录缓冲区
+*  @param  [OUT] nSucceedCount 存储查询成功的记录总条数
+*  @param  [IN] nIndexTotal 希望导出的个数
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListHttpExportAll(char *pServerIp,WTYSDK_WLIST_HTTP_INFO *pExportBuf,int *nSucceedCount,int nIndexTotal);
+
+/*
+*  @brief  根据车牌查询车辆信息(用于相机traffic)
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pPlate 车牌号
+*  @param  [OUT] pVehicleInfo 车辆信息
+*  @return 0表示成功但未找到,1表示操作成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListTrafficRequestByPlate(char *pServerIp, char *pPlate, PlateInfo_t* pVehicleInfo);
+
+/*
+*  @brief  写入通行量(用于相机traffic)
+*  @param  [IN] pServerIp 服务器IP
+*  @param  [IN] pTrafficInfo 要插入的通信信息
+*  @return 0表示成功,<0表示失败
+*/
+int __stdcall WTY_WhiteListTrafficInsertTrafficInfo(char* pServerIp, plateTraffic_t* pTrafficInfo);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

二進制
DLL/windows/64bit/WT_H264.dll


+ 155 - 0
DLL/windows/64bit/WT_H264.h

@@ -0,0 +1,155 @@
+#ifndef _WT_H264_H
+#define _WT_H264_H
+#include "stdafx.h"
+#include "targetver.h"
+typedef unsigned int WT_H264HANDLE;
+
+// 像素格式
+enum WT_PixelFormat_t{
+	WT_PIX_FMT_BGR24,	//BGR24
+	WT_PIX_FMT_YUV420P,//yuv420P
+};
+
+/*解码后图像信息*/
+typedef struct
+{
+	unsigned		uWidth;			/**<宽度*/
+	unsigned		uHeight;		/**<高度*/
+	unsigned		uPitch[6];		/**<图像宽度的一行像素所占内存字节数
+										EP_PIX_FMT_BGR24:
+										uPitch[0]: BGR一行像素所占内存字节数
+										
+										EP_PIX_FMT_YUV420P:
+										uPitch[0]: Y一行像素所占内存字节数
+										uPitch[1]: U一行像素所占内存字节数
+										uPitch[2]: V一行像素所占内存字节数
+									*/
+	unsigned		uPixFmt;		/**<图像像素格式,参考枚举定义图像格式(PixelFormat_t)*/
+	unsigned char	*pBuffer[6];	/**<图像内存的首地址
+										EP_PIX_FMT_BGR24:
+										pBuffer[0]: BGR首地址
+										
+										EP_PIX_FMT_YUV420P:
+										pBuffer[0]: Y首地址
+										pBuffer[1]: U首地址
+										pBuffer[2]: V首地址
+									*/
+}
+WT_ImageInfo_t;
+/*
+解码信息结构体
+*/
+typedef struct WT_H264Decode_t{
+	WT_H264HANDLE	handle;	//解码器句柄
+	WT_ImageInfo_t	imageInfo;//解码后图像信息
+	char			reserved[100];//预留
+}WT_H264Decode_t;
+
+/*******************************************
+函数名
+	WT_H264Init
+函数功能
+	初始化解码库
+参数
+	无
+返回值
+	成功:0
+	失败:<0
+特殊说明
+	此接口仅需调用一次
+*******************************************/
+int __stdcall WT_H264Init();
+
+/***************************************************************
+函数名称:
+	WT_H264Start
+函数功能
+	打开H.264流,并解码显示	
+参数
+	device_ip[in]:要连接的设备IP地址
+	show_window_hwnd[in]:要显示的控件句柄
+	pixelFormat[in]:设置H264解码后的像素格式参照像素格式定义
+	show_enable[in]:设置解码后是否主动显示到控件上 1:显示0:不显示
+
+返回值
+	 成功:返回H264句柄
+	失败:0
+*******************************************************************/
+WT_H264HANDLE __stdcall WT_H264Start(char *device_ip, HWND show_window_hwnd, enum WT_PixelFormat_t pixelFormat, int show_enable) ;
+/**************************************************************************************
+函数名称:
+	WT_H264End
+函数说明:
+	结束H264的链接
+参数:
+	decode_handle[in]:解码器的句柄
+返回值:
+	成功:0
+	失败:<0
+说明
+	断开H.264后,如果使用了控件显示,需要主动调用ShowWindow(TRUE)函数,使控件出来。
+**************************************************************************************/
+int __stdcall WT_H264End(WT_H264HANDLE decode_handle);
+/*************************************************************************************  
+函数名称
+		WT_H264Destory
+函数功能
+		销毁解码库,释放资源	
+参数
+	无
+返回值
+	无
+
+说明
+	销毁资源后,如果使用了控件显示,需要主动调用ShowWindow(TRUE)函数,使控件出来。
+***************************************************************************************/
+void __stdcall WT_H264Destory();
+
+/**************************************************************************************
+函数名称
+		WT_ChangeH264ShowWindows
+函数功能
+		更改H264显示的窗口
+参数
+		decode_handle:	解码器句柄
+		hwnd:			窗体控件句柄
+返回值
+		成功:0
+		失败:<0
+*************************************************************************************/
+int __stdcall WT_ChangeH264ShowWindows(WT_H264HANDLE decode_handle, HWND hwnd);
+
+/***********************************************************************
+说明
+	H.264流解码后的回调,通过该回调可以获取解码后的数据
+参数:
+	h264_decode_info[in]:解码后的数据和信息具体的参照WT_H264Decode_t结构体
+*/
+typedef void (*WT_H264DecodeCallback)(WT_H264Decode_t *h264_decode_info);
+/***************************************
+函数说明
+	注册H.264解码后回调函数
+参数
+	h264_decode_callback[in]:指向回调函数的指针
+返回值
+	无
+***************************************/
+void __stdcall WT_RegH264DecodeEvent(WT_H264DecodeCallback h264_decode_callback);
+/*********************************************************
+函数名称
+		WT_Snap_JPEG
+函数功能
+		抓拍,并保存一张JPEG图像
+参数
+	image_path[in]:存储图像的路径(包括文件名)
+	decode_handle[in]:已经打开的解码器句柄
+返回值
+	-1:解码器句柄不合法
+	-2:存储路径不合法
+	-3:	解码器没有打开
+	1:成功
+
+***********************************************************/
+int __stdcall WT_Snap_JPEG(char *image_path,WT_H264HANDLE decode_handle);
+
+#endif

二進制
DLL/windows/64bit/WT_H264.lib


+ 132 - 0
DLL/windows/64bit/WT_VideoDecode.h

@@ -0,0 +1,132 @@
+#ifndef __WT_VIDEO_DECODE_H_
+#define __WT_VIDEO_DECODE_H_
+#include "WT_H264.h"
+#if !defined(WIN32) && !defined(__stdcall)
+#define __stdcall
+#endif
+
+
+#if !defined(WIN32) && !defined(HWND)
+#define HWND void*
+#endif
+
+/*
+	JPEG图像的存储结构
+*/
+typedef struct
+{
+	WT_H264HANDLE	handle;
+	void *			user_ptr;
+	unsigned		uWidth;			/**<宽度*/
+	unsigned		uHeight;		/**<高度*/
+	unsigned char	*pBuffer;		
+	unsigned		size;	
+	char			device_ip[20];	//设备IP地址
+	char			reserved[100];
+}WT_JPEGInfo_t;
+/* **********************************************************************
+
+接口名称:
+		WT_Stream_Start
+接口功能:
+		打开视频流,并解码显示。
+参数:
+		device_ip[in]:相机IP地址
+		window_hwnd[in]:显示窗口的句柄,不使用的时候传NULL linux传入空
+		pixel_format[in]:解码后的像素格式,参照像素格式枚举定义
+		show_enable[in]:设置解码后是否主动显示到控件上   1:显示  0:不显示 linux不支持显示需要传入0
+		decode_type[in]:设置视频流类型,0:H.264流 1:JPEG流 2:H.265流
+		user_prt		用户自定义指针
+
+
+返回值
+		0:失败
+		>0:返回句柄
+****************************************************************************/
+WT_H264HANDLE __stdcall WT_Stream_Start(char *device_ip, HWND window_hwnd, enum WT_PixelFormat_t pixel_format, int show_enable,int decode_type,void *user_prt) ;
+
+/* ************************************************* 
+说明:
+	获取JPEg数据的回调函数定义
+参数:
+	jpeg_image[in]:JPEG数据		
+******************************************************/
+typedef void (*WT_JPEGCallback)(WT_JPEGInfo_t *jpeg_image);
+
+
+/******************************************************
+函数名称:
+	WT_RegJPEGEvent
+函数功能:
+	注册JPEG回调函数
+参数:
+	jpeg_call_back[in]:指向JPEG回调函数的指针
+返回值:1
+*********************************************************/
+int __stdcall WT_RegJPEGEvent(WT_JPEGCallback jpeg_call_back);
+
+
+
+
+/****************************************************
+函数名称:
+	WT_RegH264DecodeEvent_EX
+函数功能:
+	为已经打开的H.264解码器,单独传入回调函数
+参数:
+	h264_decode_callback[in]:H.264解码回调函数
+	h264_decode_handle[in]:解码器句柄
+返回值:
+	-1失败
+	1成功
+****************************************************/
+int __stdcall WT_RegH264DecodeEvent_EX(WT_H264DecodeCallback h264_decode_callback,WT_H264HANDLE h264_decode_handle);
+/******************************************************
+函数名称:
+	WT_RegJPEGEvent_EX
+函数功能:
+	注册单路JPEG回调函数
+参数:
+	jpeg_call_back[in]:指向JPEG回调函数的指针
+	decode_handle[in]:解码器句柄
+返回值:1
+*********************************************************/
+int __stdcall WT_RegJPEGEvent_EX(WT_JPEGCallback jpeg_call_back,WT_H264HANDLE decode_handle);
+
+/***************************************************************
+函数名称:
+	WT_H264Start_EX
+函数功能
+	指定RTSP端口打开H.264流,并解码显示
+参数
+	device_ip[in]:要连接的设备IP地址
+	show_window_hwnd[in]:要显示的控件句柄linux传入空
+	pixelFormat[in]:设置H264解码后的像素格式参照像素格式定义
+	show_enable[in]:设置解码后是否主动显示到控件上 1:显示0:不显示linux不支持显示需要传入0
+	port[in]:RTSP端口
+返回值
+	 成功:返回H264句柄
+	失败:0
+*****************************************************************/
+WT_H264HANDLE __stdcall WT_H264Start_EX(char *device_ip, HWND show_window_hwnd, enum WT_PixelFormat_t pixelFormat, int show_enable,int port);
+/* **********************************************************************
+
+接口名称:
+		WT_Stream_Start_EX
+接口功能:
+		指定RTSP端口打开视频流,并解码显示。
+参数:
+		device_ip[in]:相机IP地址
+		window_hwnd[in]:显示窗口的句柄,不使用的时候传NULLlinux传入空
+		pixel_format[in]:解码后的像素格式,参照像素格式枚举定义
+		show_enable[in]:设置解码后是否主动显示到控件上   1:显示  0:不显示linux不支持显示需要传入0
+		decode_type[in]:设置视频流类型,0:H.264流 1:JPEG流 2:H.265流
+		user_prt		用户自定义指针
+		port		[in]:RTSP端口
+
+返回值
+		0:失败
+		>0:返回句柄
+****************************************************************************/
+WT_H264HANDLE __stdcall WT_Stream_Start_EX(char *device_ip, HWND window_hwnd, enum WT_PixelFormat_t pixel_format, int show_enable, int decode_type, void *user_prt, int port);
+#endif

+ 2 - 2
pom.xml

@@ -26,11 +26,11 @@
         <module>winsea-haixin-platform-backend</module>
         <module>winsea-haixin-plugin-base</module>
 <!--        <module>winsea-haixin-plugin-oil</module>-->
-        <module>winsea-haixin-plugin-clouddisk</module>
+<!--        <module>winsea-haixin-plugin-clouddisk</module>-->
 <!--        <module>winsea-haixin-plugin-certificate</module>-->
 <!--        <module>winsea-haixin-plugin-maintain</module>-->
         <module>winsea-haixin-plugin-servicer</module>
-        <module>winsea-haixin-plugin-news</module>
+<!--        <module>winsea-haixin-plugin-news</module>-->
 <!--        <module>winsea-haixin-plugin-ism</module>-->
 <!--        <module>winsea-haixin-plugin-purchase</module>-->
 <!--        <module>winsea-haixin-plugin-finance</module>-->

二進制
templates/excelOrder.xlsx


+ 10 - 10
winsea-haixin-platform-backend/pom.xml

@@ -69,11 +69,11 @@
 <!--            <version>0.7.0</version>-->
 <!--        </dependency>-->
         <!--云盘模块-->
-        <dependency>
-            <groupId>com.yh.haixin</groupId>
-            <artifactId>winsea-haixin-plugin-clouddisk</artifactId>
-            <version>0.7.0</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.yh.haixin</groupId>-->
+<!--            <artifactId>winsea-haixin-plugin-clouddisk</artifactId>-->
+<!--            <version>0.7.0</version>-->
+<!--        </dependency>-->
         <!--易粮易云-->
         <dependency>
             <groupId>com.yh.haixin</groupId>
@@ -105,11 +105,11 @@
 <!--            <version>0.7.0</version>-->
 <!--        </dependency>-->
         <!--新闻模块-->
-        <dependency>
-            <groupId>com.yh.haixin</groupId>
-            <artifactId>winsea-haixin-plugin-news</artifactId>
-            <version>0.7.0</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.yh.haixin</groupId>-->
+<!--            <artifactId>winsea-haixin-plugin-news</artifactId>-->
+<!--            <version>0.7.0</version>-->
+<!--        </dependency>-->
         <!--财务模块-->
 <!--        <dependency>-->
 <!--            <groupId>com.yh.haixin</groupId>-->

+ 1 - 0
winsea-haixin-platform-backend/src/main/resources/application-local.yml

@@ -8,6 +8,7 @@ spring:
     driver-class-name: com.mysql.jdbc.Driver
     password: Ccj841968545
     url: jdbc:mysql://47.100.3.209:3306/yiliangyiyun_test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=Asia/Shanghai
+#    url: jdbc:mysql://47.100.3.209:3306/ylyy_ywtest?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=Asia/Shanghai
 #    url: jdbc:mysql://47.100.3.209:3306/ylyy?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=Asia/Shanghai
     username: root
   redis:

+ 1 - 1
winsea-haixin-platform-backend/src/main/resources/application.yml

@@ -12,7 +12,7 @@ spring:
     date-format: yyyy-MM-dd HH:mm:ss
     time-zone: GMT+8
   profiles:
-    active: prod
+    active: local
   resources:
     static-locations: file:///winsea/static/
   thymeleaf:

+ 65 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/PhotoFrame/JpegPanel.java

@@ -0,0 +1,65 @@
+package com.yh.saas.plugin.yiliangyiyun.PhotoFrame;
+
+import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+
+public class JpegPanel extends javax.swing.JPanel {
+
+	public static final long serialVersionUID = 1L;
+	public  BufferedImage image1;
+	public  int nType; //jpeg 为1   plate车牌为2
+
+	public JpegPanel() 
+	{
+		setBackground(new java.awt.Color(51, 51, 51));
+	}
+	
+	public void RefreshImage(byte[] Image, int iType) 
+	{
+		try 
+		{
+			nType = iType;
+			//将Bytes数组转为Image:}
+			image1 = ImageIO.read(new ByteArrayInputStream(Image));
+		} 
+		catch (Exception e) 
+		{
+			e.printStackTrace();
+		}
+	}
+	
+	
+	
+	@Override
+	public void paintComponent(Graphics g1) 
+	{
+		int x = 0;
+		int y = 0;
+		Graphics g = (Graphics) g1;
+		
+		super.paintComponent(g1);
+		if (null == image1) 
+		{
+			//System.out.println("image1 == null");
+			return;
+		}
+		
+		if (nType == 1 )
+		{
+			//g.drawRect(x, y, 423, 367);
+			//g.drawImage(image1, x, y, 423, 367/*image1.getWidth(this), image1.getHeight(this)*/, this);
+			g.drawRect(x, y, 380, 310);
+			g.drawImage(image1, x, y, 380, 310/*image1.getWidth(this), image1.getHeight(this)*/, this);
+			g = null;
+		}
+		else
+		{
+			g.drawRect(x, y, 165, 45);
+			g.drawImage(image1, x, y, 165, 45/*image1.getWidth(this), image1.getHeight(this)*/, this);
+			g = null;
+		}	
+	}
+}
+

+ 195 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/PhotoFrame/myFrame.java

@@ -0,0 +1,195 @@
+package com.yh.saas.plugin.yiliangyiyun.PhotoFrame;
+
+import javax.swing.*;
+import javax.swing.border.LineBorder;
+import java.awt.*;
+
+
+public class myFrame extends JDialog {
+
+
+	public JButton btnNewButton;		//断开
+	public JButton btnNewButton_1;		//连接
+	public JButton btnNewButton_2;		//模拟触发
+	public JButton btnNewButton_3;		//发送抬杆命令
+	public JButton btnNewButton_4;		//抓拍命令
+	public JButton btnNewButton_5;		//发送485
+	public JButton button_1;			//搜索设备
+	public JButton button;				//更新时间
+	public JButton btnip;				//修改IP地址
+	public JEditorPane editorPane;		//IP1
+	public JEditorPane editorPane_1;	//IP2
+	public JEditorPane editorPane_2;	//设备编号
+	public JEditorPane editorPane_3; 	//识别结果1
+	public JEditorPane editorPane_5;	//待更改的IP地址
+	public JEditorPane editorPane_6; // 识别结果2
+	public JpegPanel panel;       // 相机1
+	public JpegPanel panel_1;    // 相机2
+	public JpegPanel panel_2;    // 车牌1
+	public JpegPanel panel_3;    // 车牌2
+	public JList<String> listinfo;     //显示信息
+	public DefaultListModel<String> listModel;
+
+	
+	public JRadioButton rdbtnNewRadioButton;//jpeg
+	
+	
+	public synchronized void jpegShow(JpegPanel jPanel, byte[] Image, int itype) 
+	{
+		if(jPanel != null)
+		{
+			jPanel.RefreshImage(Image, itype);
+			jPanel.repaint();
+		}
+	}
+	
+	/**
+	 * Create the dialog.
+	 */
+	public myFrame() {
+
+		//setBounds(100, 100, 647, 538);
+		setBounds(100, 100, 858, 699);
+		getContentPane().setLayout(null);
+		setTitle("KHTSample(java)");
+		
+	    panel = new JpegPanel();
+		panel.setBorder(new LineBorder(new Color(0, 0, 0)));
+		panel.setBackground(Color.LIGHT_GRAY);
+		FlowLayout flowLayout = (FlowLayout) panel.getLayout();
+		//panel.setBounds(10, 10, 300, 237);
+		panel.setBounds(29, 26, 380, 310);
+		
+		getContentPane().add(panel);
+		
+		panel_1 = new JpegPanel();
+		panel_1.setBorder(new LineBorder(new Color(0, 0, 0)));
+		panel_1.setBackground(Color.LIGHT_GRAY);
+		//panel_1.setBounds(320, 10, 300, 237);
+		panel_1.setBounds(437, 26, 380, 310);
+		getContentPane().add(panel_1);
+		
+		panel_2 = new JpegPanel();
+		panel_2.setBorder(new LineBorder(new Color(0, 0, 0)));
+		panel_2.setBackground(Color.LIGHT_GRAY);
+		//panel_2.setBounds(10, 257, 300, 237);
+		panel_2.setBounds(37, 396, 165, 45);
+		getContentPane().add(panel_2);
+		
+		panel_3 = new JpegPanel();
+		panel_3.setBorder(new LineBorder(new Color(0, 0, 0)));
+		panel_3.setBackground(Color.LIGHT_GRAY);
+		panel_3.setBounds(449, 398, 165, 45);
+		getContentPane().add(panel_3);
+		
+		
+		editorPane = new JEditorPane();
+		editorPane.setBackground(Color.LIGHT_GRAY);
+		editorPane.setForeground(Color.BLACK);
+		editorPane.setText("192.168.2.20");
+		//editorPane.setBounds(320, 257, 92, 21);
+		editorPane.setBounds(146, 349, 95, 23);
+		getContentPane().add(editorPane);
+		
+		
+		editorPane_1 = new JEditorPane();
+		editorPane_1.setText("192.168.2.27");
+		editorPane_1.setForeground(Color.BLACK);
+		editorPane_1.setBackground(Color.LIGHT_GRAY);
+		//editorPane_1.setBounds(422, 257, 92, 21);
+		editorPane_1.setBounds(572, 353, 100, 23);
+		getContentPane().add(editorPane_1);
+		
+		
+        listModel = new DefaultListModel();
+        listModel.addElement("log here...");
+
+		listinfo = new JList(listModel);
+		//JList list = new JList();
+		//list.setBounds(616, 373, -305, 121);
+		listinfo.setBounds(12, 477, 513, 172);
+		getContentPane().add(listinfo);
+		
+
+		btnNewButton = new JButton("\u65AD\u5F00");  // duan kai
+		//btnNewButton.setBounds(422, 303, 93, 23);
+		btnNewButton.setBounds(424, 342, 60, 45);
+		getContentPane().add(btnNewButton);
+		
+
+		btnNewButton_1 = new JButton("\u8FDE\u63A5");  // lian jie
+		//btnNewButton_1.setBounds(320, 303, 93, 23);
+		btnNewButton_1.setBounds(360, 342, 60, 45);
+		getContentPane().add(btnNewButton_1);
+		
+
+		btnNewButton_2 = new JButton("\u6A21\u62DF\u89E6\u53D1"); // monichufa
+		//btnNewButton_2.setBounds(527, 303, 93, 23);
+		btnNewButton_2.setBounds(563, 489, 93, 23);
+		getContentPane().add(btnNewButton_2);
+		
+		btnNewButton_3 = new JButton("\u62AC\u6746"); // tai gan
+		btnNewButton_3.setBounds(563, 529, 93, 23);
+		getContentPane().add(btnNewButton_3);
+		
+
+		btnNewButton_4 = new JButton("\u6293\u62CD"); // zhua pai
+		//btnNewButton_4.setBounds(421, 361, 93, 23);
+		btnNewButton_4.setBounds(701, 489, 93, 23);
+		getContentPane().add(btnNewButton_4);
+		
+		btnNewButton_5 = new JButton("\u53D1\u9001485");// fasong485
+		btnNewButton_5.setBounds(701, 529, 93, 23);
+		getContentPane().add(btnNewButton_5);
+		
+//		rdbtnNewRadioButton = new JRadioButton("JPEG\u5F00\u5173"); // JPEG kaiguan
+//		rdbtnNewRadioButton.setToolTipText("");
+//		rdbtnNewRadioButton.setBounds(528, 255, 92, 23);
+//		getContentPane().add(rdbtnNewRadioButton);
+		
+		button = new JButton("\u66F4\u65B0\u65F6\u95F4");// gengxinshijian
+		button.setBounds(701, 569, 93, 23);
+		getContentPane().add(button);
+		
+		button_1 = new JButton("\u641C\u7D22\u8BBE\u5907"); // sousuoshebei
+		button_1.setBounds(563, 569, 93, 23);
+		getContentPane().add(button_1);
+		
+//		btnip = new JButton("\u4FEE\u6539IP"); // xiugai IP
+//		btnip.setBounds(422, 424, 93, 23);
+//		getContentPane().add(btnip);
+		
+//		editorPane_2 = new JEditorPane();
+//		editorPane_2.setText("\u8BF7\u8F93\u5165\u8BBE\u5907\u7F16\u53F7"); // qingshurushebeibianhao
+//		editorPane_2.setForeground(Color.BLACK);
+//		editorPane_2.setBackground(Color.LIGHT_GRAY);
+//		editorPane_2.setBounds(422, 473, 92, 21);
+//		getContentPane().add(editorPane_2);
+		
+		editorPane_3 = new JEditorPane();
+		editorPane_3.setFont(new Font("宋体", Font.BOLD, 22));
+		editorPane_3.setText("\u65E0\u8F66\u724C");// shibiejieguo1
+		editorPane_3.setForeground(Color.BLACK);
+		editorPane_3.setBackground(Color.WHITE);
+		editorPane_3.setBounds(225, 399, 145, 41);
+		getContentPane().add(editorPane_3);
+		
+		
+		editorPane_6 = new JEditorPane();
+		editorPane_6.setFont(new Font("宋体", Font.BOLD, 22));
+		editorPane_6.setText("\u65E0\u8F66\u724C");// shibiejieguo2
+		editorPane_6.setForeground(Color.BLACK);
+		editorPane_6.setBackground(Color.WHITE);
+		//editorPane_3.setBounds(320, 473, 92, 21);
+		editorPane_6.setBounds(646, 401, 145, 41);
+		getContentPane().add(editorPane_6);
+		
+		
+//		editorPane_5 = new JEditorPane();
+//		editorPane_5.setText("192.168.0.206");
+//		editorPane_5.setForeground(Color.BLACK);
+//		editorPane_5.setBackground(Color.LIGHT_GRAY);
+//		editorPane_5.setBounds(528, 473, 92, 21);
+//		getContentPane().add(editorPane_5);
+	}
+}

+ 319 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/PhotoFrameController.java

@@ -0,0 +1,319 @@
+package com.yh.saas.plugin.yiliangyiyun.controller;
+
+
+import com.yh.saas.plugin.yiliangyiyun.PhotoFrame.myFrame;
+import com.yh.saas.plugin.yiliangyiyun.eparking.api.WTY_EX;
+import com.yh.saas.plugin.yiliangyiyun.eparking.callback.IOnConnectStatus;
+import com.yh.saas.plugin.yiliangyiyun.eparking.callback.IOnGetDataEx2;
+import com.yh.saas.plugin.yiliangyiyun.eparking.callback.IOnJpegCallback;
+import com.yh.saas.plugin.yiliangyiyun.eparking.data.CLIENT_LPRC_DeviceInfo;
+import com.yh.saas.plugin.yiliangyiyun.eparking.data.DevData_info;
+import com.yh.saas.plugin.yiliangyiyun.eparking.data.PlateResult_Ex;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Arrays;
+
+@RestController
+@RequestMapping("/PhotoFrameController")
+public class PhotoFrameController {
+    //JPGE每帧长度
+    public final static int max_jpg_len = 1920*1088*3;    // jpeg高清可能会大于此大小
+    //识别结果全景图图片长度
+    public final static int max_image_len=818888;
+    //识别结果车牌图片长度
+    public final static int max_plate_len=10000;
+    public static byte[] byteA = new byte[max_jpg_len];  // jpeg流 camera 1
+    public static byte[] byteB = new byte[max_jpg_len];  // jpeg流 camera 2
+    public static byte[] resbyte=new byte[max_plate_len];  // plate 1
+    public static byte[] resbyte2=new byte[max_plate_len];  // plate 2
+    private static byte bzero = 0;
+
+    private static String ip1;   // 相机1 ip
+    private static String ip2;   // 相机2 ip
+    public static boolean nRunning1 = false;  // 相机1运行开关
+    public static boolean nRunning2 = false;  // 相机2运行开关
+//    static myFrame dialog = new myFrame();                     			//对话框
+    public static IOnJpegCallback jpegStream = new OnJpegStream();		//jpeg回调函数
+    public static IOnConnectStatus connStatus = new OnConnectStatus();	//连接状态的回调函数
+    public static IOnGetDataEx2 getData2=new OnGetDataEx2();			//识别结果的回调函数
+    public static CLIENT_LPRC_DeviceInfo[] dev_info=(CLIENT_LPRC_DeviceInfo[])new CLIENT_LPRC_DeviceInfo().toArray(255);//搜索设备的设备信息
+    public static int SearchNum=0;										//搜索到设备的数量
+    //jpeg回调函数
+    public static class OnJpegStream implements IOnJpegCallback
+    {
+
+        public void callback(DevData_info.ByReference JpegInfo,long dwUser) {
+            long m_user=dwUser&0x00FFFFFFF;
+            //System.out.println("初始化成功,IP=" + dwUser+" JpegInfo.nStatus="+JpegInfo.nStatus+"     "+m_user);
+            if(m_user==666)
+            {
+                if(JpegInfo.nStatus==0)
+                {
+                    int nLen = 0;
+                    if ((JpegInfo.nLen > 0) && (JpegInfo.pchBuf != null)) {
+                        if (JpegInfo.nLen > max_jpg_len)
+                        {
+                            nLen = max_jpg_len;
+                        }
+                        else
+                        {
+                            nLen = JpegInfo.nLen;
+                        }
+                        Arrays.fill(byteA, bzero);
+                        System.arraycopy(JpegInfo.pchBuf.getByteArray(0,
+                                JpegInfo.nLen), 0, byteA, 0, nLen);
+
+                        // 控件显示动态图像
+//                        if (dialog != null && dialog.panel != null) {
+//                            dialog.jpegShow(dialog.panel, byteA, 1);
+//                        }
+                    }
+                }
+            }
+
+
+            if(m_user==777)
+            {
+                if(JpegInfo.nStatus==0)
+                {
+                    if ((JpegInfo.nLen > 0) && (JpegInfo.pchBuf != null)) {
+                        int nLen = 0;
+                        if (JpegInfo.nLen > max_jpg_len)
+                        {
+                            nLen = max_jpg_len;
+                        }
+                        else
+                        {
+                            nLen = JpegInfo.nLen;
+                        }
+                        Arrays.fill(byteB, bzero);
+                        System.arraycopy(JpegInfo.pchBuf.getByteArray(0,
+                                JpegInfo.nLen), 0, byteB, 0, nLen);
+
+                        // 控件显示动态图像
+//                        if (dialog != null && dialog.panel_1 != null) {
+//                            dialog.jpegShow(dialog.panel_1, byteB, 1);
+//                        }
+                    }
+                }
+            }
+        }
+    }
+
+    //连接状态的回调函数
+    public static class OnConnectStatus implements IOnConnectStatus
+    {
+        public void callback(String chWTYIP, int nStatus,long dwUser)
+        {
+            // 设备的连接状态
+            if (nStatus != 1) {
+//                dialog.listModel.add(0, chWTYIP+"连接断开!");
+//                dialog.listinfo.setSelectedIndex(0);
+            }
+        }
+    }
+
+
+    //识别结果的回调函数
+    public static class OnGetDataEx2 implements IOnGetDataEx2
+    {
+        public void callback(PlateResult_Ex.ByReference plateResult, long dwUser)
+        {
+            long m_user=dwUser&0x00FFFFFFF;
+            if(m_user==666)
+            {
+                if((plateResult.pPlateImage.nLen > 0) && (plateResult.pPlateImage.pBuffer != null))
+                {
+//                    dialog.editorPane_3.setText(new String(plateResult.chLicense));
+                    Arrays.fill(resbyte, bzero);
+//                    dialog.listinfo.setSelectedIndex(0);
+                    System.arraycopy(plateResult.pPlateImage.pBuffer.getByteArray(0,
+                            plateResult.pPlateImage.nLen), 0, resbyte, 0, plateResult.pPlateImage.nLen);
+                    // 控件显示动态图像
+//                    if (dialog != null && dialog.panel_2 != null) {
+//                        dialog.jpegShow(dialog.panel_2, resbyte, 2);
+//                    }
+                }
+                else
+                {
+//                    dialog.editorPane_3.setText("\u65E0\u8F66\u724C");
+                }
+            }
+
+            if(m_user==777)
+            {
+                if((plateResult.pPlateImage.nLen > 0) && (plateResult.pPlateImage.pBuffer != null))
+                {
+//                    dialog.editorPane_6.setText(new String(plateResult.chLicense));
+                    Arrays.fill(resbyte2, bzero);
+                    System.arraycopy(plateResult.pPlateImage.pBuffer.getByteArray(0,
+                            plateResult.pPlateImage.nLen), 0, resbyte2, 0, plateResult.pPlateImage.nLen);
+                    // 控件显示动态图像
+//                    if (dialog != null && dialog.panel_3 != null) {
+//                        dialog.jpegShow(dialog.panel_3, resbyte2, 2);
+//                    }
+                }
+                else
+                {
+//                    dialog.editorPane_6.setText("\u65E0\u8F66\u724C");
+                }
+            }
+        }
+    }
+
+    //初始化
+    @PostMapping("/Dev_Init")
+    public void Dev_Init() {
+        int m_err1=1;
+        int m_err2=1;
+//        ip1=dialog.editorPane.getText();
+//        ip2=dialog.editorPane_1.getText();
+        try {
+
+            //注册jpeg回调函数 (可选)
+            WTY_EX.INSTANCE.CLIENT_LPRC_RegJpegEvent(jpegStream);
+            //注册连接状态的回调函数(必选)
+            WTY_EX.INSTANCE.CLIENT_LPRC_RegCLIENTConnEvent(connStatus);
+            //注册识别结果的回调函数(必选)
+            WTY_EX.INSTANCE.CLIENT_LPRC_RegDataEx2Event(getData2);
+            if(nRunning1==false)
+            {//连接设备1
+                m_err1=WTY_EX.INSTANCE.CLIENT_LPRC_InitSDK(8080, null, 0, ip1, 666);
+            }
+            if(nRunning2==false)
+            {//连接设备2
+                m_err2=WTY_EX.INSTANCE.CLIENT_LPRC_InitSDK(8080, null, 0, ip2, 777);
+            }
+
+            if (m_err1 == 0) {
+
+//                dialog.listModel.add(0, ip1+"初始化成功!");
+//                dialog.listinfo.setSelectedIndex(0);
+                nRunning1  = true;
+            } else {
+//                dialog.listModel.add(0, ip1+"初始化失败!");
+//                dialog.listinfo.setSelectedIndex(0);
+
+            }
+
+            if (m_err2 == 0) {
+//                dialog.listModel.add(0, ip2+"初始化成功!");
+//                dialog.listinfo.setSelectedIndex(0);
+                nRunning2  = true;
+            } else {
+//                dialog.listModel.add(0, ip2+"初始化失败!");
+//                dialog.listinfo.setSelectedIndex(0);
+            }
+
+        }catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    //断开连接
+    public void Dev_Close()
+    {
+        WTY_EX.INSTANCE.CLIENT_LPRC_QuitSDK();
+        nRunning1=false;
+//        dialog.listModel.add(0, ip1+"断开成功!");
+//        dialog.listinfo.setSelectedIndex(0);
+        nRunning2=false;
+//        dialog.listModel.add(0, ip2+"断开成功!");
+//        dialog.listinfo.setSelectedIndex(0);
+
+
+//		if(nRunning1==true)
+//		{
+//			if(WTY_EX.INSTANCE.CLIENT_LPRC_QuitDevice(ip1)==0)
+//			{
+//				nRunning1=false;
+//				dialog.listModel.add(0, ip1+"断开成功!");
+//				dialog.listinfo.setSelectedIndex(0);
+//			}
+//			else
+//			{
+//				dialog.listModel.add(0, ip1+"断开失败!");
+//				dialog.listinfo.setSelectedIndex(0);
+//			}
+//		}
+//		if(nRunning2==true)
+//		{
+//			if(WTY_EX.INSTANCE.CLIENT_LPRC_QuitDevice(ip2)==0)
+//			{
+//				nRunning2=false;
+//				dialog.listModel.add(0, ip2+"断开成功!");
+//				dialog.listinfo.setSelectedIndex(0);
+//			}
+//			else
+//			{
+//				dialog.listModel.add(0, ip2+"断开失败!");
+//				dialog.listinfo.setSelectedIndex(0);
+//			}
+//		}
+    }
+
+
+
+    //模拟触发
+    public void Dev_SetTrigger()
+    {
+        if(nRunning1==true)
+        {
+            if(WTY_EX.INSTANCE.CLIENT_LPRC_SetTrigger(ip1, 8080)==0)
+            {
+//                dialog.listModel.add(0, ip1+"模拟触发成功!");
+//                dialog.listinfo.setSelectedIndex(0);
+            }
+            else
+            {
+//                dialog.listModel.add(0, ip1+"模拟触发失败!");
+//                dialog.listinfo.setSelectedIndex(0);
+            }
+        }
+        if(nRunning2==true)
+        {
+            if(WTY_EX.INSTANCE.CLIENT_LPRC_SetTrigger(ip2, 8080)==0)
+            {
+//                dialog.listModel.add(0, ip2+"模拟触发成功!");
+//                dialog.listinfo.setSelectedIndex(0);
+            }
+            else
+            {
+//                dialog.listModel.add(0, ip2+"模拟触发失败!");
+//                dialog.listinfo.setSelectedIndex(0);
+            }
+        }
+    }
+
+
+    public void Dev_SearchDeviceList()
+    {
+        int a=0;
+        SearchNum=WTY_EX.INSTANCE.CLIENT_LPRC_SearchDeviceList(dev_info);
+        if(SearchNum>0)
+        {
+//            dialog.listModel.add(0, "搜索成功,数量为 :"+SearchNum);
+//            dialog.listinfo.setSelectedIndex(0);
+            for(int n=0;n<SearchNum;n++)
+            {
+                a=n+1;
+                String strPlateIp = new String(dev_info[n].chIp).trim();
+//                dialog.listModel.add(0, "设备编号"+a+"    ip地址为:"+strPlateIp);
+//                dialog.listinfo.setSelectedIndex(0);
+            }
+        }
+        else if (SearchNum == 0)
+        {
+//            dialog.listModel.add(0, "没有搜索到相机!");
+//            dialog.listinfo.setSelectedIndex(0);
+        }
+        else
+        {
+//            dialog.listModel.add(0, "搜索失败!");
+//            dialog.listinfo.setSelectedIndex(0);
+        }
+    }
+
+}

+ 212 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/api/WTY_EX.java

@@ -0,0 +1,212 @@
+package com.yh.saas.plugin.yiliangyiyun.eparking.api;
+
+import com.sun.jna.Native;
+import com.sun.jna.Pointer;
+import com.sun.jna.win32.StdCallLibrary;
+import com.yh.saas.plugin.yiliangyiyun.eparking.callback.IOnConnectStatus;
+import com.yh.saas.plugin.yiliangyiyun.eparking.callback.IOnGetDataEx2;
+import com.yh.saas.plugin.yiliangyiyun.eparking.callback.IOnJpegCallback;
+import com.yh.saas.plugin.yiliangyiyun.eparking.data.CLIENT_LPRC_DeviceInfo;
+import com.yh.saas.plugin.yiliangyiyun.eparking.data.CameraTime;
+
+public interface WTY_EX extends StdCallLibrary
+{
+	//如果本机是32bit JDK会报找不到WTY.dll  对应JDK Bit位 调用响应Bit位的DLL。
+	public static String strFilePath = System.getProperty("user.dir") + "\\DLL\\windows\\64bit\\WTY.dll";
+	public static WTY_EX INSTANCE = (WTY_EX) Native.loadLibrary(strFilePath, WTY_EX.class);
+	/************************************************************************/
+	/* CLIENT_LPRC_InitSDK: 连接相机											
+	/*		Parameters:														
+	/*			nPort[in]:		连接相机的端口,现默认为8080				           
+	/*			hWndHandle[in]:	接收消息的窗体句柄,当为NULL时,表示无窗体  
+	/*			uMsg[in]:		用户自定义消息,当hWndHandle不为NULL时,	
+	/*							检测到有新的车牌识别结果并准备好当前车牌	
+	/*							缓冲区信息后,用::PostMessage 给窗口		
+	/*							hWndHandle发送uMsg消息,其中WPARAM参数为0,	
+	/*							LPARAM参数为0								
+	/*			chServerIP[in]:	相机的IP地址								
+	/*          dwUser[in]:     用户自定义字段,主要用来回传给回调函数。   
+	/*		Return Value:   int												
+	/*							0	相机连接成功							
+	/*							1	相机连接失败							
+	/*		Notice:   														
+	/*				如果采用回调的方式获取数据时,hWndHandle句柄为NULL,	
+	/*				uMsg为0,并且注册回调函数,通知有新的数据;				
+	/*				反之,在主窗口收到消息时,调用CLIENT_LPRC_GetVehicleInfoEx获取	
+	/*				数据。													    */
+	/************************************************************************/
+	public int CLIENT_LPRC_InitSDK(int nPort, Void hWndHandle, int uMsg,String chServerIP,long dwUser);
+	
+	/*
+	 * 断开所有已经连接WTY,释放资源
+	 */
+	public void CLIENT_LPRC_QuitSDK();
+
+	/************************************************************************/
+	/* 触发识别
+	/* @param pCameraIP
+	/*            相机IP
+	/* @param nPort
+	/*            连接相机的端口,现默认为8080
+	/* 
+	/* @return 0 成功, 非0 失败                                               										*/
+	/************************************************************************/
+	public int CLIENT_LPRC_SetTrigger(String pCameraIP, int nCameraPort);
+	
+	
+	
+	/************************************************************************/
+	/* 1:连接状态回调函数的注册,必须在连接设备函数(WTY_InitSDK)之前 调用。 2:此方式是被动获取PC 与设备之间的连接状态
+	/* 																		
+	/* @param obj															
+	/*            回调接口														*/
+	/************************************************************************/
+	public void CLIENT_LPRC_RegCLIENTConnEvent(IOnConnectStatus obj);
+	
+	
+	/************************************************************************/
+	/* 1: 一台PC 连接多台设备时,此函数仅需实现一次。当区分不同设备的识别结 果时,可以通过输出参数中recResult 中的chWTYIP
+	/* 来区分。
+	/* 
+	/* @param recResult
+	/*            可为NULL
+	/* @param obj
+	/*            回调类,类名、方法名必须与Demo中的保持一致,否则会注册失败。					*/
+	/************************************************************************/
+	public void CLIENT_LPRC_RegDataEx2Event(IOnGetDataEx2 odj);
+	
+	/************************************************************************/
+	/* 1: 注册获取Jpeg流的回调函数
+	/*    
+	/* @param obj
+	/*            1:此功能目前适用于V6.0.0.0版本,
+	/* 				V5.1.2.0、V5.2.1.0、V5.2.2.0不能使用此功能						*/
+    /************************************************************************/
+	public void CLIENT_LPRC_RegJpegEvent(IOnJpegCallback obj);
+	
+	
+	/************************************************************************/
+	/* 	函数: 根据IP地址,断开指定设备链接									
+	/*		Parameters:														
+	/*			pCameraIP[in]:			相机IP地址							
+	/*		Return Value:   int												
+	/*							0	获取成功								
+	/*							1	获取失败									*/
+	/************************************************************************/
+	public int CLIENT_LPRC_QuitDevice(String pCameraIP);
+	
+	
+	/************************************************************************/
+	/* 函数说明: 控制继电器的闭合											        
+	/*		Parameters:														
+	/*			pCameraIP[in]:			相机IP								
+	/*			nCameraPort[in]:		端口,默认9110						
+	/*		Return Value:   int												
+	/*							0	设置成功								
+	/*						  非0	失败									
+	/*		Notice:   														
+	/*				通过此功能,可以在PC端通过一体机设备,来控制道闸的抬起	
+	/*				设备继电器输出信号为:开关量信号。									*/
+	/************************************************************************/
+	public int CLIENT_LPRC_SetRelayClose(String pCameraIP, int nCameraPort);
+	
+	
+	/*************************************************************************/
+	/*CLIENT_LPRC_SnapJpegFrame 快速抓拍一帧,两种保存方式,直接保存到固定目录或者保存到特定内存,要是保存特定内存模式需要传入内存最大值,两种方式可选
+	/*		Parameters:														
+	/*			chIp[in]		   相机的IP地址						
+	/*			pSaveFileName[in]  路径和带JPEG后缀名的文件名,用于把当前抓拍到的帧保存为特定文件  默认先匹配文件名	
+	/*          pSaveBuf[in]       用于保存当前帧在特定内存的,并且需要传输内存可存储的最大值,当文件名为空的时候这个才会生效。
+	/*          Maxlen[in]         保存当前帧特定内存的最大值*/
+	/*		Return Value:   int												
+	/*						   0	保存到特定目录成功									
+	/*                         >0   保存到特定内存的数据的实际大小                                           
+	/*						  -1	失败										*/
+	/************************************************************************/
+	public int CLIENT_LPRC_SnapJpegFrame(String pCameraIP,String pSaveFileName,String pSaveBuf,int Maxlen);
+	
+	
+	
+	/************************************************************************/
+	/* CLIENT_LPRC_RS485Send: RS485透明传输											
+	/*		Parameters:														
+	/*			pCameraIP[in]				相机设备IP地址					
+	/*			nPort[in]					端口,默认9110		
+	/*			chData[in]					将要传输的数据块的首地址		
+	/*			nSendLen[in]				将要传输的数据块的字节数		
+	/*		Return Value:   int												
+	/*							0	成功									
+	/*						  非0	失败									
+	/*		notice:														
+	/*				1:用户通过此接口,往相机发送数据,相机设备会原样将数据	
+	/*				通过RS485接口转发出去,到客户所接的外部设备上。			
+	/*				2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 
+	/*				能传输识别结果(默认S485传输识别结果)。								*/
+	/************************************************************************/
+	public int CLIENT_LPRC_RS485Send(String pCameraIP,int nCameraPort,byte[] b1,int nSendLen);
+	
+	
+	/************************************************************************/
+	/* CLIENT_LPRC_SearchDeviceList:    搜索设备IP列表							 
+	/*		Parameters:														
+	/*		pBuf[out]			存储搜索到的相机列表信息结构体数组		
+	/*		Return Value:   	int											
+	/*							大于0	成功搜索到的设备数									
+	/*						  	-1	失败										*/
+	/************************************************************************/
+	public int CLIENT_LPRC_SearchDeviceList(CLIENT_LPRC_DeviceInfo[] dev_info);
+
+	
+
+/************************************************************************/
+/* CLIENT_LPRC_AlterDeviceInfo:    修改指定的设备的设备信息							   
+/*		Parameters:														
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				    
+/*		pBuf[out]			存储需要修改的设备信息结构体		
+/*		Return Value:   	int											
+/*							==0	成功									
+/*						  	非0	失败										*/
+/************************************************************************/
+//int __stdcall CLIENT_LPRC_AlterDeviceInfo(char *pCameraIP,CLIENT_LPRC_DeviceInfo pBuf);
+public int 	CLIENT_LPRC_AlterDeviceInfo(String pCameraIP,CLIENT_LPRC_DeviceInfo.ByValue pBuf);
+
+
+
+
+
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetDevTimeParam:    修改设备系统时间							   
+/*		Parameters:														
+/*		pCameraIP[in]		需要修改的相机设备的ip地址				  
+/*		sysTime[in]			设置时间结构体		*/
+/*		Return Value:   	int											
+/*							==0	成功									
+/*						  	非0	失败										*/
+/************************************************************************/
+//int __stdcall CLIENT_LPRC_SetDevTimeParam(char *pCameraIP, CLIENT_LPRC_CAMERA_TIME *sysTime);
+public int CLIENT_LPRC_SetDevTimeParam(String pCameraIP, CameraTime.ByReference sysTime);
+
+
+
+
+
+/************************************************************************/
+/* CLIENT_LPRC_SetJpegStreamPlayOrStop: 设置jpeg流的开关							    
+/*		Parameters:														
+/*		pCameraIP[in]		需要设置的相机设备的ip地址				  
+/*		onoff[in]			jpeg流开关项,0表示关闭流,1表示打开流		
+/*		Return Value:   	int											
+/*							0	成功									
+/*						  	非0	失败										*/
+/************************************************************************/
+//int __stdcall CLIENT_LPRC_SetJpegStreamPlayOrStop(char *pCameraIP,int onoff);
+public int CLIENT_LPRC_SetJpegStreamPlayOrStop(String pCameraIP,int onoff);
+
+
+
+
+
+
+}

+ 8 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/callback/IOnConnectStatus.java

@@ -0,0 +1,8 @@
+package com.yh.saas.plugin.yiliangyiyun.eparking.callback;
+
+import com.sun.jna.Callback;
+
+public interface IOnConnectStatus extends Callback
+{
+	public void callback(String chWTYIP, int nStatus,long dwUser);
+}

+ 10 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/callback/IOnGetDataEx2.java

@@ -0,0 +1,10 @@
+package com.yh.saas.plugin.yiliangyiyun.eparking.callback;
+
+import com.sun.jna.Callback;
+import com.yh.saas.plugin.yiliangyiyun.eparking.data.PlateResult_Ex;
+
+public interface IOnGetDataEx2 extends Callback
+{
+	public void callback(PlateResult_Ex.ByReference plateResult, long dwUser);
+}
+

+ 9 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/callback/IOnJpegCallback.java

@@ -0,0 +1,9 @@
+package com.yh.saas.plugin.yiliangyiyun.eparking.callback;
+
+import com.sun.jna.Callback;
+import com.yh.saas.plugin.yiliangyiyun.eparking.data.DevData_info;
+
+public interface IOnJpegCallback extends Callback
+{
+	public void callback(DevData_info.ByReference JpegInfo, long dwUser);
+}

+ 24 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/data/CLIENT_LPRC_DeviceInfo.java

@@ -0,0 +1,24 @@
+package com.yh.saas.plugin.yiliangyiyun.eparking.data;
+
+import com.sun.jna.Structure;
+
+public class CLIENT_LPRC_DeviceInfo extends Structure
+{	
+	public static class ByReference extends CLIENT_LPRC_DeviceInfo implements Structure.ByReference {}
+	public static class ByValue extends CLIENT_LPRC_DeviceInfo implements Structure.ByValue {}
+    public byte[] chDevName=new byte[256];	/* 设备名		*/
+	public byte[] chSoftVer=new byte[20];	/* 软件版本号	*/
+	public byte[] chHardVer=new byte[20];	/* 硬件版本号	*/
+	public byte[] chSysVer=new byte[20];	/* 系统版本	*/
+	public int 	  nSdkPort;					/* sdk端口号	*/
+	public byte[] chIp = new byte[16];		/* ip地址		*/
+	public byte[] chGateway = new byte[16];	/* 网关	 	*/
+	public byte[] chNetmask = new byte[16];	/* 子网掩码	*/
+	public byte[] chMac = new byte[18];		/* 子网掩码	*/
+	public byte[] chRoomID = new byte[20];	/* RooMID	*/
+	public byte[] chSN = new byte[20];		/* SN		*/
+	public byte[] reserved = new byte[256];	/* 保留		*/
+}
+
+
+

+ 25 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/data/CLIENT_LPRC_DeviceInfo1.java

@@ -0,0 +1,25 @@
+package com.yh.saas.plugin.yiliangyiyun.eparking.data;
+
+import com.sun.jna.Structure;
+
+public class CLIENT_LPRC_DeviceInfo1 extends Structure
+{	
+	public static class ByReference extends CLIENT_LPRC_DeviceInfo1 implements Structure.ByReference {}
+	public static class ByValue extends CLIENT_LPRC_DeviceInfo1 implements Structure.ByValue {}
+    public byte[] chDevName=new byte[256];	/* �豸��		*/
+	public byte[] chSoftVer=new byte[20];	/* ����汾��	*/
+	public byte[] chHardVer=new byte[20];	/* Ӳ���汾��	*/
+	public byte[] chSysVer=new byte[20];	/* ϵͳ�汾	*/
+	public int 	  nSdkPort;					/* sdk�˿ں�	*/
+	//public byte[] chIp = new byte[16];		/* ip��ַ		*/
+	public String chIp;
+	public String chGateway;	/* ����	 	*/
+	public String chNetmask;	/* ��������	*/
+	public String chMac;		/* ��������	*/
+	public byte[] chRoomID = new byte[20];	/* RooMID	*/
+	public byte[] chSN = new byte[20];		/* SN		*/
+	public byte[] reserved = new byte[256];	/* ����		*/
+}
+
+
+

+ 16 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/data/CameraTime.java

@@ -0,0 +1,16 @@
+package com.yh.saas.plugin.yiliangyiyun.eparking.data;
+
+import com.sun.jna.Structure;
+
+public class CameraTime extends Structure
+{
+	public static class ByReference extends CameraTime implements Structure.ByReference {}
+	public static class ByValue extends CameraTime implements Structure.ByValue {}
+	public int Year; 		/* Äê */
+	public int Month; 		/* ÔÂ */
+	public int Day; 		/* ÈÕ */
+	public int Hour; 		/* ʱ */
+	public int Minute; 		/* ·Ö */
+	public int Second; 		/* Ãë */
+	public int Millisecond; /* ΢Ãë */	
+}

+ 15 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/data/DevData_info.java

@@ -0,0 +1,15 @@
+package com.yh.saas.plugin.yiliangyiyun.eparking.data;
+
+import com.sun.jna.Pointer;
+import com.sun.jna.Structure;
+
+public class DevData_info extends Structure
+{	
+	public static class ByReference extends DevData_info implements Structure.ByReference {}
+	public static class ByValue extends DevData_info implements Structure.ByValue {}
+    public byte[] chWTYIP = new byte[16]; // ���IP
+	public Pointer pchBuf;
+	public int nLen; 
+	public int nStatus; 				 /* Current recv data status. 0:Normal, other:Non-normal */
+	public byte[] reserved = new byte[128]; 
+}

+ 15 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/data/Image_Info.java

@@ -0,0 +1,15 @@
+package com.yh.saas.plugin.yiliangyiyun.eparking.data;
+import com.sun.jna.Pointer;
+import com.sun.jna.Structure;
+
+public class Image_Info extends Structure {
+	
+	public static class ByReference extends Image_Info implements Structure.ByReference {}
+	public static class ByValue extends Image_Info implements Structure.ByValue {}
+	public int				nWidth;							/* 宽度					*/
+	public int				nHeight;						/* 高度					*/
+	public int				nPitch;							/* 图像宽度的一行像素所占内存字节数*/
+	public int				nLen;							/* 图像的长度			*/
+	public byte[] reserved = new byte[16];			/* 预留     			*/
+	public Pointer pBuffer;
+}

+ 14 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/data/PlateLocation.java

@@ -0,0 +1,14 @@
+package com.yh.saas.plugin.yiliangyiyun.eparking.data;
+
+import com.sun.jna.Structure;
+
+public class PlateLocation extends Structure
+{
+	public static class ByReference extends PlateLocation implements Structure.ByReference {}
+	public static class ByValue extends PlateLocation implements Structure.ByValue {}
+	
+	public int Left; 		/* �� */
+	public int Top; 		/* �� */
+	public int Right; 		/* �� */
+	public int Bottom; 		/* �� */
+}

+ 18 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/eparking/data/PlateResult_Ex.java

@@ -0,0 +1,18 @@
+package com.yh.saas.plugin.yiliangyiyun.eparking.data;
+import com.sun.jna.Structure;
+
+public class PlateResult_Ex extends Structure {
+	public static class ByReference extends PlateResult_Ex implements Structure.ByReference {}
+	public static class ByValue extends PlateResult_Ex implements Structure.ByValue {}
+	public byte[] chWTYIP = new byte[16]; 				// ���IP
+	public byte[] chColor = new byte[8]; 				// ������ɫ
+	public byte[] chLicense = new byte[16]; 			// ���ƺ���
+	public PlateLocation.ByValue pcLocation; 			// ������ͼ���е�����
+	public CameraTime.ByValue shootTime; 				// ʶ������Ƶ�ʱ��	
+	public int					nConfidence;						/* ���ƿ��Ŷ�			*/
+	public int					nTime;								/* ʶ���ʱ				*/
+	public int					nDirection;							/* ���Ʒ���		    	*/
+	public byte[] reserved = new byte[256]; 					/* Ԥ��     			*/
+	public Image_Info.ByValue		pFullImage;						/* ȫ��ͼ������(ע�⣺��������䣬�˴�ָ��Ϊ��) */
+	public Image_Info.ByValue		pPlateImage;						/* ����ͼ������(ע�⣺��������䣬�˴�ָ��Ϊ��) */
+}