当前位置:   article > 正文

paho.mqtt.embedded-c 移植

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/176379
推荐阅读
相关标签
  

闽ICP备14008679号