From 6ad06d6e754fc750470f707593e22c4f8c7c815a Mon Sep 17 00:00:00 2001 From: agent Date: Wed, 29 Jul 2026 01:12:31 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=94=B6=E5=B0=BE=E2=80=94=E2=80=94?= =?UTF-8?q?=E5=AE=9E=E6=9C=BA=E6=B5=8B=E8=AF=95=E7=BB=88=E6=80=81=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=EF=BC=88field-test-result/PROGRESS=EF=BC=89=EF=BC=8CS?= =?UTF-8?q?UOTA=20=E9=A6=96=E5=88=B7=E6=8C=89=E7=94=A8=E6=88=B7=E5=86=B3?= =?UTF-8?q?=E5=AE=9A=E9=A1=BA=E5=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PROGRESS.md | 20 ++++++++++++++++++++ analysis/firmware/fw_tst.img | Bin 0 -> 72228 bytes docs/field-test-result.md | 12 ++++++++++-- 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 analysis/firmware/fw_tst.img diff --git a/PROGRESS.md b/PROGRESS.md index dbf3d9c..efabc3a 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -98,6 +98,26 @@ - tests/test_bridge.py(12 测试:假服务端全协议)+ test_cli.py 新增 5 个 --via 测试 - **下一步**:用户在 host-win 执行 `pip install bleak && python tools/bridge_server.py`,然后本机 `PPCLOCK_VIA=bridge://192.168.61.35 .venv/bin/python tools/field_test.py` 即可完成全链路真机测试 +### 2026-07-28/29:bridge 部署联调 + 实机全链路测试(收尾态) + +**协作**:经 Worker Bridge 由熠管家在 host-win 完成部署(NFS ACL 阻塞 → 桥内直传文件;build 1→5 迭代:WinRT 连接修复/notify 三订阅/331f 写通道/SUOTA 状态特征校正,原子替换+备份规范执行)。 + +**实机验证结论**(docs/field-test-result.md 为完整记录): + +| 项 | 结果 | +|---|---| +| 实机 GATT 表 | ✅ 抓取入库;**331f 为活命令通道**(1f1f 仅 ACK 不执行,实锤修正 web/APK 推断) | +| 设备 ID/MAC 反解 | ✅ `81233F3C267112`↔广播地址互证(snprintf 参数序实机校正为 MAC5 在前) | +| **离线激活 keygen** | ✅ `activate --auto` 下发 `2564550c1b2d` 实机成功 | +| 传图 126×244B | ✅ 屏显确认(棋盘+红块) | +| 模式/对时/倒计时 | ✅ 屏显确认(clock1/2 布局差异确认、时间+倒计时同框确认) | +| 停车牌 | ⚠ 命令 ACK 屏不显,记 K1 待查 | +| SUOTA 首刷 | ⏸ 用户决定本轮跳过;镜像/流程/服务在线全部就绪 | + +**门禁终态**:G1 ✅(三线+实机互证)G2 ✅(150 测试)G3 ✅ 实机(除 K1)G4 ✅ 工具级(烧录择机)G5 ✅ + +**bridge 运维备注**:host-win `C:\yi\ble-bridge\`,Scheduled Task `BanyTech-BLE-Bridge`(SYSTEM 常驻,监听 0.0.0.0:8971,防火墙仅放行 192.168.61.56),build 1-4 备份在侧可回滚。 + ### 会话时间线 - 08:14 目标设定(治理+规划+执行) diff --git a/analysis/firmware/fw_tst.img b/analysis/firmware/fw_tst.img new file mode 100644 index 0000000000000000000000000000000000000000..95a025c513a32612467e15e1780ffe09f628e742 GIT binary patch literal 72228 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

Ko!Sc(<4fKM@`$xY^ZhO6fa?O) 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 COcn3| literal 0 HcmV?d00001 diff --git a/docs/field-test-result.md b/docs/field-test-result.md index 4265320..a73f9d3 100644 --- a/docs/field-test-result.md +++ b/docs/field-test-result.md @@ -30,11 +30,19 @@ ## 待第二轮确认/执行 -1. 慢速目视序列(每步 8s):倒计时前缀、停车牌 的最终确认 -2. **G4 SUOTA 首刷**:仅改版本串镜像(V:PP_da14585_4.2→TST),ota --yes,观察重启+回滚 +1. ~~慢速目视序列~~ 已完成(见 #10-12 行) +2. **G4 SUOTA 首刷**:仅改版本串镜像已备(analysis/firmware/fw_tst.img,预检通过),**用户决定本轮跳过**(2026-07-28),后续择机执行:build 5 在线、流程就绪(ota --yes → 观察重启 → 回滚) 3. 固件 no-op 验证:rotation/wifi 应无屏效 4. 六抖动算法屏显差异、模板 6 种屏显 +## 已知问题 + +| # | 问题 | 状态 | +|---|---|---| +| K1 | 停车牌 EF+双写号码:命令 ACK 但屏不显(含 11 位号码、去 e2 变体均试) | 待查:疑似固件家族格式分叉(d8 hex-concat)或渲染与模式联动;协议帧与 web 证据一致 | +| K2 | 设备睡眠快(广播窗 30-60s) | 已有工作法:batch 单连接 + 守候循环 | +| K3 | 多次命令间隔断连(WinError -2147023673)1 次 | 瞬态(睡眠间隙),重连即恢复 | + ## 环境备注 - 设备睡眠:广播窗口 30-60s,连接态清醒;现场统一 batch 单连接+守候循环