DTU数据PROT模式下数据格式说明
DTU工作在PROT模式下总共会向数据中心发送三种类型的数据包:首次注册的注册包,包含应用数据的数据包,维持链路的心跳包。三种包的格式说明如下:
1. 首次注册包:
格式:
ID
PHONE_NUMBER
0
IP_ADD
ETX
4字节 11字节 1字节 4字节 1字节
说明:
ID: 8位HEX ID编号
PHONE_NUMBER: 11位手机电话号码的ASCII码
IP_ADD: 动态IP地址(HEX)
ETX: 0x00表明数据的结束。
例如: 78 56 34 12 31 33 30 36 36 36 36 38 38 38 38 00 c0 a8 01 42 00
解析如下:
78 56 34 12 表示ID号为: 0x78563412(总共4字节)
31 33 30 36 36 36 36 38 38 38 38 表示手机号码为:13066668888
c0 a8 01 42 表示IP地址为:192.168.1.66
DTU上电以后根据您设置的数据中心IP和端口号会主动去连接数据中心,一但TCP链路建立成功,DTU将发送首次注册包,其中包含了DTU的基本信息,以后即为应用数据包和维持链路的注册包!
2. 包含应用数据的数据包:
PROT模式下,DTU在向数据中心发送数据和从数据中心收数据时都进行了转义,转义规则如下:
(1) DTU向数据中心发送数据时,首先所有的将0xfd 转化为 0xfd 0xed 然后将所有的0xfe 转化为0xfd 0xee
(2) DTU收到数据中心的数据时,首先所有的将0xfd 0xed转化为 0xfd 然后将所有的0xfd 0xee转化为 0xfe
(3) 我们的动态库在收到数据时已经作了相反的转义,所以用我们的动态库收发数据时该数据包是全透明的。如果不用我们提供的动态库则要在程序里进行反转义,即:数据中心软件收到数据时首先所有的将0xfd 0xed转化为 0xfd 然后将所有的0xfd 0xee转化为 0xfe 。向DTU发送数据时首先所有的将0xfd 转化为 0xfd 0xed 然后将所有的0xfe 转化为0xfd 0xee
3.心跳包:
为了维持链路,DTU将周期性的向数据中心发送长度为1个字节的心跳包:0xfe
在我们提供的动态库里已经滤掉了此字节。
注意:在DTU登录数据中心软件后,用数据中心软件发送字符串: ***COMMIT CONFIG*** ,DTU将进入远程配置状态,此后可以发送AT命令对DTU进行远程配置.
楼主最近还看过