打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
基于gsoap的onvif discovery服务端实现的几个关键点
一、discovery主要处理流程:
soap_serve()............................................................................soapServer.c
    soap_serve_request().........................................................soapServer.c
     soap_serve___wsdd__Probe()...................................soapServer.c
__wsdd__Probe()....................................................wsddapi.c
wsdd_event_Probe().......................................需要自己实现

二、namespace与typemap
namespace的定义,影响生成代码的结构、变量、函数名的定义,要始终保持一致。
如果不需要考虑Security属性,则可直接用typemap.dat生成(这种方式,如果测试工具发送的报文里Header中含有Security属性的话,会返回错误);
否则建议将WS-typemap.dat与typemap.dat结合起来,将typemap.dat中的namespace定义复制到WS-typemap.dat文件中,以WS-typemap.dat为模板生成头文件,并将生成的头文件中加上#import “wsse.h"来生成代码。

三、注意事项:
1.在wsdd_event_Probe事件中填写回复的具体信息

2.回复的header中wsa__RelatesTo的内容要与收到的消息的wsa__MessageID一致

3.ProbeMatch->Types = (char*)"dn:NetworkVideoTransmitter";  类型值填写名字空间的前缀dn一定要与wsdd.nsmap文件中定义的前缀保持一致,看生成的wsdd文件里面"http://www.onvif.org/ver10/network/wsdl"的定义是什么,就填什么

4.wssapi.c中soap_wsa_reply()修改
该函数中的soap_lookup_plugin返回NULL,导致直接返回了。将该返回值的检查放在函数的最后部分来处理,中间用到该返回值的时候做个判断,保证其他数据正确赋值。

5.soapStub.h中需将#define SOAP_WSA_2005注释

四、其他可参考网上的实现
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
onvif开发总结
ONVIF协议网络摄像机
Onvif备忘录(1)
onvif服务器篇之设备发现(onvifdiscover)
SOAP协议相关代码生成操作说明
AXIS全攻略(一)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服