用途:wuji upgrade 用于升级 Wuji 设备固件,从官方目录获取固件、通过已连接通道烧录,并打印每台设备的报告;设备会自动重启到新固件。每次调用由“作用域(哪些设备)× 动作(做什么)”组成,不带参数运行时只打印帮助,不会隐式烧录。
作用域(默认唯一连接设备):--all 表示所有发现设备(仅最新固件);--type <TYPE> 表示某类型全部设备(匹配 ping 的 Device Type,不区分大小写,如 --type wuji_glove);--sn / --address / --handedness 选择单台设备。
动作:--check 只读查看更新概览;不带动作标志时升级到目录最新版本;--to <VERSION> 安装指定目录版本;--file <PATH> 烧录本地固件;-l / --list 浏览固件目录(只读)。--to、--file、--list 需要单一类型作用域(--type 或单台设备),--all 始终表示各设备取最新。
常用示例:wuji upgrade --check;wuji upgrade --all;wuji upgrade --sn <SN>;wuji upgrade --sn <SN> --to 0.11.0;wuji upgrade --type wuji_glove --to 0.11.0;wuji upgrade --sn <SN> --list;wuji upgrade --file fw.zip。无选择器时单设备动作自动选择唯一连接设备,多台设备时 CLI 报错并列出候选 SN。
安全语义:烧录前显示含版本、大小和版本变化的确认提示;-y / --yes 跳过。已处于目标版本的设备会被跳过,--force 可对高于目录最新版本的设备降级。--to 或 --file 降级到旧版本允许,提示会标注 ⚠ DOWNGRADE。--file 支持官方 .zip 包(自动校验)和原始 .bin(按原样烧录)。
报告:每台设备状态为 ok / skipped / failed,Detail 列给出失败原因或跳过说明,原始 .bin 会带未校验说明;退出码 0 表示无设备失败(跳过不算失败),可用于脚本。--check 无论有无更新都退出 0(仅查询失败退出 1),应依据 JSON 的 status 字段判断。脚本中加 --json,烧录还需 --yes;每行含 sn、status、firmware_before、firmware_after、duration_s、note、error 及 firmware_expected。Before 和 After 均从设备读取,After 在升级完成后读取;未运行(skipped)、未成功(failed)或设备不上报版本时 After 为 -(firmware_after 为 null)。设备上报时 After 显示读取值,即使等于 Before(如 --force 重烧同版本或仅变更从节点),应将其视为辅助信息而非判定依据。
回滚:wuji upgrade rollback 是子命令而非标志,一步切换到设备备份固件,不接受 --check、--to、--file、--list、--force、--all、--type 等标志。示例:wuji upgrade rollback --sn WH2KXXXXXXXXXX01 --yes --json。--sn 必填,始终针对单台设备。触觉传感器在线的手无法回滚,请求会在修改设备前被拒绝,报告 Status 为 failed(解决后可安全重试)。回滚目标不可选择,操作完成前版本未知,提示会明确说明。报告 Status 为 ok、failed 或 unknown;unknown 表示未达到确认的最终状态,不要盲目重试(成功重试可能切回原版本),先用 wuji ping --sn <SN> 核实实际版本。只有携带从设备读回的回滚后版本时才为 ok。