电磁阀终端MQTT通讯协议

来自东骏科技波塞冬平台开发者文档
跳转至: 导航搜索

通讯协议设计介绍

1、电磁阀终端4G通讯,采用MQTT作为业务通讯数据载体,鉴于目前使用了低成本的通讯模组,无法支持QOS=2,我们采用QOS=0进行 通讯。

2、由于我们通过4G传输的MQTT基于TCP协议通讯,所以已经存在很完善的校验机制,我们在协议中不设置校验字段。

3、MQTT采用一型一密方式进行登入,即同一型号设备登入MQTT消息中间件的用户名密码一致。设备名称为设备的产品型号+IMEI号+平 台注册代码,共计25位。

例如电磁发的登入名称为:

    DCF         867546052066218         Asl3873
    设备类型编号
    电磁阀:DCF    
    设备编号为IMEI码         注册码为平台生成,
    加工时写入设备,
    作为设备合法性的二次验证

4、消息订阅地址,每个设备单独的订阅发布地址

  地址    描述 订阅 消息通道
/device/<IMEI号>/sub 设备消息订阅地址,用于服务器发送消息给设备 设备订阅 设备消息通道
/device/<IMEI号>/pub 设备消息发布地址,用于设备发送消息给服务器 服务端订阅 设备消息通道
/area/<区域编号>/pub 区域群组消息发布地址,用于服务器向某一区域设备进行消息广播 设备订阅 区域消息通道
/area/<设备编号>/<IMEI号>/pub 区域消息独立回复地址,用于设备单独向服务端应答区域消息 服务端按需订阅 区域消息通道
/area/<区域编号>/pub 区域群组消息发布地址,用于设备响应或发送区域相关消息给区域相关设备和服务器,例如气象消息 服务端按需订阅 区域消息通道

5、设备消息的订阅

1.png

设备消息通道通讯报文格式

消息头 长度 会话ID 指令 参数
3byte 3byte 4byte 2byte n byte
固定字"DCF" 消息的总长度 十六进制字符串,用于标识会
话的唯一性,同一会话相同会
话ID,不同会话不同会话ID
KF:打开电磁阀
GF:关闭电磁阀
CX:查询电磁阀指令
指令的参数

设备消息通道业务指令

此处所描述的内容为指令对应的参数

打开电磁阀

服务端->设备

电磁阀编号 电磁阀类型
1byte 1byte
数字1-4 1:直动式
2:先导式

设备->服务端

结果
1byte
1-成功,2-失败

关闭电磁阀

服务端->设备

电磁阀编号 电磁阀类型
1byte 1byte
数字1-4 1:直动式
2:先导式

设备->服务端

结果
1byte
1-成功,2-失败

查询电磁阀状态

服务端->设备

电磁阀编号 电磁阀类型
1byte 1byte
数字1-4 1:直动式
2:先导式

设备->服务端

结果
1byte
1-开启,2-关闭,3-故障

区域消息通道通讯报文格式

普通消息格式

消息头 长度 会话ID 指令 参数
3byte 3byte 4byte 2byte n byte
固定字"DCF" 消息的总长度 十六进制字符串,用于标识会
话的唯一性,同一会话相同会
话ID,不同会话不同会话ID
JT:关闭区域所有电磁阀
CX:查询区域内所有电磁阀状态
指令的参数

独立回复消息格式

消息头 长度 设备号 会话ID 指令 参数
3byte 3byte 15byte 4byte 2byte n byte
固定字"DCF" 消息的总长度 IMEI 十六进制字符串,用于标识会
话的唯一性,同一会话相同会
话ID,不同会话不同会话ID
JT:关闭区域所有电磁阀
CX:查询区域内所有电磁阀状态
指令的参数

设备消息通道业务指令

此处所描述的内容为指令对应的参数

关闭区域所有电磁阀

服务端->设备

固定值
1byte
"0"

设备->服务端(独立回复通道)

电磁阀1状态 电磁阀2状态 电磁阀3状态 电磁阀4状态
1byte 1byte 1byte 1byte
1-开启
2-关闭
3-故障
4-未启用
1-开启
2-关闭
3-故障
4-未启用
1-开启
2-关闭
3-故障
4-未启用
1-开启
2-关闭
3-故障
4-未启用

查询区域内所有电磁阀状态

服务端->设备

固定值
1byte
"0"

设备->服务端(独立回复通道)

电磁阀1状态 电磁阀2状态 电磁阀3状态 电磁阀4状态
1byte 1byte 1byte 1byte
1-开启
2-关闭
3-故障
4-未启用
1-开启
2-关闭
3-故障
4-未启用
1-开启
2-关闭
3-故障
4-未启用
1-开启
2-关闭
3-故障
4-未启用

心跳和注册消息

心跳消息

由设备通过消息通道主动发送,服务端进行应答。

设备->服务端

消息头 长度 设备号 网络信号强度 运行时间
3byte 3byte 15byte 1byte 4byte
固定字"DCF" 消息的总长度 IMEI 0-5格 设备开始运行进行秒计数,返
回开机到当前的秒数,十六进
制字符串形式

服务端->设备

消息头 长度 UNIX时间戳
3byte 3byte 4byte
固定字"DCF" 消息的总长度 UNIX时间戳的十六进制字符串

注册消息

设备连接网络成功后,发布的第一条数据,发布后需要等待服务端应答,没有应答不得发送其他数据,需要反复注册,直到成功为止。

设备->服务端

消息头 长度 设备号 SIM卡ID 设备类型编号 设备软件版本号
3byte 3byte 15byte 20byte 3byte 3byte
固定字"REG" 消息的总长度 IMEI ICCID DCF:电磁阀终端 100,表示1.0.0版本

服务端->设备

消息头 长度 注册结果 区域编号
3byte 3byte 1byte 4byte
固定字"REG" 消息的总长度 1-注册成功
2-注册到期
3-设备非法
4-注册失败
数字的十六进制字符串,
如果设备不存在区域则返回0