6步!教你写一个mqtt调试助手
时间:2021-10-22 15:35:12
手机看文章
扫描二维码
随时随地手机看文章
[导读]点击上方“小麦大叔”,选择“置顶/星标公众号”福利干货,第一时间送达大家好,我是小麦,之前写过一篇MQTT的文章,里面用来测试的mqttclient程序是自己编译的。可以参考上一篇文章《MQTT协议,终于有人讲清楚了》。在这篇文章里我简单总结了如何基于Qt的Mqtt库,编译一个m...
点击上方“小麦大叔”,选择“置顶/星标公众号”福利干货,第一时间送达
大家好,我是小麦,之前写过一篇MQTT的文章,里面用来测试的mqtt client程序是自己编译的。可以参考上一篇文章《MQTT协议,终于有人讲清楚了》。在这篇文章里我简单总结了如何基于
星标公众号,后台回复【MQTT】,即可获取。
—— The End ——
推荐好文 点击蓝色字体即可跳转☞ 状态机的三种骚操作,值得你了解
☞ 推荐一个直接用于项目开发的PID库!很好用,很稳定☞ 这14种嵌入式实时系统,你用过哪些?☞ 推荐一款我私藏已久的串口示波神器
欢迎转发、留言、点赞、分享给你的朋友,感谢您的支持!
点击上方名片关注公众号
分享 点赞 在看 ❤️ 以“三连”行动支持优质内容!
大家好,我是小麦,之前写过一篇MQTT的文章,里面用来测试的mqtt client程序是自己编译的。可以参考上一篇文章《MQTT协议,终于有人讲清楚了》。在这篇文章里我简单总结了如何基于
Qt
的Mqtt
库,编译一个mqtt client
.Qt开发MQTT程序有两种方式;- Qt官方已经提供了基于MQTT的封装,但是并没有正式加入到Qt的标准库中,需要自己进行编译添加;
- 基于第三方EMQ开发的MQTT接口;
https://github.com/qt/qtmqtt
这个库是基于MQTT V3.1和V3.1.1实现的,这里要注意协议版本。如上图所示,这里有很多分支;这里我测试6.2
这个版本,它需要通过CMake
对项目进行构建,但是发现这个版本的MQTT需要QT 6 以上的版本才行,具体报错信息如下图所示:下面,简单罗列一下,整体的环境;QT版本:Qt5.12.11
MQTT库版本:5.12.10
整体环境:Win10
QtCreator
MinGW-W64
编译QtMqtt库
D:\Qt\Qt5.12.11\5.12.11\mingw73_64\include
在Qt的安装目录下新建QtMqtt
文件夹;然后将qtmqtt-5.12.10路径下的文件复制到D:\Qt\Qt5.12.11\5.12.11\mingw73_64\include
路径下;总结一下上述的过程,具体如下图所示;具体的实际路径要根据自己的安装情况为主。这时候我们重新回到qtmqtt-5.12.10路径下,打开qtmqtt.pro
,就可以进行编译了;这里可以编译成Debug和Release模式,编译成功之后就可以找到 Qt5Mqtt.dll
和Qt5Mqttd.dll
;复制DLL库和lib库将lib文件夹的文件复制到这时候,我们可以打开simple mqtt client
项目进行测试了,路径如下所示;这时候已经可以进行编译了,但是会发现有还两个报错情况:第一个报错信息如下:Unknown module(s) in QT: mqtt
无法识别mqtt模块;解决方案如下:将qt_lib_mqtt.pri
文件和qt_lib_mqtt_private.pri
复制到Qt的安装路径下的mkspecs\modules
路径中即可,例如我的电脑上的路径是D:\Qt\Qt5.12.11\5.12.11\mingw73_64\mkspecs\modules
;mingw73_64
是我具体使用的工具链,这里要根据实际使用的工具链进行选择。第二个报错信息如下:QMqttClient does not exist
原因是头文件无法找到,做出如下修改;//#include
#include
再次编译运行,程序可以正常运行。简单总结一下:- 库版本和位置是否放置在相应编译工具链目录下。
- 头文件是否对应到类名文件,并放置到编译工具链目录下。
- modules-inst下的pri文件是否放置到编译工具链目录的相应目录下, QT =mqtt 能否正常工作都依赖目录里的pri文件。
cmd.ini
文件进行配置主机地址,端口,以及需要发送的Topic
和Message
的内容;注意:cmd.ini必须和可执行文件处于同一路径下;代码已经上传到
Github
,目前功能比较简单,不支持设置QoS
,支持文本格式数据接收,不支持遗嘱消息,感兴趣的同学可以看一下,地址如下:https://github.com/hotsauce1861/mqtt-client-debug-helper.git
如果大家更好的推荐,可以在下方留言区积极讨论。另外我编译了一个可执行程序;星标公众号,后台回复【MQTT】,即可获取。
—— The End ——
推荐好文 点击蓝色字体即可跳转☞ 状态机的三种骚操作,值得你了解
☞ 推荐一个直接用于项目开发的PID库!很好用,很稳定☞ 这14种嵌入式实时系统,你用过哪些?☞ 推荐一款我私藏已久的串口示波神器
欢迎转发、留言、点赞、分享给你的朋友,感谢您的支持!
分享 点赞 在看 ❤️ 以“三连”行动支持优质内容!