0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MQTT在线配置裁剪工具

汽车电子技术 来源:物联网IoT开发 作者: 杰杰mcu 2023-02-28 16:11 次阅读

MQTT配置说明

  • MQTT_TOPIC_LEN_MAX

    配置客户端支持最大的主题名长度,主题是支持通配符的,如果主题太长则会被截断,默认值为64。

    #define     MQTT_TOPIC_LEN_MAX                  64
    
  • MQTT_ACK_HANDLER_NUM_MAX

    配置mqtt等待应答列表的最大记录个数,对于qos1、qos2服务质量有要求的可以将其设置大一点,当然也必须资源跟得上,它主要是保证qos1、qos2的mqtt报文能准确到达服务器,默认值为64。

    #define     MQTT_ACK_HANDLER_NUM_MAX            64
    
  • MQTT_DEFAULT_BUF_SIZE

    默认的读写数据缓冲区的大小,根据要收发数据量修改即可,默认值为1024。

    #define     MQTT_DEFAULT_BUF_SIZE               1024
    
  • MQTT_DEFAULT_CMD_TIMEOUT

    默认的命令超时,它主要是用于socket读写超时(还包括等待响应的时间、重连等待时间等),默认值为5000。

    #define     MQTT_DEFAULT_CMD_TIMEOUT            5000
    
  • MQTT_MAX_CMD_TIMEOUT

    设置最大的命令超时时间,默认值是20000。

    #define     MQTT_MAX_CMD_TIMEOUT                20000
    
  • MQTT_MIN_CMD_TIMEOUT

    设置最小的命令超时时间,默认值是1000。

    #define     MQTT_MIN_CMD_TIMEOUT                1000
    
  • MQTT_KEEP_ALIVE_INTERVAL

    设置默认的保活时间,它主要是保证MQTT客户端与服务器的保持活性连接,单位为 ,默认值为50。比如MQTT客户端与服务器在指定时间间隔内没有发送数据,有没有接收到数据,此时MQTT客户端会发送一个心跳包,确认一下这个连接是否存在,如果收到服务器的应答,那么说明这个连接还是存在的,可以随时收发数据,而如果不存在了,就尝试重连或者清除会话。

    #define     MQTT_KEEP_ALIVE_INTERVAL            50         // unit: second
    
  • MQTT_VERSION

    选择MQTT协议的版本,默认为4,表示使用MQTT 3.1.1版本,而3则表示使用MQTT 3.1版本。

    #define     MQTT_VERSION                        4           // 4 is mqtt 3.1.1
    
  • MQTT_RECONNECT_DEFAULT_DURATION

    设置默认的重连时间间隔,当发生掉线时,会以这个时间间隔尝试重连,默认值为1000。

    #define     MQTT_RECONNECT_DEFAULT_DURATION     1000
    
  • MQTT_THREAD_STACK_SIZE

    MQTT内部维护一个线程,需要设置默认的线程属性信息,MQTT_THREAD_STACK_SIZE表示线程栈的大小,默认值是2048。在linux环境下可以是不需要理会这些参数的,而在RTOS平台则需要配置,如果不使用mbedtls,线程栈2048字节已足够,而使用mbedtls加密后,需要配置4096字节以上

    #define     MQTT_THREAD_STACK_SIZE              2048    // 线程栈
    
  • MQTT_THREAD_PRIO

    设置线程优先级,默认为5。

    #define     MQTT_THREAD_PRIO                    5       // 线程优先级
    
  • MQTT_THREAD_TICK

    设置线程优时间片,默认为50。

    #define     MQTT_THREAD_TICK                    50      // 线程时间片
    
  • MQTT_NETWORK_TYPE_NO_TLS

    设置是否需要支持TLS加密传输,如果定义了该宏,则表示不支持TLS加密传输,否则默认将支持TLS加密传输。

    #define     MQTT_NETWORK_TYPE_NO_TLS
    

salof相关的配置

salof 全称是:Synchronous Asynchronous Log Output Framework(同步异步日志输出框架),它是一个同步异步日志输出框架,可以在空闲时候输出对应的日志信息,并且该库与mqttclient无缝衔接。

  • LOG_LEVEL

    配置对应的日志输出级别,它支持以下4种级别:ERR_LEVEL、WARN_LEVEL、INFO_LEVEL、DEBUG_LEVEL。

    #define BASE_LEVEL      (0)
        #define ERR_LEVEL       (BASE_LEVEL + 1)          /* 日志输出级别:错误级别(高优先级) */
        #define WARN_LEVEL      (ERR_LEVEL + 1)             /* 日志输出级别:警告级别(中优先级) */
        #define INFO_LEVEL      (WARN_LEVEL + 1)            /* 日志输出级别:信息级别(低优先级) */
        #define DEBUG_LEVEL     (INFO_LEVEL + 1)            /* 日志输出级别:调试级别(更低优先级) */#define         LOG_LEVEL                   WARN_LEVEL      /* 日志输出级别 */
    
  • USE_SALOF

    如果该宏大于0,则表示使用salof指定的后端作为日志输出,反之则使用printf作为日志输出接口

    #define         USE_SALOF                   (1U)
    
  • SALOF_OS

    设置salof日志库的操作系统,有以下选项:USE_LINUX、USE_TENCENTOS、USE_FREERTOS、USE_RTT。

    #define         SALOF_OS                    USE_LINUX
    
  • USE_IDLE_HOOK

    如果该宏大于0,则表示在操作系统中的空闲钩子函数中输出日志,反之则通过线程异步处理或者同步处理。

    #define         USE_IDLE_HOOK               (0U)
    
  • LOG_COLOR

    如果该宏大于0,则表示输出的日志是带有颜色的(需要终端的支持),反之则没有颜色。

    #define         LOG_COLOR                   (1U)
    
  • LOG_TS

    如果该宏大于0,则表示输出的日志是带有时间戳的,反之则没有时间戳。

    #define         LOG_TS                   (0U)
    
  • LOG_TAR

    如果该宏大于0,则表示输出的日志是带有标签的(任务名字),反之则没有标签。

    #define         LOG_TAR                   (0U)
    
  • SALOF_BUFF_SIZE

    设置日志库salof输出库的buf缓冲区大小,即最大一次性能输出多少个字节。

    #define         SALOF_BUFF_SIZE                   (512U)
    
  • SALOF_FIFO_SIZE

    设置日志库salof的fifo缓冲区大小,即最能缓存多少个字节的日志数据。

    #define         SALOF_FIFO_SIZE             (1024*4U)
    
  • SALOF_TASK_STACK_SIZE

    如果使用了空闲线程输出日志,则配置salof线程栈的大小。

    #define         SALOF_TASK_STACK_SIZE       (2048U)
    
  • SALOF_TASK_TICK

    如果使用了空闲线程输出日志,则配置salof线程栈的时间片大小。

    #define         SALOF_TASK_TICK             (50U)
    

使用mqttclient裁剪配置工具

我们可以通过配置很方便地裁剪我们需要的功能,设置上述MQTT客户端的默认参数,完全不需要手动修改代码,直接使用工具裁剪配置即可。

打开在线mqttclient裁剪配置工具:https://jiejietop.gitee.io/mqtt/mqtt-config.html

它支持裁剪配置相关的头文件,配置客户端默认的一些参数:

图片

mqtt-config-tool01

还支持配置salof同步异步日志相关的信息,以保证日志能正常运作,配置完成后生成对应的代码,然后覆盖掉原本的MQTT客户端配置即可,如果不知道如何配置,那就导入默认的配置即可。

图片

mqtt-config-tool02

如果是初次接触,看不懂上面配置的信息,没关系,我很贴心地准备了配置的宏定义及其描述信息,保证你能看得懂的。

图片

mqtt-config-tool03

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 客户端
    +关注

    关注

    1

    文章

    282

    浏览量

    16343
  • 配置
    +关注

    关注

    1

    文章

    184

    浏览量

    18171
  • MQTT
    +关注

    关注

    5

    文章

    538

    浏览量

    21981
收藏 人收藏

    评论

    相关推荐

    NXP在线引脚配置工具使用说明V1.00

    NXP在线引脚配置工具使用说明V1.00
    发表于 09-21 08:16

    内核裁剪的相关资料分享

    内核裁剪.config确认哪些代码编进内核,哪些代码被裁剪掉menuconfig(文本菜单配置界面)生成.config 的一个工具make menuconfigmenuconfig 常
    发表于 12-20 06:36

    通过单片机来实现MQTT参数配置

    MQTT参数配置,需要阿里云三元组ESP8266,使用安信可官方MQTT固件。1.升级ESP8266wifi 模块,使用ESPFlashDownLoadTool_v3.6.4.exe,升级安信可官方提供的
    发表于 01-18 09:56

    ClockWorks®配置在线工具

    ClockWorks®配置在线工具
    的头像 发表于 06-06 13:46 1932次阅读
    ClockWorks®<b class='flag-5'>配置</b>器<b class='flag-5'>在线</b><b class='flag-5'>工具</b>

    物联网MQTT网关连接PLC配置全过程

    物联网MQTT网关连接PLC配置全过程
    发表于 05-23 10:58 30次下载

    MQTT网关采集PLC数据配置流程

    首先确认好PLC与网关的接线是否正确,然后在本地或云平台配置网关的采集参数,文档中主要介绍本地MQTT网关的配置,进入物通博联的MQTT网关的WEB界面,根据网关表建立
    发表于 06-11 14:43 611次阅读
    <b class='flag-5'>MQTT</b>网关采集PLC数据<b class='flag-5'>配置</b>流程

    美国微芯科技公司-ClockWorks®配置在线工具

    ClockWorks®配置在线工具
    的头像 发表于 07-08 02:00 2721次阅读

    STM32内部RAM在线调试配置方法及详细说明 (基于Keil开发工具

    STM32内部RAM在线调试配置方法及详细说明(基于Keil开发工具
    的头像 发表于 03-24 14:01 6846次阅读
    STM32内部RAM<b class='flag-5'>在线</b>调试<b class='flag-5'>配置</b>方法及详细说明 (基于Keil开发<b class='flag-5'>工具</b>)

    FreeRTOS|自定义裁剪

    FreeRTOS是支持自定义裁剪的, 用户可用根据实际硬件资源, 进行合适裁剪使得占用合适, 裁剪主要是通过配置文件实现, 本文借鉴了原子的配置
    的头像 发表于 12-26 10:21 962次阅读

    MQTT在线代码生产工具

    mqttclient代码生产工具主要是用于配置MQTT的参数,并且生成相应的代码,因为是可视化的配置,极易使用。
    的头像 发表于 02-28 16:09 1382次阅读
    <b class='flag-5'>MQTT</b><b class='flag-5'>在线</b>代码生产<b class='flag-5'>工具</b>

    如何使用 SPC 工具配置电机

    Siemens Product Configurator (SPC) 是西门子新一代在线产品选型工具,其可以实现对驱动及电机的配置,涵盖了广泛的产品范围,并具有丰富的文档支持。客户通过 SPC
    的头像 发表于 05-25 10:45 633次阅读
    如何使用 SPC <b class='flag-5'>工具</b><b class='flag-5'>配置</b>电机

    工业智能网关BL110应用之三十五: 如何连接配置金鸽MQTT云服务器

    BL110网关支持多个平台同时在线。金鸽MQTT数据配置如下:工业智能网关BL110配置金鸽MQTT云服务器金鸽
    的头像 发表于 09-08 16:15 477次阅读
    工业智能网关BL110应用之三十五: 如何连接<b class='flag-5'>配置</b>金鸽<b class='flag-5'>MQTT</b>云服务器

    盘点2023年值得尝试的MQTT客户端工具

    随着物联网(IoT)的快速发展,MQTT协议被许多公司和开发人员广泛使用。在学习和使用 MQTT 的过程中,MQTT 客户端工具用于连接 MQTT
    的头像 发表于 07-13 10:11 3073次阅读
    盘点2023年值得尝试的<b class='flag-5'>MQTT</b>客户端<b class='flag-5'>工具</b>

    矢量字体裁剪工具

    矢量字体裁剪工具
    发表于 04-28 13:55 5次下载

    蓝蜂MQTT网关配置工具使用说明

    蓝蜂MQTT网关配置工具使用说明
    发表于 08-31 14:26 0次下载