MQTT问题

2023-05-16

是否存在c->ping_outstanding = 1;的后一秒就触发TimerIsExpired(&c->last_received)

int keepalive(MQTTClient *c)
{
    int rc = SUCCESS;

    if (c->keepAliveInterval == 0)
        goto exit;

    if (TimerIsExpired(&c->last_sent) || TimerIsExpired(&c->last_received))
    {
        if (c->ping_outstanding)
            rc = FAILURE; /* PINGRESP not received in keepalive interval */
        else
        {
            Timer timer;
            TimerInit(&timer);
            TimerCountdownMS(&timer, 1000);
            int len = MQTTSerialize_pingreq(c->buf, c->buf_size);
            if (len > 0 && (rc = sendPacket(c, len, &timer)) == SUCCESS) // send the ping packet
                c->ping_outstanding = 1;
        }
    }

exit:
    return rc;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MQTT问题 的相关文章

随机推荐

  • shell脚本中=左右的空格问题

    赋值语句等号两边不能有空格 xff1a i 61 1 或i 61 i 43 1 而字符串比较 xff0c 等号两边必须有空格 if a 61 b 比较时 xff0c if a xxx b 中括号前后一定要加空格否则会报错xxx 61 eq
  • freertos.axf: Error: L6218E: Undefined symbol xTaskGetSchedulerState (referred from delay.o).

    今天移植了一下FreeRTOS xff0c 出现了freertos axf Error L6218E Undefined symbol xTaskGetSchedulerState referred from delay o xff0c 这
  • vnc桌面配置及黑屏问题解决

    一 vnc桌面配置 登入需要远程帐号下修改 vnc xstartup 如配置root远程桌面 vi vnc xstartup 原内容如下 xff1a xff3b x etc vnc xstartup xff3d amp amp exec e
  • 华清嵌入式--入学篇

    当初在学习嵌入式的时候 xff0c 就知道嵌入式门槛高 xff0c 需要的知识比较多 工作了4年多时间 xff0c 确实感觉还是刚入门的感觉 xff0c 焊接 调试 原理图 PCB 模电 数电 c语言 数据结构 单片机 linux等知识比价
  • 20.华清嵌入式--数据结构入门

    从今天开始正式开始学习数据结构与算法 从今天开始正式开始学习数据结构与算法 从上面的框图也可以从整体上把握数据结构的关键知识点 xff0c 不管是简单的顺序表还是栈 xff0c 树等 xff0c 学习的方法都是一样的他们的操作也都是无非都是
  • 35.Linux应用层开发---线程

    一 线程的概念和使用 1 线程的概念 为了进一步减少处理器的空转时间 xff0c 支持多处理器以及减少上下文切换开销 xff0c 进程在演化中出现了另外一个概念线程 它是进程内独立的一条运行路线 xff0c 是内核调度的最小单元 xff0c
  • 36.Linux 应用层开发--进程间通讯

    最近因为项目原因耽误了一些时间 xff0c 导致进程间的通讯一直没有来的及学习及整理 在我们之前学过进程相关的概念和操作 xff0c 还学习了轻量级的进程的线程 xff0c 在我们之后的开发和面试中 xff0c 多线程 xff0c 多进程开
  • 树莓派4 ubuntu22.04LTS整合Intel Realsense深度相机

    树莓派4 ubuntu22 04LTS整合Intel Realsense深度相机 文章目录 树莓派4 ubuntu22 04LTS整合Intel Realsense深度相机前言一 为什么不使用Docker安装或使用官方教程安装 xff1f
  • 串口打印调试信息(干货)

    printf重定向到串口 上代码 xff0c 这里用到的是hal库 xff0c 标准库改以下函数就行 span class token macro property span class token directive keyword in
  • 相电流与线电流有什么区别

    相电流和线电流的区别 xff0c 主要看负载的连接方法 xff0c 如果是星型接法 xff0c 相电流和线电流相同 xff0c 线电压是相电压的开方3倍 如果负载是三角形接法 xff0c 那么 xff0c 线电流是相电流的开方3倍 xff0
  • STM32f103c8t6的定时器配置定时中断

    span class token comment 时间计算公式 span Tout span class token operator 61 span xff08 xff08 arr span class token operator 43
  • 集成学习方法

    概述 集成学习 xff0c 是将几个泛化能力差的模型相结合 xff0c 组成泛化能力强的模型 常见的做法就是分别训练几个模型 xff0c 然后再将多个模型的输出组合 xff0c 形成最终输出 xff0c 也称为模型平均的效果 类似的策略都称
  • (Java)常规技术面试题

    Java基础部分 1 Java 的 一次编写 处处运行 如何实现 xff1f JAVA之所以能实现 一次编译 xff0c 到处运行 xff0c 是因为JAVA在每个系统平台上都有 JAVA虚拟机 xff08 JVM xff09 xff0c
  • ESP8266烧写固件提示等待上电

    环境 供电电压 xff1a span class token number 5 span V 模块 xff1a 正点原子ATK span class token operator span ESP span class token oper
  • 嵌入式面试刷题

    1 表示一年有多少秒 define SECONDS PER YEAR 606024 365 UL 2 写一个标准宏 MIN define MIN A B A lt 61 B A B 3 指针数组 int a 10 优先级高所以是a 10 数
  • ubuntu18配置ftp

    安装ftp 修改文件 sudo gedit etc vsftpd conf span class token comment Example config file etc vsftpd conf span span class token
  • win11切换win10资源管理器

    HKEY LOCAL MACHINE SOFTWARE Microsoft Windows CurrentVersion Shell Extensions 右键 Blocked 选择 新建 字符串值 名称为 e2bf9676 5f8f 43
  • 联想小新pro13笔记本外接显示屏没信号

    step1 关机 step2 拔下电源 step3 安住 fn 43 s 43 v键 xff0c 开机 xff08 开不了机 xff0c 我重复了几次 xff09 step4 插电源开机 xff0c 扩展屏幕正常
  • C51内存类型

    bdata bdata内存类型只能用于声明变量 您不能声明bdata函数 该存储器使用8位地址直接访问 xff0c 是8051的片内位可寻址RAM 用bdata类型声明的变量是位可寻址的 xff0c 可以用位指令读写 code 代码存储器类
  • MQTT问题

    是否存在c gt ping outstanding 61 1 的后一秒就触发TimerIsExpired amp c gt last received span class token keyword int span span class