大华网络SDK开发手册.docx

上传人:b****8 文档编号:8778187 上传时间:2023-02-01 格式:DOCX 页数:104 大小:69.01KB
下载 相关 举报
大华网络SDK开发手册.docx_第1页
第1页 / 共104页
大华网络SDK开发手册.docx_第2页
第2页 / 共104页
大华网络SDK开发手册.docx_第3页
第3页 / 共104页
大华网络SDK开发手册.docx_第4页
第4页 / 共104页
大华网络SDK开发手册.docx_第5页
第5页 / 共104页
点击查看更多>>
下载资源
资源描述

大华网络SDK开发手册.docx

《大华网络SDK开发手册.docx》由会员分享,可在线阅读,更多相关《大华网络SDK开发手册.docx(104页珍藏版)》请在冰豆网上搜索。

大华网络SDK开发手册.docx

大华网络SDK开发手册

 

大华网络SDK编程手册

VERSION3.1.8(Build070321)

2007-3-21

 

版权所有XX

 

前言

非常感谢您使用我们公司的设备,我们将为您提供最好的服务。

本手册可能包含技术上不准确的地方或印刷错误,欢迎指正。

我们将会定期更新手册的内容。

修订记录

日期

修订内容

作者

2006-05-30

创建

林峰

2006-7-3

修订接口描述

冯江

2006-7-5

修订概要描述

华立高

2006-7-26

修订接口描述

刘杰陈美英

2006-8-10

同步更新接口描述

陈美英

2006-8-21

修订接口描述

陈美英

2006-8-23

增加典型调用顺序描述

陈美英

2006-8-28

3.0.0整理修订

陈美英

2006-9-15

3.0.5同步增加回调数据扩展接口,更新云台控制说明

陈美英

2006-9-21

3.0.7同步增加登录扩展接口

陈美英

2006-9-29

3.0.9同步增加带有配置结构的配置功能接口说明

陈美英

2006-10-16

增加单独修改通道名称的接口

赵均树

2006-10-21

增加打开实时图像的扩展接口

赵均树

2006-10-28

1、增加按时间回放和下载接口

2、增加设备配置的第三方接入和获取设备的序列号功能

赵均树

2006-11-8

1、带数据回调的按时间回放扩展接口

2、带数据回调的按文件回放扩展接口

3、远程重启接口

4、录像回放能够播放音频

赵均树、陈琼施

2006-11-19

1、解决了反复修改第三方的IP地址时DVR比较容易死机的问题

2、增加485接口

3、通过网络修改IP配置时DVR重启

赵均树、陈琼施

2006-11-27

1、增加DDNS查询IP的功能

赵均树、陈琼施

2006-12-15

修正文档中接口描述的错误,并增加链接

赵均树、陈琼施、林坚彦

2006-12-25

增加并修改语音对讲的接口

叶浩、陈琼施

2006-12-29

增加用户管理接口

林坚彦、陈琼施

2007-1-17

修改了CLIENT_Login的功能描述

增加了CLIENT_FindFile、CLIENT_FindNextFile、CLIENT_FindClose

林坚彦、赵均树、陈琼施

2007-2-8

增加了设备参数配置的两个接口:

CLIENT_GetDevConfigCLIENT_SetDevConfig

林坚彦、陈琼施、

赵均树

2007-3-7

修改了CLIENT_StopListen接口典型应用的笔误

赵均树

2007-03-19

增加了个查询报警状态的接口。

林坚彦、陈琼施

2007-03-21

增加了语音对讲中的音频编码接口

增加了扩展报警侦听接口

叶浩、陈琼施、林坚彦

 

 

1简介

1.1概述

欢迎使用大华网络SDK编程手册,网络客户端软件开发包(DVR客户端SDK)是大华网络硬盘录像机、网络视频服务器的配套产品,本文档详细描述了开发包中各个函数实现的功能、接口及其函数之间的调用关系和示例实现。

网络客户端软件开发包主要包括业务操作和设备管理两大部分:

业务操作:

状态侦听、实时监视、实时预览、字符叠加、音频控制、录像回放和下载、数据保存、云台控制、语音对讲、透明串口、码流统计等功能。

设备管理:

远程升级、远程重启/关闭、设备参数配置(系统通用配置、报警布/撤防设置、录像配置、串口配置、图像配置、日志管理、用户管理、设备校时、动态检测配置、网络配置)等功能。

开发包所包括的文件有:

网络库:

dhnetsdk.lib、dhnetsdk.dll、dhnetsdk.h

解码库:

decode.dll、render.dll、dllh264.dll、audiorecord.dll、AudioRecordEx.dll、avcodec.dll

辅助库:

dhdvr.dll、ParaTimer.dll、DetectAreaCtrl.ocx、SetDeviceConfigProj.ocx

1.2适用性

⏹支持所有大华网络硬盘录像机(DVR)、网络视频服务器(NVS)、网络报警服务器(NAS)

⏹只支持TCP网络传输模式

⏹客户端可以采用多种分辨率进行图像预览,支持的分辨率包括:

QCIF、CIF、2CIF、、HalfD1、D1,VGA(640×480)等

⏹客户端支持多种图像编码,包括MPEG4和H.264等

1.3特色功能

支持设备的以下特色功能:

⏹多路预览

在窄带条件下,同时多路实时监视对带宽的要求比较高,一般的处理情况有两种,其一,轮巡。

其二,多路预览。

所谓多路预览,就是在一个通道上把所有通道的数据组织在一起传输,等同于多路同时监视。

必要的时候,可以转单路监视。

大华DVR支持多路预览功能。

⏹支持标准的MP4数据

一般情况下,同一平台集成不同厂商的前端设备(如DVR),由于各厂商采用的视频压缩方法不同(包括算法、参数定义等),导致解码端回放必须采用厂商特定的工具,造成平台开发商无法自定义播放标准。

本SDK能够解决这个问题。

通过特定接口,应用层可以通过本SDK获取标准媒体数据(FOURCC(‘D’、‘I’、‘V’、‘X’)视频数据),要支持用各种通用播放器播放,有了提供标准数据,应用层只须打包标准数据到播放器支持的容器类型(也就是文件格式,如AVI标准)就可以了。

2

设计原则

2.1编程说明

⏹初始化和清除

1、使用网络客户端软件包首先调用CLIENT_Init()对系统进行初始化,应用程序退出时调用CLIENT_Cleanup()释放所有占用的资源。

2、大多数函数调用均应该在CLIENT_Init()之后,CLIENT_Cleanup()之前,除了少数函数,譬如CLIENT_SetConnectTime()在CLIENT_Init()之前调用,而CLIENT_GetSDKVersion()可以在任何时候调用等等。

⏹操作句柄

系统设计上多处使用了句柄概念,很多操作均针对句柄,如回放、下载以及语音对讲等。

⏹用户登录和注销

用户在访问前端设备之前必须通过调用CLIENT_Login()登录到前端设备上,登录成功后返回一个全局唯一的句柄。

此句柄就像一个会话通道,之后该用户可通过此句柄访问前端设备。

退出该会话时则通过CLIENT_Logout()函数在前端设备上注销此句柄以终止该会话通道的使用。

建立连接与登录是同步的。

⏹心跳功能

在本开发包中提供自动心跳功能(20秒一次心跳)当设备断开能及时回调给客户端。

⏹同步与异步

异步以设置回调函数来响应网络数据,有些异步在设置后返回请求句柄,结束请求时将请求句柄提供给SDK以注销相关资源。

⏹SDK提供协议探测和转换

⏹回调函数

一般都有dwUser参数,由用户自定义需要的数据,一般用来传入类对象指针,方便回调处理在类中实现,回调应用都可以采取这种方式。

 

2.2典型调用顺序

A.初始化

SDK初始化CLIENT_Init()

B.SDK功能设置或信息获取

设置连接等待时间CLIENT_SetConnectTime()

获取SDK版本CLIENT_GetSDKVersion()

设置消息回调CLIENT_SetDVRMessCallBack()

设置自定义叠加画板CLIENT_RigisterDrawFun()

C.登录连接设备

登录设备CLIENT_Login()

开始侦听CLIENT_StartListen()

D.设备功能操作与信息获取

系统配置CLIENT_QueryConfig()

CLIENT_SetupConfig()

获取设备状态CLIENT_GetDEVWorkState()

获取协议信息CLIENT_QueryComProtocol()

查询获取系统信息CLIENT_QuerySystemInfo()

查询通道名称CLIENT_QueryChannelName()

查询日志CLIENT_QueryLogCallback()

CLIENT_QueryLog()

用户管理CLIENT_QueryUserInfo()

CLIENT_OperateUserInfo()

云台控制CLIENT_PTZControl()

CLIENT_DHPTZControl()

语音对讲CLIENT_StartTalk()

CLIENT_SendTalkData_Custom()

CLIENT_StopTalk()

设置限流CLIENT_SetMaxFlux()

透明串口CLIENT_CreateTransComChannel()

CLIENT_SendTransComData()

CLIENT_DestroyTransComChanne()

E.实时监视通道

打开监视通道CLIENT_RealPlay()

CLIENT_RealPlayEx()

保存监视图像数据CLIENT_SaveRealData()

监视数据回调保存CLIENT_SetRealDataCallBack()

CLIENT_SetRealDataCallBackEx()

获取视频参数信息CLIENT_ClientGetVideoEffect()

设置修改视频参数CLIENT_ClientSetVideoEffect()

强制I帧CLIENT_MakeKeyFrame()

F.多画面预览通道

打开多画面预览CLIENT_MultiPlay()

停止多画面预览CLIENT_StopMultiPlay()

G.回放/下载通道

查询录像CLIENT_QueryRecordFile()

回放及控制CLIENT_PlayBackByRecordFile()

CLIENT_PlayBackByRecordFileEx()

CLIENT_PlayBackByTime()

CLIENT_PlayBackByTimeEx()

CLIENT_GetPlayBackOsdTime()

CLIENT_PausePlayBack()

CLIENT_SeekPlayBack()

CLIENT_StopPlayBack()

CLIENT_StepPlayBack()

CLIENT_FastPlayBack()

CLIENT_SlowPlayBack()

CLIENT_GetFramePlayBack()

CLIENT_SetFramePlayBack()

下载CLIENT_DownloadByRecordFile()

CLIENT_DownloadByRecordFileEx()

CLIENT_DownloadByTime()

CLIENT_StopDownload()

CLIENT_GetDownloadPos()

 

H.针对显示图像的操作(监视/回放/多画面预览)

抓图CLIENT_CapturePicture()

码流统计CLIENT_GetStatiscFlux()

打开音频CLIENT_OpenSound()

设置音量CLIENT_SetVolume()

I.远程控制

远程升级CLIENT_StartUpgrade

CLIENT_SendUpgrade

CLIENT_StopUpgrade

录像控制CLIENT_QueryRecordState

CLIENT_SetupRecordState

系统校时CLIENT_QueryDeviceTime

CLIENT_SetupDeviceTime

IO控制CLIENT_QueryIOControlState

CLIENT_IOControl

J.注销断开设备

停止侦听CLIENT_StopListen()

断开连接CLIENT_Logout()

K.释放SDK资源

SDK退出CLIENT_Cleanup()

对D、E、F、G、H、I中的功能大部分之间没有调用先后顺序,当然对同一个功能还是应该按先打开再操作最后关闭的顺序。

 

3数据结构定义

3.1客户端数据结构

☞通用云台控制命令

typedefenum_PTZ_ControlType

{

PTZ_UP_CONTROL=0,//上

PTZ_DOWN_CONTROL,//下

PTZ_LEFT_CONTROL,//左

PTZ_RIGHT_CONTROL,//右

PTZ_ZOOM_ADD_CONTROL,//变倍+

PTZ_ZOOM_DEC_CONTROL,//变倍-

PTZ_FOCUS_ADD_CONTROL,//调焦+

PTZ_FOCUS_DEC_CONTROL,//调焦-

PTZ_APERTURE_ADD_CONTROL,//光圈+

PTZ_APERTURE_DEC_CONTROL,//光圈-

PTZ_POINT_MOVE_CONTROL,//转至预置点

PTZ_POINT_SET_CONTROL,//设置

PTZ_POINT_DEL_CONTROL,//删除

PTZ_POINT_LOOP_CONTROL,//点间轮循

PTZ_LAMP_CONTROL,//灯光雨刷

}PTZ_ControlType;

☞云台控制扩展命令

typedefenum_EXTPTZ_ControlType{

EXTPTZ_LEFTTOP=0X20,//左上

EXTPTZ_RIGHTTOP,//右上

EXTPTZ_LEFTDOWN,//左下

EXTPTZ_RIGHTDOWN,//右下

EXTPTZ_ADDTOLOOP,//加入预置点到巡航巡航线路预置点值

EXTPTZ_DELFROMLOOP,//删除巡航中预置点巡航线路预置点值

EXTPTZ_CLOSELOOP,//清除巡航巡航线路

EXTPTZ_STARTPANCRUISE,//开始水平旋转

EXTPTZ_STOPPANCRUISE,//停止水平旋转

EXTPTZ_SETLEFTBORDER,//设置左边界

EXTPTZ_RIGHTBORDER,//设置右边界

EXTPTZ_STARTLINESCAN,//开始线扫

EXTPTZ_CLOSELINESCAN,//停止线扫

EXTPTZ_SETMODESTART,//设置模式开始模式线路

EXTPTZ_SETMODESTOP,//设置模式结束模式线路

EXTPTZ_RUNMODE,//运行模式模式线路

EXTPTZ_STOPMODE,//停止模式模式线路

EXTPTZ_DELETEMODE,//清除模式模式线路

EXTPTZ_REVERSECOMM,//翻转命令

EXTPTZ_FASTGOTO,//快速定位水平坐标垂直坐标变倍

EXTPTZ_AUXIOPEN,//x34辅助开关开辅助点

EXTPTZ_AUXICLOSE,//0x35辅助开关关辅助点

EXTPTZ_OPENMENU=0X36,//打开球机菜单

EXTPTZ_CLOSEMENU,//关闭菜单

EXTPTZ_MENUOK,//菜单确定

EXTPTZ_MENUCANCEL,//菜单取消

EXTPTZ_MENUUP,//菜单上

EXTPTZ_MENUDOWN,//菜单下

EXTPTZ_MENULEFT,//菜单左

EXTPTZ_MENURIGHT,//菜单右

EXTPTZ_TOTAL,//最大命令值

}EXTPTZ_ControlType;

☞IO控制命令

typedefenum_IOTYPE{

ALARMINPUT=1,//报警输入

ALARMOUTPUT=2,//报警输出

}IOTYPE;

☞查询状态类型

#defineDH_DEVSTATE_COMM_ALARM0x0001//查询普通报警

#defineDH_DEVSTATE_SHELTER_ALARM0x0002//查询遮挡报警

#defineDH_DEVSTATE_RECORDING0x0003//查询录象状态

#defineDH_DEVSTATE_DISK0x0004//查询硬盘状态

☞错误类型代号,用于GetLastError函数的返回

#define_EC(x)(0x80000000|x)

#defineNET_NOERROR0//没有错误

#defineNET_ERROR-1//未知错误

#defineNET_SYSTEM_ERROR_EC

(1)//Windows系统出错

#defineNET_NETWORK_ERROR_EC

(2)//网络错误

#defineNET_DEV_VER_NOMATCH_EC(3)//设备协议不匹配

#defineNET_INVALID_HANDLE_EC(4)//句柄无效

#defineNET_OPEN_CHANNEL_ERROR_EC(5)//打开通道失败

#defineNET_CLOSE_CHANNEL_ERROR_EC(6)//关闭通道失败

#defineNET_ILLEGAL_PARAM_EC(7)//用户参数不合法

#defineNET_SDK_INIT_ERROR_EC(8)//SDK初始化出错

#defineNET_SDK_UNINIT_ERROR_EC(9)//SDK清理出错

#defineNET_RENDER_OPEN_ERROR_EC(10)//申请render资源出错

#defineNET_DEC_OPEN_ERROR_EC(11)//打开解码库出错

#defineNET_DEC_CLOSE_ERROR_EC(12)//关闭解码库出错

#defineNET_MULTIPLAY_NOCHANNEL_EC(13)//多画面预览中检测到通道数为0

#defineNET_TALK_INIT_ERROR_EC(14)//录音库初始化失败

#defineNET_TALK_NOT_INIT_EC(15)//录音库未经初始化

#defineNET_TALK_SENDDATA_ERROR_EC(16)//发送音频数据出错

#defineNET_REAL_ALREADY_SAVING_EC(17)//实时数据已经处于保存状态

#defineNET_NOT_SAVING_EC(18)//未保存实时数据

#defineNET_OPEN_FILE_ERROR_EC(19)//打开文件出错

#defineNET_PTZ_SET_TIMER_ERROR_EC(20)//启动云台控制定时器失败

#defineNET_RETURN_DATA_ERROR_EC(21)//对返回数据的校验出错

#defineNET_INSUFFICIENT_BUFFER_EC(22)//没有足够的缓存

#defineNET_NOT_SUPPORTED_EC(23)//当前SDK未支持该功能

#defineNET_NO_RECORD_FOUND_EC(24)//查询不到录象

#defineNET_NOT_AUTHORIZED_EC(25)//无操作权限

#defineNET_NOT_NOW_EC(26)//暂时无法执行

#defineNET_NO_TALK_CHANNEL_EC(27)//未发现对讲通道

#defineNET_NO_AUDIO_EC(28)//未发现音频

#defineNET_AUDIOENCODE_NOTINI_EC(59)//音频编码接口没有成功初始化

#defineNET_DATA_TOOLONGH_EC(60)//数据过长

#defineNET_LOGIN_ERROR_PASSWORD_EC(100)//密码不正确

#defineNET_LOGIN_ERROR_USER_EC(101)//帐户不存在

#defineNET_LOGIN_ERROR_TIMEOUT_EC(102)//等待登录返回超时

#defineNET_LOGIN_ERROR_RELOGGIN_EC(103)//帐号已登录

#defineNET_LOGIN_ERROR_LOCKED_EC(104)//帐号已被锁定

#defineNET_LOGIN_ERROR_BLACKLIST_EC(105)//帐号已被列为黑名单

#defineNET_LOGIN_ERROR_BUSY_EC(106)//资源不足,系统忙

#defineNET_LOGIN_ERROR_CONNECT_EC(107)//连接主机失败"

#defineNET_LOGIN_ERROR_NETWORK_EC(108)//网络连接失败"

#defineNET_RENDER_SOUND_ON_ERROR_EC(120)//Render库打开音频出错

#defineNET_RENDER_SOUND_OFF_ERROR_EC(121)//Render库关闭音频出错

#defineNET_RENDER_SET_VOLUME_ERROR_EC(122)//Render库控制音量出错

#defineNET_RENDER_ADJUST_ERROR_EC(123)//Render库设置画面参数出错

#defineNET_RENDER_PAUSE_ERROR_EC(124)//Render库暂停播放出错

#defineNET_RENDER_SNAP_ERROR_EC(125)//Render库抓图出错

#defineNET_RENDER_STEP_ERROR_EC(126)//Render库步进出错

#defineNET_RENDER_FRAMERATE_ERROR_EC(127)//Render库设置帧率出错

#defineNET_CONFIG_DEVBUSY_EC(999)//暂时无法设置

#defineNET_CON

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1