9、MQTT协议移植

1、下载MQTT源码包

  首先下载 MQTT 的库: https://github.com/eclipse/paho.mqtt.embedded-c

image

  目录解析:
  (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 添加到这个文件夹下,添加完成后文件夹内容具体见下图:

image

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

posted @ 2025-11-26 09:33  孤情剑客  阅读(30)  评论(0)    收藏  举报