MQTT配置說明
-
MQTT_TOPIC_LEN_MAX
配置客戶端支持最大的主題名長度,主題是支持通配符的,如果主題太長則會被截斷,默認值為64。
#define MQTT_TOPIC_LEN_MAX 64
-
MQTT_ACK_HANDLER_NUM_MAX
配置mqtt等待應(yīng)答列表的最大記錄個數(shù),對于qos1、qos2服務(wù)質(zhì)量有要求的可以將其設(shè)置大一點,當然也必須資源跟得上,它主要是保證qos1、qos2的mqtt報文能準確到達服務(wù)器,默認值為64。
#define MQTT_ACK_HANDLER_NUM_MAX 64
-
MQTT_DEFAULT_BUF_SIZE
默認的讀寫數(shù)據(jù)緩沖區(qū)的大小,根據(jù)要收發(fā)數(shù)據(jù)量修改即可,默認值為1024。
#define MQTT_DEFAULT_BUF_SIZE 1024
-
MQTT_DEFAULT_CMD_TIMEOUT
默認的命令超時,它主要是用于socket讀寫超時(還包括等待響應(yīng)的時間、重連等待時間等),默認值為5000。
#define MQTT_DEFAULT_CMD_TIMEOUT 5000
-
MQTT_MAX_CMD_TIMEOUT
設(shè)置最大的命令超時時間,默認值是20000。
#define MQTT_MAX_CMD_TIMEOUT 20000
-
MQTT_MIN_CMD_TIMEOUT
設(shè)置最小的命令超時時間,默認值是1000。
#define MQTT_MIN_CMD_TIMEOUT 1000
-
MQTT_KEEP_ALIVE_INTERVAL
設(shè)置默認的?;顣r間,它主要是保證MQTT客戶端與服務(wù)器的保持活性連接,單位為 秒 ,默認值為50。比如MQTT客戶端與服務(wù)器在指定時間間隔內(nèi)沒有發(fā)送數(shù)據(jù),有沒有接收到數(shù)據(jù),此時MQTT客戶端會發(fā)送一個心跳包,確認一下這個連接是否存在,如果收到服務(wù)器的應(yīng)答,那么說明這個連接還是存在的,可以隨時收發(fā)數(shù)據(jù),而如果不存在了,就嘗試重連或者清除會話。
#define MQTT_KEEP_ALIVE_INTERVAL 50 // unit: second
-
MQTT_VERSION
選擇MQTT協(xié)議的版本,默認為4,表示使用MQTT 3.1.1版本,而3則表示使用MQTT 3.1版本。
#define MQTT_VERSION 4 // 4 is mqtt 3.1.1
-
MQTT_RECONNECT_DEFAULT_DURATION
設(shè)置默認的重連時間間隔,當發(fā)生掉線時,會以這個時間間隔嘗試重連,默認值為1000。
#define MQTT_RECONNECT_DEFAULT_DURATION 1000
-
MQTT_THREAD_STACK_SIZE
MQTT內(nèi)部維護一個線程,需要設(shè)置默認的線程屬性信息,MQTT_THREAD_STACK_SIZE表示線程棧的大小,默認值是2048。在linux環(huán)境下可以是不需要理會這些參數(shù)的,而在RTOS平臺則需要配置,如果不使用mbedtls,線程棧2048字節(jié)已足夠,而使用mbedtls加密后,需要配置4096字節(jié)以上
#define MQTT_THREAD_STACK_SIZE 2048 // 線程棧
-
MQTT_THREAD_PRIO
設(shè)置線程優(yōu)先級,默認為5。
#define MQTT_THREAD_PRIO 5 // 線程優(yōu)先級
-
MQTT_THREAD_TICK
設(shè)置線程優(yōu)時間片,默認為50。
#define MQTT_THREAD_TICK 50 // 線程時間片
-
MQTT_NETWORK_TYPE_NO_TLS
設(shè)置是否需要支持TLS加密傳輸,如果定義了該宏,則表示不支持TLS加密傳輸,否則默認將支持TLS加密傳輸。
#define MQTT_NETWORK_TYPE_NO_TLS
salof相關(guān)的配置
salof 全稱是:Synchronous Asynchronous Log Output Framework
(同步異步日志輸出框架),它是一個同步異步日志輸出框架,可以在空閑時候輸出對應(yīng)的日志信息,并且該庫與mqttclient無縫銜接。
-
LOG_LEVEL
配置對應(yīng)的日志輸出級別,它支持以下4種級別:ERR_LEVEL、WARN_LEVEL、INFO_LEVEL、DEBUG_LEVEL。
#define BASE_LEVEL (0) #define ERR_LEVEL (BASE_LEVEL + 1) /* 日志輸出級別:錯誤級別(高優(yōu)先級) */ #define WARN_LEVEL (ERR_LEVEL + 1) /* 日志輸出級別:警告級別(中優(yōu)先級) */ #define INFO_LEVEL (WARN_LEVEL + 1) /* 日志輸出級別:信息級別(低優(yōu)先級) */ #define DEBUG_LEVEL (INFO_LEVEL + 1) /* 日志輸出級別:調(diào)試級別(更低優(yōu)先級) */#define LOG_LEVEL WARN_LEVEL /* 日志輸出級別 */
-
USE_SALOF
如果該宏大于0,則表示使用salof指定的后端作為日志輸出,反之則使用printf作為日志輸出接口。
#define USE_SALOF (1U)
-
SALOF_OS
設(shè)置salof日志庫的操作系統(tǒng),有以下選項:USE_LINUX、USE_TENCENTOS、USE_FREERTOS、USE_RTT。
#define SALOF_OS USE_LINUX
-
USE_IDLE_HOOK
如果該宏大于0,則表示在操作系統(tǒng)中的空閑鉤子函數(shù)中輸出日志,反之則通過線程異步處理或者同步處理。
#define USE_IDLE_HOOK (0U)
-
LOG_COLOR
如果該宏大于0,則表示輸出的日志是帶有顏色的(需要終端的支持),反之則沒有顏色。
#define LOG_COLOR (1U)
-
LOG_TS
如果該宏大于0,則表示輸出的日志是帶有時間戳的,反之則沒有時間戳。
#define LOG_TS (0U)
-
LOG_TAR
如果該宏大于0,則表示輸出的日志是帶有標簽的(任務(wù)名字),反之則沒有標簽。
#define LOG_TAR (0U)
-
SALOF_BUFF_SIZE
設(shè)置日志庫salof輸出庫的buf緩沖區(qū)大小,即最大一次性能輸出多少個字節(jié)。
#define SALOF_BUFF_SIZE (512U)
-
SALOF_FIFO_SIZE
設(shè)置日志庫salof的fifo緩沖區(qū)大小,即最能緩存多少個字節(jié)的日志數(shù)據(jù)。
#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裁剪配置工具
我們可以通過配置很方便地裁剪我們需要的功能,設(shè)置上述MQTT客戶端的默認參數(shù),完全不需要手動修改代碼,直接使用工具裁剪配置即可。
打開在線mqttclient裁剪配置工具:https://jiejietop.gitee.io/mqtt/mqtt-config.html
它支持裁剪配置相關(guān)的頭文件,配置客戶端默認的一些參數(shù):
mqtt-config-tool01
還支持配置salof同步異步日志相關(guān)的信息,以保證日志能正常運作,配置完成后生成對應(yīng)的代碼,然后覆蓋掉原本的MQTT客戶端配置即可,如果不知道如何配置,那就導(dǎo)入默認的配置即可。
mqtt-config-tool02
如果是初次接觸,看不懂上面配置的信息,沒關(guān)系,我很貼心地準備了配置的宏定義及其描述信息,保證你能看得懂的。
mqtt-config-tool03
-
客戶端
+關(guān)注
關(guān)注
1文章
293瀏覽量
16879 -
配置
+關(guān)注
關(guān)注
1文章
189瀏覽量
18647 -
MQTT
+關(guān)注
關(guān)注
5文章
660瀏覽量
23144
發(fā)布評論請先 登錄
相關(guān)推薦
內(nèi)核裁剪的相關(guān)資料分享
通過單片機來實現(xiàn)MQTT參數(shù)配置
MQTT網(wǎng)關(guān)采集PLC數(shù)據(jù)配置流程

STM32內(nèi)部RAM在線調(diào)試配置方法及詳細說明 (基于Keil開發(fā)工具)

FreeRTOS|自定義裁剪
如何使用 SPC 工具配置電機

工業(yè)智能網(wǎng)關(guān)BL110應(yīng)用之三十五: 如何連接配置金鴿MQTT云服務(wù)器

工業(yè)智能網(wǎng)關(guān)BL110應(yīng)用之五十一: 數(shù)據(jù)上傳云金鴿MQTT的配置

盤點2023年值得嘗試的MQTT客戶端工具

評論