全悠清洗机通讯文档

来自东骏科技波塞冬平台开发者文档
Jinyiding讨论 | 贡献2021年2月7日 (日) 09:55的版本
跳转至: 导航搜索

协议结构

命令结构

定义:服务器发送,通讯模块接收的数据报文。

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)

命令限制

  1. ADV(设备号IMEI号) AID(SIM卡ICCID号) AXT(心跳) AAA(空指令) 为系统内置命令不能用于其他接口
  2. 业务级别的接口命令不得用 A 开头

业务协议

下发唤醒指令

下发唤醒指令请求

关联设备命令:0x01

发送方 服务器
说明 服务端询问设备状态
开始标志 1byte,“_”
报文长度 3byte,表示整个报文的总长度,ASCII数字表示
命令 3byte,WKU
会话ID 6byte,服务器生成
分隔符 1byte,“/”
参数 设备编号(8bytes 的 16 进制字符串)

订单号(10bytes 的 16 进制字符串)

开锁方式(1-开锁 2-不开锁)

时间戳(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-射频模块未就绪)

结束标志 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-重放非法)#/#

电池电量(0-255)#/#

重传序号:DLB 重传序号,服务端接收到该指令以后必须立刻返回 DLB 通知设备收到此条数据,否则设备 会一直发送直到服务端确认收到。该序号在返回 DLB 通知的时候需要带回来的序号。

结束标志 2byte,\r\n(0x0D 0x0A)

示例:

_RP ULU A15001 036 1A5B0C18#/#0207636116#/#2#/#118#/#16<0x0D> <0x0A>