Kaynağa Gözat

docs(d2-02-t3): Phase3完成(含最终评审Critical修复);Phase5标真机阻塞;下一步=重启清operate.exe后真机联调

huangjie 1 gün önce
ebeveyn
işleme
cf1d7a9847

+ 16 - 10
项目文档/进度/D2-02-第三阶段-自动对焦重构-进度.md

@@ -42,7 +42,7 @@
 - [x] 2.2 ReadWellFocusRange 公用方法 + path B 注入引擎 — commit a4a3573 + 健壮性补丁23bb089(DB优先+硬件兜底),Release 0错,我亲读核对
 - [x] 2.3 本地 PhotoLayerCalculator 为拍层权威(calCCDPosition 退兜底)— 调研结论:自动对焦阶段已本地权威(满足);胚胎拍照阶段刻意保留服务器对称层(D13对称约束+影响面),无代码改动★待确认(见特殊情况记录)
 
-### Phase 3 — control 标定协作 + operate 调试页重构  🔶 进行中(先清operate.exe挂起进程)
+### Phase 3 — control 标定协作 + operate 调试页重构  ✅ 代码完成(编译0错+评审Critical已修),真机联调待重启清operate.exe
 - [x] 3.1 CalibrationCoordinator(借 lease 逐孔标定 + 进度/推流)— commit abb14ef,8单测TDD全绿(可注入runner+状态机+中止+重标),control.sln 0错
 - [x] 3.2a control `/debug/calibrate/*` 端点 + CalibrationManager 接真实引擎 — commit 5e98d95,control.sln 0错,71/71测(借现有lease+范围注入+scene=0,InternalsVisibleTo暴露ReadWellFocusRange)
 - [x] 3.2b 标定推流帧缓冲(OnFrame→共享缓冲,StartPreviewStream标定时读缓冲不GrabStable)— commit c1d230f,0错,6测(per-sid FrameSlot,非标定零变化,避免相机锁争用)
@@ -50,21 +50,23 @@
 - [x] 3.4 HouseDebugPageViewModel/View 重构(3×6 总览 + 逐孔微调 + 保留手动)— commit 6e57d04,功能版,operate sln编译验证0错(-o临时目录绕锁)。★发现operate HAL空壳→手动命令需切CommandAsync(Task3.4b)
 - [x] 3.5 调试页保存范围走 well/update — commit 6e57d04(SaveWellFocusRange→WellUpdateApi,字段对齐Java),编译0错
 - [x] 3.4b 手动电机/光源命令切 DebugSessionClient.CommandAsync(真机闭环,operate HAL空壳故必须)— commit cb2f82d,operate+control sln编译0错(-o绕锁),补SetExposure op。★二级待办:抓图流程(ShuiPingZhuaPai/AutoFocusPic)也空壳失效,属抓图协作,新模型下疑被MJPEG预览取代,暂留(见特殊情况记录)
+- [x] 3.6 最终代码评审 + 修Critical并发bug — commit 5d1e042。评审9/10通过;Critical:标定中退出/超时回收→标定线程与采集争用lease(移电机危险)→修:Release/Sweep在Dispose lease前先StopAndWait停标定(测试验证停在Dispose前)+operate退出兜底。84测全绿,control+operate编译0错
 
-### Phase 3 — 代码全部完成(编译验证0错),真机联调待重启清operate.exe
+### Phase 3 — 代码全部完成(编译验证0错)+最终评审Critical已修,真机联调待重启清operate.exe
 
 ### Phase 4 — front-manament 砍对焦预览窗  ✅ 完成
 - [x] 4.1 去掉 DetailView "对焦预览"入口 — commit 6e9d6b8
 - [x] 4.2 删/停 AutoFocusWindow + GetAutofocusPicturesApi 消费链 — 全死代码清除(-646行),ivf_tl_Manage.sln Release 0错
 - [x] 4.3 核对看胚胎切焦平面(0 层=焦面+层对称)不受影响 — 未动DetailPicViewModel/CurrentFocal,已核实
 
-### Phase 5 — 真机三门 + 启用安全门  ⬜(开工前详化)
-- [ ] 5.1 74000 伪峰(范围排除)
-- [ ] 5.2 真胚胎峰比阈值(focus_peak_ratio_threshold)
-- [ ] 5.3 EEPROM 4 个手写生效(对焦不写)
-- [ ] 5.4 电机安全区间不撞机
-- [ ] 5.5 置 local_autofocus_enabled=1 启用 + 端到端
-- [ ] 5.6 use-after-free 压测
+### Phase 5 — 真机三门 + 启用安全门  🔴 全部卡真机硬件/需重启清operate.exe(代码就绪,待联调)
+> 前置:① 重启真机清掉卡死的 operate.exe(PID20268,见特殊情况记录)→ 才能跑真 operate;② 需电机/活体胚胎。代码全就绪,只差真机执行。
+- [ ] 5.1 74000 伪峰(范围排除)— 需真机+DebugSave
+- [ ] 5.2 真胚胎峰比阈值(focus_peak_ratio_threshold)— 需活体胚胎
+- [ ] 5.3 EEPROM 4 个手写生效(对焦不写)— 需真机
+- [ ] 5.4 电机安全区间不撞机 — 需真机
+- [ ] 5.5 置 local_autofocus_enabled=1 启用 + 端到端 — 须三门验证后才置位
+- [ ] 5.6 use-after-free 压测 — 借用生命周期已被3.6并发测试大幅覆盖,真机压测补充
 
 ---
 
@@ -76,4 +78,8 @@
 - **回写纪律**:每完成一个 Task,勾本文件 + 同步提交(CLAUDE.md 第三节:提交=文档已对齐)。
 
 ## ★ 下一步动作
-开 **Phase 1 Task 1.1**:写 `sql/migrations/2026-06-25-autofocus-range.sql`(6 列:house_well_setting 2 半幅 + tl_setting 4 范围/曝光)。
+**代码全部完成**:Phase 1/2/3/4 全部落地+编译0错+单测全绿+最终评审Critical已修。**只剩 Phase 5 真机联调**,前置两步(用户/现场做):
+1. **重启真机一次**,清掉卡死的 `ivf_tl_Operate.exe`(PID20268,32K僵尸,提权也杀不掉)→ 才能跑新构建的真 operate。重启前它本就是死的,不丢功能。
+2. 准备电机/活体胚胎做三门验证(74000伪峰/真胚胎峰比/EEPROM)。
+之后:编 Release 部署 → 进调试页跑16孔标定联调 → 三门验证 → 置 `local_autofocus_enabled=1` 启用 → 端到端。
+**待用户确认项**(见特殊情况记录):① D12 胚胎拍照阶段是否也迁本地(默认否);② 旧抓图流程(ShuiPingZhuaPai/AutoFocusPic)新调试页是否保留(默认暂留失效)。