前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jetson Nano 使用gSOAP生成ONVIF框架代码及动态库 -- 2 ONVIF框架生成

Jetson Nano 使用gSOAP生成ONVIF框架代码及动态库 -- 2 ONVIF框架生成

原创
作者头像
DN
修改2020-07-06 10:51:36
1.6K0
修改2020-07-06 10:51:36
举报
文章被收录于专栏:JETSON NANO AI

2.1  修改typemap.dat文件

由于使用gSOAP版本为2.8.102,需要对typemap.dat文件进行修改,否则会在后面动态库生成中提示错误,错误如下所示:

解决该错误的方法将typemap.dat文件中的

# xsd__duration = #import "custom/duration.h" | xsd__duration

注释内容开启,修改后如下图所示:

2.2  生成WSDL相应的头文件

使用cd /opt/gsoap-2.8/gsoap/命令,进入gsoap目录。

使用sudo mkdir -p samples/onvif命令,创建onvif目录,用于存储生成的框架代码。

使用sudo wsdl2h -P -x -c -s -t ./typemap.dat -o samples/onvif/onvif.h https://www.onvif.org/ver10/network/wsdl/remotediscovery.wsdl https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl https://www.onvif.org/ver10/media/wsdl/media.wsdl http://www.onvif.org/onvif/ver20/imaging/wsdl/imaging.wsdl命令,得到onvif.h头文件。

操作如下图所示:

2.3  添加鉴权(认证)引用

有些ONVIF接口调用时需要携带认证信息,要使用soap_wsse_add_UsernameTokenDigest函数进行授权,所以要在onvif.h头文件开头加入#import "wsse.h",内容如下所示:

2.4  生成框架代码

使用sudo soapcpp2 -2 -C -L -c -x -I import:custom -d samples/onvif/ samples/onvif/onvif.h命令,根据onvif.h文件生成框架,如下图所示:

上图中出现错误提示wsa5.h(290): **ERROR**: service operation name clash: struct/class 'SOAP_ENV__Fault' already declared at wsa.h:278,可从这个内容中知道'SOAP_ENV__Fault变量重复定义。

解决方法是修改import\wsa5.h文件,将int SOAP_ENV__Fault修改为int SOAP_ENV__Fault_dn,修改内容如下图所示:

再次使用sudo soapcpp2 -2 -C -L -c -x -I import:custom -d samples/onvif/ samples/onvif/onvif.h命令,执行结果如下图:

通过以上操作步骤,生成soapC.c、soapClient.c、soapH.h、soapStub.h 、wsdd.nsmap等框架代码文件。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档