发送消息的主要内容:

1、初始化请求
2、填充要发送的数据
3、发送并接受返回的数据
4、解析数据
5、清理缓存


正文

1、初始化onvif请求

定义一个onvif请求req
定义一个onvif标签tag
临时资源*tmpValue
临时结果tmpresult
主机ip acHostIp[16]
ip地址 acLocalAddress[128]
临时标记tmp_mask[20]

//初始化reqInitOnvifReq(req);
int InitOnvifReq(onvif_req *req)
{//onvif_req  req;int sendlen;int tmplen; memset(req,0,sizeof(onvif_req));xml_init_onvif(req);req->buf = NULL;//发送的数据req->buflen = 0;req->currlen = 0;req->query_str = NULL;//填入接收到数据req->specia_fault_code = NULL;req->fault_detail = NULL;req->fault_head = NULL;req->error_string[0] = 0;return 0;
}
2、填充需要发送的数据
//接收缓存
char *pRecvBuf=new char [BUF_SIZE];
    if (xml_init_out_buf(req,ONVIF_BUF_SIZE_10K) < 0){tmpresult=-1;goto End;}
3、发送并接收返回的数据
ret=SendAndGetData(req,tag,pInfo->acRemoteaddr,pInfo->acRemoteIp,pRecvBuf, pInfo->port);if(ret!=0){printf("COnvifClientCmd::c_OnvifSendRenew()>>>>>>SendAndGetData() error:%s:%d\r\n",__FILE__,__LINE__);tmpresult=-1;goto End;}
4、解析收到的数据
#if 1OnvifDebug("COnvifClientCmd::c_OnvifSendRenew()>>>>>>start parse c_OnvifSendRenew data\r\n");tag_t_onvif *tag1, *tag2, *tag3;struct tm * timeinfo;tag1=xml_parse_get_child_tag(tag,TAG_WSNT_RenewResponse,TAG_WSNT_TerminationTime);tmpValue=xml_parse_get_Value(tag1);if(tmpValue){  //timeinfo = localtime ( tmpValue);//printf ( "The renew date/time is: %s", asctime (timeinfo) );OnvifDebug ( "COnvifClientCmd::c_OnvifSendRenew()>>>>>>The renew date/time is: %s\r\n", tmpValue );}tag1=xml_parse_get_child_tag(tag,TAG_WSNT_RenewResponse,TAG_WSNT_CurrentTime);tmpValue=xml_parse_get_Value(tag1);if(tmpValue){    //timeinfo = localtime (tmpValue);//printf ( "The current date/time is: %s", asctime (timeinfo) );OnvifDebug ( "COnvifClientCmd::c_OnvifSendRenew()>>>>>>The current date/time is: %s\r\n", tmpValue );}OnvifDebug("COnvifClientCmd::c_OnvifSendRenew()>>>>>>end parse c_OnvifSendRenew data\r\n");
#endif
End:
5、释放内存
if(pRecvBuf){delete []pRecvBuf;pRecvBuf=NULL;}ReleaseData(req,tag);OnvifDebug("COnvifClientCmd::c_OnvifSendRenew()>>>>>>out\r\n");return tmpresult;

onvif发送订阅规则相关推荐

  1. 使用python封装了一个获取小程序token,发送订阅消息的类

    前言 这是在开发小程序过程中用到的一个类,这里放出来希望对大家有一些帮助. class WeAPP():def __new__(cls, *args, **kwargs):if not hasattr ...

  2. 发送订阅消息 微信小程序

    功能描述 小程序单次授权后,用于发送订阅消息. 调用方式 HTTPS 调用 POST https://api.weixin.qq.com/cgi-bin/message/subscribe/send? ...

  3. 【微信小程序系列】微信小程序简单的实现发送订阅信息

    [微信小程序系列]微信小程序简单的实现发送订阅信息 项目结构 两个云函数一个页面 获取模板 注:详细内容中的参数很重要,一会要在云函数里用 代码 app.js // app.js App({onLau ...

  4. ONVIF 事件--订阅推送告警

    系列文章目录 ONVIF 事件–能力集 文章目录 系列文章目录 前言 一.BaseNotification 1.流程图 2.事件属性状态 3,订阅报文 二.Real-time Pull-Point 1 ...

  5. 小程序发送订阅消息,微信公众号发送消息模板

    首先讲两个注意事项 1.小程序和微信公众号的用户openid是不同的. 2.小程序需要用户手动授权订阅消息通知(一次性订阅是订阅一次发一次,长期订阅可以多发). 关于小程序和公众号AppID和AppS ...

  6. 微信小程序——服务通知,发送订阅消息

    一.什么是消息推送 二.整体效果 三.实现步骤 1 小程序开通订阅消息 2 postApi测试效果 三.uniapp配置 这里有个需要特别注意的点,我们要给用户发送消息,就必须引导用户授权,如下 因为 ...

  7. mqtt session保持 订阅消息_iOS MQTT 3 - 发送订阅消息以及发送过程

    目录: 该系列文章预计包括: 前言: 这里的代码是从MQTTSessionManager为切入点进入的,所以下面的方法如果没有特殊描述都是从这个类然后进入内部. 主题 == topic文章中可能出现多 ...

  8. 小程序云开发,订阅消息定时批量发送实现代码

    需求:做一个类似抽奖结果通知的订阅消息提醒 实现流程: 每个用户需要先授权订阅消息接收,授权成功后把数据存到云开发的数据集合里面,再写个定时器,遍历数据集合的所有数据,拿到后遍历发送订阅消息,发送成功 ...

  9. 微信小程序订阅消息定时发送消息

    微信小程序订阅消息定时发送消息 本人专注使用云开发,实现一个前端可以做后端以及整个项目的部署与上线. 如果觉得我讲的好就可以给我点个赞.也可以加我微信了解详情. 1.我们先要了解什么是订阅消息 而现在 ...

最新文章

  1. 11210怎么等于24_【Python】鸡兔同笼怎么“妙解”?
  2. mac os 命令行下载
  3. 25、Sql语句执行顺序
  4. gmail注册手机号不能用于验证_注册Google帐户手机号无法验证的问题
  5. 简述中断处理的6个步骤_实用!处理电机振动的11个常用步骤
  6. android 如何修改百度导航诱导界面,Android 百度导航SDK
  7. 学习ESLint的规则配置,ESLint语法检测配置说明
  8. 线程安全使用相关注意事项
  9. 电脑故障扫描修复软件_非常时期不出门,自己在家修电脑,三例常见电脑故障排除方法。...
  10. 重磅!!Redis 6.0.0 已发布,有史以来改变最大的版本
  11. 2017国二c语言考试试卷,2017备考计算机二级C语言真题试卷
  12. 七款修复工具介绍:不仅能修复U盘,SD卡、TF卡也能修复!
  13. Android JNI的调用过程
  14. Web聊天室历史记录解决方案(轻喷。。)
  15. CMOS Image Sensor的接口硬件设计(DVP/MIPI CSI)
  16. (转)常见数学符号及公式英文发音大全
  17. 网页制作html怎么居中,网页制作中的水平居中和垂直居中解决方法集合
  18. [转]GNSS NMEA-0183协议解析
  19. python的rs232通信_RS-232与Python的通信返回Gibberish
  20. vue背景图片路径问题

热门文章

  1. python开发wince软件_Wince6.0应用开发:二、模拟器的使用
  2. double operator[](int i)_java中double类型精度丢失问题及解决方法
  3. java-web前端 javascript
  4. Linux命令:find命令详解
  5. 方向盘的正确驾驭方法
  6. 赌还是不赌 你应该辞职去创业吗?
  7. 使用Intel编译器系列合集
  8. 【ffmpeg for wince】音视频编解码多平台移植(for window/wince)
  9. Web Service 客户端,调用服务方法
  10. Nexus 安装(Linux 环境)