# 1. cmqtt cmqtt 后台服务器,依赖于mqtt协议传输,在mqtt各层中属于mqtt客户端的一种,与mqtt broker 连接,处理前端和订阅的设备指令。 是用c语言编写而成,在开源paho.mqtt.c库的基础上开发而成。 ## 1.1. 描述 ​ cmqtt功能: ​ 1.负责和mqtt broker 通信,基于tcp上的mqtt协议,包括连接,消息订阅,消息发布 ​ 2.cmqtt处理web,移动端发送的设备控制,设备配置下发指令,指令从数据库读取 ​ 3.cmqtt处理设备上传的电器数据,传感器数据等数据的存储 ## 1.2. 文档 - 指令发送表协议 [[doc]](./doc/指令发送表协议.doc) - 慧控通信协议 [[pdf](./doc/慧控通信协议.pdf)] ## 1.3. 文件目录 **cmqtt 1.3** **├─bin** //可执行生成目录 │ ├─config.mk │ ├─go.sh │ ├─main.config //配置文件 │ ├─Makefile //make编译 │ ├─restart **├─core** //业务逻辑核心代码 │ ├─cmd.h │ ├─core.c │ ├─core.h │ ├─handle.c //处理接收指令 包含handle.ack.c handle.request.c handle.upload.c-> │ ├─handle.ack.c //处理确认消息模块 │ ├─handle.request.c //处理请求配置模块 │ ├─handle.upload.c //处理上传数据模块 │ ├─mqtta.h //mqtt客户端 │ ├─mqtta.c │ ├─regfunc.h //mqtt客户端回调函数实现 │ ├─regfunc.c │ ├─Makefile **├─doc** //文档 **├─include** // mysql 、错误、全局变量头文件 │ ├─cmd.init.h │ ├─data.h │ ├─data.h │ ├─decode.h │ ├─errno.h │ ├─globle.h │ ├─init.h │ ├─mysql.sdk.h │ ├─status.h **├─lib** //mysql 、错误、全局变量实现文件 │ ├─cmd.init.c │ ├─decode.c │ ├─globle.c │ ├─init.c │ ├─Makefile │ ├─mysql.sdk.c │ ├─readme **├─paho.mqtt.c** //paho mqtt库目录 **├─src** //主程序入口 │ ├─main.c │ ├─main.h │ ├─Makefile ​ ## 1.4. 工作流程 ![cmqtt流程](./doc/cmqtt流程.png)