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

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Paho.mqtt.embedded-c是一个开源的嵌入式C语言MQTT工程,用于在嵌入式设备上进行MQTT消息的收发。你可以在GitHub上找到该项目的代码和文档\[2\]。要使用Paho.mqtt.embedded-c,你需要进行交叉编译,并在目标机(如海思3519A/3516D)上进行测试。首先,在目录/home/nfs下创建一个名为lib_mqtt的文件夹,并进入该目录\[1\]。然后,将所需的运行库文件复制到该目录中,包括libMQTTPacketClient.so、libMQTTPacketServer.so、libpaho-embed-mqtt3c.so和libpaho-embed-mqtt3cc.so\[1\]。接下来,解压Paho.mqtt.embedded-c的SDK文件,并进入解压后的目录\[2\]。在编译代码之前,你需要确保你的代码位于/media/sf_share/code/mqtt/paho.mqtt.embedded-c-master/MQTTClient/test目录下\[3\]。然后,使用make命令编译代码\[3\]。执行文件将生成在/media/sf_share/code/mqtt/paho.mqtt.embedded-c-master/build/MQTTClient/test目录下\[3\]。请注意,执行文件只能在目标机(如海思3519A/3516D)上运行\[3\]。最后,你需要在目标机上建立运行库\[3\]。 #### 引用[.reference_title] - *1* *2* *3* [华为摄像头(海思3519A/3516D)编译安装:paho.mqtt.embedded-c](https://blog.csdn.net/weixin_41783910/article/details/111935434)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值