From 4f3bb50e4ab212c8d056802a71e75b6d0c814946 Mon Sep 17 00:00:00 2001 From: ZXCLI Date: Tue, 6 Oct 2026 03:36:57 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E7=AC=AC=E4=BA=8C=E5=8D=81=E5=85=AB?= =?UTF-8?q?=E8=BD=AE=E5=BF=83=E8=B7=B3=EF=BC=88=E6=B8=A9=E5=BA=A6=E9=93=BE?= =?UTF-8?q?=E8=BF=9B=20App=20=E5=B9=B6=E7=9C=9F=E6=9C=BA=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=EF=BC=9B=E6=B8=B2=E6=9F=93=E5=B7=AE=E5=BC=82=E6=94=B6=E6=95=9B?= =?UTF-8?q?=E5=88=B0=20LUT-CDF=EF=BC=8C=E9=99=84=E4=B8=8B=E4=B8=80?= =?UTF-8?q?=E6=AD=A5=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/android_app/session_state.md | 39 +++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/docs/android_app/session_state.md b/docs/android_app/session_state.md index e82ed06..e1d41f0 100644 --- a/docs/android_app/session_state.md +++ b/docs/android_app/session_state.md @@ -489,6 +489,45 @@ "未连接"分支显示,正常出图时用户看不到任何反馈)。 - [x] 单测 66 → **76 项全绿**;debug + release(R8) 双构建通过;APK 已更新。 +## 用户反馈修复 第二十八轮(2026-10-06,温度链进 App + 真机对比:渲染差异收敛到 LUT-CDF) + +用户:把温度修改同步进 App、真机测试没问题后改入 csdk;用官方 App 拍照对比,有差异就 +Android SDK 与 Linux SDK 交叉验证。 + +### 1) 温度链进 App(已装机运行) + +- 新增 `core/OfficialTemp.kt`:官方放射学链(波段映射 + AT 环境误差修正 + 发射率 revise), + 曲线 A 直接用现成 `OfficialTables.T2E`(646 项与官方逐项相等),斜率表现算(公式一致)。 +- `IrSession` 解析 **BasePara2**(真机报文验证的偏移:payload 不含 magic,`+14 short fpaTempFix`、 + `+40 int ATZeroErrorPoint`、`+44 float ATErrorSlope`)与 **DDT 尾部波段记录**; + `RenderPipeline.officialTemps()/probeTemp()` 与 `LiveViewModel` 已切到官方链(缺失参数自动回退旧曲线)。 +- 单测(全绿,含既有 100+ 项):官方同帧夹具 400 点(均值 17.5 mC)+ 真机 BasePara2 报文 + + DDT 尾部记录与设备内存记录逐字段一致 + 曲线往返 + 波段单调性。 +- 真机:`zero=22216 slope=-0.0279`,radRecord `bands=8 shift=12 eps=1.0`;实时读数 + 中心 27.8–28.5 ℃ / MAX 34.7 ℃。 +- **新发现**:设备上报的 `fpaTempFix=1699` ≠ PC 上实测的补偿量 `v50`(=dev+0x5C−dev+0x54, + 0…89 mC)→ App 侧 `sensorDeltaMc` 暂取 0(误差 ≤0.09 ℃),来源待定位。 + +### 2) 手机端拍照对比(详见 `rendering_diff_phone_20261006.md`) + +- 官方 App 照片是**纯 JPEG(无任何数据块)**;我们的是完整 MDT。 +- 同场景亮度:官方 mean≈84 / p50≈49,我们 mean≈53 / p50≈19(偏暗);实时画面同样复现 + (mean 53–72 vs 20–25),确认是**显示映射差异**而非时刻/场景差异。 +- **三 SDK 交叉验证**:窗口公式 `CalContrastOffsetedAutoEnlargeRange`(Android)与我们移植的 + `statsWindow` 在对比度 c=0 时**逐字节一致**(官方 App 也只传 `setAutoEnlarge(enlargeRange=8)`, + 未设对比度;Win/Linux 侧同名 API 参数一致);直方图骨架也一致(`0xFFC00000/span`、`>>20 & 0xffc`)。 +- → 差异收敛到 **灰度 LUT 的 CDF 细节**:Android 版 `HistDeRedundance` 有**双向 CDF + 步长量化** + (`local_1024 = total>>12`、`iVar3 = 0x10000/local_1024`、前后向各建一张 0x10cc/0x10d0 表), + 我们的 `lutRebuild`(PC 版语义)没有这套量化。 + +### 3) 下一步 + +1. 按 Android SDK `HistDeRedundance` 重做 `lutRebuild`(含 `+0x60` pivot 分支与双向 CDF 量化), + 用真机截图/照片定量回归(目标:luma 直方图与官方 App 吻合)。 +2. 补 `getExtParameter`(ExtPara:`intContrastOffset/intBrightOffset/intCurrentEnvTemperature`), + 把设备的对比度/亮度/环境温度接进管线;温度读数接 App 的发射率设置。 +3. App 确认无误后,按用户要求同步进 **csdk**(C 参考实现 + csdk 测试)。 + ## 用户反馈修复 第二十七轮(2026-10-06,官方温度链反编译:按 IDA 结果重建,系数待钉) 用户要求:"修复这些的时候要和 ida 或者 Ghidra 反编译的结果对的上,不要自己瞎猜,并且是