概述
Wuji Hand 2 在闪存里维护一个日志环形缓冲区。export_flash_logs() 把整个环拉下来、逐帧解码,写成 JSONL 文件,每行一条日志。
设备侧出问题时这是第一手材料。它记录的是固件视角的事件,比主机侧 SDK 日志更接近故障现场。
对应的 Python 示例为 5.export_flash_logs.py,C 示例为 5_export_flash_logs.c。
诊断与日志的接口定义见诊断与日志,本页只讲怎么跑起来与实测结果。
本示例只读取,不使能电机,手指不会动。
前置条件
硬件
软件
数据流
每次调用都是全量导出并写新文件。 没有「先查有多少条」这样的接口,也没有增量导出。输出位置
out_dir 默认为 None,写入 SDK 的默认目录 ~/.wuji/logs,也就是 SDK 自身日志所在的位置,文件名带 flash_ 前缀:
out_dir 可以改到别处。
每行的字段
运行时分支
调用顺序
- Python
- C
path 与 frames 两个键。
运行与输出
- Python
- C
实测数据
在右手 Wuji Hand 2 上实跑:
导出内容的构成:
绝大多数是
sboard_app 的周期性状态行,形如 [B2] T:25 R:20 g:0 bc:0/0 ...,以及节点心跳 nodes 4/5: [1:hb=0 2:hb=0 ...]。排查问题时先按 level 过滤出 Warn 及以上,再按 target 定位模块。
调整与适配
过滤关注的内容
JSONL 每行独立,用jq 直接筛:
导出到指定目录
out_dir 参数即可。默认写进 ~/.wuji/logs,会和 SDK 自身日志混在一起,靠 flash_ 前缀区分。
与 SDK 主机日志的关系
两者视角不同。闪存日志是固件视角,记录总线、节点心跳、服务端状态。SDK 日志在同一目录下,记录主机侧的连接、订阅、发布行为。排查连接类问题时两边对照时间戳看。不要在实时循环里调用
全量导出会拉取整个环形缓冲区,实测千余条约 3 秒。这是排查工具,不是监控手段。持续监控请订阅joint_diagnostics。