#ifndef _CLIENT_H #define _CLIENT_H #if !defined(WIN32) && !defined(__stdcall) #define __stdcall #endif #ifdef WIN32 typedef __int64 unsigned_long_long; #include #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