文章目录

  • 一、SDK接口调用的主要流程
    • 1. 初始化SDK
      • 1.1 设置连接超时时间
      • 1.2 设置接收异常消息的回调函数
        • 1.2.1 NET_DVR_SetDVRMessage
        • 1.2.2 NET_DVR_SetExceptionCallBack_V30
      • 1.3 从服务器获得设备的IP地址
    • 2. 用户注册设备
      • 2.1 预览模块
      • 2.2 回放和下载模块
      • 2.3 参数配置模块
      • 2.4 远程设备维护模块
      • 2.5 语音对讲转发模块
      • 2.6 报警模块
      • 2.7 透明通道模块
      • 2.8 云台控制模块
      • 2.9 解码器功能模块

一、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支持单路解码器和多路解码器,但目前以多路解码器为主流产品。

海康SDK接口调用的主要流程相关推荐

  1. 海康威视SDK接口调用的主要流程及预览模块

    其中虚线框的流程是可选部分,不会影响其他流程和模块的功能使用. 初始化SDK(NET_DVR_Init):对整个网络SDK系统的初始化,内存预分配等操作. 用户注册设备(NET_DVR_Login_V ...

  2. C#使用WebService调用海康SDK实现抓图与录像实时下载

    1.海康设备网络SDK下载 下载地址:https://www.hikvision.com/cn/download_more_401.html 下载完毕解压后的目录结构如下: 2.代码实现 通过参考&q ...

  3. 调用海康视频接口获取预览取流的URL

    开始之前请参考海康官方SDK文档 鉴于前段时间刚接触视频这一块,整理了自己的一些经验,具体的你们还是参考文档来吧 附上文档地址 https://open.hikvision.com/docs/docI ...

  4. java 调用dll_Python调用海康SDK抓取红外图像

    海康SDK提供了C++.C#.Java等示例代码,可以使用这些语言进行二次开发.对于做算法开发的人来说,就想快速采集到图像,然后在Matlab或Python里对图像进行分析,使用C++.C#.Java ...

  5. java 获取 海康 视频流_海康网络摄像机调用SDK解码Java版

    两个回调函数: FRealDataCallBack 实现预览回调数据 DecCallBack 解码回调函数 在HCNetSDK.java补充相关函数和结构声明 //播放库函数声明,PlayCtrl.d ...

  6. linux64下调用海康sdk(=登陆、获取通道列表、获取文件列表、按照文件下载文件、按照时间下载文件)

    linux下调用海康sdk 1.库文件的配置 mkdir /data/hk_sdk/ cd /data/hk_sdk/将海康SDK的lib文件夹复制到/data/hk_sdk/下 lib文件下面的结构 ...

  7. C#:使用海康SDK解码回调函数DecCallbackFUN()

    简述   使用海康摄像头采集图像时,需要在图像上添加图标.文字等额外数据.可选择使用海康SDK绘图回调函数叠加字符.图像等(请参考上一篇文章):也可使用海康SDK的解码回调函数,对视频流数据进行解码后 ...

  8. 基于Qt+海康sdk+MySql的远程录像下载程序

    一.前言 距离上次完成的Linux下QT实时音频采集传输项目已经有一个月的时间.之后又在Linux上完成了许多大大小小的项目,多是与UI有关. 这次给实现的是Windows下的QT+Mysql+海康s ...

  9. Linux环境中对海康威视工业相机SDK进行二次开发(QT+CMake+Opencv+海康SDK)

    关于在Windows环境中对海康威视工业相机SDK进行二次开发的话,可以参考这两篇博客. 海康威视工业相机SDK二次开发(VS+Opencv+QT+海康SDK+C++)(一) 海康威视工业相机SDK二 ...

  10. Android平台上集成海康SDK(二)

    Android平台上集成海康SDK 以上是我之前写的一篇Android平台上集成海康SDK的文章,其中对于Android平台上集成海康SDK.基于海康SDK进行二次开发基本上进行了详细地介绍. 这篇文 ...

最新文章

  1. Unity插件之NGUI学习(4)—— 创建UI2DSprite动画
  2. Codeforces D. Fair 多源BFS求最短路
  3. MYSQL 时间计算的 3 种函数
  4. 语言专项精讲课程 赵海英_最全汇总:沪江日语课程体系指南
  5. 《每周一点canvas动画》——圆周运动
  6. pytorch torch.nn.TransformerEncoderLayer
  7. 机器学习读书笔记(一)k-近邻算法
  8. DOD,与cisco三层模型
  9. 梁友栋-Barsky算法
  10. Qt编译时报堆空间不足
  11. 【开发常识】手机号为什么要隐藏中间的四位数?
  12. 海信LINUX系统改安卓,如何获取海信电视的root许可一键单击海信Smart TV的root卸载内置软件...
  13. Azure Active Directory B2C (1)
  14. 工程师思维(简化版)——聪明人的10个工程思维
  15. 太阳系各大行星运行轨迹
  16. 小样本(小于30)假设检验与置信区间
  17. 互联网岳麓峰会从长沙走向世界
  18. Windows10蓝牙突然消失不见(设置中蓝牙开关键消失)
  19. Java获取时间格式(年月日时分秒毫秒)
  20. mysql前段编写_HTML、CSS、JavaScript、PHP、 MySQL 的学习顺序是什么?

热门文章

  1. 疯狂的程序员_周末分享丨王者程序员PK普通程序员,段位差多少?
  2. VOSviewer | (一)从零安装教程
  3. “暴风一号”学习日记(一)
  4. 什么是软件开发模式?
  5. ios开发之商城类软件 - 框架构思
  6. 《Python编程实践》查漏笔记
  7. PDF与Base64的相互转换以及操作
  8. 2022年计算机二级Java语言程序设计复习题及答案
  9. matlab 中文注释乱码问题解决
  10. 2022最新iApp源码(破解ZIP密码)+已编译的成品