在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

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

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

測試環境: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開發環境,點擊 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客戶端狀態)
打印當前mqtt的狀態。狀態定義為

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

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

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”秘密就發生在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 狀態,此接口不會進行任何操作

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

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

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

1.jpg

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

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

1.jpg

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

    關注

    6043

    文章

    44622

    瀏覽量

    638671
  • STM32
    +關注

    關注

    2272

    文章

    10925

    瀏覽量

    357654
  • 硬件設計
    +關注

    關注

    18

    文章

    399

    瀏覽量

    44675
  • 代碼
    +關注

    關注

    30

    文章

    4829

    瀏覽量

    69071
  • 上位機
    +關注

    關注

    27

    文章

    945

    瀏覽量

    55017
  • 回調函數
    +關注

    關注

    0

    文章

    87

    瀏覽量

    11623
  • LwIP協議棧
    +關注

    關注

    0

    文章

    19

    瀏覽量

    7420
  • RT-Thread
    +關注

    關注

    31

    文章

    1305

    瀏覽量

    40402
  • STM32F401
    +關注

    關注

    1

    文章

    16

    瀏覽量

    10524
收藏 人收藏

    評論

    相關推薦

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

    先測試 “$” 通配符,”$”比較特殊,應用不能使用”$”開頭的系統主題!
    的頭像 發表于 09-28 10:24 ?1164次閱讀
    <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 協議的客戶端。此庫針對資源受限的嵌入式設備進行了優化。初衷:在
    發表于 12-01 15:19

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

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

    excel vba代碼 示例講解

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

    MSP430x11x1,MSP430F21x1 示例代碼

    MSP430x11x1,MSP430F21x1 示例代碼
    發表于 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調用代碼實例。
    發表于 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技術的介紹和使用方式及示例代碼資料免費下載

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

    Arduino雨滴傳感器的使用示例代碼免費下載

    本文檔的主要內容詳細介紹的是Arduino雨滴傳感器的使用示例代碼免費下載。
    發表于 03-27 11:39 ?43次下載
    Arduino雨滴傳感器的使用<b class='flag-5'>示例</b><b class='flag-5'>代碼</b>免費下載

    AD593X代碼示例

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

    BeMicro代碼示例

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

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

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

    基于keil的AD7366示例代碼

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

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

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

    LP5891-Q1示例代碼用戶指南

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

    TPS929xxx-Q1示例代碼

    電子發燒友網站提供《TPS929xxx-Q1示例代碼.pdf》資料免費下載
    發表于 11-13 14:59 ?2次下載
    TPS929xxx-Q<b class='flag-5'>1</b><b class='flag-5'>示例</b><b class='flag-5'>代碼</b>
    主站蜘蛛池模板: 美女露出尿口让男人桶爽网站 | 日韩免费高清一级毛片在线 | aaaa大片| 亚洲视频入口 | 日本大片免a费观看在线 | 四虎网址大全 | 嫩草影院播放地址一二三 | 亚洲第成色999久久网站 | 噜噜噜色网 | 精品成人 | 污女网站 | 国产做a爰片久久毛片a | 男女全黄做爰视频 | 色视频www在线播放国产人成 | 天天狠天天天天透在线 | 人人澡人人射 | 老色皮| se色成人亚洲综合 | 狠狠艹视频 | 黄a免费| 四虎国产精品影库永久免费 | 美女扒开尿口让男生添 漫画 | 让她爽的喷水叫爽乱 | 欧美成人性色xxxxx视频大 | 日韩视频 中文字幕 视频一区 | 国产主播在线播放 | 国产一级αv片免费观看 | 天天操视频 夜夜 | 国产成人亚洲影视在线 | 黄色在线观看网址 | 新天堂网 | 日本在线观看www | 久久久久久久国产精品影院 | 天堂网最新版www | 五月婷婷激情综合 | 国内精品视频免费观看 | 日本xxxx色视频在线观看 | h在线观看视频免费网站 | 谁有毛片网站 | 欧美午夜寂寞影院安卓列表 | 日韩毛片视频 |