前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >EasyCVR添加大华设备预置点位置功能实现

EasyCVR添加大华设备预置点位置功能实现

原创
作者头像
TSINGSEE青犀视频
修改2021-11-23 17:34:52
6750
修改2021-11-23 17:34:52
举报
文章被收录于专栏:TSINGSEE青犀视频TSINGSEE青犀视频

大家知道EasyCVR支持云台控制,可以远程控制云台,目前我们在对EasyCVR的设备对接进行新的开发,如果使用大华设备,我们要求能够通过大华的SDK获取所有的预置点。

在该功能的开发中,我们使用CLIENT_QueryRemotDevState函数用来获取预置点位置,调用CLIENT_QueryRemotDevState函数时,此函数返回值始终是FALSE(获取失败),函数返回值是7。

在大华文档中查找7代表:“用户参数不合法”(下图)。

所以大华文档中已经说明参数不合法了,CLIENT_QueryRemotDevState函数有7个参数:分别为登录设备的句柄、查询信息类型、通道号、输出pBuf、缓存长度、输出参数和等待时间(下图为官方文档)。

下面来一个一个参数分析:

第一个参数是登录句柄,此参数肯定没错,如果错误就不会返回7。

第二个参数是需要查询的信息类型,我们需要查询设备的预置位,所以只能填:DH_DEVSTATE_PTZ_PRESET_LIST

第三个参数是通道号,因为直接连接摄像机,所以为0;

第四个参数是输出的参数,且根据第二个参数来的,对应的NET_PTZ_PRESET_LIST结构体;

第五个参数是第四个参数大小:sizeof(NET_PTZ_PRESET_LIST)来计算大小即可;

第六个参数是等待时长,默认是3000ms;

所以在分析参数中得知,如果出错最有可能是第四个参数的问题(第四个参数的结构体如下):

查看此结构体得知有四个值,最后问题就明朗了,添加此四个值即可。那么直接上修改过的代码:

最后还需要特别注意一点,需要分配内存给pstuPtzPorsetList。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档