二次开发接口文档.docx

上传人:b****5 文档编号:12178519 上传时间:2023-04-17 格式:DOCX 页数:17 大小:742.94KB
下载 相关 举报
二次开发接口文档.docx_第1页
第1页 / 共17页
二次开发接口文档.docx_第2页
第2页 / 共17页
二次开发接口文档.docx_第3页
第3页 / 共17页
二次开发接口文档.docx_第4页
第4页 / 共17页
二次开发接口文档.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

二次开发接口文档.docx

《二次开发接口文档.docx》由会员分享,可在线阅读,更多相关《二次开发接口文档.docx(17页珍藏版)》请在冰豆网上搜索。

二次开发接口文档.docx

二次开发接口文档

接口开发文档

一、开发包目录结构

1.1demo文件夹

包含了sdk接口调用源代码,可供二次开发参考。

使用C++开发的MFC程序。

1.2dll文件夹

包含了二次开发所需的所有动态库,demo编译好的exe文件需要放在该文件夹内才可以运行。

1.3include文件夹

包含了二次开发所需要的头文件。

1.4lib文件夹

包含了二次开发所需要的lib静态库。

1.5DSS二次开发指南(C++).pdf

指导二次开发用户如何新建VS2005工程运行demo文件夹中的demo。

1.6Version.xml

dpsdk开发包的程序版本信息。

1.7常见问题解答.pdf

二次开发常见问题以及解决方式。

1.8大华平台SDK开发手册(C++版).chm

二次开发接口使用说明。

二、术语和缩略语

1、DPSDK:

DSS平台二次开发SDK包

2、CMS:

中心管理服务

3、DMS:

设备管理模块

4、demo:

程序示例(功能类似DSS平台客户端)

5、web管理员端:

在浏览器中输入DSS平台的ip即可打开管理员端

6、CameraID:

通道id,形如:

10000010$1$0$07、DeviceID:

设备id

三、Demo操作方法

3.1运行demo

把“demo/bin/”目录下面的3个文件,如下图所示

拷贝到“dll”文件夹下面,运行Test_DPSDK_Core.exe。

3.2登陆平台

登陆界面如图1所示,其中:

IP:

DSS平台

ip地址;端口:

9000;

图1登陆界面

用户名:

web管理员端配置的用户;

密码:

web管理员端配置的用户对应的密码。

点击“登录”按钮,登陆平台。

登陆成功的界面如图2所示:

 

1

2

3

5

图2主界面

上图选中的5个模块分别是:

1、组织树;2、实时视频;3、本地录像;4、云台操作;5、执行结果。

3.3主界面功能介绍

3.3.1、组织树

操作步骤:

点击“加载所有组织结构”按钮加载组织结构是其他操作的前提,是为了获取DSS平台上所有的设备信息。

3.3.2、实时视频模块

操作步骤:

1)确保已经成功加载组织结构。

2)输入CamID(通道ID)。

3)点击“打开视频”按钮,即可打开视频。

如果打开视频失败会在“模块5”的位置提示错误码。

注释1:

CamID(通道ID)的获取方式有1)展开模块1组织树,寻找到对应的编码器通道,即可看到该通道对应的通道ID;2)登陆web管理员端,选择基本配置-设备管理-编码器界面,看到“编码”列给出的是“设备ID”。

使用设备ID组成通道ID即:

设备ID$1$0$0。

$1代表编码器,$0代表单元序号,默认为0,$0代表通道号。

具体信息参考“常见问题解答”。

3.3.3、本地录像模块

操作步骤:

1)确保已经成功加载组织结构。

2)确保已经成功打开实时视频。

3)点击“开始录像”按钮即可开始本地录像。

在打开实时视频以后可以录像,并保存到本地磁盘。

3.3.4、云台控制模块

操作步骤:

1)确保已经成功加载组织结构。

2)确保已经成功打开实时视频。

打开实时视频以后,针对球机设备可以操作八方向、调节球机镜头、设置预置点等。

3.3.5、执行结果模块

将所有操作的结果输出。

并输出对应的操作失败错误码。

3.4回放界面功能介绍

 

3.4.1录像查询

操作步骤:

1)确保已经成功加载组织结构。

2)输入CameraID(通道ID)。

3)选择查询的开始和结束时间。

4)选择录像来源。

5)选择录像类型。

点击“查询录像”按钮查询录像。

3.4.2录像回放

操作步骤:

1)确保已经成功加载组织结构。

2)确保已经查询到录像文件。

3)选中录像文件,点击“按文件回放”按钮。

3.4.2录像下载

操作步骤:

1)确保已经成功加载组织结构。

2)确保已经查询到录像文件。

3)选中录像文件,点击“按文件下载”按钮。

3.5报警功能

 

3.5.1查询报警

操作步骤:

1)确保已经成功加载组织结构。

2)输入CamID(通道ID)。

3)选择报警类型,点击“查询”按钮。

需要注意的是查询视频类报警(即:

视频丢失/移动侦测/视频遮挡)时CamID为1000001$1$0$0,查询其他报警(除上述3种报警类型)的时候CamID为1000001$3$0$0。

因为视频类报警是由“视频通道”产生,其他报警是由“报警输入通道”产生。

3.5.2报警布控

操作步骤:

1)确保已经成功加载组织结构。

2)输入设备ID。

3)输入通道号,(视频类报警使用“视频通道号”,其他报警使用“报警通道号”)。

4)选择报警类型,点击“布控”按钮即可。

注释:

视频类报警类型包含1)视频丢失2)移动侦测3)视频遮挡。

3.6语音对讲

 

3.6.1打开语音对讲

操作步骤:

1)确保已经成功加载组织结构。

2)输入CamID(通道ID),选择对讲参数,3)点击“开始语音对讲”按钮。

如果参数错误会弹窗提示正确参数信息。

3.6.2关闭语音对讲

操作步骤:

1)确保已经成功打开语音对讲。

2)点击“根据序列号停止语音对讲”或者“根据通道号停止语音对讲”按钮。

3.7电视墙

目前Demo不能新建电视墙任务,只能获取平台配置好的电视墙信息。

电视墙的任务需要在平台客户端添加。

 

3.7.1电视墙操作

操作步骤:

1)确保已经成功加载组织树。

2)点击“获取电视墙总数”按钮。

3)点击“获取电视墙信息”按钮。

4)选择电视墙ID。

5)点击“获取电视墙布局”按钮。

即可显示电视墙对应的屏幕分割信息。

上图显示ID为3的电视墙的名字是tt状态是1(代表启用)。

电视墙有4块屏幕,屏id、屏名称、屏坐标、是否绑定解码器(1_1000943代表绑定解码器,解码器id为1000943)。

3.7.2屏幕分割和开窗操作

操作步骤:

1)确保已经成功获取到电视墙屏幕信息。

2)选择一个屏幕。

3)执行分割和开窗操作。

所有的融合屏都只做开窗。

非融合和融合的NVD都只做分割。

开窗操作(left,上)代表窗口左上角坐标,width和Height代表宽和高的比例,范围是0-100。

例如:

(left,上)为(0,0);(width,Height)为(50,50)。

3.7.3设置视频源操作

操作步骤:

1)确保已经成功获取到电视墙屏幕信息。

2)输入编码器通道ID。

3)输入窗口号(分割和开窗操作的窗口号从0开始)。

4)点击“设置”按钮。

5)点击“关闭”按钮清除窗口视频源。

6)点击“清屏”按钮清除所有屏幕上的窗口和视频源。

四、常见问题

1概述

本文档列出了使用大华SDK进行二次开发时出现的常见问题以及对应的解决方法。

方便第三方开发者快速定位问题,提高二次开发效率。

2问题列表

2.1WebDemo问题汇总

2.1.1在IE浏览器中打开webDemo视频窗口显示

因为没有注册ocx。

在ocx文件夹中双击reg.bat只有提示注册成功才可以。

2.2OCX控件问题汇总

2.2.1OCX无法注册

1、OCX控件时微软推出已久的技术,其注册方法及出错原因可在微软官方文档上查询,或者可以自行在网上查找解决方法。

OCX注册问题本不属于DPSDK支持范畴。

2、不过我们还是提供一些建议,以便您快速排除问题:

(1)用“管理员权限”打开“开始”-“附件”-“命令提示符”,输入“regsvr32ocx的全路径”即可。

(2)我们提供的OCX控件是32位程序,请确保系统有32位兼容库,具体判断方法为C:

\Windows\SysWOW64这个文件夹下是否有“regsvr32.exe”这个文件,若没有,请重新安装系统。

若有,请按

(1)中的方式打开命令提示符,输入“c:

\windows\SysWOW64\regsvr32ocx全路径”即可,如“c:

\windows\SysWOW64\regsvr32Z:

\DPSDK_OCX\ocx\DPSDK_OCX.ocx”

如以上2点仍然没有能够成功注册,请在网上,根据自己的系统信息自行搜索解决方案。

3、在注册dll或者ocx的时候,经常会遇到这么一个问题:

模块已加载,但对dllregisterServer的调用失败,错误代码为0x8004*****

解决方法:

在批处理的第一行加入:

cd/d%~dp0然后在批处理上右键选择使用管理员权限运行

4、Windows7出现:

应用程序无法启动,因为应用程序的并行配置不正确有关详细信息,请参阅应用程序事件日志,或使用命令行sxstrace.exe工具。

”解决方法:

出现这个问题是因为安装windows7后,或使用ghost版本安装后,windows7没有安装VisualC++库,而有些软件需要VisualC++库所以到微软官方网站下载:

MicrosoftVisualC++2005SP1RedistributablePackage(x86)下载:

-984D-389C36F85647&displaylang=zh-cn安装

2.2.264位系统下OCX无法使用

目前OCX控件只有32位的程序,所以在64位系统下,需要下载32位的IE,用32位的IE

加载OCX控件即可。

2.2.3Ocx注册成功但是在页面加载失败

运行IE,工具->Internet选项->安全,确保Internet和本地Intranet和可信站点的自定义级别中的ActiveX选项都不是禁止状态,将禁止状态改为提示状态。

2.2.4Ocx开发包demo程序运行不起来

DPSDK_OCX.ocx未注册,可以采用一下两种方法注册:

运行->CMD,regsvr32DPSDK_OCX.ocx绝对路径

运行ocx开发包文件夹里面的reg.bat批处理,注意:

DPSDK_OCX.ocx必须要和reg.bat放在同一个路径。

如果仍旧注册失败需要安装vs发布包,vcredist_x86.exe,可以从微软官网上直接下载

2.2.5如何获通道ID(CameraID)

在浏览器输入DSS平台的ip打开web管理员端,用管理员身份登录平台,找到“基本设置”-“设备管理”-“编码器”页面的“编码”列是所有的设备ID。

而CameraID的格式为:

"设备ID$1$0$通道号",如设备ID为“1000000”,且设备下有3个视频通道,那么这3个CameraID为"1000000$1$0$0"、"1000000$1$0$1"、"1000000$1$0$2"。

2.2.6是否可以不加载组织结构

不调用DPSDK_LoadDGroupInfo也是可以的,但仅限于实时视频、录像回放,其他操作,如操作云台等功能无法使用。

方法是Get_RealStream_Info_t中的nRight设置为DPSDK_CORE_NOT_CHECK_RIGHT即可。

2.2.7OCX无法保存抓图或创建文件夹失败

win7系统的安全控制导致OCX控件无法创建文件夹。

需要使用administrator账号登陆

win7系统开发使用(有管理员权限的普通账户也不行)。

2.2.8OCX控件收不到报警

1)需要先调用布控报警DPSDK_EnableAlarm。

2)其次平台或者设备触发报警。

2.2.9OCX请求视频没有声音

需要打开音频(DPSDK_OpenAudioByWndNo,DPSDK_OpenAudioByHWND)

2.2.10加载监控视频成功时浏览器会死掉

浏览器兼容问题,目前ocx控件主要针对IE8/IE9环境。

2.2.11IE浏览器加载视频成功,其他浏览器无法加载

浏览器兼容问题,其他基于IE内核或者多核模式的浏览器(遨游,360,搜狗浏览器等)需要选择兼容模式浏览。

2.2.12OCX操作导致IE崩溃

目前OCX中我们已经集成了在崩溃时生成crashdump的功能,OCX崩溃时会弹出对话框提示dump生成的位置,用户只需在此位置下找到.dmp文件,然后将对应的pdb文件一同发送给我们即可。

2.2.13目前OCX只支持ie832位浏览器

在页面中加上,让IE浏览器以兼容IE8方式运行。

2.2.14一路视频对应两路音频情况缺少音频通道标识

DPSDK_OCX之前的开发包中已经提供了多音频通道的接口,DPSDK_GetAudioChannelsByWndNo//获取音频通道数DPSDK_GetAudioChannelStateByWndNo//获取某个音频通道的状态DPSDK_SetAudioChannelByWndNo//打开某个音频通道界面上的按钮只是单纯的音频开关,客户如需切换声道,需要手动调用以上几个接口。

2.2.15DPSDK_SeekPlaybackBySeqByWndNo无法定位海康录像

底层播放库不支持海康录像的定位操作,不过可以通过以下操作替代,以实现一个进度条为例:

拖动进度条时,直接先关闭回放,再以进度条的当前时间重新按时间请求回放。

此时由于重新请求,DPSDK_GetPlaybackPosByWndNo等接口获取的进度不准确,改用DPSDK_GetFrameTimeByWndNo直接获取帧时间,然后保存下最初的开始和结束时间,即可计算正确的进度。

2.2.16DPSDK断线重连,不能打开视频

需要重新加载组织结构(即在OnDevStatusEvent中,当收到重连成功的事件后,调用DPSDK_LoadDGroupInfo)。

2.2.17NVR设备状态和通道状态不同

NVR的通道状态需要通过订阅才能实时返回通道状态。

设备在线,不一定通道在线。

OCX:

ChannelStatusCallback。

2.2.18YUV码流接口不支持海康设备

Ext层的YUV码流的相关接口,只支持大华设备。

不支持海康设备。

2.2.19接口返回某个错误码的含义

1)接口返回1010错误是因为超时时间太短可以尝试增加接口超时时间,特别是广域网上操作。

2)调用DPSDK_StartRealplayByWndNo返回3502,3600错误未选中窗口或者窗口失去焦点。

3)返回其它错误码我们开发文档里面有针对错误码的介绍。

搜索一下错误码即可。

2.3DPSDK_DLL版本问题汇总

2.3.1通道ID(CameraID)介绍

通道ID(CameraID)形如:

1000010$1$0$0,其中

1)1000010是设备ID,该设备ID可以在平台web管理员端“基本配置-设备管理”页面的“编码”列查询。

2)$1代表的是单元类型。

1是编码单元、2是解码单元、3是报警输入单元、4是报警输出单元。

实时视频都是$1。

3)$0默认全写0,代表的是单元类型的序号。

4)$0这个代表的是通道序号。

从0开始计算。

比如一个设备有8个通道,则通道序号是0-7.

2.3.2如何获通道ID(CameraID)

1)DPSDK_DLL开发包中,有demo程序,demo程序中登录后,选择“分级加载组织结构”,即可看到组织和设备树。

双击直到最后一层即为CameraId。

demo我们提供了源码,你可以根据源码进行开发,源码中涉及到的函数在开发文档中都有详细说明。

2)在浏览器中,用管理员身份登录平台,可以看到所有的设备ID。

而编码器CameraID的格式为:

"设备ID$1$0$通道号",如设备ID为“1000000”,且设备下有3个通道,那么这3个CameraID为"1000000$1$0$0"、"1000000$1$0$1"、"1000000$1$0$2"。

2.3.3NVR设备状态和通道状态不同

NVR的通道状态需要通过订阅才能实时返回通道状态。

设备在线,不一定通道在线。

dll:

DPSDK_SetDPSDKNVRChnlStatusCallback。

2.3.4登录之后打开视频返回rtsp建立失败

如果是内外网环境,可能网络环境不正确。

2.4AndroidSDK问题汇总

2.5IOSSDK问题汇总

2.5.1点击实时预览崩溃

可能是播放库太老,需要更新播放库。

2.6其它

2.6.1设备通道ID(CameraID)如何获取?

获取方式:

方法1.打开DPSDK对应的Demo,加载组织树,展开对应的组织节点,找到设备即可看到通道ID

方法2.通道ID格式为:

“设备ID$1$0$通道号”。

比如设备ID为1000001,对应第一个视频通道ID为1000001$1$0$0,对应第二个视频通道为1000001$1$0$1,依次类推。

设备ID可以从DSS管理员端“设备管理”页面获取。

在管理员模式下,使用system用户登陆进入:

基本设置->设备管理查看设备ID。

通道号:

对于IPC设备,只有一个通道,通道号只有0;对于DVR设备,有多个通道,具体的通道个数是在web管理员平台上配的,比如配了4个通道,通道号依次为0,1,2,3。

2.6.1模拟器实时预览花屏

播放库对模拟器支持不全,实时和回放需要在真机上运行。

2.6.2目前DPSDK不接受UI界面相关的定制开发,用户需要自己实现UI

界面

2.6.3目前提供的DPSDK相关Demo只有C++版

2.6.4DPSDK二次开发邮箱dh_dss_sdk@暂不提供研发手机号码

2.6.5现在只维护平台是3.0以后的dpsdk

2.X平台的dpsdk已经不再维护。

2.6.6打开视频的接口

有两种打开视频的接口:

1)使用ext层,用户不需要关心码流,VaxPlayer库解析之。

2)不使用ext层,设置码流回调函数,客户可以拿到码流。

DPSDK_GetRealStream()pDlg->PostMessage(WM_MEDIADATA_CB,nSeq,0)

CWndPlayer:

:

OnMediaDataCallback(WPARAMwParam,LPARAMlParam)

2.6.7按时间回放功能

1)按时间回放平台录像,由于平台存在问题,相关功能会出现bug。

不建议用户使用该功能。

2)按时间回放设备录像没有问题。

2.6.8平台回调上来的码流

平台回调上来的码流是PS流+大华头。

直接使用vaxPlayer播放。

如果前端是海康设备回调上来的码流是大华头+海康流。

需要使用mediaParser库去掉大华头在用vaxPlayer播放或者使用海康的播放库播放。

2.6.9组织树xml中status字段不准确

加载组织树以后可以拿到组织树xml,设备信息中的status字段无法正确显示设备的状态。

需要注册设备状态回调函数来实时获取设备的状态。

接口:

DPSDK_SetDPSDKDeviceStatusCallback()初始化设置回调。

在登陆平台的时候会收到设备状态,任何设备状态改变后会再次回调上来。

NVR通道状态比较特殊,因为NVR设备在线的时候,通道状态可以是离线的。

需要使用接口:

DPSDK_SetDPSDKNVRChnlStatusCallback()

2.6.10设备状态和通道状态

1、设备在线状态需要设置回调函数:

DPSDK_SetDPSDKDeviceStatusCallback()在登陆平台时DMS会推送设备状态,设备状态改变DMS也会推送设备状态上来。

2、大部分设备状态和通道状态是一致的。

只有NVR设备存在通道状态因为NVR设备在线,通道可能离线。

登陆平台DMS不会主动推送NVR通道状态,需要客户端主动查询。

登陆平台以后NVR通道状态变化DMS会主动推送上来进入回调函数。

使用接口:

1)通道状态改变回调DPSDK_SetDPSDKNVRChnlStatusCallback()

2)查询通道状态DPSDK_QueryNVRChnlStatus()

2.6.11电视墙开窗和分割

所有的融合屏都只做开窗。

非融合和融合的NVD都只做分割。

2.6.12日志等级

ERROR>WARNING>INFO>DEBUG

设置为INFO会显示error,warning,info

 

2.6.13卡口过车数据和违章报警功能说明

 

1、违章报警只需要设置回调函数,不需要订阅DPSDK_SetDPSDKTrafficAlarmCallback()DPSDK_CMD_BAY_DPALARM_NOTIFY,//违章报警

Alarm_4JT_PictureLink_Struct

 

2、卡口过车数据需要设置回调函数并订阅DPSDK_SetDPSDKGetBayCarInfoCallback()DPSDK_SubscribeBayCarInfo()

卡口过车图片数据是picSDK回调上来的

EAS_SetPictureCallBack(mPicCallBack,this);

 

2.6.14查询报警

操作步骤:

1)确保已经成功加载组织结构。

2)输入CamID(通道ID)。

3)选择报警类型,点击“查询”按钮。

需要注意的是查询视频类报警(即:

视频丢失/移动侦测/视频遮挡)时CamID为1000001$1$0$0,查询其他报警(除上述3种报警类型)的时候CamID为1000001$3$0$0。

因为视频类报警是由“视频通道”产生,其他报警是由“报警输入通道”产生。

2.6.15VLC使用URL拉流

-B3.11之前的版本是不支持RTSPURL拉流的

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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