diff --git a/docs/06-tasks.md b/docs/06-tasks.md index 8f579f5..b3872bc 100644 --- a/docs/06-tasks.md +++ b/docs/06-tasks.md @@ -27,7 +27,7 @@ | --- | --- | --- | --- | --- | | T-201 | 实现 PyQt 顶部双 Tab 的监控与设置界面 | T-106 | 实时监控 Tab 显示视频、骨架、ID、NORMAL/SUSPECT/CONFIRMED 和连接状态;设置 Tab 只编辑非敏感草稿并明确下次启动生效;UI 不直接执行事件计算。 | DONE | | T-202 | 实现本地报警、弹窗、截图和 JSONL 日志 | T-201 | CONFIRMED 产生一次声音、一次弹窗、一张带标注截图和一条事件日志。 | DONE | -| T-203 | 接入海康 RTSP 与断流恢复 | T-202 | 现场有效流可预览;断流状态明确、可重连且不报警。 | BLOCKED | +| T-203 | 接入海康 RTSP 与断流恢复 | T-202 | 现场有效流可预览;断流状态明确、可重连且不报警。 | DOING | | T-204 | 建立正反例录像回归与现场验收记录 | T-203 | 摔倒、行走、坐下、弯腰、捡物和持续倒地都有预期结果;报警延迟记录在 1–3 秒。 | BLOCKED | | T-205 | 固化客户演示脚本与 V1 发布包 | T-204 | 可按文档完成演示脚本,所有证据可复查,适用边界显示给操作员。 | BLOCKED | diff --git a/progress.md b/progress.md index ac99185..dcdef8e 100644 --- a/progress.md +++ b/progress.md @@ -235,3 +235,12 @@ - 阻塞:无。声音/弹窗/GUI 可视化冒烟仍需 Windows。 - 决策:来源模式由配置显式声明而非猜测;模型置信度经适配器方法在下次启动生效,保持“运行配置快照”语义;事件身份以会话前缀保证跨轮唯一,dedup 基于该持久标识。 - 下一步:T-203(受阻,等现场流)。 + +## 【2026-07-21】T-203 接入海康 RTSP 与断流恢复 + +- 状态:DOING +- 变更:用户提供真实海康 IPC 流(凭证与内网地址仅经 `SILVER_POSE_RTSP_URL` 环境变量提供,未写入任何被跟踪文件、日志或文档)。更新未跟踪的 `v1/config.local.json`(已被 `git check-ignore` 确认忽略):`source.mode=stream`、模型指向 `../demo/best.pt` 及其真实 SHA-256 `cd200948…bfafdfc`、只声明 `rtsp_url_env` 不含地址。 +- 验证:在 WSL 以 TCP 传输 + 5 秒超时对真实流冒烟:`VideoSource(STREAM)` 首读即 `connected` 并解出 1920×1080 帧;持续取 5 帧、时间戳单调、跨度约 2.6 秒;对不可达地址进入 `retrying`、不崩溃、返回空帧且不报警。`load_config('v1/config.local.json')` 端到端通过:`source_mode=stream`、URL 从环境变量解析(不打印)、模型哈希匹配、`config_version` 生成。`python3 -m pytest v1/tests -q` 仍为 51 passed。 +- 阻塞:模型前向(Ultralytics 8.3.205)与 PyQt5 预览在当前 WSL 不可运行,因此“带姿态骨架的操作员现场预览”与“真实断流→重连的现场观察”必须在 Windows 上完成;这两项完成前 T-203 不置 DONE。 +- 决策:真实凭证只经环境变量注入,绝不入库;来源模式由 `config.local.json` 显式声明为 `stream`;本次相机密码含 `@` 字符,ffmpeg 以最后一个 `@` 分隔用户信息可正确解析,若换用其他客户端需将密码中的 `@` 百分号编码为 `%40`。 +- 下一步:在 Windows 设置同名环境变量后运行 `python -m v1.app`,人工确认实时画面、骨架、ID、连接状态与断流重连;随后据现场结果置 T-203 状态。