SN号弹出
1、用于扫码付费后,给机柜发送SN号弹出指令,弹出充电宝
2、充电宝SN,可在如下指令获取
| 指令名称 | 指令下发 | 指令回复 | 相关协议 |
|---|---|---|---|
| 查询机柜信息 | check | 0x10 | MQTT |
| 整机上报(主动) | upload_all | - | MQTT |
| 整机上报(定时) | - | 0x10 | HTTP |
WARNING
1、充电宝弹出后,机柜会花3秒钟,进行仓位通讯和传感器检查,确保充电宝已经正常弹出。
2、在检查期间,如果发起查询命令(check、check_all),原来的充电宝有可能在里面,建议5秒后再发命令查询。
指令下发 ▼
订阅主题:/powerbank/{uuid}/user/get
数据格式:JSON字符串
| 名称 | 标识代码 | 数据类型 | 备注 |
|---|---|---|---|
| 指令名称 | cmd | string | popup_sn |
| 指令数据 | data | string | 充电宝SN |
示例:弹出充电宝;充电宝SN:10211856
text
{"cmd":"popup_sn","data":"10211856"}定制功能 ▼
订阅主题:/powerbank/{uuid}/user/get
数据格式:JSON字符串
| 名称 | 标识代码 | 数据类型 | 备注 |
|---|---|---|---|
| 指令名称 | cmd | string | popup_sn |
| 指令数据 | data | string | 充电宝SN |
| 当前时间戳 | timestamp | string | 当前时间戳(秒) |
| 有效时间 | ttl | string | 命令有效时间(秒) |
示例:弹出充电宝;充电宝SN:10211856,如果网络延迟导致30秒内没收到命令,则不弹出
text
{"cmd":"popup_sn","data":"10211856","timestamp":"1759941810","ttl":"30"}:::
设备回复 △
发布主题:/powerbank/{uuid}/user/update
数据格式:字节码数据,Hex,16进制解析
| 字节码 | 名称 | 标识代码 | 备注 |
|---|---|---|---|
| byte[0] | 头码 | head | 默认:0xA8 |
| byte[1~2] | 包长度 | length | 例如:0x01 0x25,转10进制,包长度为293 |
| byte[3] | 指令名称 | cmd | 默认:0x31,SN弹出 |
| byte[4] | 仓位地址 | holeIndex | 范围:1-100 |
| byte[5~8] | 充电宝SN | powerbankSN | 0x00 0x00 0x0B 0xCF = SN:3023 0x00 0x9B 0xD2 0x10 = SN:10211856 0xFF 0xFF 0xFF 0xFF = SN:4294967295 |
| byte[9] | 弹出状态 | state | 0x00:弹出失败 0x01:弹出成功 0x11:串口通信超时 0x12:充电宝未弹出,可以读取到SN号 0x87:获取时间戳失败 0x88:超过ttl有效时间 0xFB:无符合租借条件的充电宝 0xFC:未找到目标SN的充电宝 0xFD:向线程池添加任务失败 0xFE:上一次租借未完成,无法启动新租借流程 0xFF:租借命令解析失败 其他值:未知错误 |
| byte[10] | 预留 | undefined | 默认:0x00 |
| byte[11] | 校验码 | verify | 数据包补码校验 |
示例:上报SN弹出数据
text
A8 00 0C 31 60 00 9B D2 10 01 00 3Btext
A8 -------------------------------------------- byte[0] 头码
00 0C ----------------------------------------- byte[1~2] 包长度9
31 -------------------------------------------- byte[3] SN弹出指令
60 -------------------------------------------- byte[4] 仓位地址
00 9B D2 10 ------------------------------------byte[5~8] 充电宝SN:10211856
01 -------------------------------------------- byte[9] 弹出状态
00 -------------------------------------------- byte[10] 预留
3B -------------------------------------------- byte[11] 校验码