使用gsoap2.8.11轻松实现ONVIF_discover教程
需积分: 49 109 浏览量
更新于2024-09-11
1
收藏 278KB PDF 举报
"这篇教程主要介绍了如何使用gsoap2.8.11来实现ONVIF设备发现功能(onvif_discover),并提供了详细的步骤。教程由他人指导并整理,适用于初学者,简化了利用gsoap开发ONVIF应用的复杂度。"
在ONVIF协议的实现过程中,gsoap是一个非常重要的工具,它帮助开发者处理SOAP和WSDL相关的复杂性。在gsoap2.8.11版本中,wsddapi插件提供了预定义的接口,使得实现ONVIF设备发现变得更加简单,不再需要手动处理probe的所有细节。
首先,你需要从ONVIF官网下载wsdl和xsd文件,例如`analytics.wsdl`, `devicemgmt.wsd`, 等等。然后使用wsdl2h工具生成`.h`头文件,命令如下:
```bash
wsdl2h -sck-t /opt/nfshost/gsoap-2.8/gsoap/typemap.dat -o onvif.h analytics.wsdl analyticsdevice.wsdl devicemgmt.wsdldisplay.wsdl event.wsdl imaging.wsdl media.wsdl ptz.wsdl receiver.wsdl recording.wsdl remotediscovery.wsdl replay.wsdl search.wsdl deviceio.wsdl
```
这个过程可能会较慢,因为wsdl2h会尝试在线下载依赖的xsd和wsdl文件。为了提高效率,你可以提前下载这些文件,并修改wsdl文件中的`schemaLocation`属性,指向本地路径。
接下来,你需要编辑生成的`onvif.h`文件,添加`#import "wsse.h"`,引入身份验证相关的头文件。`wsse`是用于处理Web服务安全的标准,对于ONVIF设备通信来说,通常需要进行身份验证。
然后,使用soapcpp2生成C/C++代码,命令如下:
```bash
soapcpp2 -2 -L -c -x -d../ -I/opt/nfshost/gsoap-2.8/gsoap:/opt/nfshost/gsoap-2.8/gsoap/import/:/opt/nfshost/gsoap-2.8/gsoap/custom/ onvif.h
```
这将生成一系列的源文件和库,供你的项目使用。通过填充wsddapi提供的接口,你可以实现ONVIF设备的发现功能,即`onvif_discover`。
在实际使用中,你需要理解WSDL(Web服务描述语言)和SOAP(简单对象访问协议),它们是ONVIF协议的基础。WSDL描述了Web服务的接口、消息格式和通信方式,而SOAP则是基于XML的协议,用于交换结构化的信息。
此外,ONVIF设备发现通常涉及使用Probe、ProbeMatch和 Bye 消息。你需要正确配置和使用这些消息,以找到网络上的ONVIF设备。在gsoap的帮助下,你可以创建一个客户端,发送Probe请求,然后接收并解析来自ONVIF设备的ProbeMatch响应,从而实现设备的发现和连接。
这篇教程提供了一个简化的流程,帮助开发者利用gsoap2.8.11快速实现ONVIF协议的设备发现功能。通过学习和实践,你可以进一步理解和掌握ONVIF协议以及gsoap的使用方法,这对于开发视频监控系统或其他与ONVIF兼容的物联网设备至关重要。
2017-03-19 上传
2017-03-19 上传
2019-01-22 上传
2021-10-03 上传
2022-09-23 上传
2021-06-05 上传
2022-09-21 上传
2019-12-26 上传
2022-09-14 上传
camel_in_sand
- 粉丝: 1
- 资源: 18
最新资源
- dostavka24:Dostavka24管理面板
- rpi-monitor-cam-led
- 004泥浆护壁回转钻孔灌注桩施工工艺.zip
- abbyjs:启发于MingGeJs,我也想写个霸气的自述文件和霸气的jQuery
- busfactor:如果fariz被公交车撞到了怎么办?
- DirectX修复工具&下载地址.zip
- uk-companies-scraper:部分出版物这是未来
- Sticky-nav-bar
- Hendrix-开源
- Proyecto-DWEC:Prosarecto del2ºtrimestre de Desarrollo网站和客户端
- 旅游及票务网站模版
- base-repo:GOSCPS基本存储库
- 【QGIS跨平台编译】之【FreeXL跨平台编译】:源码及跨平台编译工程(支撑QGIS跨平台编译,以及二次研发)
- 哈希表是什么及它的作用
- MONGO和MANGO一样甜
- grimrock-import:从Grimrock 1导入到Grimrock 2的资产集合