设备维护指令
公开这些指令,是为了让独立软件也能支持硬件;公开语法不等于获得生产机柜的操作权限。所有服务端下发的维护指令都必须经过角色认证、机柜范围校验、审计记录,并具备明确的回滚或恢复方案。
FA: 维护弹出
下行: {FA,messageId,slotNumber,crc}
上行: {FA,sameMessageId,result,crc}
| 字段 | 含义 |
|---|---|
slotNumber=0 | 弹出全部槽位 |
slotNumber>0 | 强制弹出指定槽位 |
result=1 | 设备接受操作 |
result=0 | 设备拒绝操作 |
FA 是维护动作,弹出的充电宝不能放电,不能用它代替正常租借。
FL: 启用或禁用槽位
下行: {FL,messageId,slotNumber,operation,crc}
上行: {FL,sameMessageId,disabledMaskHex,crc}
| 字段 | 含义 |
|---|---|
slotNumber=0 | 操作全部槽位 |
slotNumber>0 | 操作单个槽位 |
operation=0 | 启用 |
operation=1 | 禁用 |
disabledMaskHex | 十六进制位掩码;bit 0 对应 1 号槽,bit 1 对应 2 号槽,以此类推 |
掩码示例:00000000 表示没有禁用槽位;0000000F 表示 1-4 号槽被禁用。
OT: 固件升级控制
升级下行: {OT,operation,host,port,path,md5,fileSize,crc}
控制/查询下行: {OT,operation,crc}
上行: {OT,result,resultInfo,crc}
operation | 含义 |
|---|---|
1 | 升级主板 MCU |
10 | 升级全部叠加子板 MCU;已升级子板可自动跳过 |
20 | 升级 8 口扩展子板 MCU |
0 | 查询升级进度;不带地址/路径参数 |
11 | 查询全部子板固件版本;不带地址/路径参数 |
111 | 停止升级;不带地址/路径参数 |
| 回复 | 含义 |
|---|---|
result=1 或 10 | 进度或已接受/成功;resultInfo 按操作和配置解析 |
result>=200 | 对应操作的失败码 |
fileSize>0 | 固件预期字节数 |
fileSize=0 | 受支持固件上的断点续传模式 |
md5 与固件路径一起提供,下载文件必须匹配。生产实现还应在设备支持时使用 TLS、限制允许的主机、校验签名、检查机型/版本兼容性、分批发布、检查供电状态并准备恢复方案。禁止接受终端用户客户端传来的任意 URL。
SQ: 叠加子板查询
下行: {SQ,messageId,operation,0,crc}
上行: {SQ,sameMessageId,boardCount,board1,...,boardN,crc}
每个子板记录为 index:boardId:firmwareVersion。必须校验 boardCount 与实际记录数一致,不能静默丢弃多出的子板。
NI: 写入充电宝 ID
下行: {NI,messageId,slotId,newPowerBankId,crc}
上行: {NI,sameMessageId,result,currentPowerBankId,crc}
| 字段 | 含义 |
|---|---|
slotId | 原始配置写明 1..12;实际按所选机柜拓扑校验 |
newPowerBankId | 本指令/配置最多 16 个字符;跨固件兼容建议使用 15 个 |
result=1 | 写入成功 |
result=0 | 写入失败或未生效 |
该指令会改变资产身份。运营后台应要求二次确认,读取并校验写入后的 ID,并在审计记录中保存旧值和新值。
KU: 按键事件上报
上行: {KU,lastMessageId,deviceId,keyOperation,crc}
协议不要求 ACK。
keyOperation | 含义 |
|---|---|
1 | 短按 |
2 | 长按,至少三秒 |
3 | 双击 |
KU 只是事件,不代表租借、归还或维护成功。服务端因按键事件触发任何后续动作时,仍必须通过该动作自己的授权与状态校验。