修改日期 | 修改人 | 备注 |
2020-07-16 10:58:34[当前版本] | admin | 修正 |
2020-07-16 10:26:06 | admin | 增加检查更新协议 |
2019-07-30 14:34:04 | 秦大人 | 系统管理员修改 |
2019-07-04 10:24:40 | admin | 完善协议 |
一、建立与MQTT服务器的连接
HOST : auth.mqtt.9iot.cn
PORT : 1883
USERNAME : 请登录厂商运营系统查看。
PASSWORD : 请登录厂商运营系统查看。
CLIENT ID : 请根据设备情况,写入设备全球唯一标识。一般为设备/WIFI 模块MAC地址。 16字节,不足末尾补零。
二、指令说明。
1)协议结构说明
|
字段 |
大小(byte) |
描述 |
协议头 |
version |
2 |
版本号 |
length |
2 |
数据包大小 |
|
header_crc |
2 |
协议头校验码 |
|
协议体 |
body |
Length - 8 |
数据体 |
body_crc |
2 |
数据体校验码 |
Version : 版本号(公有协议 0001 开始,私有协议 0501开始)
Length : 完整协议包大小
Header_crc : 协议头校验码。采用的多项式为CRC-16/CCITT的16位循环校验码
Body : 数据体,以下为数据体结构定义
字段 |
大小(byte) |
描述 |
PackageType |
1 |
协议包类型 |
Command |
2 |
应用命令字 |
Data |
不定长 |
数据 |
PackageType :协议包类型,用于应用层消息逻辑处理方式。以下为协议包类型值约定:
字节值 |
描述 |
0x00 |
Message,无需回复协议包类型 |
0x01 |
Get,需回复协议包类型,用于请求获取数据回复 |
0x02 |
Set,需回复协议包类型,用于设置数据需返回设置成功与否 |
0x03 |
Result,无需回复协议包类型,用于set/get类型正确回复包,序列号与set和get包相同 |
0x04 |
Error,无需回复协议包类型,用于set/get类型错误回复包,序列号与set和get包相同 |
Command : 应用命令字,以下为值约定:
数据包类型 |
command |
source数据来源 |
设备登录认证 |
0x0001 |
设备 |
设备数据上传 |
0x0002 |
设备 |
发送设备控制指令 |
0x0003 |
Server |
时间同步 |
0x0004 |
Server |
心跳包 |
0xFFFF |
设备 |
发送设备查询指令 |
0X0005 |
Server |
数据透传 |
0x0010 |
Server/设备 |
2)设备与服务端建立连接之后,应首先发送设备认证数据包。以下为设备认证指令说明与实例:
分类 | 描述 | 长度[字节] | 字段名 | 数据样例 |
Header |
|
2 | VERSION/版本 | 0001 |
|
|
2 | LENGTH/长度 | 0000 |
|
|
2 | Header_CRC/头部校验码 | 0000 |
PayLoad |
|
1 | PackgeType / 协议包类型 | 01 |
|
|
2 | Command / 数据包类型 | 0001 |
|
|
16 | Device Type / 设备类型 | 01 |
|
|
2 | PayLoad_CRC / 数据体校验码 | 0000 |
|
|