OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7795|回复: 2

由于项目需要,前几天学习了MQTT 3.1.1规范,手动实现了MQTT协议栈,分享如下

[复制链接]

5

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2019-9-17
在线时间
21 小时
发表于 2019-12-28 12:22:28 | 显示全部楼层 |阅读模式
本帖最后由 WeiSD 于 2019-12-28 12:31 编辑

       注:协议栈遵循了良好的代码编写规范
       这个协议栈实现虽然是根据我目前的项目写的,并没有实现MQTT规范的所有内容,但已经被我抽象为一个单独的模块,与外部并无耦合,是纯软件的东西,比如MQTT的驱动接口,我声明了一个外部变量 MQTT_Send
  1. /*!
  2. * @brief 声明MQTT发送数据函数指针,通过这种方式实现MQTT层与数据传输层解耦合,该函数来自外部
  3. *
  4. * @param buffer,待发送数据存储地址
  5. *        size,待发送数据字节数  
  6. *
  7. */
  8. extern void (*MQTT_Send)(uint8_t *buffer,uint32_t size);
复制代码
      这个MQTT的驱动函数则需要根据各自的驱动实现。通过这种方式与驱动层解耦合。
       还有,与MQTT协议中与硬件有关的定时服务,比如发送一个控制报文后的连接超时函数,需要根据各自的时间服务模块自己定义。


MQTT.rar

1.04 MB, 下载次数: 317

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2019-7-2
在线时间
12 小时
发表于 2020-1-16 15:37:14 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2019-6-17
在线时间
2 小时
发表于 2020-5-21 10:38:14 | 显示全部楼层
学习了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-1-19 07:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表