TSINGSEE青犀视频可以接入不同协议的视频平台,海康大华皆可,近期我们在研究接入大华摄像机改变预置点名称的实现。下图是添加大华的预置点:

在使用网页添加预置点时,预置点标题是可以在网页双击改变。如果通过大华的SDK需要怎么去改变呢?在使用大华SDK去改变预置点标题,使用此函数(CLIENT_SetNewDevConfig)返回的是7,7在大华文档中是:用户参数不合法。

调用CLIENT_SetNewDevConfig函数查看文档得知:

在取文档查看szCommand参数,找到修改预置点标题的名称:

从文档中找到CFG_CMD_PTZ_PRESET宏定义,所对应的是PTZ_PRESET_INFO,里面有szName参数,此参数就是改变预置点标题:

下面是使用c++调用的修改预置点标题代码:

PTZ_PRESET_INFO info = { 0 };
int pNum = 0;
info.pstPtzPreset = (PTZ_PRESET *)malloc(sizeof(PTZ_PRESET) * MAX_PRESET);
memset(info.pstPtzPreset, 0x00, sizeof(PTZ_PRESET) * MAX_PRESET);
info.dwMaxPtzPresetNum = MAX_PRESET;
BOOL bRet = CLIENT_SetNewDevConfig(handle, CFG_CMD_PTZ_PRESET, -1, (char*)&info, sizeof(info), NULL, NULL, 10 * 1000);
free(info.pstPtzPreset);
if (bRet == FALSE) {int err = CLIENT_GetLastError() & (0x7fffffff);_EC(err);return EasyGetLastError();
}

上面代码调用bRet为FALSE,err的值是7,所以不是这么调用的。在查看文档中,CLIENT_SetNewDevConfig函数的第四个参数不是这么使用的,如下图:

由上可知第三个参数必须不能是结构体转char结构,否则会报用户参数不正确。解决问题也是要从新分配一个char结构:

int get_err = 0;const int len = 256 * 1024;char get_info[len] = { 0 };BOOL ret = CLIENT_GetNewDevConfig(handle, CFG_CMD_PTZ_PRESET, -1, get_info, len, &get_err, 10 * 1000);//此参数是获取所有的预置点信息, CFG_CMD_PTZ_PRESET
PTZ_PRESET_INFO info = { 0 };int pNum = 0;info.pstPtzPreset = (PTZ_PRESET *)malloc(sizeof(PTZ_PRESET) * MAX_PRESET);memset(info.pstPtzPreset, 0x00, sizeof(PTZ_PRESET) * MAX_PRESET);info.dwMaxPtzPresetNum = MAX_PRESET;

注意:get_info值是json结构(找个c++的json分析库)。所以需要自己查看内存找到所需要修改的信息,下图是get_info信息:

最好别用官方的一个接口(CLIENT_PacketData(CFG_CMD_PTZ_PRESET, &info, sizeof(info), get_info, sizeof(get_info))),虽然CLIENT_GetNewDevConfig返回的是TRUE,进入到网页刷新预置点的使用居然没了。
本人做法是自己拼接字符,拼接一个json:

char ch[len] = {0};strcpy(ch, "[");for (int i = 0;i < table.size();i++){value = table[i];if (value["Enable"].asBool()) {
float x = value["Position"][0].asFloat();float y = value["Position"][1].asFloat();float zoom = value["Position"][2].asFloat();if (strcmp(ch, "[")) {strcat(ch, ",");}strcat(ch, " {\"Enable\" : true, \"Name\" : ");if ((i + 1) == presetNum) {strcat(ch, "\"");strcat(ch, presetName);strcat(ch, "\"");}else{strcat(ch, "\"");strcat(ch, value["Name"].asCString());strcat(ch, "\"");}strcat(ch, ", \"Position\" : [ ");strcat(ch, std::to_string(x).c_str());strcat(ch, ", ");strcat(ch, std::to_string(y).c_str());strcat(ch, ", ");strcat(ch, std::to_string(zoom).c_str());strcat(ch, " ] }");continue;}}
strcat(ch, " ]");

最后还是需要额外加个中括号,否则还是会出现7的错误码。

std::string _info = "[" + std::string(ch) + "]";
strcpy(get_info, _info.c_str());
BOOL bRet = CLIENT_SetNewDevConfig(handle, CFG_CMD_PTZ_PRESET, -1, get_info, strlen(get_info), NULL, NULL, 10 * 1000);

TSINGSEE青犀视频接入大华摄像机实现改变预置点名称相关推荐

  1. TSINGSEE青犀视频使用海康硬盘录像机接入摄像机rtsp流步骤介绍

    TSINGSEE青犀视频各大平台都是可以接入摄像机及硬盘录像机的,比如EasyNVR这样的平台,如果接入硬盘录像机的话,则需要从录像机上取RTSP流接入进平台,因此对于硬盘录像机的操作及取流流程我们也 ...

  2. 宇视摄像机接入TSINGSEE青犀视频平台,如何基于SDK获取设备的组织和摄像机?

    TSINGSEE青犀视频Easy系列视频平台,不仅支持市场主流协议如国标GB28181.RTSP/Onvif.RTMP等,还能对接厂家的私有协议,如海康Ehome.海康SDK.大华SDK等,更多私有协 ...

  3. TSINGSEE青犀视频与海康合作研发推流摄像机(枪机)为高空抛物提供了有效解决方案

    一直以来高空抛物行为备受关注,作为城市不文明的行为,它所带来的社会危害很大,其管理整治关系着社会治安稳定和群众的生命安全.然而仅依靠传统思想道德宣传仍无法达到良好的效果,特别在高楼层的居民楼内,居民为 ...

  4. RTSP/RTMP/GB28181协议/海康SDK/Ehome协议接入TSINGSEE青犀视频平台磁盘空间计算介绍

    通常情况下,RTSP/RTMP/GB28181协议/海康SDK/Ehome协议接入TSINGSEE青犀视频平台录制的视频流都是存储在磁盘当中,我们之前讲过磁盘空间是否满足剩余的要求的方法,具体实现方式 ...

  5. 【解决方案】连锁店巡店难?开发成本高?TSINGSEE青犀视频打造一站式连锁店视频上云/安防监控/AI智能分析解决方案

    一.背景分析 2020年两会,国家提出"新基建是一个以新发展理念为引领,以技术创新为驱动的数字化经济体的基础建设",映射在零售商业领域,代表着要用数字化.科技化的手段,帮助商业经济 ...

  6. TSINGSEE青犀视频监控平台的多种联网方式详解

    TSINGSEE青犀视频根据流媒体传输协议的不同,拥有满足不同需求的视频监控平台.比如有支持国标GB28181协议的EasyGBS国标云服务,支持RTSP/Onvif协议的EasyNVR平台,以及可兼 ...

  7. 【解决方案】TSINGSEE青犀视频如何协助国家邮政局构建国标视频监控系统?

    一.方案背景 随着电子商务的蓬勃发展,我国的快递业务量也随之增长,邮政快递业的规模也在不断扩大.根据国家邮政局最新发布的数据显示,2020年,我国规模以上的快递企业完成业务量达833.58亿件,累计实 ...

  8. AI赋能,TSINGSEE青犀视频上云网关获得中国声谷专项资金支持

    为贯彻落实五大发展行动计划和<中国制造2025安徽篇>,加快"中国声谷"(合肥高新区智能语音产业集聚发展基地)建设,促进智能语音及人工智能产业发展,省政府印发<中 ...

  9. 家庭监控安防行业存在哪些问题?看TSINGSEE青犀视频如何解决

    近年来,监控行业逐渐进入人们的视野,这也影响了人们对监控设备和监控行业的重视.随着视频监控行业的发展和规模增长,人们开始重视这个行业,安防监控市场已逐渐饱和,由于竞争的加剧,许多安全监控企业纷纷破产. ...

最新文章

  1. linux用户变量设置位置,linux---位置参数
  2. ddos压力测试_蓝盟IT外包,浅析DDoS攻击防御和DDoS攻击原理
  3. iOS xocde编译报错 NSObjCRuntime.h
  4. scanf_s 发送访问冲突_程序员如何解决并发冲突的难题?
  5. 检测Product 被其他business transaction 引用的小程序
  6. java main是标识符吗_main方法的认识 、通配符、java的注释、java的符(标识符)【Java基础】...
  7. Linux按键驱动,中断实现流程
  8. Java 反射 set get
  9. phome_enewsclass 数据表字段解释(栏目主表)
  10. C盘空间越来越小怎么办,教你27招
  11. pdf2image报错,pdf2image完整安装
  12. 解读LED灯具中国能效认证
  13. 程序员的自我修炼——新手如何学好编程
  14. 写游戏老是有个问题就数学中角度换算的问题。。烦
  15. 如何用C#做一个投票小demo
  16. LaTeX 公式(转自)Iowa_Battleship 神犇
  17. Lens Shading成因及相关
  18. 玩和平精英吃鸡用什么平板ipad好?
  19. Encoder和Decoder
  20. postgresql等待锁排查——ShareLock ExclusiveLock

热门文章

  1. Discuz!X3.2帖子标题限制80个字符的修改方法
  2. 清远见-重庆中心-JavaWeb后端阶段知识点梳理
  3. 产品经理 | 如何介绍自己的产品
  4. 【转】常用常忘的iOS知识点搜集
  5. 五分钟学会各种环形进度条
  6. 锦州技工计算机多媒体学校,锦州市渤海大学附属中专简介
  7. ARouter init 源码解析(自动注册的实现)
  8. [数据与分析可视化] D3入门教程1-d3基础知识
  9. 电子书籍下載點 E-Book
  10. EWM和ERP的QM集成实现先判检再收货