From 59925b8e307f962d9f812a77d369792966c819a6 Mon Sep 17 00:00:00 2001 From: ila Date: Tue, 21 Jul 2026 22:34:59 +0800 Subject: [PATCH] chore(tasks): start T-206 structured camera config and connection test Co-Authored-By: Claude Opus 4.8 --- docs/06-tasks.md | 1 + progress.md | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/docs/06-tasks.md b/docs/06-tasks.md index b3872bc..962bf83 100644 --- a/docs/06-tasks.md +++ b/docs/06-tasks.md @@ -30,6 +30,7 @@ | T-203 | 接入海康 RTSP 与断流恢复 | T-202 | 现场有效流可预览;断流状态明确、可重连且不报警。 | DOING | | T-204 | 建立正反例录像回归与现场验收记录 | T-203 | 摔倒、行走、坐下、弯腰、捡物和持续倒地都有预期结果;报警延迟记录在 1–3 秒。 | BLOCKED | | T-205 | 固化客户演示脚本与 V1 发布包 | T-204 | 可按文档完成演示脚本,所有证据可复查,适用边界显示给操作员。 | BLOCKED | +| T-206 | 结构化摄像头配置、连接测试与设置页预览 | T-201 | 配置支持 host/端口/通道/账号/密码 结构化来源并拼出 RTSP(凭证百分号编码);公开示例保持无凭证、`config_version` 不含凭证;设置页可掩码输入、点击测试连接,连通后抓拍一帧显示在预览区。 | DOING | ## Phase 3 · Go V2 迁移门槛与实现 diff --git a/progress.md b/progress.md index dcdef8e..e16b323 100644 --- a/progress.md +++ b/progress.md @@ -244,3 +244,12 @@ - 阻塞:模型前向(Ultralytics 8.3.205)与 PyQt5 预览在当前 WSL 不可运行,因此“带姿态骨架的操作员现场预览”与“真实断流→重连的现场观察”必须在 Windows 上完成;这两项完成前 T-203 不置 DONE。 - 决策:真实凭证只经环境变量注入,绝不入库;来源模式由 `config.local.json` 显式声明为 `stream`;本次相机密码含 `@` 字符,ffmpeg 以最后一个 `@` 分隔用户信息可正确解析,若换用其他客户端需将密码中的 `@` 百分号编码为 `%40`。 - 下一步:在 Windows 设置同名环境变量后运行 `python -m v1.app`,人工确认实时画面、骨架、ID、连接状态与断流重连;随后据现场结果置 T-203 状态。 + +## 【2026-07-21】T-206 结构化摄像头配置、连接测试与设置页预览 + +- 状态:DOING +- 变更:任务从 TODO 落为 DOING;尚未创建生产代码。按用户选择「全存本地配置文件」,凭证明文存于未跟踪 `config.local.json`。 +- 验证:开始前 V1 单元测试 51 passed。 +- 阻塞:设置页掩码输入、测试连接按钮与预览显示需 Windows + PyQt5 冒烟;配置解析、RTSP URL 构建(凭证百分号编码)与连接测试逻辑在本环境可真实验证。 +- 决策:配置支持「结构化 host/port/channel/username/password」或原有 `rtsp_url_env` 二选一;密码按 RFC 3986 百分号编码后拼 URL(顺带解决 `@` 问题)。护栏:公开示例 `config.example.json` 继续禁止任何 host/账号/密码/URL 并加测试守卫;`runtime_config_version` 继续排除凭证;凭证绝不进 JSONL、日志、截图名、错误信息。 +- 下一步:先写 URL 构建与结构化配置解析的失败测试,再实现;随后加 Qt 外壳(设置页字段、测试按钮、预览)。