果汁机文档
描述
规约
本文档所述的协议是用于东骏科技有限公司物联网服务平台和安卓型自动销售设备的数据交互。
客服(技术)联系方式
杭州东骏科技有限公司 电话:0571-87017551 手机:18657108036
兼容性
仅适用于授权设备。
缩略语
- PDU(Protocol Data Unit) 协议数据单元
- ADU(Application Data Unit) 应用数据单元
- IOTCU(IOT Control Unit) 物联网控制单元
- IOT(internet of things) 物联网
- MB(Main Board) 本文特指售货机主板
- IPC(Industrial Personal Computer) 本文特指安卓工控机
- Server 本文特指东骏波塞冬物联网平台
通讯协议
本章节内容定义通讯模块和服务器之间的通讯协议
通讯方式
- 数据上报:String
- 指令数据:定长报文
- 通讯网络协议:TCP
协议框架
命令结构
定义:服务器发送,通讯模块接收的数据报文。
① | ② | ③ | ④ | ⑤ | ⑥ | ⑦ |
①开始标识(1byte)“_”
②报文长度(3byte)(ASCII数字)
③命令(3byte)(英文大写,第一字节A未保留字段)
④会话ID(6byte)(第一字节0x00-0x3D之间数字+迁移量0x31)
⑤分隔符(1byte)“/”
⑥参数(如果没有则没有该部分)
⑦结束标识(2byte)(0x0D 0x0A)
响应结构
定义:通讯模块发送,服务器接收的报文
① | ② | ③ | ④ | ⑤ | ⑥ | ⑦ |
①开始标识(1byte)“_”
②响应类型(2byte) PG-ping,DV-设备号(IMEI),ID-SIM卡ICCID号,CM-客户端命令,RP-数据上报,RS-命令响应, RJ-Json数据上报
③命令(3byte)(大写英文,回传服务器请求的命令,如果没有服务器请求则为AAA)
④会话ID(6byte)(无服务器会话ID则返回”000000”)
⑤内容长度(3byte)(ASCII数字)的长度
⑥内容(内容长度可以为空)
⑦结束标识(2byte)(0x0D 0x0A)
命令限制
- ADV(设备号IMEI号) AID(SIM卡ICCID号) AXT(心跳) AAA(空指令) 为系统内置命令不能用于其他接口
- 业务级别的接口命令不得用 A 开头
业务协议
设备启动指令
发送方 | 设备 |
说明 | 设备告知服务器已经启动,服务器收到该指令后,向设备发送补货二维码指令、商品信息指令、扫码支付二维码生成模板指令、售后电话指令。 |
开始标识(1byte) | _ |
响应类型(2byte) | RP |
命令(3byte) | UAJ |
会话ID(6byte) | A60100 |
内容长度(3byte) | 不定长 |
内容(1byte) | 1 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: _ RP BAJ A60100 001 1 \r\n
下发设备二维码
发送方 | Server |
说明 | 补货人员可通过扫描该链接生成的二维码进行补货。注意使用时不要直接放在设备上,只有补货人员才能唤醒使用 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | BAF |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式:
https://qa-mobile.supeeder.com/web-wechart/wechart/combo/choose?deviceNo=865501040780034 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: _105 BAF XAzu57 / https://qa-mobile.supeeder.com/web-wechart/wechart/combo/choose?deviceNo=865501040780034 \r\n
批量下发商品信息
发送方 | 服务器 |
说明 | 服务器将派样商品的条码下发给设备 |
开始标识 (1byte) | _ |
报文长度 (3byte) | 不定长 |
命令 (3byte) | BAE |
会话ID (6byte) | 服务器生成 |
分隔符 (1byte) | / |
内容 | JSON对象:
{"products":[{"ch":"货道号","bar":"商品条码","qty":库存数,"price":商品售价,"status":货道状态,"name":"商品名称","pic":"图片的路径","tmallProduct":"是否天猫派样商品","remark":"描述","adUrl":"线上商城二维码"}]} |
结束标识(2byte) | \r \n (0x0D 0x0A) |
批量下发商品应答
发送方 | 设备 |
说明 | 设备收到派样商品后响应结果 |
开始标识 (1byte) | _ |
响应类型 (2byte) | RS |
命令 (3byte) | BAE |
会话ID (6byte) | 服务器下发的会话id |
内容长度 (3byte) | 不定长 |
内容(30Byte) | JSON对象:
{”result”:[{“ch”:”货道号”,“status”:更新成功与否,“reason”:错误原因}]} |
结束标识(2byte) | \r \n (0x0D 0x0A) |
服务端下发用于生成付款二维码的url模板
发送方 | 服务器 |
说明 | 服务端下发用于生成付款二维码的url模板。 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | SMT |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式: URL模板
说明 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: _ 049 SMT WZa6HV / ${domain}/web-wechart/mobile/oa/ivem/pay/%s?path=PAY&source=SCAN&deviceNo=${DEVICENO}&productId=${PRODUCTID}&channel=${CHANNEL}&buyNum=${BUYNUM} \r\n
付款二维码的url模板接收响应
发送方 | 设备 |
说明 | 付款二维码的url模板立即同步返回响应 |
开始标识 (1byte) | _ |
响应类型 (2byte) | RS |
命令 (3byte) | SMT |
会话ID (6byte) | 服务器下发的会话id |
内容长度 (3byte) | 不定长 |
格式: 响应结果 说明: | |
结束标识(2byte) | \r \n (0x0D 0x0A) |
示例: 接收成功 _ RS SMT 123456 001 S \r \n
服务端下发售后手机号
发送方 | 服务器 |
说明 | 服务端下发售后手机号。 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | SMP |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式:15311221122 说明 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: _ 027 SMT WZa6HV / 15311221122 \r\n
服务端下发售后手机号接收响应
发送方 | 设备 |
说明 | 服务端下发售后手机号立即同步返回响应 |
开始标识 (1byte) | _ |
响应类型 (2byte) | RS |
命令 (3byte) | SMT |
会话ID (6byte) | 服务器下发的会话id |
内容长度 (3byte) | 不定长 |
格式: 响应结果 说明: | |
结束标识(2byte) | \r \n (0x0D 0x0A) |
示例: 接收成功 _ RS SMT 123456 001 S \r \n
服务端下发设备订单取消时长
发送方 | 服务器 |
说明 | 服务端下设备订单取消时长。 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | SMR |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式:时长 说明: |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: _ 018 SMR WZa6HV / 10 \r\n
设备上报故障指令
发送方 | 设备 |
说明 | 设备上报故障指令。 |
开始标识(1byte) | _ |
响应类型(2byte) | RP |
命令(3byte) | UAJ |
会话ID(6byte) | A60101 |
内容长度(3byte) | 不定长 |
内容(1byte) | 格式:索引号#/#故障码
说明 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: _ RP UAJ A60101 001 1#/#01 \r\n
平台响应设备故障上报
发送方 | 服务器 |
说明 | 服务器接收到设备故障上报,反馈给设备已经收到数据。 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | SMF |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式:索引号 说明 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: _ 018 SMF WZa6HV / 1 \r\n
平台请求出货
发送方 | 服务器 |
说明 | 服务器接收到销售订单并且支付成功后向通讯模块下发出货命令,要求设备出货。 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | ICH |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式: 货道号 #/# 出货数量 #/# 订单号
说明 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例: 货道110, 出货1个, 订单号12345678901234567890123 _ 049 ICH WZa6HV / 110#/#1#/#12345678901234567890123 \r\n
出货接收响应
发送方 | 设备 |
说明 | 设备接收到服务器下发的出货指令并确定能够处理时立即返回响应 |
开始标识 (1byte) | _ |
响应类型 (2byte) | RS |
命令 (3byte) | DAD |
会话ID (6byte) | 服务器下发的会话id |
内容长度 (3byte) | 不定长 |
格式: 响应结果 说明: | |
结束标识(2byte) | \r \n (0x0D 0x0A) |
示例: 接收成功 _ RS ICH 123456 001 S \r \n
出货结果上报
服务器通知出货以后设备出货,完成后上报出货结果。
- 协议定义:
发送方 | MB |
接收方 | Server |
说明 | 设备反馈出货结果 |
命令(3byte) | DAD |
会话ID(6byte) | A60102 |
参数 | JSON格式:{“bill”:订单号,“ch”:货道号,“qty”:成功出货的数量,“result”:出货结果} |
参数说明 | 货道号:字符串,货道的编号。 订单号:出货所关联的货道。 |
出货结果上报响应
发送方 | 服务器 |
说明 | 服务器收到出货结果上报后回应设备, 如果没收到回应设备需要重新尝试上报出货结果 |
开始标识(1byte) | _ |
报文长度(3byte) | 不定长 |
命令(3byte) | ICX |
会话ID(6byte) | 服务器生成 |
分隔符(1byte) | / |
参数 | 格式: 订单号#/#反馈结果 |
结束标识(2byte) | \r\n (0x0D 0x0A) |
示例
订单号: 12345678901234567890123
反馈结果: 成功
_ 043 ICX 123456 / 12345678901234567890123#/#S \r\n