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

下载本文档

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

文档简介

精品实用文档感谢下载载大华网络SDK编程手册VERSION3.1.8(Build070321)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.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-19解决了反复修改第三方的IP地址时DVR比较容易死机的问题增加485接口通过网络修改IP配置时DVR重启赵均树、陈琼施2006-11-27增加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简介 71.1概述 71.2适用性 71.3特色功能 82设计原则 92.1编程说明 92.2典型调用顺序 103数据结构定义 133.1客户端数据结构 133.1.1设备信息结构 163.1.2时间信息 163.1.3录像文件信息 173.1.4设备状态信息 173.1.5系统配置信息结构 214接口定义 214.1SDK初始化 214.2状态侦听 234.3字符叠加 254.4设备注册 264.5实时监视 274.6音频控制 314.7数据保存 324.8视频抓图 354.9回放和下载 364.10回放控制 464.11云台控制 494.12实时预览 514.13系统配置 524.14日志管理 574.15透明串口 584.16远程控制 604.17录像控制 624.18系统时间 634.19用户管理 634.20语音对讲 654.21码流统计 694.22IO控制 704.23强制I帧 714.24设置限流 714.25获取设备状态 724.26修改通道名称 724.27DDNS查询IP 734.28设备参数配置 735示例功能实现 875.1连接设备 885.2报警信息获取 885.3系统配置 885.4实时监视 885.5数据保存 895.6回放/下载和进度指示 895.7播放控制 895.8预览 895.9字符叠加 89简介概述欢迎使用大华网络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适用性支持所有大华网络硬盘录像机(DVR)、网络视频服务器(NVS)、网络报警服务器(NAS)只支持TCP网络传输模式客户端可以采用多种分辨率进行图像预览,支持的分辨率包括:QCIF、CIF、2CIF、、HalfD1、D1,VGA(640×480)等客户端支持多种图像编码,包括MPEG4和H.264等特色功能支持设备的以下特色功能:多路预览在窄带条件下,同时多路实时监视对带宽的要求比较高,一般的处理情况有两种,其一,轮巡。其二,多路预览。所谓多路预览,就是在一个通道上把所有通道的数据组织在一起传输,等同于多路同时监视。必要的时候,可以转单路监视。大华DVR支持多路预览功能。支持标准的MP4数据一般情况下,同一平台集成不同厂商的前端设备(如DVR),由于各厂商采用的视频压缩方法不同(包括算法、参数定义等),导致解码端回放必须采用厂商特定的工具,造成平台开发商无法自定义播放标准。本SDK能够解决这个问题。通过特定接口,应用层可以通过本SDK获取标准媒体数据(FOURCC(‘D’、‘I’、‘V’、‘X’)视频数据),要支持用各种通用播放器播放,有了提供标准数据,应用层只须打包标准数据到播放器支持的容器类型(也就是文件格式,如AVI标准)就可以了。

设计原则编程说明初始化和清除1、使用网络客户端软件包首先调用HYPERLINKCLIENT_Init()对系统进行初始化,应用程序退出时调用HYPERLINKCLIENT_Cleanup()释放所有占用的资源。2、大多数函数调用均应该在HYPERLINKCLIENT_Init()之后,HYPERLINKCLIENT_Cleanup()之前,除了少数函数,譬如CLIENT_SetConnectTime()在HYPERLINKCLIENT_Init()之前调用,而HYPERLINKCLIENT_GetSDKVersion()可以在任何时候调用等等。操作句柄系统设计上多处使用了句柄概念,很多操作均针对句柄,如回放、下载以及语音对讲等。用户登录和注销用户在访问前端设备之前必须通过调用HYPERLINKCLIENT_Login()登录到前端设备上,登录成功后返回一个全局唯一的句柄。此句柄就像一个会话通道,之后该用户可通过此句柄访问前端设备。退出该会话时则通过HYPERLINKCLIENT_Logout()函数在前端设备上注销此句柄以终止该会话通道的使用。建立连接与登录是同步的。心跳功能在本开发包中提供自动心跳功能(20秒一次心跳)当设备断开能及时回调给客户端。同步与异步异步以设置回调函数来响应网络数据,有些异步在设置后返回请求句柄,结束请求时将请求句柄提供给SDK以注销相关资源。SDK提供协议探测和转换回调函数一般都有dwUser参数,由用户自定义需要的数据,一般用来传入类对象指针,方便回调处理在类中实现,回调应用都可以采取这种方式。典型调用顺序初始化SDK初始化CLIENT_Init()SDK功能设置或信息获取设置连接等待时间CLIENT_SetConnectTime()获取SDK版本CLIENT_GetSDKVersion()设置消息回调CLIENT_SetDVRMessCallBack()设置自定义叠加画板CLIENT_RigisterDrawFun()登录连接设备登录设备CLIENT_Login()开始侦听CLIENT_StartListen()设备功能操作与信息获取系统配置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()实时监视通道打开监视通道CLIENT_RealPlay()CLIENT_RealPlayEx()保存监视图像数据CLIENT_SaveRealData()监视数据回调保存CLIENT_SetRealDataCallBack()CLIENT_SetRealDataCallBackEx()获取视频参数信息CLIENT_ClientGetVideoEffect()设置修改视频参数CLIENT_ClientSetVideoEffect()强制I帧CLIENT_MakeKeyFrame()多画面预览通道打开多画面预览CLIENT_MultiPlay()停止多画面预览CLIENT_StopMultiPlay()回放/下载通道查询录像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()针对显示图像的操作(监视/回放/多画面预览)抓图CLIENT_CapturePicture()码流统计CLIENT_GetStatiscFlux()打开音频CLIENT_OpenSound()设置音量CLIENT_SetVolume()远程控制远程升级CLIENT_StartUpgradeCLIENT_SendUpgradeCLIENT_StopUpgrade录像控制CLIENT_QueryRecordStateCLIENT_SetupRecordState系统校时CLIENT_QueryDeviceTimeCLIENT_SetupDeviceTimeIO控制CLIENT_QueryIOControlStateCLIENT_IOControl注销断开设备停止侦听CLIENT_StopListen()断开连接CLIENT_Logout()释放SDK资源SDK退出CLIENT_Cleanup()对D、E、F、G、H、I中的功能大部分之间没有调用先后顺序,当然对同一个功能还是应该按先打开再操作最后关闭的顺序。 数据结构定义客户端数据结构通用云台控制命令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_ALARM 0x0001 //查询普通报警#defineDH_DEVSTATE_SHELTER_ALARM 0x0002 //查询遮挡报警#defineDH_DEVSTATE_RECORDING 0x0003 //查询录象状态#defineDH_DEVSTATE_DISK 0x0004 //查询硬盘状态错误类型代号,用于GetLastError函数的返回#define_EC(x) (0x80000000|x)#defineNET_NOERROR 0 //没有错误#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) //录音库未经初始化#define NET_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_CONFIG_DATAILLEGAL _EC(1000) //配置数据不合法回调函数类型#defineCOMM_ALARM 0x1100 //常规报警信息#defineSHELTER_ALARM 0x1101 //视频遮挡报警#defineDISK_FULL_ALARM 0X1102 //硬盘满报警#defineDISK_ERROR_ALARM 0x1103 //硬盘故障报警#defineSOUND_DETECT_ALARM 0x1104 //音频检测报警设备型号(DVR类型)enumNET_DEVICE_TYPE{ NET_PRODUCT_NONE=0, NET_DVR_NONREALTIME_MACE, //非实时MACE NET_DVR_NONREALTIME, //非实时 NET_NVS_MPEG1, //网络视频服务器 NET_DVR_MPEG1_2, //MPEG1二路录像机 NET_DVR_MPEG1_8, //MPEG1八路录像机 NET_DVR_MPEG4_8, //MPEG4八路录像机 NET_DVR_MPEG4_16, //MPEG4十六路录像机 NET_DVR_MPEG4_SX2, //MPEG4视新十六路录像机 NET_DVR_MEPG4_ST2, //MPEG4视通录像机 NET_DVR_MEPG4_SH2, //MPEG4视豪录像机 NET_DVR_MPEG4_GBE, //MPEG4视通二代增强型录像机 NET_DVR_MPEG4_NVSII, //MPEG4网络视频服务器II代 NET_DVR_STD_NEW, //新标准配置协议 NET_DVR_DDNS, // DDNS服务器};设备信息结构设备结构定义如下typedefstruct{ BYTEsSerialNumber[SERIALNO_LEN]; //序列号 BYTEbyAlarmInPortNum; //DVR报警输入个数 BYTEbyAlarmOutPortNum; //DVR报警输出个数 BYTEbyDiskNum; //DVR硬盘个数 BYTEbyDVRType; //DVR类型, BYTEbyChanNum; //DVR通道个数}NET_DEVICEINFO,*LPNET_DEVICEINFO;时间信息typedefstruct{ DWORDdwYear; //年 DWORDdwMonth; //月 DWORDdwDay; //日 DWORDdwHour; //时 DWORDdwMinute; //分 DWORDdwSecond; //秒}NET_TIME,*LPNET_TIME;录像文件信息typedefstruct{unsignedint ch; //通道号char filename[128]; //文件名unsignedint size; //文件长度NET_TIME starttime; //开始时间NET_TIME endtime; //结束时间unsignedint driveno; //磁盘号unsignedint startcluster; //起始簇号}NET_RECORDFILE_INFO,*LPNET_RECORDFILE_INFO;设备状态信息设备端通过回调主动上传的设备状态结构typedefstruct{int channelcount;int alarminputcount;unsignedchardiskerror[MAX_DISKNUM];unsignedchar*record; //size:channelcountunsignedchar*alarm; //size:alarminputcountunsignedchar*motiondection; //size:channelcountunsignedchar*videolost; //size:channelcount}NET_CLIENT_STATE;以下为查询的设备工作状态的相关结构typedefstruct{ BYTEbyRecordStatic; //通道是否在录像,0-不录像,1-录像 BYTEbySignalStatic; //连接的信号状态,0-正常,1-信号丢失 BYTEbyHardwareStatic; //通道硬件状态,0-正常,1-异常,例如DSP死掉 charreserve; //暂时无效 DWORDdwBitRate; //实际码率,暂时无效 DWORDdwLinkNum; //客户端连接的个数,暂时无效 DWORDdwClientIP[MAX_LINK]; //客户端的IP地址,暂时无效}NET_DEV_CHANNELSTATE,*LPNET_DEV_CHANNELSTATE;typedefstruct{ DWORDdwVolume; //硬盘的容量 DWORDdwFreeSpace; //硬盘的剩余空间 DWORDdwStatus; //硬盘的状态,休眠,活动,不正常等}NET_DEV_DISKSTATE,*LPNET_DEV_DISKSTATE;typedefstruct{ DWORDdwDeviceStatic;//设备状态0x00正常,0x01CPU占用过高,0x02硬件错误 NET_DEV_DISKSTATEstHardDiskStatic[MAX_DISKNUM]; //设备暂时不支持 NET_DEV_CHANNELSTATEstChanStatic[MAX_CHANNUM]; //通道的状态 BYTEbyAlarmInStatic[MAX_ALARMIN];//报警端口的状态0-无报警,1-有报警BYTEbyAlarmOutStatic[MAX_ALARMOUT];//报警输出端口的状态0-无输出,1-有输出 DWORDdwLocalDisplay; //本地显示状态0-正常,1-不正常}NET_DEV_WORKSTATE,*LPNET_DEV_WORKSTATE;录像文件信息typedefstruct{unsignedint ch; //通道号char filename[128]; //文件名unsignedint size; //文件长度NET_TIMEstarttime; //开始时间NET_TIMEendtime; //结束时间unsignedintdriveno; //磁盘号unsignedintstartcluster; //起始簇号}NET_RECORDFILE_INFO,*LPNET_RECORDFILE_INFO;串口协议信息(232和485)typedefstruct{ char protocolname[12]; //协议名 unsignedint baudbase; //波特率 unsignedchar databits; //数据位 unsignedchar stopbits; //停止位 unsignedchar parity; //校验位 unsignedcharreserve;}PROTOCOL_INFO,*LPPROTOCOL_INFO;报警IO控制(报警输出和报警输入使能)typedefstruct{ unsignedshortindex; //端口序号 unsignedshortstate; //端口状态}ALARM_CONTROL;用户管理功能数据结构#defineMAX_RIGHT_NUM 100#defineMAX_GROUP_NUM 20#defineMAX_USER_NUM 200#defineRIGHT_NAME_LENGTH 32#defineUSER_NAME_LENGTH 8#defineUSER_PSW_LENGTH 8#defineMEMO_LENGTH 32typedefstruct{ DWORD dwID; char name[RIGHT_NAME_LENGTH]; char memo[MEMO_LENGTH];}OPR_RIGHT;typedefstruct{ DWORD dwID; DWORD dwGroupID; char name[USER_NAME_LENGTH]; char passWord[USER_PSW_LENGTH]; DWORD dwRightNum; DWORD rights[MAX_RIGHT_NUM]; char memo[MEMO_LENGTH];}USER_INFO;typedefstruct{ DWORD dwID; char name[USER_NAME_LENGTH]; DWORD dwRightNum; DWORD rights[MAX_RIGHT_NUM]; char memo[MEMO_LENGTH];}USER_GROUP_INFO;SDK返回的用户信息结构typedefstruct{ DWORD dwRightNum; OPR_RIGHT rightList[MAX_RIGHT_NUM]; DWORD dwGroupNum; USER_GROUP_INFO groupList[MAX_GROUP_NUM]; DWORD dwUserNum; USER_INFO userList[MAX_USER_NUM];}USER_MANAGE_INFO;日志信息1.日志的结构形式//时间结构typedefstruct_DHTIME { DWORDsecond :6; // 秒 1-60 DWORDminute :6; // 分 1-60 DWORDhour :5; // 时 1-24 DWORDday :5; // 日 1-31 DWORDmonth :4; // 月 1-12 DWORDyear :6; // 年 2000-2063 }DHTIME,*pDHTIME;//日志结构structLOG_ITEM{DHTIMEtime; //日期接口文档数字视频录像机网络服务编程手册公开WORD type; //类型BYTE flag; //标记,0x00正常,0x01扩展,0x02数据BYTE data; //数据BYTE context[8]; //内容};2.日志的类型enumdh_log_t{LOG_REBOOT=0x0000, //systemlogsLOG_SHUT,LOG_CONFSAVE=0x0100, //configlogsLOG_CONFLOAD,LOG_FSERROR=0x0200, //文件系统错误LOG_HDD_WERR, //硬盘写错误LOG_HDD_RERR, //硬盘读错误LOG_HDD_TYPE, //设置硬盘类型LOG_HDD_FORMAT, //格式化硬盘LOG_ALM_IN=0x0300, //alarmlogs//recordLOG_MANUAL_RECORD_START=0x0400,LOG_MANUAL_RECORD_STOP,//usermanagerLOG_LOGIN=0x0500,LOG_LOGOUT,LOG_ADD_USER,LOG_DELETE_USER,LOG_MODIFY_USER,LOG_ADD_GROUP,LOG_DELETE_GROUP,LOG_MODIFY_GROUP,//clearLOG_CLEAR=0x0600,//recordoperationLOG_DOWNLOAD, //录像下载LOG_PLAYBACK, //录像回放LOG_TYPE_NR=8,};3.数据组织向客户端传递所有日志信息,长度为N*日志结构长度,N为日志的条数。查询硬盘信息的返回数据结构typedefstruct{ DWORD dwDiskNum; //硬盘个数 NET_DEV_DISKSTATE stDisks[DH_MAX_DISKNUM];//各硬盘信息}DH_HARDDISK_STATE,*LPDH_HARDDISK_STATE;音频数据的格式结构Typedefstruct{ BYTE byFormatTag; //编码类型,0-PCM WORD nChannels; //声道数 WORD wBitsPerSample; //采样深度 DWORD nSamplesPerSec; //采样率}DH_AUDIO_FORMAT,*LPDH_AUDIO_FORMAT;系统配置信息结构目前提供了配置控件的方式配置设备接口定义SDK初始化CLIENT_APIDWORDCALL_METHODCLIENT_GetLastError(void);函数说明:返回函数执行失败代码,当调用下面的接口失败时,可以用该函数获取失败的代码,具体错误代码参见HYPERLINK错误类型代号说明参数说明:返回值:返回相关函数:典型应用:参加demotypedefvoid(CALLBACK*fDisConnect)(LONGlLoginID,char*pchDVRIP,LONGnDVRPort,DWORDdwUser);CLIENT_APIBOOLCLIENT_Init(fDisConnectcbDisConnect,DWORDdwUser);函数说明:初始化SDK,在所有的SDK函数之前调用参数说明:cbDisConnect断线回调函数,回调出当前网络已经断开的设备,对主动断开的设备不回调;设置为0时禁止回调dwUser用户数据回调函数参数说明:lLoginIDHYPERLINKCLIENT_Login的返回值pchDVRIP设备IPnDVRPort端口dwUser用户数据,就是上面输入的用户数据返回值:成功返回TRUE,不成功返回FALSE相关函数:HYPERLINKCLIENT_Cleanup典型应用:在应用程序初始化时调用CLIENT_APIvoidCLIENT_Cleanup();函数说明:清空SDK,释放占用的资源,在所有的SDK函数之后调用。参数:无返回值:无相关函数:HYPERLINKCLIENT_Init典型应用:在应用程序关闭时调用CLIENT_APIvoidCLIENT_SetConnectTime(intnWaitTime,intnTryTimes);函数说明:设置与设备的连接等待时间调用顺序无关,SDK默认值为3000ms,对外网一般需要增加到5000ms,此值不影响设备连接速度,只有当网络状态不好时延长等待时间,可以提高连接成功几率。参数说明:nWaitTime连接等待时间,毫秒级nTryTimes连接次数,暂时为无效值返回值:无相关函数:HYPERLINKCLIENT_Login典型应用:一般在应用程序初始化时调用CLIENT_APIDWORDCLIENT_GetSDKVersion();函数说明:得到SDK的版本号参数:无返回值:版本号典型应用:一般在应用程序初始化时调用状态侦听typedefBOOL(CALLBACK*fMessCallBack)(LONGlCommand,LONGlLoginID,char*pBuf,DWORDdwBufLen,char*pchDVRIP,LONGnDVRPort,DWORDdwUser);CLIENT_APIvoidCLIENT_SetDVRMessCallBack(fMessCallBackcbMessage,DWORDdwUser);函数说明:设置设备消息回调函数,用来得到设备当前状态信息,与调用顺序无关,SDK默认不回调,此回调函数必须在调用打开侦听HYPERLINKCLIENT_StartListen或HYPERLINKCLENT_StartListenEx才有效,同时需要说明的是针对目前定义的报警状态,是每秒回调设备当前的状态值;参数说明:cbMessage消息回调函数,可以回调设备的状态,如报警状态可以通过此回调获取;当设置为0时表示禁止回调dwUser用户数据回调函数参数说明:lCommand回调类型lLoginIDHYPERLINKCLIENT_Login的返回值pBuf接收报警数据的缓存,根据调用的侦听接口和lCommand值不同,填充的数据不同如果调用的侦听接口为HYPERLINKCLIENT_StartListen,则lCommand的可能值是:-OMM_ALARM:填充数据为一个HYPERLINKNET_CLIENT_STATE结构体。-SHELTER_ALARM:填充数据为16个字节,每个字节表示一个视频通道的遮挡报警状态,1为有报警,0为无报警-DISK_FULL_ALARM,填充数据为1个DWORD值,1表示硬盘满,0表示硬盘未满。-DISK_ERROR_ALARM:填充数据为1个DWORD值,按位表示最多32个硬盘的故障报警,每位为1表示有报警,为0表示无报警。-SOUND_DETECT_ALARM:填充数据为16个字节,每个字节表示一个视频通道的音频报警状态,1为有报警,0为无报警如果调用的侦听接口为HYPERLINKCLENT_StartListenEx,则lCommand的可能值是:-DH_ALARM_ALARM_EX:填充数据为16个字节,每个字节表示一个报警通道的报警状态,1为有报警,0为无报警。-DH_MOTION_ALARM_EX:填充数据为16个字节,每个字节表示一个视频通道的动态检测报警状态,1为有报警,0为无报警。-DH_VIDEOLOST_ALARM_EX:填充数据为16个字节,每个字节表示一个视频通道的视频丢失报警状态,1为有报警,0为无报警。-DH_SHELTER_ALARM_EX:填充数据为16个字节,每个字节表示一个视频通道的遮挡(黑屏)报警状态,1为有报警,0为无报警。-DH_SOUND_DETECT_ALARM_EX:填充数据为16个字节,每个字节表示一个视频通道的音频检测报警状态,1为有报警,0为无报警。-DH_DISKFULL_ALARM_EX:填充数据为1个字节,1为有硬盘满报警,0为无报警。-DH_DISKERROR_ALARM_EX:填充数据为32个字节,每个字节表示一个硬盘的故障报警状态,1为有报警,0为无报警。dwBufLenpBuf的长度pchDVRIP设备IPnDVRPort端口dwUser回调的用户数据,就是上面输入的用户数据返回值:TRUE回调函数执行正确,FALSE执行错误相关函数:HYPERLINKCLIENT_StartListen、HYPERLINKCLIENT_StopListen典型应用:一般在应用程序初始化时调用设置回调,在回调函数中根据不同的设备ID和命令值做出不同的处理。CLIENT_APIBOOLCLIENT_StartListen(LONGlLoginID);函数说明:开始对某个设备侦听消息,用来设置是否需要对设备消息回调,得到的消息从HYPERLINKCLIENT_SetDVRMessCallBack的设置值回调出来。参数说明:lLoginIDHYPERLINKCLIENT_Login的返回值返回值:成功返回TRUE,失败返回FALSE相关函数:HYPERLINKCLIENT_SetDVRMessCallBack,HYPERLINKCLIENT_StopListen典型应用:在设备连接后调用本函数打开侦听CLIENT_APIBOOLCLIENT_StartListenEx(LONGlLoginID)函数说明:开始对某个设备侦听消息,用来设置是否需要对设备消息回调,得到的消息从HYPERLINKCLIENT_SetDVRMessCallBack的设置值回调出来。本函数是HYPERLINKCLIENT_StartListen的增强版本:支持的报警种类更多更全,且每一种报警都细分为单独回调。参数说明:lLoginIDHYPERLINKCLIENT_Login的返回值返回值:成功返回TRUE,失败返回FALSE相关函数:HYPERLINKCLIENT_SetDVRMessCallBack,HYPERLINKCLIENT_StopListen典型应用:在设备连接后调用本函数打开侦听CLIENT_APIBOOLCLIENT_StopListen(LONGlLoginID);函数说明:停止对某个设备侦听消息参数说明:lLoginIDHYPERLINKCLIENT_Login返回值返回值:成功返回TRUE,失败返回FALSE 相关函数:HYPERLINKCLIENT_StartListen,HYPERLINKCLENT_StartListenEx典型应用:参见demo程序字符叠加typedefvoid(CALLBACK*fDrawCallBack)(LONGlLoginID,LONGlPlayHandle,HDChDC,DWORDdwUser);CLIENT_APIvoidCLIENT_RigisterDrawFun(fDrawCallBackcbDraw,DWORDdwUser);函数说明:用户自定义画图,在打开图像之前调用此函数,否则无效,必须在所有窗口未显示之前调用,可以用来对画面进行字符叠加。参数说明:cbDraw画图回调,当设置为0时表示禁止回调dwUser用户数据回调函数说明: LoginIDHYPERLINKCLIENT_Login的返回值,标识设备。 lPlayHandleHYPERLINKCLIENT_RealPlay的返回值,标识通道。hDC是对整个显示画面区域的画板指针,根据用户的需要可以对任何位置叠加显示。dwUser用户数据,就是上面输入的用户数据。返回值:无相关函数:无典型应用:本接口最好在应用程序初始化时就调用,具体的处理在回调函数中根据当前画面ID(可以是监视,多画面预览,回放)叠加不同的信息;设备注册CLIENT_APILONGCLIENT_Login(char*pchDVRIP,WORDwDVRPort,char*pchUserName,char*pchPassword,HYPERLINKLPNET_DEVICEINFOlpDeviceInfo,int*error=0);函数说明:注册用户到设备,当设备端把用户设置为复用(设备默认的用户不能设置为复用),该帐号可以多次向设备注册参数说明:pchDVRIP设备IPwDVRPort设备端口pchUserName用户名pchPassword用户密码lpDeviceInfo设备信息,属于输出参数error(当函数返回成功时,该参数的值无意义),返回登录错误码:1.密码不正确2.帐号不存在3.等待登录返回超时4.帐号已登录5.帐号已被锁定6.帐号又被列为黑名单7.资源不足,系统忙 9.找不到网络主机0.其他网络错误返回值:失败返回0,成功返回设备ID,登录成功之后对设备的操作都可以通过此值(设备句柄)对应到相应的设备相关函数:HYPERLINKCLIENT_Logout典型应用:在初始化后就可以调用本接口注册到指定的设备,成功后将返回设备句柄,给相关的函数调用CLIENT_APILONGCLIENT_LoginEx(char*pchDVRIP,WORDwDVRPort,char*pchUserName,char*pchPassword,intnSpecCap,void*pCapParam,LPNET_DEVICEINFOlpDeviceInfo,int*error=0)函数说明:注册用户到设备的扩展接口,支持一个用户指定设备支持的能力参数说明:增加扩展参数nSpecCap设备支持的能力,值为1表示同一用户名可以多次登录,其他暂时不支持pCapParam对nSpecCap的补充参数,目前为0返回值:失败返回0,成功返回设备ID,登录成功之后对设备的操作都可以通过此值(设备句柄)对应到相应的设备相关函数:HYPERLINKCLIENT_Logout典型应用:一个用户同时多次登录同一台设备CLIENT_APIBOOLCLIENT_Logout(LONGlLoginID);函数说明:注销设备用户参数说明:lLoginIDHYPERLINKCLIENT_Login的返回值返回值:成功返回TRUE,失败返回FALSE相关函数:HYPERLINKCLIENT_Login典型应用:当需要设备主动断开时调用;实时监视CLIENT_APILONGCLIENT_RealPlay(LONGlLoginID,intnChannelID,HWNDhWnd);函数说明:启动实时监视参数说明:lLoginIDHYPERLINKCLIENT_Login的返回值 nChannelID实时监视通道号(通道号从0开始)hWnd窗口句柄,值为0对数据不解码、不显示图像返回值:失败返回0,成功返回实时监视ID(实时监视句柄),将作为相关函数的参数相关函数:HYPERLINKCLIENT_StopRealPlay、HYPERLINKCLIENT_SaveRealData、HYPERLINKCLIENT_StopSaveRealData、HYPERLINKCLIENT_ClientSetVideoEffect、HYPERLINKCLIENT_ClientGetVideoEffect、HYPERLINKCLIENT_OpenSound、HYPERLINKCLIENT_CloseSound、HYPERLINKCLIENT_SetVolume、HYPERLINKCLIENT_SetRealDataCallBack、HYPERLINKCLIENT_SetRealDataCallBackEx、HYPERLINKCLIENT_CapturePicture、HYPERLINKCLIENT_StartTalk、HYPERLINKCLIENT_StopTalk典型应用:根据登录时获取到的设备信息,调用本接口,就可以打开任何有效的一路实时监视,显示到指定的hWnd窗口,正常返回的监视ID,用于以下对本监视通道的控制和操作;CLIENT_APIBOOLCLIENT_StopRealPlay(LONGlRealHandle);函数说明:停止实时监视参数说明:lRealHandleHYPERLINKCLIENT_RealPlay的返回值返回值:成功返回TRUE,失败返回FALSE相关函数:HYPERLINKCLIENT_RealPlay典型应用:关闭失实监视CLIENT_APILONGCALL_METHODCLIENT_RealPlayEx(LONGlLoginID,intnChannelID,HWNDhWnd,RealPlayTyperType)函数说明:启动实时监视或多画面预览,当打开多画面预览时不能打开语音对讲参数说明:lLoginIDHYPERLINKCLIENT_Login的返回值nChannelID实时监视通道号,如果rType为RType_Multiplay该参数保留。hWnd窗口句柄,值为0对数据不解码、不显示图像rType 数据类型RType_Realplay=0, //实时预览RType_Multiplay=1, //多画面预览返回值:失败返回0,成功返回实时监视ID(实时监视句柄),将作为相关函数的参数相关函数:HYPERLINKCLIENT_StopRealPlayEx、HYPERLINKCLIENT_SaveRealData、HYPERLINKCLIENT_StopSaveRealData、HYPERLINKCLIENT_ClientSetVideoEffect、HYPERLINKCLIENT_ClientGetVideoEffect、HYPERLINKCLIENT_OpenSound、HYPERLINKCLIENT_CloseSound、HYPERLINKCLIENT_SetVolume、HYPERLINKCLIENT_SetRealDataCallBack、HYPERLINKCLIENT_SetRealDataCallBackEx、HYPERLINKCLIENT_CapturePicture、HYPERLINKCLIENT_StartTalk、HYPERLINKCLIENT_StopTalk典型应用:参见demo程序CLIENT_APIBOOLCALL_METHODCLIENT_StopRealPlayEx(LONGlRealHandle);函数说明:停止实时监视或多画面预览参数说明:lRealHandleHYPERLINKCLIENT_RealPlayEx的返回值返回值:成功返回TRUE,失败返回FALSE相关函数:HYPERLINKCLIENT_RealPlayEx典型应用:关闭实时监视或者多画面预览CLIENT_APIBOOLCLIENT_ClientGetVideoEffect(LONGlPlayHandle,unsignedchar*nBrightness,unsignedchar*nContrast,unsignedchar*nHue,unsignedchar*nSaturation);函数说明:获取解码库视频参数,只有打开图像的函数参数hWnd有效时该函数获取的参数才有效,否则无意义参数说明:lPlayHandleHYPERLINKCLIENT_RealPlay的返回值 nBrightness返回亮度指针(0-255) nContrast返回对比度指针(0-255) nHue返回色度指针(0-255)nSaturation返回饱和度指针(0-255)返回值:成功返回TRUE,失败返回FALSE相关函数:HYPERLINKCLIENT_ClientSetVideoEffect、HYPERLINKCLIENT_RealPlay、HYPERLINKCLIENT_RealPlayEx、HYPERLINKCLIENT_PlayBackByRecordFile、HYPERLINKCLIENT_PlayBackByRecordFileEx、HYPERLINKCLIENT_PlayBackByTime、HYPERLINKCLIENT_PlayBackByTimeEx典型应用:在打开监视通道后获取该监视的视频参数,初始化界面显示当前的视频状态,同时为以下视频参数调节做参考;CLIENT_APIBOOLCLIENT_ClientSetVideoEffect(LONGlPlayHandle,unsignedcharnBrightness,unsignedcharnContrast,unsignedcharnHue,unsignedcharnSaturation);函数说明:设置解码库视频参数,只有打开图像的函数参数hWnd有效时该函数获取的参数才有效,否则无意义参数说明:lRealHandleHYPERLINKCLIENT_RealPlay的返回值nBrightness亮度(0-255)nContrast对比度(0-255)nHue色度(0-255)nSaturation饱和度(0-255)返回值:成功返回TRUE,失败返回FALSE相关函数:HYPERLINKCLIENT_ClientGetVideoEffect,HYPERLINKCLIENT_RealPlay、HYPERLINKCLIENT_RealPlayEx、HYPERLINKCLIENT_PlayBackByRecordFile、HYPERLINKCLIENT_PlayBackByRecordFileEx、HYPERLINKCLIENT_PlayBackByTime、HYPERLINKCLIENT_PlayBackByTimeEx典型应用:根据需要可以调节视频参数;设置参数是4种参数一起设,所以如果更改单个也要求其他参数值正常;所以在应用中最好定义视频参数变量以供随时更改设置;音频控制CLIENT_APIBOOLCLIENT_OpenSound(LONGhPlayHandle)函数说明:打开音频,目前只支持独占方式打开音频,如果正在调用此函数之前音频已经打开并且hPlayHandle是不一样,则关闭原来的音频打开新的音频;函数只有在打开hPlayHandle的函数的参数hWnd有效时才生效。参数说明:hPlayHandleHYPERLINKCLIENT_RealPlay的返回值返回值:成功返回TRUE,失败返回FALSE相关函数:HYPERLINKCLIENT_CloseSound、HYPERLINKCLIENT_RealPlay、HYPERLINKCLIENT_RealPlayEx、HYPERLINKCLIENT_PlayBackByRecordFile、HYPERLINKCLIENT_PlayBackByRecordFileEx、HYPERLINKCLIENT_PlayBackByTime、HYPERLINKCLIENT_PlayBackByTimeEx典型应用:对音频,目前只支持独占方式,所以在应用程序中需要定义当前有效的音频通道。CLIENT_APIBOOLCLIENT_CloseSound();函数说明:关闭音频参数说明:无返回值:成功返回TRUE,失败返回FALSE相关函数:HYPERLINKCLIENT_OpenSound典型应用:关闭当前的音频;CLIENT_APIBOOLCLIENT_SetVolume(LONGlPlayHandle,intnVolume);函数说明:设置音量参数说明:lPlayHandleHYPERLINKCLIENT_RealPlay的返回值nVolume音量值,范围0~1000音量最小返回值:成功返回TRUE,失败返回FALSE相关函数:HYPERLINKCLIENT_OpenSound、HYPERLINKCLIENT_CloseSound、HYPERLINKCLIENT_RealPlay、HYPERLINKCLIENT_RealPlayEx、HYPERLINKCLIENT_PlayBackByRecordFile、HYPERLINKCLIENT_PlayBackByRecordFileEx、HYPERLINKCLIENT_PlayBackByTime、HYPERLINKCLIENT_PlayBackByTimeEx典型应用:修改实时监视或回放的音量值数据保存CLIENT_APIBOOLCLIENT_SaveRealData(LONGlRealHandle,constchar*pchFileName);函数说明:开始保存实时监视数据,对前端设备监视的图像进行数据保存,形成录像文件,此数据是设备端传送过来的原始视频数据参数说明:lRealHandleHYPERLINKCLIENT_RealPlay的返回值pchFileName实时监视保存文件名返回值:成功返回TRUE,失败返回FALSE相关函数:HYPERLINKCLIENT_StopSaveRealData、HYPERLINKCLIENT_RealPlay、HYPERLINKCLIENT_RealPlayEx典型应用:在监视图像的打开之后随时都可以调用将监视数据保存到文件,也可以关闭之后再打开形成不同的文件;CLIENT_APIBOOLCLIENT_StopSaveRealData(LONGlRealHandle);函数说明:停止保存实时监视数据,关闭保存的文件参数说明:lRealHandleHYPERLINKCLIENT_RealPlay的返回值返回值:成功返回TRUE,失败返回FALSE相关函数:HYPERLINKCLIENT_SaveRealData、HYPERLINKCLIENT_RealPlay、HYPERLINKCLIENT_RealPlayEx典型应用:停止保存监视数据;typedefvoid(CALLBACK*fRealDataCallBack)(LONGlRealHandle,DWORDdwDataType,BYTE*pBuffer,DWORDdwBufSize,DWORDdwUser);CLIENT_APIBOOLCLIENT_SetRealData

温馨提示

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

最新文档

评论

0/150

提交评论