把 Studio 主机协议改成单向端口,并让「从视频重算」走分析入口
控制器经 AcquireGate / ImageSink / ShellNotes 与信号接线,采集 tick 用 acquire_presenter 上屏;三维测试证明分析结果已喂 3D 后,重算并入 on_analysis_requested。 验证:apps/studio 下相关 pytest 与 tools/ui_check.py(634 checks)通过。
This commit is contained in:
@@ -9,12 +9,12 @@
|
||||
## 1. 三个顶层视图 = 同一窗口的三套布局
|
||||
|
||||
品牌轨上的三个导航项不打开新窗口,而是切换主窗口的布局
|
||||
(`StudioMainWindow._apply_view_preset`,预设在 `VIEW_PRESETS` / `VIEW_SPLITTER_SIZES`):
|
||||
(`ViewLayoutController.apply_preset`,预设在 `VIEW_PRESETS` / `VIEW_SPLITTER_SIZES`):
|
||||
|
||||
| 视图 | 面板 | 曲线 | 比例(3D,2D,曲线,标定) |
|
||||
|---|---|---|---|
|
||||
| 实时监测 `live` | 2D 图像 + 力曲线(+ 手指三维) | 跟随实时 | `0, 360, 1080, 0` |
|
||||
| 历史回放 `replay` | 2D 图像 + 力曲线(**与实时同布局**) | 读打开的录制;未打开时仍是实时跟随 | `0, 360, 1080, 0` |
|
||||
| 实时监测 `live` | 2D 图像 + 力曲线(+ 手指三维) | 跟随实时 | `620, 300, 520, 0` |
|
||||
| 历史回放 `replay` | 2D 图像 + 力曲线(**与实时同布局**) | 读打开的录制;未打开时仍是实时跟随 | `620, 300, 520, 0` |
|
||||
| 标定 `calibration` | 标定面板 + 力曲线 | 不变 | `0, 0, 560, 880` |
|
||||
| 自由 `custom`(启动默认) | 由视图菜单决定 | 不变 | 用户在分割条上摆的位置 |
|
||||
|
||||
@@ -102,22 +102,23 @@
|
||||
摘要里的视频名**不再出现**(这正是"视频文件名残留在实时检测里"的修法)。
|
||||
- 文件菜单两条入口(`打开录制视频…` / `回放最近一次录制`)都只是切到回放视图并加载录制。
|
||||
|
||||
### 2.1 「由视频重算」:算法复核模式
|
||||
### 2.1 「由视频重算」:与打开录像同一条分析入口
|
||||
|
||||
`视图 → 由视频重算力值`(`act_recompute`)把曲线的来源从**录制的 CSV** 换成**把录制的视频
|
||||
重新跑一遍视觉管线**:
|
||||
`视图 → 由视频重算力值`(`act_recompute`)调用
|
||||
`ReplayController.on_analysis_requested()`——与打开录像后自动开分析是同一条路径(见
|
||||
[replay-analysis-part-b.md](replay-analysis-part-b.md) 第 10 节):先读兼容缓存,没有再跑
|
||||
离线 pass。分析结果经 `show_analysis_packet` 喂二维与三维;有 `forces.csv` 的录制仍让图表
|
||||
读 CSV,裸视频才用结果里重算的力迹。
|
||||
|
||||
| | 默认(关闭) | 打开 |
|
||||
| | 默认(关闭) | 打开(分析) |
|
||||
|---|---|---|
|
||||
| 曲线数据 | 录制目录的 `forces.csv`(当时测得的值) | 管线在视频上重算出的样本(进 `SessionStore`) |
|
||||
| 2D 面板 | 录制视频在游标处的那一帧 | 管线正在处理的帧 |
|
||||
| 时间轴 | 任意定位(游标、框选、总览条、播放) | 只能顺序前进(管线是有状态的),播放按钮即开始/暂停这一遍 |
|
||||
| 用途 | 看当时的记录 | 复核算法版本(mp4 有损,数值与原记录会有差异) |
|
||||
| 曲线数据 | 录制目录的 `forces.csv`(有则保留) | 同上;裸视频读结果里的力迹 |
|
||||
| 2D / 3D | 录制帧;有结果时派生模式读缓存 | 同一游标上的分析结果 packet |
|
||||
| 时间轴 | 任意定位(游标、框选、总览条、播放) | 仍可任意定位;pass 跑完前派生模式等缓存 |
|
||||
| 用途 | 看当时的记录 | 打开即分析 / 强制再跑一遍离线 pass |
|
||||
|
||||
打开它时会立即开始这一遍(`_on_recompute_toggled` → `force_plots.set_playing(True)` →
|
||||
`_on_transport_toggled` → `_start_run`,只有一条启动路径,避免按钮与菜单各启动一次);
|
||||
关闭时停止该遍并挂回 CSV。`_replay_owns_image()` 在这一遍运行期间为 False,2D 面板交给
|
||||
管线自己画。
|
||||
关闭开关时取消进行中的分析 pass,并挂回录制来源。Stop / Esc 停播放与分析 pass,不再为
|
||||
「重算」另开一条采集链。视图切换仍只改家具:`ViewLayoutController.apply_preset`。
|
||||
|
||||
`apps/studio/tools/ui_snapshot.py --scene replay` 会合成一段短录制并打开它,用于人工复核
|
||||
统一后的回放布局(不写业务数据,也不需要硬件)。
|
||||
|
||||
Reference in New Issue
Block a user