推车锁通讯文档-系统接口
目录
协议结构
命令结构
定义:服务器发送,通讯模块接收的数据报文。
1 | 2 | 3 | 4 | 5 | 6 | 7 |
1:开始标识(1byte) “_”
2:报文长度(3byte)(ASCII数字)
3:命令(3byte)(英文大写,第一字节A为保留字段)
4:会话ID(6byte)(每一字节0x00-0x3D之间数字+偏移量0x31,当然如果使用A-Za-z0-9就一定再这个范围之内了,也就满足要求了),每次不同的通讯的会话ID都需要不一样(服务器发起的通讯至少连续的20次通讯不一样,除了特殊说明以外,当然我们的建议还是让每次通讯的会话ID尽可能的不一样),通常设备会在获取到服务器指令执行以后需要回复结果的会返回相同的会话ID给服务器,服务端可以通过会话ID获得设备当前回应的数据是哪一个会话的。同一个会话ID设备会认为是同一次通讯的重复发送,如果设备已经处理了相关的指令,就会丢弃之后相同会话ID的指令。设备由于内存限制,比对的会话ID是之前10次通讯的会话ID,为了可靠期间服务端只要保证连续的20次服务器发起的通讯会话ID不一致就可以了确保设备不会触发丢弃操作而影响指令的执行。另外如果有些命令服务器为了使设备一定收到,但设备只需要执行一次的,这样的命令多次发送用同一会话ID发送就可以了
5:分隔符(1byte) “/”
6:参数(如果没有参数则没有该部分)
7:结束标识(2byte) (0x0D 0x0A)
响应结构
定义:通讯模块发送,服务器接收的报文。
1 | 2 | 3 | 4 | 5 | 6 | 7 |
1:开始标识(1byte) “_”
2:响应类型(2byte) PG-ping,DV-设备号(IMEI),ID-SIM卡ICCID号,CM-客户端命令,RP-数据上报,RS-命令响应, RJ-Json数据上报
3:命令(3byte)(大写英文,回传服务器请求的命令,如果没有服务器请求则为AAA)
4:会话ID(6byte)(无服务器会话ID则返回”000000”,文档中指令的会话ID有特殊定义的,已定义为准)
5:内容长度(3byte)(ASCII数字)6的长度
6:内容(内容长度可以为空)
7:结束标识(2byte) (0x0D 0x0A)
命令限制
- ADV(设备号IMEI号) AID(SIM卡ICCID号) AXT(心跳) AAA(空指令) 为系统内置命令不能用于其他接口
- 业务级别的接口命令不得用 A 开头
业务协议
下发唤醒指令
下发唤醒指令请求
关联设备命令:0x01
发送方 | 服务器 |
说明 | 服务端询问设备状态 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,WKU |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 设备编号(8bytes 的 16 进制字符串)
订单号(10bytes 的 16 进制字符串) 开锁方式(1-开锁 2-不开锁,3-闪灯一分钟500ms亮,500ms灭) 时间戳(10bytes 的 Unix 时间戳) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_045 WKU LCZXk8/1A5B0C18 0207636116 1 1612666945<0x0D> <0x0A>
下发唤醒指令响应
关联设备命令:0x01
发送方 | 通信模块 |
说明 | 返回服务端查询内容 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,WKU |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 设备编号#/#
订单号#/# 接收结果(1-接收成功,2-数据不完整,3-射频模块未就绪,4-不开锁唤醒上报,5-唤醒亮灯上报) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_RS WKU LCZXk8 025 1A5B0C18#/#0207636116#/#1 <0x0D> <0x0A>
上报开锁结果
开锁结果上报请求
发送方 | 通信模块 |
说明 | 设备主动上报开锁结果 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,ULU |
会话ID | 6byte,A15001 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 设备编号(8bytes 的 16 进制字符串)#/#
订单号(10bytes 的 16 进制字符串)#/# 开锁状态(1-开锁成功,2-开锁失败,3-锁已打开,4-不开锁上报,5-重放非法,6-亮灯指示)#/# 电池电量(0-255,计算:电压=3.3*value*2*32/4096,一般电池电量75以上不用跟换,75以下建议更换,70以下建议立即更换)#/# 重传序号:DLB 重传序号,服务端接收到该指令以后必须立刻返回 DLB 通知设备收到此条数据,否则设备 会一直发送直到服务端确认收到。该序号在返回 DLB 通知的时候需要带回来的序号。 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_RP ULU A15001 036 1A5B0C18#/#0207636116#/#2#/#118#/#16<0x0D> <0x0A>
硬币开锁结果
硬币开锁结果上报请求
发送方 | 通信模块 |
说明 | 硬币开锁后设备主动进行上报 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,ULC |
会话ID | 6byte,A15002 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 设备编号(8bytes 的 16 进制字符串)#/#
订单号(10bytes 的 16 进制字符串)#/# 开锁状态(1-开锁成功,2-开锁失败)#/# 重传序号:DLB 重传序号,服务端接收到该指令以后必须立刻返回 DLB 通知设备收到此条数据,否则设备 会一直发送直到服务端确认收到。该序号在返回 DLB 通知的时候需要带回来的序号。 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_RP ULC A15002 030 1A5B0C18#/#0000000000#/#1#/#19<0x0D> <0x0A>
还车结果上报
还车结果上报请求
发送方 | 通信模块 |
说明 | 设备还车后主动进行上报 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,RTU |
会话ID | 6byte,A15003 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 设备编号(8bytes 的 16 进制字符串)#/#
订单号(10bytes 的 16 进制字符串)#/# 还车状态(1-还车成功,2-还车失败)#/# 重传序号:DLB 重传序号,服务端接收到该指令以后必须立刻返回 DLB 通知设备收到此条数据,否则设备 会一直发送直到服务端确认收到。该序号在返回 DLB 通知的时候需要带回来的序号。 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_RP RTU A15003 036 1A5B0C18#/#0207431327#/#1#/#123#/#22<0x0D> <0x0A>
删除重传队列
发送方 | 服务器 |
说明 | 服务端收到设备上报带有重传序号的请求后后,回应设备让设备删除重传列表中的该条数据。 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,DLB |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 重传序号(通讯模块生成) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 018 DLB 123456 / 56 <0x0D> <0x0A>
订单完成通知
订单完成通知请求
发送方 | 服务器 |
说明 | 多网关情况下,服务器下发删除已完成的订单 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,DEL |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 订单号(10bytes 的 16 进制字符串) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_025 DEL KX7l9t 0207636116 <0x0D> <0x0A>
订单完成通知响应
发送方 | 通信模块 |
说明 | 返回对该订单号的处理结果 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,DEL |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 订单状态(0-订单号不存在,1-订单删除成功) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_RS DEL KX7l9t 001 1 <0x0D> <0x0A>
获取网关配置
服务器下发网关设置
发送方 | 服务器 |
说明 | 多网关情况下,服务器下发网关设置 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,TSJ |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 是否启用唤醒(Y-唤醒,N-不唤醒,1byte)
网关权重(1-5,1byte) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_017 TSJ KX7l9t Y1 <0x0D> <0x0A>
服务器网关设置应答
发送方 | 通信模块 |
说明 | 服务器下发网关设置后,应答 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,TSJ |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 1-成功,0-失败 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_RS TSJ KX7l9t 001 1 <0x0D> <0x0A>
请求服务器网关设置
发送方 | 通信模块 |
说明 | 设备请求服务端发网关设置后 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,TSJ |
会话ID | 6byte,A15007 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 1- 固定值 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_RP TSJ A15007 001 1 <0x0D> <0x0A>