1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我之前也在这个软件包遇到了几个问题在这里分享一下我是怎么找到问题的吧
是没对齐的问题,这里我打了一个补丁https://github.com/jiejieTop/mqttclient/pull/63,但是作者没合,你可以参考一下 如果订阅的信息不是直接写死的,比如name是malloc出来零时赋值的,传给mqtt后又被free了,这时也会出现一些问题,因为这个软件包只保存了那个临时指针,并没有保存真实的数据,修复方式类似于这样,以topic为例,其他的像name一样的类推: static message_handlers_t *mqtt_msg_handler_create(const char *topic_filter, mqtt_qos_t qos, message_handler_t handler) { message_handlers_t *msg_handler = NULL; msg_handler = (message_handlers_t *)platform_memory_alloc(sizeof(message_handlers_t)); if (NULL == msg_handler) return NULL; mqtt_list_init(&msg_handler->list); msg_handler->qos = qos; msg_handler->handler = handler; /* register callback handler */ msg_handler->topic_filter = rt_malloc(rt_strlen(topic_filter) + 1); rt_strncpy(msg_handler->topic_filter, topic_filter, rt_strlen(topic_filter) + 1); return msg_handler; } 记得在释放的时候也销毁掉 static void mqtt_msg_handler_destory(message_handlers_t *msg_handler) { if (NULL != &msg_handler->list) { mqtt_list_del(&msg_handler->list); platform_memory_free(msg_handler->topic_filter); platform_memory_free(msg_handler); } } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
683 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
2521 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1314 浏览 0 评论
1915 浏览 0 评论
1494 浏览 0 评论
74906 浏览 21 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 09:18 , Processed in 0.987720 second(s), Total 70, Slave 53 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号