大华网络SDK开发手册_第1页
大华网络SDK开发手册_第2页
大华网络SDK开发手册_第3页
大华网络SDK开发手册_第4页
大华网络SDK开发手册_第5页
已阅读5页,还剩48页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大华网络 SDK 编程手册VERSION 3.1.8(Build 070321)2007-3-21版权所有侵权必究前言非常感谢您使用我们公司的设备,我们将为您提供最好的服务。本手册可能包含技术上不准确的地方或印刷错误,欢迎指正。我们将会定期更新手册的内容。修订记录日期修订内容作者2006-05-30创建林峰2006-7-3修订接口描述冯江2006-7-5修订概要描述华立高2006-7-26修订接口描述刘杰陈美英2006-8-10同步更新接口描述陈美英2006-8-21修订接口描述陈美英2006-8-23增加典型调用顺序描述陈美英2006-8-283.0.0整理修订陈美英2006-9-153.0

2、.5同步增加回调数据扩展接口,更新玄台控制说明陈美英2006-9-213.0.7同步增加登录扩展接口陈美英2006-9-293.0.9同步增加带有配置结构的配置功能接口说明陈美英2006-10-16增加单独修改通道名称的接口赵均树2006-10-21增加打开实时图像的扩展接口赵均树2006-10-281、增加按时间回放和下载接口2、增加设备配置的第三方接入和获取设备的序列号功能赵均树2006-11-81、带数据回调的按时间回放扩展接口2、带数据回调的按文件回放扩展接口3、远程重启接口4、录像回放能够播放首频赵均树、陈琼施2006-11-191、解决了反复修改第三方的IP地址时DVR比较容易死机

3、的问题2、增加485接口3、通过网络修改IP配置时DVR重启赵均树、陈琼施2006-11-271、增加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_GetDevConf

4、ig CLIENT_SetDevConfig林坚彦、陈琼施、 赵均树2007-3-7修改了 CLIENT_StopListen接口典型应用的笔误赵均树2007-03-19增加了个查询报警状态的接口。林坚彦、陈琼施2007-03-21增加了语音对讲中的音频编码接口增加了扩展报警侦听接口叶浩、陈琼施、林坚彦1简介1.1 概述1.2 适用性1.3 特色功能2设计原则2.1 编程说明2.2 典型调用顺序3数据结定义3.1 客户端数据结构 3.1.1 设备信息结构 3.1.2 21间信息3.1.3 录像文件信息 3.1.4 设备状态信息 3.1.5 系统配置信息结构4接口定义4.1 SDK初始化4.2

5、状态侦听4.3 字符叠加4.4 设备注册4.5 实时监视4.6 音频控制4.7 数据彳存4.8 视频抓图4.9 回放和下载4.10 回放控制4.11 玄台控制 4.12 实时预览4.13 系统配置4.14 日志管理4.15 透明串口 4.16 沅程控制4.17 录像捽制4.18 系统时间4.19 用户管理4.20 语音对讲错误!未指定书签。错误!未定义书签。错误!未定义书签。144.21 码流统计 4.22 IO 控制4.23 强制I帧4.24 设置限流4.25 获取设备状态4.26 修改通道名称 54.27 DDNS 查询 IP 4.28 设备参数配置5示例功能实现 5.1 连接设备5.2

6、报警信息获取5.3 系统配置5.4 实时监视5.5 数据彳存5.6 回放/下载和进度指示5.7 播放控制5.8 预览5.9 字符叠加1简介1.1 概述欢迎使用大华网络SDK编程手册,网络客户端软件开发包(DVR客户端SDK)是 大华网络硬盘录像机、网络视频服务器的配套产品,本文档详细描述了开发包中各个函 数实现的功能、接口及其函数之间的调用关系和示例实现。网络客户端软件开发包主要包括业务操作和设备管理两大部分:业务操作:状态侦听、实时监视、实时预览、字符叠加、音频控制、录像回放和下载、 数据保存、云台控制、语音对讲、透明用口、码流统计等功能。设备管理:远程升级、远程重启/关闭、设备参数配置(系

7、统通用配置、报警布/撤防设置、录像配置、串口配置、图像配置、日志管理、用户管理、设备校时、 动态检测配置、网络配置)等功能。开发包所包括的文件有:网络库:dhnetsdk.lib、dhnetsdk.dll、dhnetsdk.h解码库:decoded。、render.dll、dllh264.dll、audiorecord.dll、AudioRecordEx.dll、 avcodec.dll辅助库:dhdvr.dll、ParaTimer.dll、DetectAreaCtrl.ocx、SetDeviceConfigProj.ocx1.2 适用性支持所有大华网络硬盘录像机( DVR ) 、网络视频服务

8、器(NVS) 、网络报警服务器(NAS )只支持 TCP 网络传输模式客户端可以采用多种分辨率进行图像预览, 支持的分辨率包括: QCIF、CIF、2CIF、HalfDI、D1, VGA (640M80)等客户端支持多种图像编码,包括MPEG4 和 H.264 等1.3 特色功能支持设备的以下特色功能:多路预览在窄带条件下, 同时多路实时监视对带宽的要求比较高, 一般的处理情况有两种,其一,轮巡。其二,多路预览。所谓多路预览,就是在一个通道上把所有通道的数据组织在一起传输,等同于多路同时监视。必要的时候,可以转单路监视。大华DVR支持多路预览功能。支持标准的 MP4 数据一般情况下, 同一平台

9、集成不同厂商的前端设备 (如 DVR ) , 由于各厂商采用的视频压缩方法不同 (包括算法、参数定义等) ,导致解码端回放必须采用厂商特定的工具,造成平台开发商无法自定义播放标准。本SDK 能够解决这个问题。通过特定接口,应用层可以通过本 SDK获取标准媒体数据(FOURCC(D'、V'X视频数据) ,要支持用各种通用播放器播放,有了提供标准数据,应用层只须打包标准数据到播放器支持的容器类型(也就是文件格式,如 AVI 标准 )就可以了。2设计原则2.1编程说明初始化和消除1、使用网络客户端软件包首先调用CLIENT_Init()对系统进行初始化,应用程序退出时调用CLIENT

10、 Cleanup()释放所有启用的资源。2、大多数函数调用均应该在 CLIENT Init() 之后,CLIENT Cleanup。之前,除了少数函数,譬如 CLIENT_SetConnectTime() 在 CLIENT Init()之前调用,而CLIENT GetSDKVersion()可以在任何时候调用等等。操作句柄系统设计上多处使用了句柄概念,很多操作均针对句柄,如回放、下载以及语音 对讲等。用户登录和注销用户在访问前端设备之前必须通过调用CLIENT Login ()登录到前端设备上,登录成功后返回一个全局唯一的句柄。此句柄就像一个会话通道,之后该用户可通 过此句柄访问前端设备。退出

11、该会话时则通过CLIENT Logout()函数在前端设备上注销此句柄以终止该会话通道的使用。建立连接与登录是同步的。心跳功能在本开发包中提供自动心跳功能(20秒一次心跳)当设备断开能及时回调给客户端。同步与异步异步以设置回调函数来响应网络数据,有些异步在设置后返回请求句柄,结束 请求时将请求句柄提供给SDK以注销相关资源。SDK提供协议探测和转换回调函数一般都有dwUser参数,由用户自定义需要的数据,一般用来传入类对象指针 方便回调处理在类中实现,回调应用都可以采取这种方式。2.2典型调用顺序A.初始化SDK初始化CLIENT_Init()B. SDK功能设置或信息获取设置连接等待时间CL

12、IENT_SetConnectTime()获取SDK版本CLIENT_GetSDKVersion()设置消息回调CLIENT_SetDVRMessCallBack()设置自定义叠加画板CLIENT_RigisterDrawFun()C.登录连接设备登录设备CLIENT_Login()开始侦听CLIENT_StartListen()D.设备功能操作与信息获取系统配置CLIENT_QueryConfig()获取设备状态 获取协议信息 查询状取系统信息 查询通道名称 查询日志用户管理A成拄制语音对讲设置限流 透明串口CLIENT_SetupConfig() CLIENT_GetDEVWorkStat

13、e() 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()C

14、LIENT_CreateTransComChannel() CLIENT_SendTransComData()CLIENT_DestroyTransComChanne()实时监视通道打开监视通道保存监视图像数据 监视数据回调保存获取视频参数信息 设置修改视频参数 强制I帧CLIENT_RealPlay() CLIENT_RealPlayEx() CLIENT_SaveRealData() CLIENT_SetRealDataCallBack() CLIENT_SetRealDataCallBackEx() CLIENT_ClientGetVideoEffect() CLIENT_ClientS

15、etVideoEffect() CLIENT_MakeKeyFrame()E.F.多画面预览通道打开多回向预览CLIENT_MultiPlay()停止多回向预览CLIENT_StopMultiPlay()G.回放/下载通道查询录像CLIENT_QueryRecordFile()回放及控制CLIENT_PlayBackByRecordFile() CLIENT_PlayBackByRecordFileEx() CLIENT_PlayBackByTime() CLIENT_PlayBackByTimeEx()CLIENT_GetPlayBackOsdTime() CLIENT_PausePlayB

16、ack() 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

17、.针对显示图像的操作(监视/回放/多画面预览)抓图CLIENT_CapturePicture()码流统计CLIENT_GetStatiscFlux()打开音频CLIENT_OpenSound()攻直日里CLIENT_SetVolume()I.远程控制远程升级CLIENT_StartUpgrade录像控制CLIENT_SendUpgrade CLIENT_StopUpgrade CLIENT_QueryRecordState系统校时CLIENT_SetupRecordStateCLIENT_QueryDeviceTimeIO控制CLIENT_SetupDeviceTimeCLIENT Query

18、IOControlStateCLIENT_IOControlJ.注销断开设备停止侦听CLIENT_StopListen()断开连接CLIENT_Logout()K.释放SDK资源SDK 退出CLIENT_Cleanup()对D E、F、G T I中的功能大部分之间没有调用先后顺序,当然对同一个功能还是 应该按先打开再操作最后关闭的顺序。3数据结构定义3.1客户端数据结构通用云台控制命令typedef enum _PTZ_ControlType PTZ_UP_CONTROL = 0,/上PTZ_DOWN_CONTROL,/下PTZ_LEFT_CONTROL,/左PTZ_RIGHT_CONTROL

19、,/右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_Con

20、trolType云台控制扩展命令typedef enum _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_CL

21、OSELINESCAN, EXTPTZ_SETMODESTART, EXTPTZ_SETMODESTOP,EXTPTZ_RUNMODE, EXTPTZ_STOPMODE, EXTPTZ_DELETEMODE, EXTPTZ_REVERSECOMM, EXTPTZ_FASTGOTO, EXTPTZ_AUXIOPEN, EXTPTZ_AUXICLOSE, EXTPTZ_OPENMENU = 0X36, EXTPTZ_CLOSEMENU , EXTPTZ_MENUOK, EXTPTZ_MENUCANCEL, EXTPTZ_MENUUP, EXTPTZ_MENUDOWN, EXTPTZ_MENULEF

22、T, EXTPTZ_MENURIGHT, EXTPTZ_TOTAL, EXTPTZ_ControlType ;IO控制命令typedef enum _IOTYPE ALARMINPUT = 1, ALARMOUTPUT = 2, IOTYPE ;查 询状态类型/ 左上/ 右上/ 左下/ 右下/加入预置点到巡航巡航线路预置点值/删除巡航中预置点巡航线路预置点值/ 清除巡航 巡航线路/开始水平旋转/停止水平旋转/设置左边界/设置右边界/开始线扫/停止线扫/设置模式开始模式线路/设置模式结束模式线路/运行模式模式线路/停止模式模式线路/清除模式模式线路/翻转命令/ 快速定位 水平坐标垂直坐标变倍/

23、x34 辅助开关开辅助点/ 0x35 辅助开关关辅助点/ 打开球机菜单/ 关闭菜单/ 菜单确定/ 菜单取消/ 菜单上/ 菜单下/ 菜单左/ 菜单右/ 最大命令值/ 报警输入/ 报警输出0x0001/ 查询普通报警#define DH_DEVSTATE_COMM_ALARM#defineDH_DEVSTATE_SHELTER_ALARM0x0002/查询遮挡报警#defineDH_DEVSTATE_RECORDING0x0003/查询录象状态#defineDH_DEVSTATE_DISK0x0004/查询硬盘状态错误类型代号,用于 GetLastError 函数的返回#define _EC(x)

24、#define NET_NOERROR0/没有错误#define NET_ERROR-1/未知错误#define NET_SYSTEM_ERROR_EC(1)/Windows 系统出错#define NET_NETWORK_ERROR_EC(2)/网络错误#define NET_DEV_VER_NOMATCH_EC(3)/设备协议不匹配#define NET_INVALID_HANDLE_EC(4)/句柄无效#define NET_OPEN_CHANNEL_ERROR_EC(5)/打开通道失败#define NET_CLOSE_CHANNEL_ERROR_EC(6)/关闭通道失败#define

25、 NET_ILLEGAL_PARAM_EC(7)/用户参数不合法#define NET_SDK_INIT_ERROR_EC(8)/SDK 初始化出错#define NET_SDK_UNINIT_ERROR_EC(9)/SDK 清理出错#define NET_RENDER_OPEN_ERROR_EC(10)/申请 render 资源出错#define NET_DEC_OPEN_ERROR_EC(11)/打开解码库出错#define NET_DEC_CLOSE_ERROR_EC(12)/关闭解码库出错#define NET_MULTIPLAY_NOCHANNEL_EC(13)/多画面预览中检测到通

26、道数为0#define NET_TALK_INIT_ERROR_EC(14)/录音库初始化失败#define NET_TALK_NOT_INIT_EC(15)/录音库未经初始化#defineNET_TALK_SENDDATA_ERROR_EC(16)/发送音频数据出错#define NET_REAL_ALREADY_SAVING_EC(17)/实时数据已经处于保存状态#define NET_NOT_SAVING_EC(18)/未保存实时数据#define NET_OPEN_FILE_ERROR_EC(19)/打开文件出错#define NET_PTZ_SET_TIMER_ERROR_EC(20

27、)/启动云台控制定时器失败#define NET_RETURN_DATA_ERROR_EC(21)/对返回数据的校验出错#define NET_INSUFFICIENT_BUFFER_EC(22)/没有足够的缓存#define NET_NOT_SUPPORTED_EC(23)/当前SDK未支持该功能#define NET_NO_RECORD_FOUND_EC(24)/查询不到录象#define NET_NOT_AUTHORIZED_EC(25)/无操作权限#define NET_NOT_NOW_EC(26)/暂时无法执行#define NET_NO_TALK_CHANNEL_EC(27)/未发

28、现对讲通道#define NET_NO_AUDIO_EC(28)/未发现音频#define NET_AUDIOENCODE_NOTINI_EC(59)/音频编码接口没有成功初始化#define NET_DATA_TOOLONGH_EC(60)/数据过长#define NET_LOGIN_ERROR_PASSWORD_EC(100)/密码不正确#define NET_LOGIN_ERROR_USER_EC(101)/帐户不存在#define NET_LOGIN_ERROR_TIMEOUT_EC(102)/等待登录返回超时#define NET_LOGIN_ERROR_RELOGGIN_EC(10

29、3)/帐号已登录#define NET_LOGIN_ERROR_LOCKED#define NET_LOGIN_ERROR_BLACKLIST#define NET_LOGIN_ERROR_BUSY#define NET_LOGIN_ERROR_CONNECT#define NET_LOGIN_ERROR_NETWORK#define NET_RENDER_SOUND_ON_ERROR#define NET_RENDER_SOUND_OFF_ERROR#define NET_RENDER_SET_VOLUME_ERROR#define NET_RENDER_ADJUST_ERROR#defin

30、e NET_RENDER_PAUSE_ERROR#define NET_RENDER_SNAP_ERROR#define NET_RENDER_STEP_ERROR#define NET_RENDER_FRAMERATE_ERROR#define NET_CONFIG_DEVBUSY#define NET_CONFIG_DATAILLEGAL_EC(104)/帐号已被锁定_EC(105)/帐号已被列为黑名单_EC(106)/资源不足,系统忙,系统忙_EC(107)/连接主机失败"_EC(108)/网络连接失败"_EC(120)/Render库打开音频出错_EC(121)/R

31、ender库关闭音频出错_EC(122)/Render库控制音量出错_EC(123)/Render库设置画面参数出错_EC(124)/Render库暂停播放出错_EC(125)/Render库抓图出错_EC(126)/Render库步进出错_EC(127)/Render库设置帧率出错_EC(999)/暂时无法设置_EC(1000)/配置数据不合法/ 非实时 MACE/ 非实时/ 网络视频服务器/ MPEG1 二路录像机/ MPEG1 八路录像机/ MPEG4 八路录像机/ MPEG4 十六路录像机/ MPEG4 视新十六路录像机/ MPEG4 视通录像机/ MPEG4 视豪录像机/ MPEG4

32、 视通二代增强型录像机/ MPEG4 网络视频服务器II代/ 新标准配置协议/DDNS服务器调函数类型#define COMM_ALARM0x1100/ 常规报警信息#define SHELTER_ALARM0x1101/ 视频遮挡报警#define DISK_FULL_ALARM0X1102/ 硬盘满报警#define DISK_ERROR_ALARM0x1103/ 硬盘故障报警#define SOUND_DETECT_ALARM0x1104/ 音频检测报警设备型号 (DVR 类型 )enum NET_DEVICE_TYPE NET_PRODUCT_NONE = 0, NET_DVR_NON

33、REALTIME_MACE, NET_DVR_NONREALTIME, NET_NVS_MPEG1, NET_DVR_MPEG1_2, NET_DVR_MPEG1_8, NET_DVR_MPEG4_8, NET_DVR_MPEG4_16,NET_DVR_MPEG4_SX2, NET_DVR_MEPG4_ST2, NET_DVR_MEPG4_SH2, NET_DVR_MPEG4_GBE,NET_DVR_MPEG4_NVSII, NET_DVR_STD_NEW, NET_DVR_DDNS,;3.1.1 设备信息结构设 备结构定义如下typedef struct BYTE sSerialNumber

34、SERIALNO_LEN;BYTE byAlarmInPortNum;BYTE byAlarmOutPortNum ;BYTE byDiskNum ;BYTE byDVRType ;BYTE byChanNum ; NET_DEVICEINFO, *LPNET_DEVICEINFO;3.1.2 时间信息typedef struct DWORD dwYear ;DWORD dwMonth ;DWORDdwDay ;DWORD dwHour;DWORD dwMinute ;DWORD dwSecond ; NET_TIME,*LPNET_TIME;3.1.3 录像文件信息typedef struc

35、t unsigned intch ;charfilename128;unsigned intsize ;NET_TIMEstarttime;NET_TIMEendtime;unsigned intdriveno;unsigned intstartcluster; NET_RECORDFILE_INFO, *LPNET_RECORDFILE3.1.4 设备状态信息设 备端通过回调主动上传的设备状态结构typedef struct intchannelcount;intalarminputcount;unsigned chardiskerrorMAX_DISKNUMunsigned char *r

36、ecord ;/ 序列号/DVR 报警输入个数/DVR 报警输出个数/DVR 硬盘个数/DVR 类型 ,/DVR 通道个数/ 年/ 月/ 日/ 时/ 分/ 秒/ 通道号/ 文件名/ 文件长度/ 开始时间/ 结束时间/ 磁盘号/ 起始簇号_INFO;/size:channelcountunsigned char *alarm ;/size:alarminputcountunsigned char *motiondection;unsigned char *videolost ; NET_CLIENT_STATE ;/size:channelcount/size:channelcount下为查询的

37、设备工作状态的相关结构typedef struct BYTE byRecordStatic;/BYTE bySignalStatic;/BYTE byHardwareStatic ;/char reserve;/DWORD dwBitRate;/DWORD dwLinkNum;/DWORD dwClientIPMAX_LINK ;/通道是否在录像,0- 不录像 ,1- 录像连接的信号状态,0- 正常 ,1- 信号丢失通道硬件状态,0- 正常 ,1- 异常 , 例如 DSP 死掉暂时无效实际码率 , 暂时无效客户端连接的个数, 暂时无效客户端的 IP 地址 , 暂时无效 NET_DEV_CHAN

38、NELSTATE,*LPNET_DEV_CHANNELSTATE;/ 硬盘的容量/ 硬盘的剩余空间/ 硬盘的状态, 休眠 , 活动 , 不正常等typedef struct DWORD dwVolume ;DWORD dwFreeSpace ;DWORD dwStatus ; NET_DEV_DISKSTATE,*LPNET_DEV_DISKSTATE;typedef structDWORD dwDeviceStatic ; / 设备状态 0x00 正常 ,0x01 CPU 占用过高 , 0x02 硬件错误NET_DEV_DISKSTATE stHardDiskStaticMAX_DISKNU

39、M;/ 设备暂时不支持NET_DEV_CHANNELSTATE stChanStaticMAX_CHANNUM ;/ 通道的状态BYTE byAlarmInStaticMAX_ALARMIN; / 报警端口的状态0- 无报警 ,1- 有报警BYTE byAlarmOutStaticMAX_ALARMOUT ;/ 报警输出端口的状态0- 无输出 ,1- 有输出DWORD dwLocalDisplay ;/ 本地显示状态0- 正常 ,1- 不正常 NET_DEV_WORKSTATE,*LPNET_DEV_WORKSTATE ;录 像文件信息typedef struct unsigned intch

40、 ;/ 通道号charfilename128;/ 文件名unsigned intsize ;/ 文件长度NET_TIMEstarttime ;/ 开始时间NET_TIMEendtime ;/ 结束时间unsigned intdriveno ;/ 磁盘号unsigned intstartcluster;/ 起始簇号 NET_RECORDFILE_INFO, *LPNET_RECORDFILE_INFO;口协议信息 (232 和 485)typedef struct charprotocolname12;/协议名unsigned intbaudbase ;/波特率unsigned chardata

41、bits ;/数据位unsigned charstopbits ;/停止位unsigned charparity ;/校验位unsigned charreserve ; PROTOCOL_INFO,*LPPROTOCOL_INFO ;报警 IO 控制 (报警输出和报警输入使能 )typedef struct unsigned shortindex ;/端口序号unsigned shortstate ;/端口状态 ALARM_CONTROL;用 户管理功能数据结构用 户管理功能数据结构#define MAX_RIGHT_NUM100#define MAX_GROUP_NUM20#define M

42、AX_USER_NUM200#define RIGHT_NAME_LENGTH32#define USER_NAME_LENGTH8#define USER_PSW_LENGTH8#define MEMO_LENGTH32typedef struct DWORD dwID ;charnameRIGHT_NAME_LENGTH ;charmemoMEMO_LENGTH ; OPR_RIGHT ;typedef struct DWORDdwID ;DWORDdwGroupID ;charnameUSER_NAME_LENGTH ;charpassWordUSER_PSW_LENGTH ;DWORD

43、dwRightNum ;DWORDrightsMAX_RIGHT_NUM;charmemoMEMO_LENGTH; USER_INFO ;typedef struct DWORDdwID ;charnameUSER_NAME_LENGTH ;DWORDdwRightNum ;DWORDrightsMAX_RIGHT_NUM;charmemoMEMO_LENGTH; USER_GROUP_INFO ;SDK 返回的用户信息结构typedef struct DWORD OPR_RIGHT DWORDUSER_GROUP_INFODWORDUSER_INFO USER_MANAGE_INFO ;dw

44、RightNum ;rightListMAX_RIGHT_NUM dwGroupNum;groupListMAX_GROUP_NUM dwUserNum ;userListMAX_USER_NUM日 志信息1. 日志的结构形式/ 时间结构typedef struct _DHTIMEDWORD second:6;/秒1-60DWORD minute:6;/分1-60DWORD hour:5;/时1-24DWORD day:5;/日1-31DWORD month:4;/月1-12DWORD year:6;/年2000-2063 DHTIME,*pDHTIME ;/ 日志结构struct LOG_I

45、TEMDHTIME time;/ 日期接口文档 数字视频录像机网络服务编程手册公开WORDtype;/ 类型BYTEflag;/ 标记 , 0x00 正常, 0x01 扩展, 0x02 数据BYTEdata;/ 数据BYTEcontext8;/ 内容;2. 日志的类型enum dh_log_t LOG_REBOOT = 0x0000,/system logsLOG_SHUT, LOG_CONFSAVE = 0x0100,/config logsLOG_CONFLOAD,LOG_FSERROR = 0x0200,/文件系统错误LOG_HDD_WERR,/硬盘写错误LOG_HDD_RERR,/硬盘

46、读错误LOG_HDD_TYPE,/ 设置硬盘类型LOG_HDD_FORMAT, LOG_ALM_IN = 0x0300, /record/格式化硬盘/alarm logsLOG_MANUAL_RECORD_START = 0x0400, LOG_MANUAL_RECORD_STOP, /user manager LOG_LOGIN = 0x0500, LOG_LOGOUT, LOG_ADD_USER, LOG_DELETE_USER, LOG_MODIFY_USER, LOG_ADD_GROUP, LOG_DELETE_GROUP, LOG_MODIFY_GROUP, /clearLOG_CL

47、EAR = 0x0600, /record operation LOG_DOWNLOAD, LOG_PLAYBACK, LOG_TYPE_NR = 8, ;3.数据组织向客户端传递所有日志信息,长度为/录像下载/录像回放N*日志结构长度,N为日志的条数。查询硬盘信息的返回数据结构typedef structDWORD dwDiskNum;/ 硬盘个数NET_DEV_DISKSTATE stDisksDH_MAX_DISKNUM; DH_HARDDISK_STATE,*LPDH_HARDDISK_STATE ;各硬盘信息音频数据的格式结构Typedef structBYTE byFormatTa

48、g;WORD nChannels;WORD wBitsPerSample;DWORD nSamplesPerSec;/编码类型,0-PCM/声道数/采样深度/采样率 DH_AUDIO_FORMAT, *LPDH_AUDIO_FORMAT3.1.5系统配置信息结构目前提供了配置控件的方式配置设备4接口定义4.1 SDK初始化1. CLIENT_API DWORD CALL_METHOD CLIENT_GetLastError(void);函数说明:返回函数执行失败代码,当调用下面的接口失败时,可以用该函数获取失败的代码,具体错误代码参见 错误类型代号说明参数说明:返回值:返回相关函数:典型应用:

49、参加demotypedef void (CALLBACK *fDisConnect)(LONG lLoginID, char *pchDVRIP, LONG nDVRPort, DWORD dwUser);2. CLIENT_API BOOL CLIENT_Init(fDisConnectcbDisConnect,DWORD dwUser);函数说明:初始化SDK,在所有的SDK函数之前调用参数说明:cbDisConnect断线回调函数,回调出当前网络已经断开的设备,对主动断开的设备不回调;设置为0时禁止回调dwUser用户数据回调函数参数说明:lLoginIDCLIENT Login 的返回

50、值pchDVRIP设备IPnDVRPort端口dwUser用户数据,就是上面输入的用户数据返回值:成功返回TRUE,不成功返回FALSE相关函数:CLIENT Cleanup典型应用:在应用程序初始化时调用3. CLIENT_API void CLIENT_Cleanup();函数说明:清空SDK,释放占用的资源,在所有的 SDK函数之后调用。参数:无返回值:无相关函数:CLIENT Init典型应用:在应用程序关闭时调用4. CLIENT_API void CLIENT_SetConnectTime(int nWaitTime, int nTryTimes);函数说明:设置与设备的连接等待时间调用顺序无关,SDK默认值为3000ms对外网一般需要增加到5000ms此值 不影响设备连接速度,只有当网络状态不好时延长等待时间,可以提高连接成 功几率。参数说明:nWaitTime连接等待时间,毫秒级nTryTimes连接次数,暂时为无效值返回值:无相关函数:CLIENT Login典型应用:一般在应用程序初始化时调用5. CLIENT_API DWORD CLIENT_GetSDKVersion();函数说明:得到SDK的版本号参数:无返回值:版本号典型应用:一般在应用程序初始化时调用4.2 状态侦听type

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论