跳转到主要内容

概述

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 可以改到别处。

每行的字段

运行时分支

调用顺序

返回值是一个字典,只有 path 与 frames 两个键。

运行与输出

实测数据

在右手 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。

相关内容