交互流程
(1)设备注册
设备在未注册状态下,应首先进行注册,注册需要携带制造商ID、设备型号、设备编号等信息。注册成功后终端将获得鉴权码,该鉴权码在终端登录时使用。
终端注册(0x0100)消息体格式:
注册应答(0x8100)消息体格式:
(2) 设备注销
车辆需要拆除或者更换终端前,终端应该执行注销操作,取消终端和车辆的对应关系。注销请求的消息体为空,平台回复通用应答。
(3)登录鉴权
终端注册后每次与平台建立连接都要进行鉴权。终端发送鉴权请求,平台回复通用应答。
鉴权请求消息格式:
起始字节 | 字段 | 数据类型 | 描述及要求 |
0 | 鉴权码 | STRING | 终端重连后上报鉴权码 |
(4)心跳
在没有数据发送时,若要保持连接,设备应每隔5分钟主动向平台发送心跳报文,平台回复通用应答消息。
心跳请求的消息ID:0x0002,消息体为空。
(5)数据上报
• 消息ID ==0x0900的上行数据,平台对数据进行透传,推送web的消息中Payload的格式为:
{
"msgid": 0x0900,
"value":
{
"type": ***,
"data": {$base64}
}
}
• 消息ID == 0x0200的位置信息汇报消息,平台解析消息内容,推送web的消息中Payload的格式为:
{
"msgid": ***,
"extras":***,
"alarmSign":***,
"status":***,
"latitude":***,
"longitude":***,
"elevation":***,
"speed":***,
"direction":***,
"time":***
}
• 消息ID != 0x0900的上行消息,平台不解析消息体,只做透传,推送web的消息中Payload的格式为:
{
"msgid": ***,
"value": ***
}
(6)下行数据
消息ID != 0x8900的指令,平台做指令透传
消息ID == 0x8900的指令,需要区分指令类型
对于终端通用应答(消息ID:0x0001),平台需要对消息体进行解析,将解析出的应答流水号、应答ID、结果等信息推送北向应用。