gSoap代码生成

来源:互联网 发布:网上开票软件 编辑:程序博客网 时间:2024/05/17 06:51

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选项。然后测试你生成的代码!


后面将贴出利用生成的代码完成设备的发现和能力集获取的使用过程。
0 0
原创粉丝点击