paho.mqtt.embedded-c 移植

一、MQTT Client源码下载:

  1. 进入到 MQTT 的官网地址:https://mqtt.org/
  2. 点击“Software”链接地址,找到“Client libraries”项,如下所示:
    在这里插入图片描述
  3. paho.mqtt.embedded-c的详细功能介绍见:https://www.eclipse.org/paho/index.php?page=clients/c/embedded/index.php
  4. 源码下载链接:https://github.com/eclipse/paho.mqtt.embedded-c
    在这里插入图片描述
  5. 留意源码作者的代码更新:源码地址

二、源码移植

1. 源码目录

Paho嵌入式C工程提供了以下三个子项目:
MQTTPacket:提供MQTT数据包的序列化与反序列化,以及部分辅助函数。
MQTTClient:封装MQTTPacket生成的高级别C++客户端程序。
MQTTClient-C:封装MQTTPacket生成的高级别C客户端程序。

【核心代码】
.
├── paho.mqtt.embedded-c
│ ├── CMakeLists.txt
│ ├── CONTRIBUTING.md
│ ├── Debug
│ │ ├── makefile
│ │ ├── objects.mk
│ │ ├── sources.mk
│ │ └── src
│ │ ├── MQTTDeserializeConnect.d
│ │ └── subdir.mk
│ ├── MQTTClient
│ │ ├── CMakeLists.txt
│ │ ├── samples
│ │ │ ├── CMakeLists.txt
│ │ │ ├── arduino
│ │ │ │ └── Hello
│ │ │ │ └── Hello.ino
│ │ │ └── linux
│ │ │ ├── CMakeLists.txt
│ │ │ ├── build.sh
│ │ │ ├── hello.cpp
│ │ │ ├── main.cpp
│ │ │ └── stdoutsub.cpp
│ │ ├── src
│ │ │ ├── FP.h
│ │ │ ├── MQTTClient.h
│ │ │ ├── MQTTLogging.h
│ │ │ ├── arduino
│ │ │ │ ├── Countdown.h
│ │ │ │ ├── IPStack.h
│ │ │ │ └── WifiIPStack.h
│ │ │ ├── linux
│ │ │ │ └── linux.cpp
│ │ │ └── mbed
│ │ │ ├── MQTTEthernet.h
│ │ │ ├── MQTTSocket.h
│ │ │ └── MQTTmbed.h
│ │ └── test
│ │ ├── CMakeLists.txt
│ │ └── test1.cpp
│ ├── MQTTClient-C
│ │ ├── CMakeLists.txt
│ │ ├── samples
│ │ │ ├── CMakeLists.txt
│ │ │ ├── FreeRTOS
│ │ │ │ └── MQTTEcho.c
│ │ │ └── linux
│ │ │ ├── CMakeLists.txt
│ │ │ ├── build.sh
│ │ │ └── stdoutsub.c
│ │ ├── src
│ │ │ ├── CMakeLists.txt
│ │ │ ├── FreeRTOS
│ │ │ │ ├── MQTTFreeRTOS.c
│ │ │ │ └── MQTTFreeRTOS.h
│ │ │ ├── MQTTClient.c
│ │ │ ├── MQTTClient.h
│ │ │ ├── cc3200
│ │ │ │ ├── MQTTCC3200.c
│ │ │ │ └── MQTTCC3200.h
│ │ │ └── linux
│ │ │ ├── MQTTLinux.c
│ │ │ └── MQTTLinux.h
│ │ └── test
│ │ ├── CMakeLists.txt
│ │ └── test1.c
│ ├── MQTTPacket
│ │ ├── CMakeLists.txt
│ │ ├── samples
│ │ │ ├── CMakeLists.txt
│ │ │ ├── baremetalserial
│ │ │ │ ├── build
│ │ │ │ ├── ping_nb.c
│ │ │ │ ├── pub0sub1_nb.c
│ │ │ │ ├── transport.c
│ │ │ │ └── transport.h
│ │ │ ├── build
│ │ │ ├── null.c
│ │ │ ├── ping.c
│ │ │ ├── ping_nb.c
│ │ │ ├── pub0sub1.c
│ │ │ ├── pub0sub1_nb.c
│ │ │ ├── qos0pub.c
│ │ │ ├── transport.c
│ │ │ └── transport.h
│ │ ├── src
│ │ │ ├── CMakeLists.txt
│ │ │ ├── MQTTConnect.h
│ │ │ ├── MQTTConnectClient.c
│ │ │ ├── MQTTConnectServer.c
│ │ │ ├── MQTTDeserializePublish.c
│ │ │ ├── MQTTFormat.c
│ │ │ ├── MQTTFormat.h
│ │ │ ├── MQTTPacket.c
│ │ │ ├── MQTTPacket.h
│ │ │ ├── MQTTPublish.h
│ │ │ ├── MQTTSerializePublish.c
│ │ │ ├── MQTTSubscribe.h
│ │ │ ├── MQTTSubscribeClient.c
│ │ │ ├── MQTTSubscribeServer.c
│ │ │ ├── MQTTUnsubscribe.h
│ │ │ ├── MQTTUnsubscribeClient.c
│ │ │ ├── MQTTUnsubscribeServer.c
│ │ │ └── StackTrace.h
│ │ └── test
│ │ ├── CMakeLists.txt
│ │ ├── build_test
│ │ └── test1.c
│ ├── Makefile
│ ├── README.md
│ ├── about.html
│ ├── doc
│ │ ├── DoxyfileMQTTClient-C.in
│ │ ├── DoxyfileMQTTClient.in
│ │ ├── DoxyfileMQTTPacket.in
│ │ └── pahologo.png
│ ├── edl-v10
│ ├── epl-v10
│ ├── library.properties
│ ├── notice.html
│ ├── test
│ │ ├── MQTTV3112.py
│ │ └── mqttsas2.py
│ ├── travis-build.sh
│ ├── travis-env-vars
│ └── travis-install.sh
└── 交叉编译paho.mqtt.embedded-c库.zip

MQTTClient-C中:
samples目录:提供FreeRTOS和Linux两个例程,分别支持FreeRTOS和Linux系统。
src目录:提供MQTTClient的代码实现能力,以及用于移植到FreeRTOS、cc3200和Linux的网络驱动。
了解Paho MQTT的更多API细节,可以查看MQTTClient.h。

2. 移植文件
MQTTPacket/src 中所有的文件;
MQTTClient-C/src 的MQTTClient.c 和 MQTTClient.h
MQTTClient-C/src/linux 的MQTTLinux.c 和 MQTTLinux.h
应用参考示例请看MQTTClient-C/samples/linux中的stdoutsub.c

3. 主要库函数介绍
在这里插入图片描述

备注:
移植参考:https://www.alibabacloud.com/help/zh/iot-platform/latest/mtrejv

stm32是一款广泛应用于嵌入式系统开发的微控制器,而paho-mqtt是一种开源的MQTT客户端库。移植stm32 paho-mqtt是指将paho-mqtt库的功能迁移到stm32平台上,以实现在嵌入式系统中使用MQTT协议进行通信的功能。 移植stm32 paho-mqtt涉及以下几个步骤: 1. 硬件平台适配:首先需要了解目标stm32微控制器的硬件特性和功能,确保paho-mqtt库的功能和要求与stm32平台的硬件相匹配。 2. 编译环境配置:配置适合stm32开发的编译环境,例如Keil MDK、IAR Embedded Workbench等,以便能够在编译、调试和下载过程中正常地使用paho-mqtt库。 3. 移植代码:根据paho-mqtt库的文档和代码,将库中的相关函数和数据结构移植到stm32平台上。这通常需要根据stm32的特定功能和限制做一些必要的修改和适配。 4. 配置网络连接:MQTT协议是基于TCP/IP的,所以还需要在stm32上配置网络连接,以便与MQTT服务器进行通信。这可能涉及到设置网络参数、建立Socket连接等操作。 5. 开发应用程序:通过使用移植成功的stm32 paho-mqtt库,开发应用程序来实现所需的MQTT通信功能。这可能包括消息发布和订阅、发布和订阅主题、处理接收到的消息等操作。 6. 测试和调试:在移植开发完成后,需要对移植的stm32 paho-mqtt进行测试和调试,确保其在实际应用中能够正常工作。 综上所述,移植stm32 paho-mqtt是将paho-mqtt库的功能适配到stm32平台上,以实现在嵌入式系统中使用MQTT协议进行通信的功能。这需要进行硬件适配、编译环境配置、代码移植、网络连接配置、应用程序开发、测试和调试等一系列步骤来完成。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值