zoukankan      html  css  js  c++  java
  • ONVIF学习-ONVIF开发框架搭建(C++)

    第一步、下载gsoap

        从gsoap官网(http://www.genivia.com/products.html#notice)下载最新版gsoap(博主用的是gsoap_2.8.45)。gsoap有三个版本:Open Source gSOAP、Commercial gSOAP Edition、Commercial gSOAP Edition。我们下载开源版本即可。

    第二步、解压gsoap并建立文件夹层次

       新建一个文件夹,命名为OnvifFramework,将下载下来的gsoap_x.x.xx.zip解压到该文件夹。在该文件夹下再新建两个文件夹,分别命名为:level1和ver10。在level1文件夹下新建一个文件夹,命名为:level2。在level2文件夹下新建三个文件夹,分别命名为:FrameworkSource、GenerateSource、ver10。在ver10文件夹下建立三个文件夹,分别命名为:device、media、schema。在device和media文件夹下新建一个文件夹,命名为wsdl。在ver10文件夹下新建一个文件夹,命名为schema。文件夹请务必按这个顺序建立。最后将OnvifFrameworkgsoap-2.8gsoap路径下的typemap.dat和OnvifFrameworkgsoap-2.8gsoapinwin32路径下的wsdl2h.exe、soapcpp2.exe(wsdl2h不支持https,需要重新编译gsoap,编译方法参照最下面的博客链接)拷贝到GenerateSource文件夹下。

        具体文件夹层次结构如下图所示:

    第三步、下载Onvif相关文件

        从Onvif官网(http://www.onvif.org/Documents/Specifications.aspx)的ONVIF WSDL and XML Schemas Specifications页面中下载wsdl(右键-将链接另存为即可),并将下载下来的wsdl放在GenerateSource文件夹内。拷贝devicemgmt.wsdl到D:ONVIFOnvifFrameworklevel1level2ver10devicewsdl路径下,拷贝media.wsdl到OnvifFrameworklevel1level2ver10mediawsdl路径下,拷贝onvif.xsd到OnvifFrameworklevel1level2ver10schema路径下,拷贝onvif.xsd到OnvifFrameworkver10schema路径下。

    第四步、生成onvif.h

       生成方式分为在线生成和本地生成两种,鉴于在线生成的不稳定性,博主采用本地生成方式。打开控制台,切换到GenerateSource路径下,在控制台中输入wsdl2h -o onvif.h -t  ./typemap.dat  accesscontrol.wsdl accessrules.wsdl actionengine.wsdl advancedsecurity.wsdl analytics.wsdl analyticsdevice.wsdl 

    credential.wsdl deviceio.wsdl devicemgmt.wsdl display.wsdl doorcontrol.wsdl event.wsdl imaging.wsdl media.wsdl ptz.wsdl receiver.wsdl recording.wsdl remotediscovery.wsdl replay.wsdl schedule.wsdl search.wsdl

    (各个wsdl间用一个空格隔开)

    第五步、通过onvif.h文件生成源代码框架

        如果需要鉴权,修改onvif.h头文件,加入#import "wsse.h"。将 OnvifFrameworkgsoap-2.8gsoapimport路径下的wsa5.h中的SOAP_ENV__Fault结构体注释掉或改为其他名字,如SOAP_ENV__Fault_alex。修改完后在控制台中输入soapcpp2 -j  onvif.h -I  ../../../gsoap-2.8/gsoap/import:../../../gsoap-2.8/gsoap,看到Compilation successful即为成功。

    第六步、整理源代码

       将生成的.h和.cpp文件以及wsdd.nsmap文件拷贝到FrameworkSource中,并拷贝OnvifFrameworkgsoap-2.8gsoap路径下的stdsoap2.h和stdsoap2.cpp到该文件夹。

    总结

       通过以上六个步骤即可完成ONVIF开发框架搭建,以后开发Onvif应用时,直接拷贝FrameworkSource文件夹中的文件即可(开发Onvif客户端程序,使用XXXXProxy.h和XXXXProxy.cpp,开发Onvif服务器端程序,使用XXXXService.h和XXXXService.cpp)。Onvif框架文件已上传,请到此处(http://download.csdn.net/download/u011110151/9898860)下载。

        这篇博客(http://blog.csdn.net/saloon_yuan/article/details/24901597)及这篇博客(http://blog.csdn.net/benkaoya/article/details/72466827)给予博主很大帮助,特此感谢。

  • 相关阅读:
    sparkSQL
    Spark分区实例(teacher)
    SparkCore的性能优化
    Linux 输出当前路径下某个文件的绝对路径
    bulid runnable jar file with dependencies
    bulid runnable jar file with dependencies and main class
    spring mvc 整合jsp和thymeleaf两个模板引擎
    解决Volley中的JsonObjectRequest jsonRequest参数无法被服务端读取的问题
    为volley的http请求添加自定义request header
    使用spring-boot-starter-data-jpa 怎么配置使运行时输出SQL语句
  • 原文地址:https://www.cnblogs.com/subo_peng/p/7530592.html
Copyright © 2011-2022 走看看