你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 FOTA 例程之 Paho MQTTClient embeddedC 使用

[复制链接]
STMCU-管管 发布时间:2018-9-29 15:54
前言 " A3 m! d2 {9 R0 D9 d; H; j1 `
( a0 T4 C8 W% k& l
MQTT协议的全称叫“消息队列遥测传输”协议。它是一个轻量级的通信协议。旨在为在低带宽、高延时、不稳定网络中的 物联网设备提供消息传输服务。它运行在 TCP/IP协议之上,采用客户端/服务器,发布/订阅消息模式工作,并提供一对多的 消息分发。STM32 FOTA demo就是通过 MQTT协议进行 MCU固件新版本信息的推送。Paho是一个开源的 MQTT客户端 实现,它提供了多种开发语言下的实现。在此 demo中,用的是 embeddedC这个版本。可以在 http://github.com/eclipse/paho.mqtt.embedded-c下载到最新的版本。" b# t5 D4 a9 P" _0 N
, W; O) j4 p' ~9 T' y# j# J
Paho MQTTClient EmbeddedC 的代码构成 * t1 o8 X: ~# J+ x+ f) D

; ]) H" y# M! H! F从 github上下载下来的源代码,包括三个部分:
- H7 W: F4 P. i- F; eMQTTPacket : 该文件夹下包括了底层的 C代码,提供基本的简单的解析数据,以及将数据串行化的功能。是其他两个上层接 口的基础,也可以单独使用。 0 N+ e) S% s. F- z% @! p% |
MQTTClient :该文件夹下提供 C++的上层接口,现在提供 Linux, Arduino和 mbed的实现。 ( m+ f3 F0 f8 S/ X
MQTTClient-C:该文件夹下提供 C的上层接口,针对那些不支持 C++编程的平台。 * U9 t) R0 U" E4 J) U3 ]* @
Demo要用到的就是 MQTTPacket和 MQTTClient-C这两个文件夹下的源文件。
" U! [# ^/ n: k. m6 X% I- a; G9 E0 ^9 Z; b- R8 k  A" p) U+ L
使用 Paho MQTTClient EmbeddedC
' C4 o5 q: R' f( @' N0 ~" y% v4 o! B7 ~$ A
下面来看看如何使用 Paho MQTTClient EmbeddedC来在 MCU端实现 MQTT通信。
: l; R1 [- m. D% I: w( x' g$ p( k( B
配置网络传输接口
* P; w4 Y" j; a/ ~) S( s  p5 N* w; Q7 IMQTT是一个 TCP之上的应用层协议,它发送和接收数据都要通过下层的 TCP/IP协议栈进行。所以 MQTT与下层的协议之 间一定有一个接口。 ( J4 p8 e3 k% C- b' h' I5 z
Paho对这个数据收发的接口进行了形式上的定义:
  n& z3 [3 y5 }
6 B: D8 S' P$ n0 i' `2 c
QQ截图20180929154457.png
QQ截图20180929154513.png

: e, e5 ^: g' m/ D* }2 M& [) @' @* `3 |Paho的实现会通过结构体 Network中的 mqttread和 mqttwrite成员函数作为接口来从底层网络读取数据以及向底层网络发送 数据。因此 Paho的适配工作需要注册这些成员函数,并实现之:
& A+ E$ V2 G/ Y3 C; z, S. H4 b; }, _& N$ q+ T+ n
在 STM32 FOTAdemo中,Network结构体是在 baidu_iot_network_wrapper.h中定义的: # t* T6 X& E% S3 l2 l
QQ截图20180929154617.png
baidu_iot_network_wrapper.c文件中,有 MQTT的网络接口函数的具体实现。
$ D  `3 }5 ]6 c
QQ截图20180929154947.png
新建一个 MQTT 客户端
通过 MQTTClientInit函数可以新建一个 MQTT客户端。我们来看看在 Paho中,MQTT客户端都定义了哪些属性。 MQTTClient的定义在 MQTTClient.h文件中,如下:

' q. T( d4 G* @; q- ]1 p) m6 N' i/ K1 \& }- \0 s. ^3 Z1 l" {
...  n9 \" I) k2 b$ w8 z: R* O2 v9 ^& d- b

& g) o' Q2 ?4 V了解更多,请下载后阅读
$ i! k. O2 F6 f- Q9 F0 r
- b6 H  O' O# I; s( q下载地址1>>                           下载地址2>>                                   更多实战经验>>
; E5 f$ H% l( q8 w: Q

! C; C. O! V! i; G: M: m
收藏 评论2 发布时间:2018-9-29 15:54

举报

2个回答
sxhhhjicbb_3021 回答时间:2018-12-27 16:23:44
感谢,好东西没人响应
wmjk 回答时间:2019-2-22 22:58:40
请问Demo的例程从哪里下载

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版