【前言】好久没更新Onvif的这个协议内容了,最近一段时间换成其他内容的开发之后,发现Onvif这部分的知识都快忘了,因此便趁着更新博客的机会重新将Onvif协议的内容再温固一下。

Onvif获取设备能力

一、介绍

Onvif获取设备能力主要是为了客户端使用能知道Onvif的服务端能够提供哪些服务功能。不仅服务端需要提供对应的服务,客户端的开发同样需要有对应的wsdl文件才能生成与服务端通信的接口。针对视频监控方面Onvif服务端主要需要使用到的服务大概能有以下几种:

  • 1、媒体功能
  • 2、事件功能
  • 3、云台功能
  • 4、录像功能
  • 5、查询功能
  • 6、显示信息功能
  • 7、取流功能
    服务端返回的每一个设备能力都是一个地址,当我们需要使用到这些功能的实现通过调用对应功能的函数而函数访问的地址则是服务端返回的地址。

获取设备能力的地址为:http://192.168.1.1:80/onvif/device_service ,其中192.168.1.1是Onvif服务端的IP地址,80是Onvif服务端提供的Onvif端口。

二、代码实现

struct soap *stSoapNew = soap_new();
if (stSoapNew == nullptr)
{return nullptr;
}soap_set_namespaces(stSoapNew, namespaces);                                 // 设置soap的namespaces
stSoapNew->recv_timeout = 5;                                                             // 设置超时5秒(超过指定时间没有数据就退出)
stSoapNew->send_timeout = 5;
stSoapNew->connect_timeout = 5;soap_set_mode(stSoapNew, SOAP_C_UTFSTRING);                          // 设置为UTF-8编码,否则叠加中文OSD会乱码
if (stSoapNew == nullptr)
{printf( "Onvif New Soap error!");            return;
}struct _tds__GetCapabilities            req;
struct _tds__GetCapabilitiesResponse    rep;
memset(&req, 0x00, sizeof(req));
memset(&rep, 0x00, sizeof(rep));
enum tt__CapabilityCategory emCapCategory = tt__CapabilityCategory__All;           // 获取全部的设备能力,根据自己需要选择
req.__sizeCategory = 1;
req.Category = &emCapCategory;
char tempInfo[128] = { 0 };
sprintf(tempInfo, "http://%s:%d/onvif/device_service", “192.168.1.1”, 80);
result = soap_call___tds__GetCapabilities(stSoapNew, tempInfo, NULL, &req, &rep);
if (result != SOAP_OK || rep.Capabilities == nullptr)
{printf("Get capability error!Error code is %d", result);return;
}

Onvif协议客户端开发(5)--获取设备能力相关推荐

  1. Onvif协议:IPC客户端开发之获取设备能力

    原理简介 ONVIF协议接口由多个模块组成,每个模块分别对应着不同的WSDL文档,在ONVIF官网中能查看到这些模块,以及每个模块中的接口函数,这里列举几个模块: DeviceMgmt(设备管理) 使 ...

  2. Onvif协议客户端开发(8)--球机云台的控制

    球机的云台控制 一.介绍 在安防摄像头中,不仅仅涉及到固定摄像头的枪击,同样还包含可以360°转动的球机.因此对球机的云台方向控制是Onvif协议开发过程中必不可少的过程 球机的云台控制主要包含:八个 ...

  3. Onvif协议客户端开发(1)--Onvif协议介绍

    Onvif是什么 ONVIF由安讯士联合博世及索尼公司三方宣布将携手共同成立一个国际开放型网络视频产品标准网络接口开发论坛,取名为ONVIF(Open Network Video Interface ...

  4. 8.腾讯微博Android客户端开发——自动获取验证码(2)

    上一节给大家讲解通过调用android系统自带的浏览器进行授权认证的,使用该种方式能很容易的完成认证,但是该种方式有个弊端,也就是如果使用第三方的浏览器如UC.天天等,输入完QQ账号信息点击" ...

  5. 腾讯微博Android客户端开发——自动获取验证码

    上一节给大家讲解通过调用android系统自带的浏览器进行授权认证的,使用该种方式能很容易的完成认证,但是该种方式有个弊端,也就是如果使用第三方的浏览器如UC.天天等,输入完QQ账号信息点击" ...

  6. 7.腾讯微博Android客户端开发——自动获取验证码(1)

    通过前面的介绍,我们成功获取了Access Token,但是在该过程中有个不好的地方:用户输入完QQ信息后,需要记录验证码,然后返回至Activity手动输入验证码,这将会使我们的程序显得非常不友好. ...

  7. Onvif协议:IPC客户端开发之PTZ控制

    介绍 在安防摄像头中,不仅仅涉及到固定摄像头的枪击,同样还包含可以360°转动的球机.因此对球机的云台方向控制是Onvif协议开发过程中必不可少的过程 球机的云台控制主要包含:八个方向(上.下.左.右 ...

  8. Onvif协议:理解什么是Web Services

    ONVIF规范中设备管理和控制部分所定义的接口均以Web Services的形式提供.要理解什么是ONVIF,就必须先知道什么是Web Services.所以,开始介绍ONVIF之前,我单独整理了一篇 ...

  9. 天地伟业摄像头通过onvif协议加入海康教育综合安防管理平台

    由于安防系统重建,采购了海康平台,需要将大批2014-2015年的老旧天地伟业摄像头加入新的海康平台,通过onvif协议实现. onvif协议:摄像头通用标准协议.摄像头在我们的日常生活中可以说时随处 ...

最新文章

  1. Caffe 关于 LetNet-5 之 lenet_train_test.prototxt 解析
  2. Mac VirtualBox 命令行Centos 挂载Mac系统中的文件夹
  3. Python:更改默认启动的python程序及其对应的安装包路径(更改pip的默认安装包的路径)图文教程之详细攻略
  4. Yii2 restful 分页支持
  5. JUC系列(六) | Callable和Future接口详解使用、FutureTask应用 获取异步线程返回值
  6. 老BOJ 07 Fence Repair
  7. 双11,2分钟狂挣20亿的神秘大厂,急招.NET!
  8. javascript的事件绑定与事件委托
  9. 学习进度表(160519更新)
  10. 使用maven在netbeans下构建wicket项目
  11. 《BI那点儿事》数据流转换——聚合
  12. DELL戴尔笔记本电脑找不到或没有DELL触摸板时关闭触摸板方法
  13. 2021年中国国家级高新区 (科技园)数量、产值及营业收入分析[图]
  14. 七牛上传文件(JS实现)
  15. uniapp 连接夜神模拟器调试
  16. MHA Failover测试-上
  17. 台式计算机开机风扇不转,电脑开机显卡风扇不转是怎么回事|电脑开机风扇不转的解决方法...
  18. android canvas 画圆边缘模糊,Android canvas画圆
  19. 医院应如何有效实施迅速合理的安全疏散系统
  20. ISME | 浙大黄健华/陈学新等揭示寄生蜂调控寄主营养代谢的新机制

热门文章

  1. NRC新世界城,实名制的区块链如何加快应用落地?
  2. 房地产软件信息化——CRM给房地产企业带来什么?穆利堂-movno1
  3. 蓝牙技术|蓝牙小知识-蓝牙延迟
  4. 【BLE】SIG-蓝牙技术联盟
  5. C#编写一个扫雷游戏
  6. perl读取彩票数据
  7. 西安更有理由重点发展大数据产业
  8. 最强战队出炉!“嬴彻-清华AIR杯”自动驾驶挑战赛收官
  9. 大家有没有感觉今年的程序员找工作非常困难
  10. 【农业科研】精准提取黄土高原苹果园数据