gsoap及onvif开发客户端框架的生成(一)

1.下载Gsoap:地址http://sourceforge.net/projects/gsoap2/files/gSOAP/
我下载的版本是:gsoap_2.8.46.zip

2.离线生成onvif.h文件

需要执行命令:

wsdl2h -o onvif.h -c -s -t ./typemap.dat devicemgmt.wsdl media.wsdl event.wsdl display.wsdl deviceio.wsdl imaging.wsdl ptz.wsdl receiver.wsdl recording.wsdl search.wsdl remotediscovery.wsdl replay.wsdl analytics.wsdl analyticsdevice.wsdl actionengine.wsdl accesscontrol.wsdl doorcontrol.wsdl 
需要那么多的*.wsdl

下载地址如下:

http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl 
http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl 
http://www.onvif.org/onvif/ver10/event/wsdl/event.wsdl 
http://www.onvif.org/onvif/ver10/display.wsdl 
http://www.onvif.org/onvif/ver10/deviceio.wsdl 
http://www.onvif.org/onvif/ver20/imaging/wsdl/imaging.wsdl 
http://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl 
http://www.onvif.org/onvif/ver10/receiver.wsdl  
http://www.onvif.org/onvif/ver10/recording.wsdl 
http://www.onvif.org/onvif/ver10/search.wsdl 
http://www.onvif.org/onvif/ver10/network/wsdl/remotediscovery.wsdl 
http://www.onvif.org/onvif/ver10/replay.wsdl 
http://www.onvif.org/onvif/ver20/analytics/wsdl/analytics.wsdl 
http://www.onvif.org/onvif/ver10/analyticsdevice.wsdl 
http://www.onvif.org/ver10/actionengine.wsdl 
http://www.onvif.org/ver10/pacs/accesscontrol.wsdl 
http://www.onvif.org/ver10/pacs/doorcontrol.wsdl 
注意这边怎么保存成wsdl简单说下,就是打开以上地址的时候,查看源码,右键网页另存为即可,期间会提示找不到onvif.xsd、types.xsd和common.xsd只需要根据相应的路径下载即可。

把下载的wsdl文件、typemap.dat、onvif.xsd、types.xsd和common.xsd以及wsdl2h.exe放在同一个文件夹下,然后执行命令:

wsdl2h -o onvif.h -c -s -t ./typemap.dat devicemgmt.wsdl media.wsdl event.wsdl display.wsdl deviceio.wsdl imaging.wsdl ptz.wsdl receiver.wsdl recording.wsdl search.wsdl remotediscovery.wsdl replay.wsdl analytics.wsdl analyticsdevice.wsdl actionengine.wsdl accesscontrol.wsdl doorcontrol.wsdl 

提示一下信息说明生成成功了:

gsoap及onvif开发客户端框架的生成(一)_第1张图片

注意:生成的时候会提示找不到onvif.xsd、types.xsd路径,只要修改相应的wsdl路径即可


3.生成代码框架:

首先添加对openssl的支持

打开onvif.h,添加#import "wsse.h" 

生成命令:

soapcpp2  -c onvif.h -x -I../../gsoap-2.8/gsoap/import -I../../gsoap-2.8/gsoap/ -I../../gsoap-2.8/gsoap/custom -I../../gsoap-2.8/gsoap/extras -I../../gsoap-2.8/gsoap/plugin 
gsoap及onvif开发客户端框架的生成(一)_第2张图片

注意:如果提示

wsa5.h(288): **ERROR**: remote method name clash: struct/class 'SOAP_ENV__Fault' already declared at line 274

打开文件gsoap_2.8.16/gsoap-2.8/gsoap/import/ wsa5.h

将277行int SOAP_ENV__Fault修改为int SOAP_ENV__Fault_alex


通过以上步骤,onvif客户端框架基本上有了。

最后只需要保留以下文件即可:

onvif.h、soapC.c、soapClient.c、soapH.h、soapStub.h、stdsoap2.c、stdsoap2.h、wsdd.h(wsdd.nsmap修改的)

其中是stdsoap2.c、stdsoap2.h是gsoap-2.8拷贝过来的。






你可能感兴趣的:(流媒体)