时间校准
设备上线以后向平台获取UTC(Universal Time Coordinated),进行时间校准。
设备请求时间校准的流程如下:
1. 设备通过19/0/0请求UTC参数,携带设备发送该报文的时间戳DST;
2. 平台接收并记录19/0/0的时间戳并向设备回复19/1/0,携带三个时间参数DST、SRT、SST;
3. 设备记录接收到19/1/0的时间戳DRT,根据公式计算得到精确时间: ( SST + SRT + DRT – DST ) / 2。
参数说明
参数名称 | 说明 |
DST | DeviceSendTime,设备发送19/0/0的时间 |
SRT | ServerRecvTime,平台接收19/0/0的时间 |
SST | ServerSendTime,平台发送19/1/0的时间 |
DRT | DeviceRecvTime,设备接收19/1/0的时间 |
接口说明:
1. 19/0/0编码格式定义为:“utc_req” + DST(15字节)
2. 19/1/0编码格式定义为:“utc_rsp” + DST + SRT + SST(31字节)
3. “utc_req”、“utc_rsp”为固定字符串
4. DST、SRT、SST 为8字节整型(毫秒级时间戳)
注:字节拼接不含符号:“”、+
示例:
字符串 | 十六进制 |
utc_req | 7574635f726571 |
utc_rsp | 7574635f727370 |
操作 | 参数名称 | 参数值(十进制) | 参数值(十六进制) |
设备发送 | DST | 1584667200000 | 0000 0170 F586 8A00 |
平台接收 | SRT | 1584667281379 | 0000 0170 F587 C7E3 |
平台发送 | SST | 1584667281408 | 0000 0170 F587 C800 |
设备接收 | DRT | 1584667203000 | 0000 0170 F586 95B8 |
19/0/0报文:
7574635f72657100000170F5868A00
19/1/0报文:
7574635f7273700000 0170F5868A0000000170F587C7E300000170F587C800
设备计算得到精确时间:
(1584667281379 + 1584667281408 + 1584667203000 – 1584667200000) / 2
= 1584667282893