文章目录
一、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 ); - 参数
- dwWaitTime
[in] 超时时间,单位毫秒,取值范围[300,75000],实际最大超时时间因系统的connect超时时间而不同。 - dwTryTimes
[in] 连接尝试次数(保留)
- dwWaitTime
- 返回值
TRUE表示成功,
FALSE表示失败。
接口返回失败请调用NET_DVR_GetLastError获取错误码,通过错误码判断出错原因。
注意
- 对于Windows版本,SDK默认建立连接的超时时间为3000毫秒;对于Linux版本,V5.2.7.2及以上版本,连接超时时间为3500毫秒。
- SDK4.0及以后版本中当设置的超时时间超过或低于限制的值时接口不返回失败,将取最接近的上下限限制值作为实际的超时时间。
1.2 设置接收异常消息的回调函数
- 功能
由于SDK中大部分模块的功能都是由异步模式实现,所以我们提供此接口用于接收预览、报警、回放、透明通道和语音对讲等模块发生异常信息。用户可以在初始化SDK后就设置该回调函数,在应用层对各个模块异常消息的接收和处理。
1.2.1 NET_DVR_SetDVRMessage
- 声明
BOOL NET_DVR_SetDVRMessage( UINT nMessage, HWND hWnd ); - 参数
nMessage :[in] 消息
hWnd :[in] 接收异常信息消息的窗口句柄 - 返回值
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 ); - 参数
reserved1 :[in] 消息,Linux下该参数保留
hWnd :[in] 接收异常信息消息的窗口句柄,Linux下该参数保留
cbExceptionCallBack :[in] 接收异常消息的回调函数,回调当前异常的相关信息
pUser :[in] 用户数据 - 返回值
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. 用户注册设备
- 功能:实现用户的注册功能,注册成功后,返回的用户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支持单路解码器和多路解码器,但目前以多路解码器为主流产品。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221557.html原文链接:https://javaforall.net
