1:gsoap官网(http://gsoap2.sourceforge.net/)下载最新版gsoap(本次版本为gsoap_2.8.17)并解压。
2:新建一个文件夹(OnvifFramework)
将解压的gsoap_2.8.17文件拷贝至OnvifFramework目录下
将gsoap_2.8.17\gsoap-2.8\gsoap 路径下的typemap.dat以及gsoap_2.8.17\gsoap-2.8\gsoap\bin\win32 路径下的wsdl2h.exe soapcpp2.exe也拷贝至该目录下。
3: Onvif官网(http://www.onvif.org/Documents/Specifications.aspx)页面里ONVIF WSDL and XML Schemas Specifications找到各wsdl(18个左右)并下载下来
(右键另存为即可),放入GenerateSource文件夹中。
4:生成onvif.h
生成方式有在线生成和本地生成两种方式。由于网络的原因,在线生成很容易中断。故临时改用本地生成方式,在实际运行时发现,本地生成过程中也需要从网络上下载
相关的依赖文件,并且对文件路径有如下要求:
OnvifFramework
----level1
----level2
----GenerateSource
----typemap.dat
----wsdl2h.exe
----soapcpp2.exe
----remotediscovery.wsdl
----devicemgmt.wsdl
----analytics.wsdl
----analyticsdevice.wsdl
----media.wsdl
----deviceio.wsdl
----display.wsdl
----event.wsdl
----imaging.wsdl
----recording.wsdl
----replay.wsdl
----search.wsdl
----receiver.wsdl
----ptz.wsdl
----ver10
----device
----wsdl
----devicemgmt.wsdl
----media
----wsdl
----media.wsdl
----schema
----onvif.xsd
----ver10
----schema
----onvif.xsd
管理员权限打开CMD,切换至GenerateSource目录下,将如下指令贴到CMD窗口中回车运行即可生成onvif.h文件:
wsdl2h -o onvif.h -c -s -t ./typemap.dat
remotediscovery.wsdl devicemgmt.wsdl analytics.wsdl
analyticsdevice.wsdl media.wsdl deviceio.wsdl display.wsdl
event.wsdl imaging.wsdl recording.wsdl replay.wsdl search.wsdl
receiver.wsdl ptz.wsdl
5:通过onvif.h生成源代码框架
将如下指令贴到CMD窗口中回车运行即可:
soapcpp2 -2 -c onvif.h -x -I gsoap下的import文件夹路径 -I gsoap文件夹路径