DTU数据PROT模式下数据格式说明 点击:436 | 回复:0



李东泽

    
  • [版主]
  • 精华:7帖
  • 求助:25帖
  • 帖子:1209帖 | 6375回
  • 年度积分:216
  • 历史总积分:44409
  • 注册:2010年3月25日
发表于:2017-12-04 12:49:22
楼主

DTU数据PROT模式下数据格式说明 

DTU工作在PROT模式下总共会向数据中心发送三种类型的数据包:首次注册的注册包,包含应用数据的数据包,维持链路的心跳包。三种包的格式说明如下: 

1. 首次注册包: 
格式: 
ID 
PHONE_NUMBER 

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进行远程配置. 

1分不嫌少!


楼主最近还看过


热门招聘
相关主题

官方公众号

智造工程师