WTY.H 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774
  1. #ifndef _WTY_H
  2. #define _WTY_H
  3. #if !defined(WIN32) && !defined(__stdcall)
  4. #define __stdcall
  5. #endif
  6. #ifndef WIN32
  7. typedef void *HWND;
  8. typedef unsigned int UINT;
  9. #endif
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif
  13. #ifdef WIN32
  14. typedef __int64 unsigned_long_long;
  15. #include <windows.h>
  16. #else
  17. typedef unsigned long long unsigned_long_long;
  18. #endif
  19. #define BIG_PICSTREAM_SIZE 200000-312/// //相机上传全景图占用内存的最大大小
  20. #define SMALL_PICSTREAM_SIZE 10000//// //相机上传车牌截图占用内存的最大大小
  21. #define BIG_PICSTREAM_SIZE_EX 1*800*1024-312 //相机上传全景图占用内存的最大大小
  22. #define SMALL_PICSTREAM_SIZE_EX 10000 //相机上传车牌截图占用内存的最大大小
  23. /* 相机时间 */
  24. typedef struct
  25. {
  26. int Year; /* 年 */
  27. int Month; /* 月 */
  28. int Day; /* 日 */
  29. int Hour; /* 时 */
  30. int Minute; /* 分 */
  31. int Second; /* 秒 */
  32. int Millisecond; /* 微妙 */
  33. }camera_time;
  34. /* 识别结果坐标 */
  35. typedef struct
  36. {
  37. int Left; /* 左 */
  38. int Top; /* 上 */
  39. int Right; /* 右 */
  40. int Bottom; /* 下 */
  41. }plate_location;
  42. /* 识别结果 */
  43. typedef struct
  44. {
  45. char chWTYIP[16]; /* 相机IP */
  46. int nFullLen; /* 全景图像数据大小 */
  47. int nPlateLen; /* 车牌图像数据大小 */
  48. char chFullImage[BIG_PICSTREAM_SIZE]; /* 全景图像数据 */
  49. char chPlateImage[SMALL_PICSTREAM_SIZE]; /* 车牌图像数据 */
  50. char chColor[8]; /* 车牌颜色 */
  51. char chLicense[16]; /* 车牌号码 */
  52. plate_location pcLocation; /* 车牌在图像中的坐标 */
  53. camera_time shootTime; /* 识别出车牌的时间 */
  54. int nConfidence; /* 车牌可信度 */
  55. int nTime; /* 识别耗时 */
  56. int nDirection; /* 车牌方向 */
  57. int nCarLogo; /* 车标类型(参考CAR_LOGO)*/
  58. int nCarModel; /* 车型类型(参考CAR_MODEL)*/
  59. char reserved[256-12-4-4];
  60. }plate_result;
  61. /* 图像信息*/
  62. typedef struct
  63. {
  64. int nWidth; /* 宽度 */
  65. int nHeight; /* 高度 */
  66. int nPitch; /* 图像宽度的一行像素所占内存字节数*/
  67. int nLen; /* 图像的长度 */
  68. char reserved[16]; /* 预留 */
  69. unsigned char *pBuffer; /* 图像内存的首地址 */
  70. }LPRC_IMAGE_INFO;
  71. /* 识别结果 */
  72. typedef struct
  73. {
  74. char chWTYIP[16]; /* 相机IP */
  75. char chColor[8]; /* 车牌颜色 */
  76. char chLicense[16]; /* 车牌号码 */
  77. plate_location pcLocation; /* 车牌在图像中的坐标 */
  78. camera_time shootTime; /* 识别出车牌的时间 */
  79. int nConfidence; /* 车牌可信度 */
  80. int nTime; /* 识别耗时 */
  81. int nDirection; /* 车牌方向 */
  82. int nCarLogo; /* 车标类型(参考CAR_LOGO)*/
  83. int nCarModel; /* 车型类型(参考CAR_MODEL)*/
  84. char reserved[256-4-4]; /* 预留 */
  85. LPRC_IMAGE_INFO pFullImage; /* 全景图像数据(注意:相机不传输,此处指针为空) */
  86. LPRC_IMAGE_INFO pPlateImage; /* 车牌图像数据(注意:相机不传输,此处指针为空) */
  87. }plate_result_ex;
  88. /* Jpeg流回调返回每一帧jpeg数据结构体 */
  89. typedef struct
  90. {
  91. char chIp[16]; /*相机IP */
  92. char *pchBuf; /*每一帧jpeg数据缓冲区 */
  93. unsigned int nLen; /*当前jpeg帧的数据长度 */
  94. int nStatus; /* 当前jpeg帧接收状态: 0-正常, 非0-不正常 */
  95. char reserved[128]; /* 保留 */
  96. }DevData_info;
  97. /*接收串口数据的结构体*/
  98. typedef struct
  99. {
  100. unsigned char *pData;//[1024];////串口数据指针
  101. int nsize;///串口数据大小
  102. char reserved[128]; /* 保留 */
  103. }DevSerial_data;
  104. /* 搜索设备之后保存设备信息的结构体,注:要是修改ip信息请保证其他信息不被改变*/
  105. typedef struct
  106. {
  107. char chDevName[256]; /* 设备名 */
  108. char chSoftVer[20]; /* 软件版本号 */
  109. char chHardVer[20]; /* 硬件版本号 */
  110. char chSysVer[20]; /* 系统版本 */
  111. int nSdkPort; /* sdk端口号 */
  112. char chIp[16]; /* ip地址 */
  113. char chGateway[16]; /* 网管 */
  114. char chNetmask[16]; /* 子网掩码 */
  115. char chMac[18]; /* Mac地址 */
  116. char chRoomID[20]; /*RooMID */
  117. char chSN[20]; /*SN*/
  118. char chWifiIp[16]; /*wifi_ip*/
  119. char reserved[256-16]; /* 保留 */
  120. }WTY_DeviceInfo;
  121. /*新版本Rs485透传数据结构体*/
  122. typedef struct{
  123. short TimeDelay; /*延时范围:10~200毫秒之间
  124. 注:1、设置的是本条数据和下一条数据之间的延时时间
  125. 2、最后一条数据不需要设置延时
  126. */
  127. unsigned char *data; /*存储传输数据的缓冲区指针,需要客户自己申请缓冲区*/
  128. short datalen; /*缓冲区最大长度2*1024*/
  129. char reserved[10]; /*保留*/
  130. } WTY_RS485_Data_t;
  131. /*新版本485透传结构体*/
  132. typedef struct{
  133. WTY_RS485_Data_t rS485_data[5]; /*实际发送数据的结构体*/
  134. int datanum; /*每次发送最大支持发送5条数据*/
  135. } WTY_RS485_Transparent_t;
  136. /*GPIO 输入口状态 结构体 */
  137. typedef struct{
  138. unsigned char gpio_in0;//GPIO IN0 0低电平 1 高电平
  139. unsigned char gpio_in1;//GPIO IN1 0低电平 1 高电平
  140. unsigned char gpio_in2;//GPIO IN2 0低电平 1 高电平
  141. unsigned char gpio_in3;//GPIO IN3 0低电平 1 高电平
  142. }WTY_GPIO_In_Statue;
  143. /************************************************************************/
  144. /* WTY_InitSDK: 连接相机 */
  145. /* Parameters: */
  146. /* nPort[in]: 连接相机的端口,现默认为8080 */
  147. /* hWndHandle[in]: 接收消息的窗体句柄,当为NULL时,表示无窗体 */
  148. /* uMsg[in]: 用户自定义消息,当hWndHandle不为NULL时, */
  149. /* 检测到有新的车牌识别结果并准备好当前车牌 */
  150. /* 缓冲区信息后,用::PostMessage 给窗口 */
  151. /* hWndHandle发送uMsg消息,其中WPARAM参数为0, */
  152. /* LPARAM参数为0 */
  153. /* chServerIP[in]: 相机的IP地址 */
  154. /* Return Value: int */
  155. /* 0 相机连接成功 */
  156. /* 1 相机连接失败 */
  157. /* Notice: */
  158. /* 如果采用回调的方式获取数据时,hWndHandle句柄为NULL, */
  159. /* uMsg为0,并且注册回调函数,通知有新的数据; */
  160. /* 反之,在主窗口收到消息时,调用WTY_GetVehicleInfo获取 */
  161. /* 数据。 */
  162. /************************************************************************/
  163. int __stdcall WTY_InitSDK(UINT nPort,HWND hWndHandle,UINT uMsg,char *chServerIP);
  164. /************************************************************************/
  165. /* 函数: 根据IP地址,断开指定设备链接 */
  166. /* Parameters: */
  167. /* pCameraIP[in]: 相机IP地址 */
  168. /* Return Value: int */
  169. /* 0 获取成功 */
  170. /* 1 获取失败 */
  171. /************************************************************************/
  172. int __stdcall WTY_QuitDevice(char *pCameraIP);
  173. /************************************************************************/
  174. /* WTY_QuitSDK: 断开所有已经连接设备,释放资源 */
  175. /* Parameters: */
  176. /* Return Value: void */
  177. /************************************************************************/
  178. void __stdcall WTY_QuitSDK();
  179. /***********************************************************************************/
  180. /* 回调函数:循环检测并通知相机设备通讯状态的回调函数 */
  181. /* Parameters: */
  182. /* chWTYIP[out]: 返回设备IP */
  183. /* nStatus[out]: 设备状态:0表示网络异常或设备异常; */
  184. /* 1表示网络正常,设备已连接 */
  185. /* 2表示网络正常,设备已连接,但相机有重启 */
  186. /* Return Value: void */
  187. /***********************************************************************************/
  188. typedef void (*WTYConnectCallback)(char *chWTYIP,UINT nStatus);
  189. /************************************************************************/
  190. /* WTY_RegWTYConnEvent: 注册相机通讯状态的回调函数 */
  191. /* Parameters: */
  192. /* WTYConnect[in]: ConnectCallback类型回调函数 */
  193. /* Return Value: void */
  194. /************************************************************************/
  195. void __stdcall WTY_RegWTYConnEvent (WTYConnectCallback WTYConnect);
  196. /************************************************************************/
  197. /* WTY_CheckStatus: 主动检查相机设备的通讯状态 */
  198. /* Parameters: */
  199. /* chWTYIP[in]: 要检查的相机的IP */
  200. /* Return Value: int */
  201. /* 0 正常 */
  202. /* 1 网络不通 */
  203. /************************************************************************/
  204. int __stdcall WTY_CheckStatus (char *chWTYIP);
  205. /************************************************************************/
  206. /* 回调函数: 注册接收识别数据回调函数 */
  207. /* Parameters: */
  208. /* recResult[out]: 识别结果数据 */
  209. /* Return Value: void */
  210. /* Note: */
  211. /* 新扩展的回调函数,方便用户接收清晰度较高或分辨率较高的JPEG图像 */
  212. /************************************************************************/
  213. typedef void (*WTYDataEx2Callback)(plate_result_ex *recResultEx);
  214. /************************************************************************/
  215. /* WTY_RegDataEx2Event: 注册获取识别结果的回调函数 */
  216. /* Parameters: */
  217. /* WTYData[in]: 处理识别结果的回调函数的指针 */
  218. /* Return Value: void */
  219. /* Note: */
  220. /* 接收清晰度较高,或分辨率较高的JPEG图像 */
  221. /************************************************************************/
  222. void __stdcall WTY_RegDataEx2Event(WTYDataEx2Callback WTYDataEx2);
  223. /************************************************************************/
  224. /* 回调函数:获取相机485发送的数据 */
  225. /* Parameters: */
  226. /* chWTYIP[out]: 返回设备IP */
  227. /* serialData[out] 串口数据地址 */
  228. /* nlen[out] 串口数据大小 */
  229. /* Return Value: void */
  230. /************************************************************************/
  231. typedef void (*WTYSerialDataCallback)(char *chWTYIP,DevSerial_data *pSerialData);
  232. /************************************************************************/
  233. /* WTY_RegSerialDataEvent: 注册获取串口数据的回调函数 */
  234. /* Parameters: */
  235. /* WTYSerialData[in]: 处理接收串口数据的回调函数的指针 */
  236. /* Return Value: void */
  237. /************************************************************************/
  238. void __stdcall WTY_RegSerialDataEvent(WTYSerialDataCallback WTYSerialData);
  239. /************************************************************************/
  240. /* 回调函数:获取相机GPIO状态 */
  241. /* Parameters: */
  242. /* chWTYIP[out]: 返回设备IP */
  243. /* pGpioState[out] 串口数据地址 */
  244. /* Return Value: void */
  245. /************************************************************************/
  246. typedef void (*WTYGetGpioStateCallback)(char *chWTYIP,WTY_GPIO_In_Statue *pGpioState);
  247. /************************************************************************/
  248. /* WTY_RegWTYGetGpioState: 注册获取相机GPIO状态的回调函数 */
  249. /* Parameters: */
  250. /* WTYGpioState[in]: WTYGetGpioStateCallback类型回调函数 */
  251. /* Return Value: void */
  252. /************************************************************************/
  253. void __stdcall WTY_RegWTYGetGpioState (WTYGetGpioStateCallback WTYGpioState);
  254. /************************************************************************/
  255. /* 函数: 消息方式获取指定IP的相机识别结果。 */
  256. /* 当WTY_initSDK函数中设置了窗体句柄和消息时, */
  257. /* 需要在消息处理函数中调用此函数来主动获取识别结果。 */
  258. /* Parameters: */
  259. /* chWTYIP[in]: 根据消息,获取指定IP设备识别数据 */
  260. /* chPlate[in]: 车牌号码 */
  261. /* chColor[in]: 车牌颜色 */
  262. /* chFullImage[in]: 全景图数据 */
  263. /* nFullLen[in]: 全景图数据长度 */
  264. /* chPlateImage[in]: 车牌图数据 */
  265. /* nPlateLen[in]: 车牌图数据长度 */
  266. /* chTwoImage[in]: 二值化数据 */
  267. /* nTwoLen[in]: 二值化数据长度 */
  268. /* Return Value: int */
  269. /* 0 获取成功 */
  270. /* 1 获取失败 */
  271. /* Notice: */
  272. /* 当设置了传输内容不传时,各自对应的数据为NULL,长度为-1; */
  273. /* 当没有形成数据时,各自对应数据为NULL,长度为0 */
  274. /************************************************************************/
  275. int __stdcall WTY_GetVehicleInfoEx(char *chWTYIP,
  276. char *chPlate,
  277. char *chColor,
  278. void *chFullImage ,
  279. int *nFullLen,
  280. void *chPlateImage,
  281. int *nPlateLen,
  282. void *chTwoImage,
  283. int *nTwoLen);
  284. /************************************************************************/
  285. /* WTY_SetSavePath: 如果用户需要动态库自动保存图片,可以通过该函数设置保*/
  286. /* 存图片的路径。 */
  287. /* Parameters: */
  288. /* chSavePath[in]: 文件存储路径,以"\\"结束,如:"D:\\Image\\" */
  289. /* Return Value: void */
  290. /* */
  291. /* Notice: */
  292. /* 全景图:指定目录\\设备IP\\年月日(YYYYMMDD)\\FullImage\\ */
  293. /* 时分秒-毫秒__颜色_车牌号码__.jpg */
  294. /* 车牌图:指定目录\\设备IP\\年月日(YYYYMMDD)\\PlatelImage\\ */
  295. /* 时分秒-毫秒__颜色_车牌号码__.jpg */
  296. /************************************************************************/
  297. void __stdcall WTY_SetSavePath (char *chSavePath);
  298. /************************************************************************/
  299. /* WTY_SetTrigger: 手动触发识别(抓取一帧识别) */
  300. /* Parameters: */
  301. /* pCameraIP[in]: 要触发的相机设备的IP */
  302. /* nCameraPort[in]: 端口,默认8080 */
  303. /* Return Value: */
  304. /* 0 触发成功返回 */
  305. /* 非0 失败 */
  306. /************************************************************************/
  307. int __stdcall WTY_SetTrigger(char *pCameraIP, int nCameraPort);
  308. /************************************************************************/
  309. /* WTY_SetSenseCoilTrigger: 模拟地感触发识别(需要将识别模式:设置为'视频地感')*/
  310. /* Parameters: */
  311. /* pCameraIP[in]: 要触发的相机设备的IP */
  312. /* nCameraPort[in]: 端口,默认8080 */
  313. /* Return Value: */
  314. /* 0 触发成功返回 */
  315. /* 非0 失败 */
  316. /* Note: */
  317. /* V5以上硬件相机才能支持此接口 */
  318. /************************************************************************/
  319. int __stdcall WTY_SetSenseCoilTrigger(char *pCameraIP, int nCameraPort);
  320. /************************************************************************/
  321. /* 函数说明: 控制继电器的闭合 */
  322. /* Parameters: */
  323. /* pCameraIP[in]: 相机IP */
  324. /* nCameraPort[in]: 端口,默认8080 */
  325. /* Return Value: int */
  326. /* 0 设置成功 */
  327. /* 非0 失败 */
  328. /* Notice: */
  329. /* 通过此功能,可以在PC端通过一体机设备,来控制道闸的抬起 */
  330. /* 设备继电器输出信号为:开关量信号。 */
  331. /************************************************************************/
  332. int __stdcall WTY_SetRelayClose(char *pCameraIP, int nCameraPort);
  333. /************************************************************************/
  334. /* 函数说明: 控制道闸落下 */
  335. /* Parameters: */
  336. /* pCameraIP[in]: 相机IP */
  337. /* nCameraPort[in]: 端口,默认8080 */
  338. /* Return Value: int */
  339. /* 0 设置成功 */
  340. /* 非0 失败 */
  341. /* Notice: */
  342. /* 通过此功能,可以在PC端通过一体机设备,来控制道闸的落下 */
  343. /* 设备输出信号为:光耦信号 */
  344. /************************************************************************/
  345. int __stdcall WTY_DropRod(char *pCameraIP, int nCameraPort);
  346. /************************************************************************/
  347. /* WTY_RS485Send: RS485透明传输 */
  348. /* Parameters: */
  349. /* pCameraIP[in] 相机设备IP地址 */
  350. /* nPort[in] 端口,默认9110 */
  351. /* chData[in] 将要传输的数据块的首地址 */
  352. /* nSendLen[in] 将要传输的数据块的字节数 */
  353. /* Return Value: int */
  354. /* 0 成功 */
  355. /* 非0 失败 */
  356. /* notice: */
  357. /* 1:用户通过此接口,往相机发送数据,相机设备会原样将数据 */
  358. /* 通过RS485接口转发出去,到客户所接的外部设备上。 */
  359. /* 2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 */
  360. /* 能传输识别结果(默认S485传输识别结果)。 */
  361. /************************************************************************/
  362. int __stdcall WTY_RS485Send(char *pCameraIP, int nCameraPort, char *chData, int nSendLen);
  363. /************************************************************************/
  364. /* WTY_RS485SendEx: 新版本RS485透明传输 */
  365. /* Parameters: */
  366. /* pCameraIP[in] 相机设备IP地址 */
  367. /* nPort[in] 端口,默认9110 */
  368. /* nRs485[in] 传输485数据的结构体 */
  369. /* Return Value: int */
  370. /* 0 成功 */
  371. /* 非0 失败 */
  372. /* notice: */
  373. /* 1:用户通过此接口,往相机发送数据,相机设备会原样将数据 */
  374. /* 通过RS485接口转发出去,到客户所接的外部设备上。 */
  375. /* 2:使用此功能前,需要在演示DEMO的设置界面上,设置相机不 */
  376. /* 能传输识别结果(默认S485传输识别结果)。 */
  377. /* 3:新版本可以一次性给相机发送最大5条数据,可以设置每条数据*/
  378. /* 透传的时间间隔。 */
  379. /************************************************************************/
  380. int __stdcall WTY_RS485SendEx(char *pCameraIP, int nCameraPort, WTY_RS485_Transparent_t nRs485);
  381. /************************************************************************/
  382. /* WTY_SearchDeviceList: 搜索设备IP列表 */
  383. /* Parameters: */
  384. /* pBuf[out] 存储搜索到的相机列表信息结构体数组 */
  385. /* Return Value: int */
  386. /* 大于0 成功搜索到的设备数 */
  387. /* -1 失败 */
  388. /************************************************************************/
  389. int __stdcall WTY_SearchDeviceList(WTY_DeviceInfo *pBuf);
  390. /************************************************************************/
  391. /* WTY_AlterDeviceInfo: 修改指定的设备的设备信息 */
  392. /* Parameters: */
  393. /* pCameraIP[in] 需要修改的相机设备的ip地址 */
  394. /* pBuf[out] 存储需要修改的设备信息结构体 */
  395. /* Return Value: int */
  396. /* ==0 成功 */
  397. /* 非0 失败 */
  398. /************************************************************************/
  399. int __stdcall WTY_AlterDeviceInfo(char *pCameraIP,WTY_DeviceInfo pBuf);
  400. /************************************************************************/
  401. /* WTY_SetDevTimeParam: 修改设备系统时间 */
  402. /* Parameters: */
  403. /* pCameraIP[in] 需要修改的相机设备的ip地址 */
  404. /* sysTime[in] 设置时间结构体 */
  405. /* Return Value: int */
  406. /* ==0 成功 */
  407. /* 非0 失败 */
  408. /************************************************************************/
  409. int __stdcall WTY_SetDevTimeParam(char *pCameraIP, camera_time*sysTime);
  410. /************************************************************************/
  411. /* WTY_SetEncryptKey: 设置加密芯片密码 */
  412. /* Parameters: */
  413. /* pCameraIP[in] 需要修改的相机设备的ip地址 */
  414. /* nKey[in] 加密芯片密码,8个字节大小 */
  415. /* Return Value: int */
  416. /* ==0 成功 */
  417. /* 非0 失败 */
  418. /************************************************************************/
  419. int __stdcall WTY_SetEncryptKey(char *pCameraIP, unsigned_long_long nKey);
  420. /************************************************************************/
  421. /* WTY_ReSetEncryptKey: 重置加密芯片密码,密码恢复为123456 */
  422. /* 并且用户数据恢复为空 */
  423. /* Parameters: */
  424. /* pCameraIP[in] 需要修改的相机设备的ip地址 */
  425. /* Return Value: int */
  426. /* ==0 成功 */
  427. /* 非0 失败 */
  428. /************************************************************************/
  429. int __stdcall WTY_ReSetEncryptKey(char *pCameraIP);
  430. /************************************************************************/
  431. /* WTY_SetEncryptUserData: 设置加密芯片用户数据,密码必须匹配才可以成功*/
  432. /* Parameters: */
  433. /* pCameraIP[in] 需要修改的相机设备的ip地址 */
  434. /* nKey[in] 加密芯片密码,8个字节大小 */
  435. /* pUserData[in] 加密芯片用户数据指针,大小24个字节 */
  436. /* Return Value: int */
  437. /* ==0 成功 */
  438. /* 非0 失败 */
  439. /************************************************************************/
  440. int __stdcall WTY_SetEncryptUserData(char *pCameraIP, unsigned_long_long nKey,char *pUserData);
  441. /************************************************************************/
  442. /* WTY_GetEncryptUserData: 设置加密芯片用户数据,密码必须匹配才可以成功*/
  443. /* Parameters: */
  444. /* pCameraIP[in] 需要修改的相机设备的ip地址 */
  445. /* nKey[in] 加密芯片密码,8个字节大小 */
  446. /* pUserData[out] 存储读取到的用户数据 */
  447. /* Return Value: int */
  448. /* ==0 成功 */
  449. /* 非0 失败 */
  450. /************************************************************************/
  451. int __stdcall WTY_GetEncryptUserData(char *pCameraIP, unsigned_long_long nKey,char *pUserData);
  452. /*************************************************************************************************************/
  453. /****************************以下接口属于较早版本,V5相机可能不再会提供支持***********************************/
  454. /**********************************请客户挂接时候,尽量使用以上接口*******************************************/
  455. /*************************************************************************************************************/
  456. /************************************************************************/
  457. /* 函数: 消息方式获取指定IP相机识别结果。 */
  458. /* 当WTY_initSDK函数中设置了窗体句柄和消息时, */
  459. /* 需要在消息处理函数中调用此函数来主动获取识别结果。 */
  460. /* Parameters: */
  461. /* chWTYIP[in]: 根据消息,获取指定IP设备识别数据 */
  462. /* chPlate[in]: 车牌号码 */
  463. /* chColor[in]: 车牌颜色 */
  464. /* chFullImage[in]: 全景图数据 */
  465. /* nFullLen[in]: 全景图数据长度 */
  466. /* chPlateImage[in]: 车牌图数据 */
  467. /* nPlateLen[in]: 车牌图数据长度 */
  468. /* Return Value: int */
  469. /* 0 获取成功 */
  470. /* 1 获取失败 */
  471. /* Notice: */
  472. /* 当设置了传输内容不传时,各自对应的数据为NULL,长度为-1; */
  473. /* 当没有形成数据时,各自对应数据为NULL,长度为0 */
  474. /************************************************************************/
  475. int __stdcall WTY_GetVehicleInfo(char *chWTYIP,
  476. char *chPlate,
  477. char *chColor,
  478. void *chFullImage ,
  479. int *nFullLen,
  480. void *chPlateImage,
  481. int *nPlateLen);
  482. /************************************************************************/
  483. /* 回调函数: 注册接收识别数据回调函数 */
  484. /* Parameters: */
  485. /* recResult[out]: 识别结果数据 */
  486. /* Return Value: void */
  487. /************************************************************************/
  488. typedef void (*WTYDataExCallback)(plate_result *recResult);
  489. /************************************************************************/
  490. /* WTY_RegDataExEvent: 注册获取识别结果的回调函数 */
  491. /* Parameters: */
  492. /* WTYData[in]: 处理识别结果的回调函数的指针 */
  493. /* Return Value: void */
  494. /* Note: */
  495. /* 接收清晰度较低,或分辨率较低的JPEG图像 */
  496. /************************************************************************/
  497. void __stdcall WTY_RegDataExEvent(WTYDataExCallback WTYDataEx);
  498. /************************************************************************/
  499. /* 回调函数: 获取识别结果的回调函数 */
  500. /* Parameters: */
  501. /* chWTYIP[out]: 返回识别结果的设备IP */
  502. /* chPlate[out]: 车牌号码 */
  503. /* chColor[out]: 车牌颜色 */
  504. /* chFullImage[out]: 全景图数据 */
  505. /* nFullLen[out]: 全景图数据长度 */
  506. /* chPlateImage[out]: 车牌图数据 */
  507. /* nPlateLen[out]: 车牌图数据长度 */
  508. /* Return Value: void */
  509. /************************************************************************/
  510. typedef void (*WTYDataCallback)(char *chWTYIP,
  511. char *chPlate,
  512. char *chColor,
  513. char *chFullImage,
  514. int nFullLen,
  515. char *chPlateImage,
  516. int nPlateLen);
  517. /************************************************************************/
  518. /* WTY_RegDataEvent: 注册获取识别结果的回调函数 */
  519. /* Parameters: */
  520. /* WTYData[in]: 处理识别结果的回调函数的指针 */
  521. /* Return Value: void */
  522. /************************************************************************/
  523. void __stdcall WTY_RegDataEvent(WTYDataCallback WTYData);
  524. /************************************************************************/
  525. /* WTY_SetTransContent: 控制相机设备上传内容 */
  526. /* Parameters: */
  527. /* pCameraIP[in]: 要设置的设备IP */
  528. /* nCameraPort[in]: 端口,默认8080 */
  529. /* nFullImg[in]: 全景图,0表示不传,1表示传 */
  530. /* nPlateImg[in]: 车牌图,0表示不传,1表示传 */
  531. /* Return Value: int */
  532. /* 0 成功 */
  533. /* 非0 失败 */
  534. /************************************************************************/
  535. int __stdcall WTY_SetTransContent (char *pCameraIP, int nCameraPort, int nFullImg, int nPlateImg);
  536. /************************************************************************/
  537. /* 回调函数: 获取Jpeg流的回调函数 */
  538. /* Parameters: */
  539. /* JpegInfo[out]: JPEG流数据信息 */
  540. /* Return Value: void */
  541. /* */
  542. /* Notice: */
  543. /* 1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同 */
  544. /* 设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来 */
  545. /* 区分. */
  546. /* 2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本, */
  547. /* V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能 */
  548. /************************************************************************/
  549. typedef void (*WTYJpegCallback)(DevData_info *JpegInfo);
  550. /************************************************************************/
  551. /* WTY_RegJpegEvent: 注册获取Jpeg流的回调函数 */
  552. /* Parameters: */
  553. /* JpegInfo[in]: WTYJpegCallback类型回调函数 */
  554. /* Return Value: void */
  555. /* */
  556. /* Notice: */
  557. /* 1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同 */
  558. /* 设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来 */
  559. /* 区分. */
  560. /* 2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本, */
  561. /* V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能 */
  562. /************************************************************************/
  563. void __stdcall WTY_RegJpegEvent(WTYJpegCallback JpegInfo);
  564. /************************************************************************/
  565. /* 函数: Jpeg流消息处理初始化 */
  566. /* Parameters: */
  567. /* hWndHandle[in]: 接收消息的窗体句柄 */
  568. /* uMsg[in]: 用户自定义消息 */
  569. /* 检测到有数据并准备好缓冲区数据后, */
  570. /* 用::PostMessage 给窗口hWndHandle发送uMsg */
  571. /* 消息,其中WPARAM参数为0,LPARAM参数为0 */
  572. /* chIp[in]: 相机IP地址 */
  573. /* Return Value: int */
  574. /* 0 获取成功 */
  575. /* 1 获取失败 */
  576. /************************************************************************/
  577. int __stdcall WTY_JpegMessageInit(HWND hWndHandle,UINT uMsg,char *chIp);
  578. /************************************************************************/
  579. /* 函数: 消息方式获取指定IP的相机的Jpeg流数据 */
  580. /* Parameters: */
  581. /* chIp[in]: 相机IP地址 */
  582. /* chJpegBuf[in]: 存储JPEG的buffer */
  583. /* nJpegBufLen[in]: 获取到的JPEG数据长度 */
  584. /* Return Value: int */
  585. /* 0 获取成功 */
  586. /* 1 获取失败 */
  587. /* Notice: */
  588. /* 使用此函数前需先调用WTY_JpegMessageInit函数设置自定义消息 */
  589. /************************************************************************/
  590. int __stdcall WTY_GetJpegStream(char *chIp, char *chJpegBuf, char *nJpegBufLen);
  591. /************************************************************************/
  592. /* WTY_SetNetworkCardBind: 手动绑定指定网卡IP */
  593. /* Parameters: */
  594. /* pCameraIP[in] 要绑定的网卡IP地址 */
  595. /* Return Value: int */
  596. /* 0 成功 */
  597. /* 非0 失败 */
  598. /* notice:当PC机存在多网卡的情况时,又不想禁用为单网卡时,可通过该 */
  599. /* 函数绑定与相机通讯的网卡IP */
  600. /************************************************************************/
  601. int __stdcall WTY_SetNetworkCardBind(char *pCameraIP);
  602. /************************************************************************/
  603. /* 回调函数: 获取报警信息的回调函数 */
  604. /* Parameters: */
  605. /* alarmInfo[out]: 报警信息 */
  606. /* Return Value: void */
  607. /* */
  608. /* Notice: */
  609. /* 一台PC连接多台设备时,此函数仅需实现一次。当区分不同设备 */
  610. /* 的Alarm时,可以通过输出参数中DevData_info中的chIp来区分 */
  611. /* */
  612. /* Notice: */
  613. /* 1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同 */
  614. /* 设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来 */
  615. /* 区分. */
  616. /* 2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本, */
  617. /* V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能 */
  618. /************************************************************************/
  619. typedef void (*WTYAlarmCallback)(DevData_info *alarmInfo);
  620. /************************************************************************/
  621. /* WTY_RegAlarmEvent: 注册获取报警信息的回调函数 */
  622. /* Parameters: */
  623. /* AlarmInfo[in]: WTYAlarmCallback类型回调函数 */
  624. /* Return Value: void */
  625. /* */
  626. /* Notice: */
  627. /* 1:一台PC连接多台设备时,此函数仅需实现一次。当区分不同 */
  628. /* 设备的JPEG流时,可以通过输出参数中DevData_info中的chIp来 */
  629. /* 区分. */
  630. /* 2:此功能目前适用于V5.5.3.0、V6.0.0.0及以上版本, */
  631. /* V5.2.1.0、V5.2.2.0、V5.2.6.0等版本不能使用此功能 */
  632. /************************************************************************/
  633. void __stdcall WTY_RegAlarmEvent(WTYAlarmCallback AlarmInfo);
  634. /************************************************************************/
  635. /*WTY_SnapJpegFrame 快速抓拍一帧,两种保存方式,直接保存到固定目录或者 */
  636. /* 保存到特定内存,要是保存特定内存模式需要传入内存 */
  637. /* 最大值,两种方式可选 */
  638. /* Parameters: */
  639. /* chIp[in] 相机的IP地址 */
  640. /* pSaveFileName[in] 路径和带JPEG后缀名的文件名,用于把当前 */
  641. /* 抓拍到的帧保存为特定文件 默认先匹配 */
  642. /* 文件名 */
  643. /* pSaveBuf[in] 用于保存当前帧在特定内存的,并且需要传输 */
  644. /* 内存可存储的最大值,当文件名为空的时候 */
  645. /* 这个才会生效。 */
  646. /* Maxlen[in] 保存当前帧特定内存的最大值 */
  647. /* Return Value: int */
  648. /* 0 保存到特定目录成功 */
  649. /* >0 保存到特定内存的数据的实际大小 */
  650. /* -1 失败 */
  651. /************************************************************************/
  652. int __stdcall WTY_SnapJpegFrame(char *chIp,char *pSaveFileName,unsigned char *pSaveBuf,int Maxlen);
  653. /********************************************************************************/
  654. /* WTY_SetJpegStreamPlayOrStop: 设置jpeg流的开关 */
  655. /* Parameters: */
  656. /* pCameraIP[in] 需要设置的相机设备的ip地址 */
  657. /* onoff[in] jpeg流开关项,0表示关闭流,1表示打开流 2打开H264 */
  658. /* Return Value: int */
  659. /* 0 成功 */
  660. /* 非0 失败 */
  661. /********************************************************************************/
  662. int __stdcall WTY_SetJpegStreamPlayOrStop(char *pCameraIP,int onoff);
  663. #ifdef __cplusplus
  664. }
  665. #endif
  666. #endif