9、MQTT协议移植
1、下载MQTT源码包
首先下载 MQTT 的库: https://github.com/eclipse/paho.mqtt.embedded-c

目录解析:
(1)github
该目录通常用于存放与 GitHub 相关的配置文件,比如 GitHub Actions 工作流文件等。这些文件可以定义项目在 GitHub 平台上的自动化任务,例如代码的持续集成(CI),包括自动构建、测试等操作,帮助确保项目代码的质量和稳定性。
(2)settings
此目录可能包含与开发环境设置相关的文件,如特定 IDE(集成开发环境)的项目配置设置。这些设置文件可以定义代码格式化规则、编译器选项等,有助于团队成员保持一致的开发环境配置。
(3)Debug
很明显,这是用于存放调试相关文件的目录。在嵌入式开发中,调试是必不可少的环节。这里可能包含调试配置文件、生成的调试信息文件等,方便开发者在开发过程中进行代码调试,排查程序运行时出现的问题。
(4)doc
该目录用于存放项目的文档文件。对于嵌入式开发者而言,这些文档至关重要。其中可能包括 API 文档,详细介绍 MQTT 客户端库的函数接口、参数说明、返回值等信息;还有使用指南,指导开发者如何在嵌入式项目中集成和使用该库,包括编译步骤、配置方法等内容。
(5)MQTTClient
封装了MQTTPacket生成的高级别 C++ 客户端程序。它提供了更抽象、易用的接口,用于实现与 MQTT 服务器的交互,将底层数据包操作进行整合与封装,方便开发者调用。
(6)MQTTClient - C
封装MQTTPacket生成的高级别 C 客户端程序,专门面向 C 语言开发者。除了提供与 MQTT 服务器交互的功能外,还考虑了在不同嵌入式系统(如 FreeRTOS、Linux 等)上的移植和使用。
(7)MQTTPacket
专注于 MQTT 数据包层面的处理,提供 MQTT 数据包的序列化(打包)与反序列化(解包)功能,以及部分辅助函数。是 MQTT 协议底层数据处理的核心部分,为上层的MQTTClient和MQTTClient - C提供基础支持。
MQTTPacket/samples:示例代码,如pub0sub1.c演示消息发布与订阅,支持主题循环交互。transport.c文件为网络传输层,实现TCP连接(transport.c/transport.h)及PINGREQ/PINGRESP心跳机制。
(8)test
用于存放测试相关的代码和文件。在嵌入式开发中,测试是确保软件质量的关键步骤。这里可能包含单元测试代码,用于测试各个功能模块的正确性;还有集成测试代码,用于验证整个 MQTT 客户端库在嵌入式系统中的运行情况,确保其能够稳定、可靠地工作。
2、MQTT库的使用
然后创建一个 MQTT 文件夹,再将 MQTTPacket\src 目录下的文件添加到工程目录MQTT 文件夹,再将 MQTTPacket\samples 目录下的 transport.c、 transport.h 添加到这个文件夹下,添加完成后文件夹内容具体见下图:

我们把这些文件加入我们的工程之中,并且指定头文件路径,然后实现 transport.c 文件的移植层接口

浙公网安备 33010602011771号