|
@@ -615,3 +615,20 @@
|
|
|
- **真根因**:T1.4 测试时**用户没登录 operate**——只用工程师口令 tl13579 进了设置页/调试页(`Setting_Click` 直接 LoadPage,不需登录;MiMa 工程师口令≠登录)。MainWindow 采集启动 Task(line 67) 有守卫:`account/password 空 → 记日志"control 后台启动跳过:operate 登录账号/密码为空" → return`(line 82-86)。故采集 StartRun + ScanDevices 全被跳过 → _houses 空 → 调试页借用 lease.Serial==null。**非代码 bug,是测试少了"登录"这步**(调试页 Start() 用独立 SerialBin 枚举不依赖采集,所以能进调试页枚举到 7 舱,但 ComHouseInit 借用依赖采集句柄→失败)。
|
|
- **真根因**:T1.4 测试时**用户没登录 operate**——只用工程师口令 tl13579 进了设置页/调试页(`Setting_Click` 直接 LoadPage,不需登录;MiMa 工程师口令≠登录)。MainWindow 采集启动 Task(line 67) 有守卫:`account/password 空 → 记日志"control 后台启动跳过:operate 登录账号/密码为空" → return`(line 82-86)。故采集 StartRun + ScanDevices 全被跳过 → _houses 空 → 调试页借用 lease.Serial==null。**非代码 bug,是测试少了"登录"这步**(调试页 Start() 用独立 SerialBin 枚举不依赖采集,所以能进调试页枚举到 7 舱,但 ComHouseInit 借用依赖采集句柄→失败)。
|
|
|
- **本次代码改动(健壮性补强,非根因修复)**:① IHardwareAccessLayer + HardwareAccessLayer 加 `RegisterHouse(houseSn,port,ccdIndex)`,**仅当 _houses 无该舱时补登记、不覆盖 ScanDevices 已发现的舱**;② HouseBin 构造(GetSerial 后)调 RegisterHouse(ccdIndex 取 `openCcd==1&&ccdId!=-1 ? ccdId : -1`,与采集端 GetCamera(House.ccdId) 一致)。**作用**:ScanDevices 现场漏扫某舱(如握手瞬时失败)但采集端有服务器配置时,补 _houses 使该舱借用仍可用。`dotnet build operate` 0 error + codegraph sync done。
|
|
- **本次代码改动(健壮性补强,非根因修复)**:① IHardwareAccessLayer + HardwareAccessLayer 加 `RegisterHouse(houseSn,port,ccdIndex)`,**仅当 _houses 无该舱时补登记、不覆盖 ScanDevices 已发现的舱**;② HouseBin 构造(GetSerial 后)调 RegisterHouse(ccdIndex 取 `openCcd==1&&ccdId!=-1 ? ccdId : -1`,与采集端 GetCamera(House.ccdId) 一致)。**作用**:ScanDevices 现场漏扫某舱(如握手瞬时失败)但采集端有服务器配置时,补 _houses 使该舱借用仍可用。`dotnet build operate` 0 error + codegraph sync done。
|
|
|
- **复验(需登录)**:启动 operate → **登录**(User 按钮→LoginWindow→账号密码,触发采集+ScanDevices) → 等采集起(_houses 填) → 进调试页(tl13579)选舱 → 借用应复用句柄成功、可读温压/动电机。★登录账号密码需用户提供/操作★。
|
|
- **复验(需登录)**:启动 operate → **登录**(User 按钮→LoginWindow→账号密码,触发采集+ScanDevices) → 等采集起(_houses 填) → 进调试页(tl13579)选舱 → 借用应复用句柄成功、可读温压/动电机。★登录账号密码需用户提供/操作★。
|
|
|
|
|
+
|
|
|
|
|
+## 2026-06-21 · T1.4 复验尝试:阻塞于微服务集群未起(SITE-NET,非代码)
|
|
|
|
|
+- 启动 operate + 用户登录后查日志:control_logs 目录出现(control 后台 Task 启动了),但 `control RunException` 10:06:32 `HttpClientSendAsync网络异常 [url:/api/gateway/auth/login]`——control 后台登录 gateway 失败。
|
|
|
|
|
+- 查证:本机**无 java/javaw 进程**,微服务端口(nacos 8848 / 各服务 10010+)全未监听=**微服务集群未起**;operate `urlIp=http://127.0.0.1` 指本机 gateway,连不上→登录网络异常。(10000 端口被无关的 YunDetectService 占,非 gateway)
|
|
|
|
|
+- **链条**:微服务未起→登录 gateway 失败→MainWindow 采集 Task 守卫 return→采集+ScanDevices 未跑→_houses 空→借用拿空句柄。**复验阻塞=运行环境(微服务集群)未起,非 T1.4 代码**。control RunRecord 00:57 有过成功采集启动(相机信息+COM3/4/5/9/11/18/19 全 True),证明环境就绪时通。
|
|
|
|
|
+- **复验前提(下次)**:先起本机微服务集群(gateway+nacos+tl-control 等,见 SITE-NET/环境清单)→operate 重新登录→control 登录成功→采集+ScanDevices 起→_houses 填→进调试页(tl13579)选舱→借用应复用句柄成功(看消息"调试已复用采集端串口句柄"+oplog 借用串口操作)。本次代码(RegisterHouse 补强)已提交 bd6943b,等环境就绪复验。
|
|
|
|
|
+
|
|
|
|
|
+## 2026-06-21 · G2 软键盘收尾:移除 SKDIAG 临时诊断·实测佐证键盘正常·准备提交
|
|
|
|
|
+- **背景**:上一轮用户重编译后软键盘恢复正常,但 `SoftKeyboardHost.cs` 里还留着一段临时诊断块(SKDIAG,Show() 末尾 Dispatcher.BeginInvoke@Loaded 优先级记运行时状态),不能带着提交。本轮:① 读 SKDIAG 日志用实测佐证键盘现态正常;② 移除诊断代码。
|
|
|
|
|
+- **① 实测佐证(SKDIAG 日志,`C:\TLData\ivf_tl_Control_logs\Log\20260621.htm` 尾部,3 条一致)**:
|
|
|
|
|
+ · `popup[Open=True ChildSet=True childAW=1934 childAH=1094]` —— 顶层 Popup 已开,子树撑满全窗口。
|
|
|
|
|
+ · `kb[AW=960 AH=678 Vis=True V=Visible srcAttached=True]` —— 键盘实测 960×678(=计算值),**可见、已附加 PresentationSource**(此前 0×0 不可见的坑不复现)。
|
|
|
|
|
+ · `screen[kbScrPos=487,208 PW=1920 PH=1080]` —— 键盘屏幕坐标 (487,208),487+960=1447<1920 且 208+678=886<1080,**完整落在屏内、不裁切、居中**。
|
|
|
|
|
+ · 结论:诊断代码纯记日志、不碰布局,键盘恢复正常的真因=重编译让旧 exe 与当前 Popup 源码对上(此前跑的是过期编译产物)。
|
|
|
|
|
+- **② 移除诊断**:删 SoftKeyboardHost.cs 的 SKDIAG 整块(原 198–222 行,try/Dispatcher.BeginInvoke/inner+outer catch 全删),Show() 干净收尾于 `_popup.IsOpen = true;`。`codegraph sync` done。
|
|
|
|
|
+- **★提交边界核实★**:移除 SKDIAG 后 `git diff HEAD` 显示 SoftKeyboardHost.cs **与 HEAD 完全一致**——软键盘最终修复(Popup 托管+居中)其实已在上个提交 `a4f3a14` 落地,HEAD 里本就无 SKDIAG。SKDIAG 是仅存于工作区的临时诊断,现已删回 HEAD 态。故**本次 git 提交实际只含两个文档文件**(交接卡.md + 进度状态.yaml),无代码改动。
|
|
|
|
|
+- **下一步**:① git commit & push 本次文档;② 排查 8GB 日志滚动失效(`MaxFileSize=10240` 对 InfoAppender 没拦住,单文件涨到 7.98GB)——先分析原因,用户确认后再改。
|