
前言 MQTT协议的全称叫“消息队列遥测传输”协议。它是一个轻量级的通信协议。旨在为在低带宽、高延时、不稳定网络中的 物联网设备提供消息传输服务。它运行在 TCP/IP协议之上,采用客户端/服务器,发布/订阅消息模式工作,并提供一对多的 消息分发。STM32 FOTA demo就是通过 MQTT协议进行 MCU固件新版本信息的推送。Paho是一个开源的 MQTT客户端 实现,它提供了多种开发语言下的实现。在此 demo中,用的是 embeddedC这个版本。可以在 http://github.com/eclipse/paho.mqtt.embedded-c下载到最新的版本。 Paho MQTTClient EmbeddedC 的代码构成 ! C z+ c- [* l9 n3 j R( g 从 github上下载下来的源代码,包括三个部分: MQTTPacket : 该文件夹下包括了底层的 C代码,提供基本的简单的解析数据,以及将数据串行化的功能。是其他两个上层接 口的基础,也可以单独使用。 1 E' f" y, L$ O( q3 ~0 }4 b- \ MQTTClient :该文件夹下提供 C++的上层接口,现在提供 Linux, Arduino和 mbed的实现。 : l1 F* T, ~4 ]) ^ MQTTClient-C:该文件夹下提供 C的上层接口,针对那些不支持 C++编程的平台。 , K- u( {( I# S0 ]! @4 ~ Demo要用到的就是 MQTTPacket和 MQTTClient-C这两个文件夹下的源文件。 3 E# V9 }2 a; p* E ! i* } ?. [- J9 S3 X# y 使用 Paho MQTTClient EmbeddedC $ [/ g/ q0 U* T+ ^% c# I6 ~ 下面来看看如何使用 Paho MQTTClient EmbeddedC来在 MCU端实现 MQTT通信。 1 T8 H* _: s, M8 K 3 F7 y7 H/ c1 y a J 配置网络传输接口 MQTT是一个 TCP之上的应用层协议,它发送和接收数据都要通过下层的 TCP/IP协议栈进行。所以 MQTT与下层的协议之 间一定有一个接口。 Paho对这个数据收发的接口进行了形式上的定义: 0 Q+ ]' J( P, N ![]() ![]() Paho的实现会通过结构体 Network中的 mqttread和 mqttwrite成员函数作为接口来从底层网络读取数据以及向底层网络发送 数据。因此 Paho的适配工作需要注册这些成员函数,并实现之: 2 O8 {) N4 K; {3 A! ~; @7 j ; p- m* S4 p& L6 N, @ 在 STM32 FOTAdemo中,Network结构体是在 baidu_iot_network_wrapper.h中定义的: ![]() ![]() 新建一个 MQTT 客户端 通过 MQTTClientInit函数可以新建一个 MQTT客户端。我们来看看在 Paho中,MQTT客户端都定义了哪些属性。 MQTTClient的定义在 MQTTClient.h文件中,如下: ) M; X( w" N& j5 {...5 M9 w' O, u" }! U6 x4 W $ \7 U* X8 m) d1 @0 y u了解更多,请下载后阅读! r* v9 M+ y4 s 下载地址1>> 下载地址2>> 更多实战经验>>1 U* U c3 t3 G+ z) |: { |
感谢,好东西没人响应 |
请问Demo的例程从哪里下载 |