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

STM32 FOTA 例程之 Paho MQTTClient embeddedC 使用

[复制链接]
STMCU-管管 发布时间:2018-9-29 15:54
前言 $ Q$ U) P7 M. C# ^

& w( l+ p/ u; W# c" s- EMQTT协议的全称叫“消息队列遥测传输”协议。它是一个轻量级的通信协议。旨在为在低带宽、高延时、不稳定网络中的 物联网设备提供消息传输服务。它运行在 TCP/IP协议之上,采用客户端/服务器,发布/订阅消息模式工作,并提供一对多的 消息分发。STM32 FOTA demo就是通过 MQTT协议进行 MCU固件新版本信息的推送。Paho是一个开源的 MQTT客户端 实现,它提供了多种开发语言下的实现。在此 demo中,用的是 embeddedC这个版本。可以在 http://github.com/eclipse/paho.mqtt.embedded-c下载到最新的版本。1 j5 R( E9 \3 d- G. c+ D$ t# U# q

6 a: L( y, q! f% L' [6 f# BPaho MQTTClient EmbeddedC 的代码构成
3 c  P  F* d' |6 _# I5 t1 I" w( x) O9 |. Z% K6 \$ R
从 github上下载下来的源代码,包括三个部分:
/ P, b2 P9 h% a! EMQTTPacket : 该文件夹下包括了底层的 C代码,提供基本的简单的解析数据,以及将数据串行化的功能。是其他两个上层接 口的基础,也可以单独使用。
3 [) a8 h- }; |& mMQTTClient :该文件夹下提供 C++的上层接口,现在提供 Linux, Arduino和 mbed的实现。 3 \  ~! ?+ g' s. e
MQTTClient-C:该文件夹下提供 C的上层接口,针对那些不支持 C++编程的平台。 + [# U& L7 n7 W! R: H3 ~8 Q9 B
Demo要用到的就是 MQTTPacket和 MQTTClient-C这两个文件夹下的源文件。 9 A0 }/ B  m) Q' ]: T$ {

3 |+ i( s& C. P1 q( j8 o% f( [5 m. ]# b9 Z使用 Paho MQTTClient EmbeddedC   h4 ~% e7 G8 P/ K% x

" |* {$ H( R- S; z0 h  r: o* G) Y: ]+ v下面来看看如何使用 Paho MQTTClient EmbeddedC来在 MCU端实现 MQTT通信。 : y  v8 _; z9 _* L" A$ f1 O

1 H( g; w% |$ e+ M配置网络传输接口 2 k  V3 a( I2 R8 Z
MQTT是一个 TCP之上的应用层协议,它发送和接收数据都要通过下层的 TCP/IP协议栈进行。所以 MQTT与下层的协议之 间一定有一个接口。
7 D/ t: p: e5 ?8 zPaho对这个数据收发的接口进行了形式上的定义:' r) T! o, r- _, V
- u2 o8 x9 g  c# L! f
QQ截图20180929154457.png
QQ截图20180929154513.png
! N; I" U! B3 f4 ]# Y# C
Paho的实现会通过结构体 Network中的 mqttread和 mqttwrite成员函数作为接口来从底层网络读取数据以及向底层网络发送 数据。因此 Paho的适配工作需要注册这些成员函数,并实现之: 5 j1 w& D6 d# e2 o/ f2 w1 Q5 a
/ i# v  H2 j; d' \# g* d
在 STM32 FOTAdemo中,Network结构体是在 baidu_iot_network_wrapper.h中定义的:
8 K5 G  I; B9 u
QQ截图20180929154617.png
baidu_iot_network_wrapper.c文件中,有 MQTT的网络接口函数的具体实现。
0 m" o& }. s( p0 c3 j( a
QQ截图20180929154947.png
新建一个 MQTT 客户端
通过 MQTTClientInit函数可以新建一个 MQTT客户端。我们来看看在 Paho中,MQTT客户端都定义了哪些属性。 MQTTClient的定义在 MQTTClient.h文件中,如下:

* \' X" C+ E5 W7 T1 D5 g) u7 Y# c4 [
...7 V5 k. R5 \2 L' l) o' P4 ]

+ j7 ~9 G1 u8 F3 V0 K$ o了解更多,请下载后阅读
7 p$ j  d. b) Y
6 q$ [! C; X2 r- H. I下载地址1>>                           下载地址2>>                                   更多实战经验>>
- ~8 Y! b* i- b; G7 H

( b* Y# l; n& q1 v! G! e0 h
赞 收藏 评论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管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版