通信协议0616.docx
《通信协议0616.docx》由会员分享,可在线阅读,更多相关《通信协议0616.docx(12页珍藏版)》请在冰豆网上搜索。
通信协议0616
通
信
协
议
V1.0
目录
目录2
约定3
协议基本格式4
通信协议7
0xA0链路操作7
0x00注册登录7
0x01心跳数据包7
0x55设备点到点通信请求8
0xEE设备点到点通信确认(设备间)8
0xAA数据传输9
0x00设备向平台获取组内设备9
0x55设备通过平台向组内设备发送数据10
0x66设备点到点方式向组内已成功建立通信的目标设备发送数据10
0xEE设备向平台透传数据10
0xFF平台向设备透传数据11
0xF0终端相关操作11
0x07设备请求从平台移除与用户关联11
0x55重启设备12
0x56服务器下发远程升级指令12
0x57设备请求远程升级文件帧12
0xAA读取设备配置13
0xAB写设备配置15
0xF0设备汇报状态事件15
0xEF平台或中心服务器与APP间的通信操作16
0x00登录[平台间]16
0x01心跳[平台间]16
0x06添加新的WIFI终端[APP与中心平台]16
0x07移除已经关联的WIFI终端[APP与中心平台]17
约定
1.数据从左至右排列,包头为第一字节,依次类推;
2.每一条完整的命令为一个数据包;
3.16进制数据模式;
4.通信最大数据长度为1400字节。
5.校验算法CRC16
6.转议码:
发送:
0x55->0x540x01
0x54->0x540x02
数据报文中,除包头包尾外,其它任何字节出现0x55都需要进行转义
接收:
接收:
0x540x01->0x55
0x540x02->0x54
7.BCD(8421码)
8.string以‘\0’结束,如:
”abc123\0”,字节长度:
7Byte
9.设备ID,16进制MAC地址(8Byte)
10.指令除有特定回复外,都需要有一个对应的通用回复
协议基本格式
终端收发:
格式(TCP/UDP通信)
长度(Byte)
名称
描述
1
包头
1
长度低位
1
长度高位
1
命令类别
1
命令字
1
命令序号低位
1
命令序号高位
2
扩展信息
包括序号,加密等其它扩展
1
状态
8
设备ID
16进制MAC地址(8Byte),设备号,不足前面补0
N
Torken
通信令牌,登录成功后才有此字段,第一字节表示长度
N
数据区
传输的数据
1
CRC低位
1
CRC高位
1
包尾
扩展信息段:
0
1
预留扩展,2Byte
字段说明:
A.包头包尾:
0x55;
B.命令长度:
整条命令数据的长度,包括“长度”本身及包头包尾,CRC校验位;
C.CRC:
由“包头”至“数据”的所有字节的CRC16运算值;
即:
包头,长度:
低位,长度:
高位,命令类别,命令字,用户ID,数据。
D.命令执行状态,0x00成功0x01失败0x02主动发送0x03不支持
E.Torken:
除设备发起登录时,不需要发送此字段外,所有其它指令,均需有此字段,设备与服务器在建立连接后,以此字段来区分是否合法链接发来的指令,防止强行伪造信息包。
通信协议
0xA0链路操作
0x00注册登录
长度(Byte)
名称
描述
n
设备密码
当前设备序号对应的密码
16进制MAC地址(8Byte),按原顺存放,大端模式
回复格式:
长度(Byte)
名称
描述
n
通信令牌
服务器与当前设备通信的令牌
所有设备端收到的指令,都需要检查当前通信令牌是否匹配,如果不匹配,那么认为是非法服务器发来的指令,不予响应!
0x01心跳数据包
数据区:
无
0x55设备点到点通信请求
请求数据报文:
长度(Byte)
名称
描述
8
目标通信设备
设备ID
服务器应答报文(确认回复有以下字段,其它回复,没有以下字段):
长度(Byte)
名称
描述
8
目标通信设备
设备ID
9
Torken
目标设备的Torken,参看协议Torken配置
4
目标设备IP
IP地址(从左至右,大端)
2
目标设备UDP端口号
无符号16位,大端
0xEE设备点到点通信确认(设备间)
数据报文:
长度(Byte)
名称
描述
8
发送设备ID
设备ID
指令中的设备ID为目标设备ID,数据区中的为发送设备的ID。
*P2P建立流程:
1.发起设备向服务器发送0xA00x55;
2.服务器向双方设备通报对方的IP,设备ID,Torken和UDP端口号;
3.设备向服务器发来的UDP端口号和IP地址发送0xA00xEE,状态字节为:
发送,一方收到后,即向对方当前Socket的IP和端口发送应答0xA00xEE,状态字节为:
确认,请注意,这个数据到达的Socket的IP和端口不一定是服务器发来的。
4.当第一次通信建立成功后,即以不超过1分钟的频率,向对方发送0xA00xEE状态字节为:
发送的数据包,以保持链路不被回收。
0xAA数据传输
0x00设备向平台获取组内设备
数据格式:
字段名
长度
描述
设备ID
8
参看协议设备id定议
Torken
9
参看协议torken定议
IP
4
Ip32,从左至右表示IP(从左至右,大端)
PORT
2
无符号16位整型(大端)
0x55设备通过平台向组内设备发送数据
数据格式:
字段名
长度
描述
设备ID
8
参看协议设备id定议,接收设备的ID
数据内容
Nbyte
要发送的数据内容
注:
如果是发送:
设备ID为接收设备的ID,如果是接收数据:
设备ID是发送设备ID
0x66设备点到点方式向组内已成功建立通信的目标设备发送数据
数据格式:
字段名
长度
描述
设备ID
8
参看协议设备id定议,接收设备的ID
数据内容
Nbyte
要发送的数据内容
注:
设备ID为发起数据发送设备的ID
0xEE设备向平台透传数据
消息体为透传的数据
0xFF平台向设备透传数据
消息体为透传的数据
*特别注意:
使用此指令,设备ID必须替换成接收设备的ID
0xF0终端相关操作
0x07设备请求从平台移除与用户关联
数据格式:
字段名
长度
描述
设备密码
8
参看设备密码定义
0x55重启设备
数据区格式:
无
0x56服务器下发远程升级指令
1.服务器下发:
参数:
长度(Byte)
名称
描述
n
文件名
Gbkstring
1
校验和
所有数据的校验和
2.设备向服务器请求文件
0x57设备请求远程升级文件帧
长度(Byte)
名称
描述
n
文件名
Gbkstring
2
帧序号
2
帧大小
0xAA读取设备配置
参数:
长度(Byte)
名称
描述
1
参数ID低位
1
参数ID高位
参数对应表:
低位
高位
数据类型
对应参数描述
返回数据区格式
0x01
0x00
string
版本信息
String:
“硬件版本”,”软件版本”,”Bootloader版本”
0x05
0x00
Byte[]
通信服务器
2byte(低位在前)服务器端口
1byte1:
tcp0:
udp
string:
服务器IP或域名,以’\0’结束
0x06
00
Byte[]
灾难服务器
2byte(低位在前)服务器端口
1byte1:
tcp0:
udp
string:
服务器IP或域名,以’\0’结束
(只有在通信服务器异常,不能正常登录时才登录此服务器,如果使用的是此服务器,需每隔20分钟查询一次通信服务器是否正常)
0x07
0x00
Byte[]
通信服务器DNS配置
4byte:
服务器IP
0x0B
0x00
byte
数据发送等待时长
1byte
0x0C
0x00
byte
心跳包间隔
1byte,单位:
秒
0x16
0x00
Byte[]
RTC
2byte年
1byte月
1byte日
1byte时
1byte分
1byte秒
1byte星期
0x20
0x00
byte
写超时
1byte
0x21
0x00
byte
读超时
1byte
0xAB写设备配置
参数:
长度(Byte)
名称
描述
1
参数ID低位
1
参数ID高位
N
参数内容
参看:
参数对应表
0xF0设备汇报状态事件
长度(Byte)
名称
描述
1
状态事件编码
见编码对应表
n
描述
Gbkstring
0x10:
设备升级状态
0x20:
设备工作状态
0xEF平台或中心服务器与APP间的通信操作
0x00登录[平台间]
中心服务器与网关服务器平台之间通信
数据格式及流程参见:
0xA00x00
0x01心跳[平台间]
中心服务器与网关服务器平台之间通信
数据格式参见:
0xA00x01
0x06添加新的WIFI终端[APP与中心平台]
手机APP与中心服务器平台之间通信
参数区格式:
名称
描述
WIFIID
8byte,见终端设备编码规则
WIFI密码
8byte,见终端设备密码编码规则
0x07移除已经关联的WIFI终端[APP与中心平台]
手机APP与中心服务器平台之间通信
参数区格式:
名称
描述
WIFIID
8byte,见终端设备编码规则
返回:
成功,失败