gsoap2.8.11实现onvif discover详细教程.doc_第1页
gsoap2.8.11实现onvif discover详细教程.doc_第2页
gsoap2.8.11实现onvif discover详细教程.doc_第3页
gsoap2.8.11实现onvif discover详细教程.doc_第4页
gsoap2.8.11实现onvif discover详细教程.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

感谢以下教程基本是 (沙漠之鸽)给予我的指导的整理而来,他非常耐心的提供了帮助,也是受于他的分享精神,所以写下了这遍教程。前言:做onvif的过程十分痛苦,什么wsdl,soap,webserver,全部都是没有接触过的,还好有gsoap可以用,在网上和群共享里面只有2.8.3版本实现过程,而且比较麻烦的是要自己实现probe所有细节。在2.8.11中,wsddapi插件为我们设计好了wsdd的接口,我们要做的就是填充brobe的matches信息就可以了。简化了开发过程,也不必用高手们做的typemap文件,因为这些看不懂的文件让我们对做出的程序毫无信心。生成.h文件。我们需要从onvif官网下载wsdl文件,和onvif.xsd文件。然后生成.h文件wsdl2h -sck -t /opt/nfshost/gsoap-2.8/gsoap/typemap.dat -o onvif.h analytics.wsdl analyticsdevice.wsdl devicemgmt.wsdl display.wsdl event.wsdl imaging.wsdl media.wsdl ptz.wsdl receiver.wsdl recording.wsdl remotediscovery.wsdl replay.wsdl search.wsdl deviceio.wsdl这一步你会发现生成速度非常慢,还会提示找不到onvif.xsd,速度慢得原因是wsdl2h会根据wsdl中引用去网上下载一下xsd和wsdl文件,我们可以将这些文件下载到本地,然后修改wsdl中的路径。修改之前schemaLocation是一个url,如果你放的和你onvif的wsdl文件相同的目录中,这样写就ok了,如果不是,可以写上相对路径。修改生成的onvif.h文件增加一句#import wsse.h,用于身份验证,具体怎么用还不知道。求帮助生成代码soapcpp2 -2 -L -c -x -d ./ -I /opt/nfshost/gsoap-2.8/gsoap:/opt/nfshost/gsoap-2.8/gsoap/import/:/opt/nfshost/gsoap-2.8/gsoap/custom/ onvif.h生成的过程中会出现SOAP_ENV_Fault重复定义,注视掉wsa5.h中得内容就行了好了,我们的代码已经生成。每个文件具体作用请见查看文档。、将plugin中得文件拷贝到工程、 gsoap/dom.c gsoap/stdsoap2.c gsoap/stdsoap2.h gsoap/custom/duration.c gsoap/plugin/mecevp.c gsoap/plugin/mecevp.h gsoap/plugin/smdevp.c gsoap/plugin/smdevp.h gsoap/plugin/threads.c gsoap/plugin/threads.h gsoap/plugin/wsaapi.c gsoap/plugin/wsaapi.h gsoap/plugin/wsseapi.cgsoap/plugin/wsseapi.hgsoap/plugin/wsddapi.c gsoap/plugin/ wsddapi.h现在我们的webserver中有了这些文件了。实现接口Gsoap在soapStub.h中为我们定义了的函数,我们必须要实现,当然不是要一下子写完,你可以写个空的函数,新建一个c文件,将函数实现。记住一点,WSDD域的方法已经在wsddapi实现。_wsdd_开头的函数不需要实现。Wsddapi需要你实现一些event接口。这个接口是以上函数用来获取信息的,只要将信息填充就可以了。我的probe是这样实现的,当然是最初步的实验,没有信息获取过程 soap_wsdd_init_ProbeMatches(soap,matches); soap_wsdd_add_ProbeMatch(soap,matches, urn:uuid:464A4854-4656-5242-4530-313035394100, dn:NetworkVideoTransmitter, onvif://type/video_encoder onvif://type/audio_encoder onvif://hardware/IPC-model onvif://name/IPC-model, NULL, 43/onvif/device_service,1);以上两行就可以实现probe,是不是很easy啊。Wsddapi文件此时还是编译不过去的,因为默认使用的是wsa5,而wsdd定义的是wsa,所以我们修改soapStu.h注释掉soap_wsa_2005,此时,我们的webserver可以编译通过了。监听组播信息当然,我们还需要监听组播消息。我们此时调用wsaapi中得listen方法就可以了。编

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论