onvif開發框架搭建C++版

1. 下載所有wsdl與xsd

在onvif官網:https://www.onvif.org/profiles/specifications/
下載所有wsdl與xsd(右鍵-將鏈接另存爲即可)

2. 下載gsoap

https://sourceforge.net/projects/gsoap2/files/latest/download
下載的開源gsoap 已經編譯好的,不支持 SSL/TLS

3.創建生成框架目錄

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

4.生成onvif.h

gsoap-2.8/gsoap/中的/import、/plugin 、stdsoap2.h、 stdsoap2.cpp、 typemap.dat、 /bin/win64/soapcpp2.exe、 /bin/win64/wsdl2h.exe複製到到GenerateSource/路徑下,
在控制檯中輸入命令
.\wsdl2h.exe -x -o onvif.h -c++ -s -t ./typemap.dat accesscontrol.wsdl accessrules.wsdl actionengine.wsdl advancedsecurity.wsdl analytics.wsdl authenticationbehavior.wsdl credential.wsdl deviceio.wsdl devicemgmt.wsdl display.wsdl doorcontrol.wsdl event.wsdl imaging.wsdl media.wsdl media2.wsdl provisioning.wsdl ptz.wsdl receiver.wsdl recording.wsdl replay.wsdl schedule.wsdl search.wsdl thermal.wsdl uplink.wsdl

去掉部分 .wsdl文件, 只生成框架部分功能命令
.\wsdl2h.exe -x -o onvif.h -c++ -s -t ./typemap.dat remotediscovery.wsdl devicemgmt.wsdl event.wsdl media.wsdl media2.wsdl ptz.wsdl recording.wsdl

在onvif.h 文件中#import位置添加 #import "wsse.h"

5.生成框架代碼

.\soapcpp2.exe -j onvif.h -x -L -C -c++ -i -I./import -I./plugin
執行報錯

wsa5.h(279): *WARNING*: Duplicate declaration of 'SOAP_ENV__Fault' (already declared at line 267)

wsa5.h(289): **ERROR**: service operation name clash: struct/class 'SOAP_ENV__Fault' already declared at wsa.h:277

解決報錯,打開文件import/ wsa5.h
將277行int SOAP_ENV__Fault修改爲int SOAP_ENV__Fault_Ex

執行命令成功後,在目錄下會生成 .cpp .h .nsmap文件,其中各個.nsmap的文件內容是一樣的。

代碼中有用到.nsmap,可將文件名改爲xxx.h作爲頭文件,也可以不該直接#include "xxx.nsmap"

拷貝文件組成開發框架
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章