微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

gSoap代码生成

gSoap代码生成工具

gSoap代码生成工具,主要是针对onvif协议进行的一种协议的透明性封装,先介绍一下gSoap: 

gSOAP编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现,从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多。绝大多数的C++web服务工具包提供一组API函数类库来处理特定的SOAP数据结构,这样就使得用户必须改变程序结构来适应相关的类库。与之相反,gSOAP利用编译器技术提供了一组透明化的SOAP API,并将与开发无关的SOAP实现细节相关的内容用户隐藏起来。 onvif协议是网络高清视频行业的一个不是标准的标准,主要是因为他的方便性和可扩展性得到各安防行业开发者的喜爱,具体协议内容可去onvif官方网站下载白皮书进行了解。 下面介绍gSoap工具生成代码的步骤: 1.首先下载gSoap工具,本文使用的是2.8.11版本gsoap工具,生成的是cpp文件代理类型。当然也可以加入相应的选项生成c代码(下面会介绍到)http://sourceforge.net/projects/gsoap2/下载网址。 2.下载wsdl文件包括你再开发过程中使用到onvif协议的所有有关的wsdl文件,比如智能分析,鉴权,ptz等等wsdl文件,具体文件下载我也没找到过,不过在生成的过程中,可以使用csdn上面的旧的版本,在生成过程中会自动连接网络使用最新的wsdl版本进行生成。         3.编辑批处理文件gen-cpp.bat,文件内容如下: soapcpp2.exe -2 -j -x -L onvif.h -IG:\gSoap\gsoap-2.8\gsoap\import;G:\gSoap\gsoap-2.8\gsoap\ pause gen-h.bat文件内容如下: wsdl2h.exe -x -t typemap.dat -o onvif.h http://www.genivia.com/*.wsdl rem analytics.wsdl analyticsdevice.wsdl deviceio.wsdl devicemgmt.wsdl rem display.wsdl event.wsdl imaging.wsdl media.wsdl ptz.wsdl rem receiver.wsdl recording.wsdl remotediscovery.wsdl replay.wsdl           其中 -2 表示使用的是gsoap1.2版本-对应为2.8.XXX,关于版本的问题,可以找到gsoap里面的doc目录--soapdoc2.pdf进行了解;soapcpp2.exe,wsdl2h.exe在gsoap目录下面的bin目录下面,如果没有则要自己编译产生             -S 仅生成客户端代码             -c   产生纯C代码,否则是C++代码认是cpp代码             -L   不要产生soapClientLib.c和soapServerLib.c文件             -I    指定import路径             -x  不要产生XML示例文件             -j   不要产生soap_Heade..等详细定义             -i   生成C++包装,客户端为xxxxProxy.h(.cpp),服务器端为xxxxService.h(.cpp) 4.使用gen-h.bat生成onvif.h文件(当然你可以设置这个文件的名字)通过-o选项,然后使用gen-cpp.bat生成所有的cpp文件,在gen-cpp.bat文件内容中,后面的**.wsdl表示你要使用到得所有的wsdl文件,如果你想去掉使用不到的文件,直接去掉即可。 5.整理你生成代码,然后将服务器和客户端的代码分离出来,(你也可以选择只生成客户端的代码通过-s选项。然后测试你生成代码! 后面将贴出利用生成代码完成设备的发现和能力集获取的使用过程。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐