色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

RyanMqtt使用介紹和示例代碼(1)

冬至子 ? 來源:Ryan_CW ? 作者:Ryan_CW ? 2023-09-28 10:09 ? 次閱讀

測試環(huán)境:stm32F401RCT6、RT-Thread版本: v4.1.0、RT-Thread Studio版本: 2.2.6、網絡硬件使用ec800m移植at_socket使用sal框架。

1、添加網絡硬件
RyanMqtt依賴SAL框架 / LWIP。

此步驟不做過多解釋,是lwip就用lwip,是at設備就用at_socket。推薦所有平臺都使用SAL框架(RyanMqtt軟件包會自動使能)。

2、添加RyanMqtt
這里使用的Studio開發(fā)環(huán)境,點擊 RT-Thread Settings,選擇添加軟件包,搜索RyanMqtt添加。

開啟RyanMqtt msh示例,版本建議選擇latest (latest包含了最新的錯誤修復和特性,推送前都經過測試的。但是rt-thread使用gitee鏡像,同步需要1-3天,如果要使用最新latest版本請修改為github源)

添加后如下圖所示,直接編譯然后燒錄

1.jpg

3、使用msh測試例子
網絡硬件必須要能連接到網絡,否則mqtt沒有任何意義
編譯燒錄后在串口終端輸入 “help” / table鍵,打印shell命令信息,查看是否有mqtt命令,如下圖所示。

注:沒有mqtt命令的請查看RyanMqtt軟件包是否開啟了msh示例

1.jpg

接著我們輸入 “mqtt” / “mqtt help” 命令,打印信息如下圖所示

1.jpg

可以看到msh示例程序給出的部分mqtt功能命令,左側為mqtt示例命令,中間為命令介紹,右側為需要傳遞的參數。

接下來我們依次試試每個命令的功能。

mqtt state (打印mqtt客戶端狀態(tài))
打印當前mqtt的狀態(tài)。狀態(tài)定義為

typedef enum
{
    RyanMqttInvalidState = -1, // 無效狀態(tài)
    RyanMqttInitState = 0,     // 初始化狀態(tài)
    RyanMqttStartState,        // 開始狀態(tài)
    RyanMqttConnectState,      // 連接狀態(tài)
    RyanMqttDisconnectState,   // 斷開連接狀態(tài)
    RyanMqttReconnectState,    // 重新連接狀態(tài)
} RyanMqttState_e;

讓我們嘗試一下
無效狀態(tài),因為我們還沒有調用連接函數,mqtt客戶端還沒有被初始化,所以為無效狀態(tài)

1.jpg

mqtt connect (mqtt連接服務器)
連接mqtt服務器,可以看到參數為null。連接服務器的配置信息在RyanMqttTest.c文件的頭部,如下所示
修改下面配置信息來連接你的mqtt服務器,”broker.emqx.io” 為emqx的開放mqtt服務器。
注意:mqtt客戶端id必須唯一,請務必進行修改!

1.jpg

讓我們嘗試一下connect

1.jpg

可以看到打印了一條 “mqtt連接成功回調” 。為什么會打印呢? 這我們就要看看mqtt connect命令做了什么?
首先我們要找到cmdTab,這里存放了示例的所有命令。

1.jpg

我們點擊connect示例對應的函數 “MqttConnect”秘密就發(fā)生在mqttConfig的回調函數和注冊事件中。我們在注冊事件回調中選擇了所有事件,其中就包括了mqtt連接成功事件。如下圖所示
當mqtt連接成功時就會調用mqttConfig中的mqttEventHandle函數指針。在mqttEventHandle內部我們打印了一條 “mqtt連接成功回調”

3.jpg

回調函數內部

1.jpg

可注冊的回調事件定義為

1.jpg

mqtt disc (mqtt斷開連接服務器)
主動斷開mqtt服務器的連接,使用效果如下,回調函數中打印了 “mqtt斷開連接回調”
圖中 “204” 為斷開連接事件的eventData,可查看可注冊的回調事件定義對于eventData的定義。
注:為什么斷開連接后會自動重連呢? 我們在調用connect示例的時候使能了 “自動重連” 并定義了重連時間。

1.jpg

mqtt reconnect (mqtt斷開連接時重新連接服務器)
當我們沒有使能 “自動重連” 時,我們可以手動調用 RyanMqttReconnect 函數來進行重連
注:如果mqtt客戶端不為 RyanMqttDisconnectState 狀態(tài),此接口不會進行任何操作

mqtt destory (mqtt銷毀客戶端)
銷毀mqtt客戶端,釋放mqtt客戶端申請的所有資源。

銷毀mqtt客戶端因為安全問題,設置為異步操作,當接收到 RyanMqttEventDestoryBefore 事件后才真正開始銷毀。真正開始銷毀速度非???!就只是釋放資源。
至于最多要多長時間才可以銷毀?如果網絡層移植的沒有問題,最長時間為初始化config里的recvTimeout

注:客戶端需要初始化后的才可以被銷毀,否則會忽視

1.jpg

mqtt pub (mqtt發(fā)布消息)
根據命令提示,需要傳入 主題、消息等級、發(fā)送內容、發(fā)送條數、間隔時間(可以為0)
這里我們使用 mqttx工具來做上位機

使用命令:mqtt pub testup 2 hello 10 0

1.jpg

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6037

    文章

    44562

    瀏覽量

    635823
  • STM32
    +關注

    關注

    2270

    文章

    10904

    瀏覽量

    356305
  • 硬件設計
    +關注

    關注

    18

    文章

    397

    瀏覽量

    44578
  • 代碼
    +關注

    關注

    30

    文章

    4791

    瀏覽量

    68677
  • 上位機
    +關注

    關注

    27

    文章

    942

    瀏覽量

    54838
  • 回調函數
    +關注

    關注

    0

    文章

    87

    瀏覽量

    11573
  • LwIP協議棧
    +關注

    關注

    0

    文章

    19

    瀏覽量

    7374
  • RT-Thread
    +關注

    關注

    31

    文章

    1293

    瀏覽量

    40190
  • STM32F401
    +關注

    關注

    1

    文章

    16

    瀏覽量

    10499
收藏 人收藏

    評論

    相關推薦

    RyanMqtt使用介紹示例代碼(2)

    先測試 “$” 通配符,”$”比較特殊,應用不能使用”$”開頭的系統(tǒng)主題!
    的頭像 發(fā)表于 09-28 10:24 ?1120次閱讀
    <b class='flag-5'>RyanMqtt</b>使用<b class='flag-5'>介紹</b>和<b class='flag-5'>示例</b><b class='flag-5'>代碼</b>(2)

    RyanMqtt實現MQTT3.1.1協議的客戶端

    還沒有同步到packages庫列表,暫時還無法在軟件包列表搜索到。提pr應該3天了…….介紹RyanMqtt 實現了 MQTT3.1.1 協議的客戶端。此庫針對資源受限的嵌入式設備進行了優(yōu)化。初衷:在
    發(fā)表于 12-01 15:19

    RyanMqtt在間隔1s發(fā)送消息時常就報錯RyanSocketFailedError

    使用RyanMqtt庫以及例子,在間隔1s發(fā)送消息時常就報錯RyanSocketFailedError,然后就進入重連機制
    發(fā)表于 08-04 16:48

    excel vba代碼 示例講解

    excel vba代碼 示例講解
    發(fā)表于 09-07 09:36 ?25次下載
    excel vba<b class='flag-5'>代碼</b> <b class='flag-5'>示例</b>講解

    MSP430x11x1,MSP430F21x1 示例代碼

    MSP430x11x1,MSP430F21x1 示例代碼
    發(fā)表于 05-03 10:48 ?9次下載
    MSP430x11x<b class='flag-5'>1</b>,MSP430F21x<b class='flag-5'>1</b> <b class='flag-5'>示例</b><b class='flag-5'>代碼</b>

    python代碼示例之基于Python的日歷api調用代碼實例

    本文檔的主要內容詳細介紹的是python代碼示例之基于Python的日歷api調用代碼實例。
    發(fā)表于 09-06 14:25 ?42次下載
    python<b class='flag-5'>代碼</b><b class='flag-5'>示例</b>之基于Python的日歷api調用<b class='flag-5'>代碼</b>實例

    ESP-NOW技術的介紹和使用方式及示例代碼資料免費下載

    本文介紹了樂鑫自主研發(fā)的ESP-NOW技術,說明了使用方式并提供了示例代碼包括了:1.ESP-NOW技術簡介,2.ESP-NOW使用方式,3.示例
    發(fā)表于 03-15 08:00 ?59次下載
    ESP-NOW技術的<b class='flag-5'>介紹</b>和使用方式及<b class='flag-5'>示例</b><b class='flag-5'>代碼</b>資料免費下載

    機器學習的一些代碼示例合集

    本文檔的主要內容詳細介紹的是機器學習的一些代碼示例合集。
    發(fā)表于 04-29 08:00 ?1次下載
    機器學習的一些<b class='flag-5'>代碼</b><b class='flag-5'>示例</b>合集

    AD593X代碼示例

    AD593X代碼示例
    發(fā)表于 03-23 08:18 ?14次下載
    AD593X<b class='flag-5'>代碼</b><b class='flag-5'>示例</b>

    BeMicro代碼示例

    BeMicro代碼示例
    發(fā)表于 05-10 12:21 ?0次下載
    BeMicro<b class='flag-5'>代碼</b><b class='flag-5'>示例</b>

    華為游戲服務示例代碼教程案例

    概述 游戲服務kit安卓示例代碼集成了華為游戲服務的眾多API,提供了示例代碼程序供您參考和使用,下面是對示例
    發(fā)表于 04-11 11:09 ?4次下載

    基于keil的AD7366示例代碼

    基于keil的AD7366示例代碼分享
    發(fā)表于 10-08 14:58 ?3次下載

    自己編寫函數示例代碼很難嗎?分享幾個示例

    Q A 問: Arduino Uno的函數示例 我決定自己編寫函數示例代碼,因為這應該是Arduino中的基本示例。網絡上確實有關于使用函數的文檔,但是,如果要嘗試使用
    的頭像 發(fā)表于 11-16 16:05 ?527次閱讀
    自己編寫函數<b class='flag-5'>示例</b><b class='flag-5'>代碼</b>很難嗎?分享幾個<b class='flag-5'>示例</b>!

    LP5891-Q1示例代碼用戶指南

    電子發(fā)燒友網站提供《LP5891-Q1示例代碼用戶指南.pdf》資料免費下載
    發(fā)表于 11-12 14:08 ?0次下載
    LP5891-Q<b class='flag-5'>1</b><b class='flag-5'>示例</b><b class='flag-5'>代碼</b>用戶指南

    TPS929xxx-Q1示例代碼

    電子發(fā)燒友網站提供《TPS929xxx-Q1示例代碼.pdf》資料免費下載
    發(fā)表于 11-13 14:59 ?2次下載
    TPS929xxx-Q<b class='flag-5'>1</b><b class='flag-5'>示例</b><b class='flag-5'>代碼</b>
    主站蜘蛛池模板: 牛牛在线(正)精品视频| 久久久精品国产免费A片胖妇女| 亚洲呦女专区| 亚洲AV精品无码喷水直播间 | 最近中文字幕MV高清在线| 亚洲性无码AV久久成人| 亚洲精品有码在线观看| 亚洲国产精品热久久| 亚洲国产精品99久久久久久| 校园刺激全黄H全肉细节文| 无人区日本电影在线观看高清| 手机在线观看无码日韩视频| 少妇高潮惨叫久久久久久电影| 日日夜夜操操操| 天天操天天干天天透| 午夜看片网| 亚洲国产在线精品国自产拍五月 | 97色香蕉在线| 99人精品福利在线观看| TUBE19UP老师学生| 东热rq大乱交| 国产精品免费一区二区三区视频 | 亚洲精品成人无码区一在线观看| 亚洲精品中文字幕无码A片蜜桃| 亚洲欧美中文日韩视频| 伊人影院综合| 99久久99久久久精品齐齐鬼色| 99精品视频在线观看| 超碰高清熟女一区二区| 国产国语在线播放视频| 国产又爽又黄又不遮挡视频| 久久99综合国产精品亚洲首页| 看80后操| 青草国产在线视频免费| 四虎影视永久无码精品| 亚洲欧美成人综合| 6 10young俄罗斯| 超级最爽的乱淫片免费| 国产精自产拍久久久久久蜜| 精品爽爽久久久久久蜜臀| 美女被男人撕衣舔胸|