海康SDK接口调用的主要流程

海康SDK接口调用的主要流程SDK 接口调用的主要流程 初始化 SDK 功能 对整个网络 SDK 系统的初始化 内存预分派等操作 声明 BOOLNET DVR Init 返回值 TRUE 表示成功 FALSE 表示失败 接口返回失败请调用 NET DVR GetLastError 获取错误码 通过错误码判断出错原因 设置连接超时时间功能这部分为可选 用于设置 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
  1. 声明
    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. 用户注册设备

  • 功能:实现用户的注册功能,注册成功后,返回的用户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

(0)
上一篇 2026年3月17日 下午5:50
下一篇 2026年3月17日 下午5:50


相关推荐

  • python与anaconda安装(先安装了python后安装anaconda,基于python已存在的基础上安装anaconda)——逼死强迫症、超详解[通俗易懂]

    python与anaconda安装(先安装了python后安装anaconda,基于python已存在的基础上安装anaconda)——逼死强迫症、超详解[通俗易懂]目录欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入#一、安装python欢迎…

    2022年6月5日
    594
  • java runtime 异常_Java RuntimeException异常处理汇总

    java runtime 异常_Java RuntimeException异常处理汇总Java 中所有异常的父类是 Throwable 类 在 Throwable 类下有两大子类 一个是 Error 类 指系统错误异常 例如 VirtualMachi 虚拟机错误 ThreadDeath 线程死锁 一般如果是 Error 类的异常的话 就是程序的硬伤 就好比是工厂里断水断电 机器损坏了 另一个是 Exception 类 指编码 环境 用户操作输入等异常 这个是比较常见的异常类 Excepti

    2026年3月19日
    2
  • JavaScript-事件之onmousemove

    JavaScript-事件之onmousemoveonmousemove 监听鼠标移动事件 注意 ie8 及 ie8 以下监听不到 event 所以要用 event window event 做一下兼容处理 clientX clientY 获取当前鼠标在指定标签内的可见横纵坐标位置 标签 onmousemove function event 兼容处理 if event event window event 或者

    2026年3月26日
    2
  • 网络性能评估工具Iperf详解(可测丢包率)

    网络性能评估工具Iperf详解(可测丢包率)网络性能评估工具 Iperf 详解 可测丢包率 一 网络性能评估工具 Iperf 网络性能评估主要是监测网络带宽的使用率 将网络带宽利用最大化是保证网络性能的基础 但是由于网络设计不合理 网络存在安全漏洞等原因 都会导致网络带宽利用率不高 要找到网络带宽利用率不高的原因 就需要对网络传输进行监控 此时就需要用到一些网络性能评估工具 而 Iperf 就是这样一款网络带宽测试工具 本节将详细介绍一下 Iperf

    2026年3月19日
    2
  • Anchorpoint_insert_tid_for_question_process

    Anchorpoint_insert_tid_for_question_process引言相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置?CALayer的position点是哪一点呢?anchorPoint与position有什么关系?我也迷惑过,找过网上的教程,大部分都是复制粘贴的,有些是翻译的文章但很有问题,看得似懂非懂,还是自己写代码彻底弄懂了,做点笔记吧。每一个UIView内部都默认关联着一个CALa…

    2022年10月8日
    5
  • 机器学习常见问题

    机器学习常见问题

    2021年11月19日
    57

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号