海康SDK接⼝调⽤的主要流程
⽂章⽬录
⼀、SDK接⼝调⽤的主要流程
1. 初始化SDK
功能:对整个⽹络SDK系统的初始化,内存预分派等操作。
声明
BOOL NET_DVR_Init();
返回值
TRUE表⽰成功,
FALSE表⽰失败。接⼝返回失败请调⽤NET_DVR_GetLastError获取错误码,通过错误码判断出错原因。
1.1 设置连接超时时间
这部分为可选,⽤于设置SDK中的⽹络连接超时时间,⽤户可以根据⾃⼰的需要设置该值。在不调⽤此接⼝设置超时时间的情况下,将采⽤SDK中的默认值。
函数声明
BOOL NET_DVR_SetConnectTime(
DWORD dwWaitTime,
DWORD dwTryTimes
);
参数
1. dwWaitTime
[in] 超时时间,单位毫秒,取值范围[300,75000],实际最⼤超时时间因系统的connect超时时间⽽不同。
2. dwTryTimes
[in] 连接尝试次数(保留)
返回值
TRUE表⽰成功,
FALSE表⽰失败。
接⼝返回失败请调⽤NET_DVR_GetLastError获取错误码,通过错误码判断出错原因。
注意
1. 对于Windows版本,SDK默认建⽴连接的超时时间为3000毫秒;对于Linux版本,V5.
2.7.2及以上版本,连接超时时间为3500毫秒。
2. SDK4.0及以后版本中当设置的超时时间超过或低于限制的值时接⼝不返回失败,将取最接近的上下限限制值作为实际的超时时间。
1.2 设置接收异常消息的回调函数
功能
由于SDK中⼤部分模块的功能都是由异步模式实现,所以我们提供此接⼝⽤于接收预览、报警、回放、透明通道和语⾳对讲等模块发⽣异常信息。⽤户可以在初始化SDK后就设置该回调函数,在应⽤层对各个模块异常消息的接收和处理。
1.2.1 NET_DVR_SetDVRMessage
1. 声明
BOOL NET_DVR_SetDVRMessage(
UINT nMessage,
HWND hWnd
);
2. 参数
nMessage :[in] 消息
hWnd :[in] 接收异常信息消息的窗⼝句柄
3. 返回值
TRUE表⽰成功,FALSE表⽰失败。接⼝返回失败请调⽤NET_DVR_GetLastError获取错误码,通过错误码判断出错原因。
1.2.2 NET_DVR_SetExceptionCallBack_V30
Windows下该接⼝定义如下:
BOOL NET_DVR_SetExceptionCallBack_V30(
UINT nMessage,
HWND hWnd,
fExceptionCallBack cbExceptionCallBack,
void*pUser
);
Linux下该接⼝定义如下:
BOOL NET_DVR_SetExceptionCallBack_V30(
UINT reserved1,
void*reserved2,
fExceptionCallBack cbExceptionCallBack,
void*pUser
);
2. 参数
reserved1 :[in] 消息,Linux下该参数保留
hWnd :[in] 接收异常信息消息的窗⼝句柄,Linux下该参数保留
cbExceptionCallBack :[in] 接收异常消息的回调函数,回调当前异常的相关信息
pUser :[in] ⽤户数据
3. 返回值
TRUE表⽰成功,FALSE表⽰失败。接⼝返回失败请调⽤NET_DVR_GetLastError获取错误码,通过错误码判断出错原因。
1.3 从服务器获得设备的IP地址
功能
该接⼝提供⼀种在仅知道设备名称(或者设备域名)和序列号的情况下,从解析服务器(IP Server或者DDNS)获得设备IP地址的⽅法。
如:当前设备是通过拨号上⽹⽅式获取到动态IP地址,⽽运⾏了我公司IPServer软件的服务器即为解析服务器,我们可以通过此接⼝输⼊解析服务器的地址、设备的名称和序列号等信息查询该设备的IP地址。IPServer是我公司提供的⼀款域名解析服务器软件。
声明
通过解析服务器,获取设备的动态IP地址和端⼝号。
BOOL NET_DVR_GetDVRIPByResolveSvr_EX(
char*sServerIP,[in]解析服务器(IPServer或者hiDDNS)的IP地址或者域名
WORD wServerPort,[in]解析服务器的端⼝号。IP Server端⼝号为7071,hiDDNS服务器的端⼝号为80
BYTE *sDVRName,[in]设备名称
WORD wDVRNameLen,[in]设备名称的长度
BYTE *sDVRSerialNumber,[in]设备的序列号
WORD wDVRSerialLen,[in]设备序列号的长度
char*sGetIP,[out]获取到的设备ip地址指针
DWORD *dwPort [out]获取到的设备端⼝号指针
);
返回值
TRUE表⽰成功,FALSE表⽰失败。接⼝返回失败请调⽤NET_DVR_GetLastError获取错误码,通过错误码判断出错原因。
2. ⽤户注册设备
sdk功能:实现⽤户的注册功能,注册成功后,返回的⽤户ID作为其他功能操作的唯⼀标识,SDK允许最⼤注册个数为2048个。就设备⽽⾔,V3.0以上版本⽀持的设备允许有32个注册⽤户名,⽽且同时最多允许128个⽤户注册;V3.0以下版本⽀持的设备允许有16个注册⽤户名,⽽且同时最多允许128个⽤户注册。
声明
⽤户注册设备(⽀持异步登录)。
LONG NET_DVR_Login_V40(
LPNET_DVR_USER_LOGIN_INFO pLoginInfo,【in】登录参数,登录⽤户,密码等
LPNET_DVR_DEVICEINFO_V40 lpDeviceInfo【out】设备信息
);
返回值
异步登录的状态,⽤户id和设备信息通过NET_DVR_USER_LOGIN_INFO结构体中设置的回调函数(fLoginResultCallBack)返回。
对于同步登录,接⼝返回-1表⽰登录失败,其他值表⽰返回的⽤户ID值。⽤户ID具有唯⼀性,后续对设备的操作都需要通过此ID实现。
接⼝返回失败请调⽤NET_DVR_GetLastError获取错误码,通过错误码判断出错原因。
2.1 预览模块
功能
从设备取实时码流,解码显⽰以及播放控制、抓图等功能
2.2 回放和下载模块
功能:可以通过按时间和按⽂件名的⽅式远程回放或者下载设备的录像⽂件,后续可以解码或者存储。同时⽀持断点续传功能。
2.3 参数配置模块
功能:设置和获取设备的参数,主要包括设备参数,⽹络参数,通道压缩参数,串⼝参数,报警参数,异常参数,交易信息和⽤户配置等参数信息。
2.4 远程设备维护模块
功能:实现关闭设备,重启设备,恢复默认值,远程硬盘格式化,远程升级和配置⽂件导⼊/导出等维护⼯作。
2.5 语⾳对讲转发模块
功能: 实现和设备的语⾳数据对讲和语⾳数据获取,⾳频编码格式可以指定。
2.6 报警模块
功能:处理设备上传的各种报警信号。报警分为“布防”和“监听”两种⽅式,在采⽤监听⽅式并且不需要获取⽤户ID的情况下,报警模块可以⽆需进⾏“⽤户注册”操作步骤。
2.7 透明通道模块
功能:透明通道是将IP数据报⽂解析后直接发送到串⾏⼝的⼀种技术。实际上起到了延伸串⾏设备控制距离的作⽤。可利⽤IP⽹络控制多种串⾏设备,如控制解码器、矩阵、报警主机、门禁、仪器仪表等串⾏设备,对⽤户来说,只看到点对点传输,⽆须关⼼⽹络传输过程,所以称为串⼝透明通道。 SDK提供485和232串⼝作为透明通道功能,其中要将232串⼝作为透明通道使⽤,⾸先必须在232串⼝的配置信息(NET_DVR_RS232CFG)中将⼯作模式选为透明通道,这样232串⼝才可作为透明通道使⽤。
2.8 云台控制模块
功能:实现对云台的基本操作、预置点、巡航、轨迹和透明云台的控制。SDK将云台控制分为两种模式:⼀种是通过图像预览返回的句柄进⾏控制;另⼀种是⽆预览限制,通过⽤户注册ID号进⾏云台控
制。
2.9 解码器功能模块
功能:
实现解码器设备的配置,解码控制等功能。SDK⽀持单路解码器和多路解码器,但⽬前以多路解码器为主流产品。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论