工程端 · ATH
观察与发现输入
先用最省事的方式把设备「看懂」:边操作边观察,不用先写协议文档。
观察是只读的
实时观察用的是被动输入通道:读取、解码、发布,不向设备写入任何报文,也不建立协议会话。 因此它不会打断你正在用的设备,也不会改变设备状态 —— 这对调试很重要:你看到的就是设备本来的行为。
- 页面上的活动状态、命令行
ath device trace打印的内容,来自同一条输入路径。 ath device watch看的是更底层的原始报文,适合确认设备到底发了什么。- 有些设备的某些按键只在厂商工具会话里才会应答,这类输入在纯粹的观察里可能看不到;遇到时用协议资料补全。
把操作变成项目里的输入
- 01选接口
ath discover devices列出发现工作区可选择的 HID 接口:同一台设备可能有多个接口, 选错就什么都读不到。 - 02操作设备在 ATH 里一边按一边看。自动发现会给识别到的输入分配标识(例如
dd:dut:vendor.trigger_left_raw这种形式),并把它登记进项目,编辑器里就能直接用它建组件。 - 03整理与隐藏误触发或不需要的输入可以隐藏,之后用
ath discover restore恢复;ath discover reset会移除全部自动发现的输入并清空发现历史,用于重新来一遍。
录制与离线回放
真实设备不可能每次都接在手上。把一段操作录下来,之后就能在没有设备的情况下重复同一份输入。
ath device capture --output ./capture.jsonl # 录制带时间戳的原始 HID 输入
ath discover replay ./capture.jsonl # 用录制做确定性的输入发现
ath simulate inspect ./capture.jsonl # 只校验并汇总录制,不回放
ath simulate replay ./capture.jsonl # 用虚拟 HID 通道回放接下来做什么
| 你的情况 | 下一步 |
|---|---|
| 只是想先跑起来 | 直接建组件、录测试序列,见 测试序列。 |
| 有协议资料 | 整理成设备说明,让识别与解析固定下来,见 设备说明(DD)。 |
| 输入不全或读不出来 | 用 capture/watch/describe 取证,再决定补资料还是换接口。 |