docs: 实机 GATT 表+331f 通道+ID反解校正入库(protocol/DECISIONS/field-test-result)

This commit is contained in:
agent committed 2026-07-28 16:31:15 +00:00
1 parent aebe0ad317
commit 959b2a151a
3 files changed
+52 -3

No files matched your search

+41
View File
@@ -0,0 +1,41 @@
# 全链路测试结果(第一轮 · 2026-07-28)
> 执行方式:bridge 模式(host-win 原生 BLE)+ `ppclock batch` 单连接。
> 计划:docs/field-test-plan.md。结论先行:**核心链路全部实机验证通过**。
## 基础设施
| 项 | 结果 |
|---|---|
| 本机 usbip 蓝牙 | ❌ 大 MTU GATT 断流(DECISIONS 2026-07-28),弃用 |
| bridge(host-win 原生) | ✅ 部署于 C:\yi\ble-bridge(build 4,PID 23776,0.0.0.0:8971) |
| 设备 | NRF-5DBF28 @ 18:BC:5A:5D:BF:28 |
## 协议验证(实机)
| # | 项 | 结果 | 证据 |
|---|---|---|---|
| 1 | 扫描/连接 | ✅ | bridge scan/connect,build 2 后稳定 |
| 2 | **GATT 结构** | ✅(有修正) | 实机全表抓取:EPD h=48;**1f1f(h=53) 仅 write 不执行命令;331f(h=57) 为活命令通道**;fef5 SUOTA 六特征在线 |
| 3 | **取设备 ID(EFEF)** | ✅ | `81233F3C267112`(经 331f 写+notify) |
| 4 | **MAC 反解** | ✅ | ID → `28:bf:5d:5a:bc:18` = 广播地址反转(参数序 MAC5 在前,实机校正) |
| 5 | **keygen 离线激活** | ✅ | `activate --auto` 下发 `2564550c1b2d` 成功 |
| 6 | 对时 dd | ✅ | batch line 3 ok |
| 7 | **传图(126×244B 双平面)** | ✅ 屏显确认 | 棋盘+中央红块上屏(曾杀死 usbip 的流量) |
| 8 | 显示图一 e10000 | ✅ 屏显确认 | 切到图片 |
| 9 | 模式切换 e102xx/e101xx | ✅ 屏显确认 | 331f 通道下 clock 画面出现;1f1f 通道无效(实锤对比) |
| 10 | 倒计时+前缀 | ✅ 命令 ok | 屏显待二次确认(序列中停留 8s,见下) |
| 11 | 停车牌 | ⚠ 一次传输中断 | WinError -2147023673(设备睡眠间隙断连,非协议问题) |
| 12 | 刷屏 00/01 | ✅ | 屏显刷新 |
## 待第二轮确认/执行
1. 慢速目视序列(每步 8s):倒计时前缀、停车牌 的最终确认
2. **G4 SUOTA 首刷**:仅改版本串镜像(V:PP_da14585_4.2→TST),ota --yes,观察重启+回滚
3. 固件 no-op 验证:rotation/wifi 应无屏效
4. 六抖动算法屏显差异、模板 6 种屏显
## 环境备注
- 设备睡眠:广播窗口 30-60s,连接态清醒;现场统一 batch 单连接+守候循环
- bridge_server build 4:write alt=331f、notify 三订阅、EFEF 走 331f
+8 -3
View File
@@ -12,10 +12,15 @@
|---|---|
| 广播名前缀 | `NRF-` |
| EPD Service | `13187b10-eba9-a3ba-044e-83d3217d9a38` |
| EPD Characteristic(图像+刷屏,write+notify) | `4b646063-6264-f3a7-8941-e65356ea82fe` |
| EPD Characteristic(图像+刷屏,write+notify) | `4b646063-6264-f3a7-8941-e65356ea82fe`(h=48) |
| RXTX Service | `00001f10-0000-1000-8000-00805f9b34fb` |
| RXTX Characteristic(命令,write+read+notify) | `00001f1f-0000-1000-8000-00805f9b34fb` |
| `0000221f-...` | 预留,未使用 |
| **RXTX 命令通道(实机)** | **`0000331f-0000-1000-8000-00805f9b34fb`(h=57,notify+write+read,svc 0x221f)** |
| `00001f1f-...`(h=53,仅 write) | ⚠ 实机证据:写入仅 ATT-ACK **不执行**命令(2026-07-28);Web/App 文档中的"RXTX 特征",本设备弃用 |
| SUOTA Service | `0000fef5-...`(h=28-45,含自定义特征,见 §9) |
**实机 GATT 全表(2026-07-28 bridge 诊断,设备 NRF-5DBF28)**:
GAP/GATT/DIS(2A24/2A26/2A28/2A23/2A50)/BAS(2A19 notify) + fef5 SUOTA 六特征 + EPD + 1f1f(write-only) + 331f(notify+write+read)。
notify 订阅:设备 ID 应答案测经 **331f** 到达(EFEF 同样须写 331f);EPD/2A19 亦可订阅。
连接顺序:先 EPD service → 再 RXTX;写均用 write-with-response(`triggerRxTxCmd2` 例外,without-response)。