docs: 温度链第二轮收敛——确定为 revise(band_map(counts)),斜率逐位吻合,仅剩恒定 -197mC 加性项(已排除项与下一步已记录)
This commit is contained in:
@@ -109,6 +109,38 @@ Tout = Teff + tab[idx] + (tab[idx+1]-tab[idx])*(dev+0x5C-5000*(idx+3))/5000
|
||||
- 结论:**结构已定,系数待钉**。下一步只需在这几个字段上做单变量对照
|
||||
(逐项开关 + 与官方输出比对),不需要再猜公式。
|
||||
|
||||
## 4b. 第二轮收敛(同日稍晚):确认公式为 `revise(band_map(counts))`,只剩一个常数项
|
||||
|
||||
按"单变量对照 + 数据反解"推进,结论如下(全部脚本与数据在 `%TEMP%\mag160c_wincmp\`):
|
||||
|
||||
- **曲线与修正被证实**:
|
||||
- `E2T`/`iE2T`(`sub_180015840`/`8b0`)往返误差 ≤1 mC(`iE2T(E2T(29000))=28999`);
|
||||
- 官方输出在 band 1 上是干净直线(拟合残差 **3.3 mC**,斜率 8.26479);
|
||||
- 我的模型 `revise(band_map)` 的斜率 **8.26451**(差 0.003 %)→ **revise 就是 1/K 缩放**
|
||||
(K = f8·f4·ε = 1.0×0.99991×0.98 = 0.979912,1/K = 1.020500)。
|
||||
- **只剩一个常数**:把官方数据反解回波段域(对 revise 求逆)后,与记录的波段映射
|
||||
相差 **恒定 −197 mC**(环境取 `dev+0xD8`,即反编译字面值)或 **−95 mC**
|
||||
(环境取 `dev+0x5C`);与计数无关 → 是**加性项**,不是斜率/表格问题。
|
||||
- **已排除**(逐项实测,非推断):
|
||||
- 记录索引/第二条记录:`dev+0x98=0`,`dev+0x41884=1`,第 2 条记录**全 0**(未用);
|
||||
- 记录的 gain/移位:与数据反解出的斜率**逐位吻合**(band1:记录 8.09905 × 1/K = 8.2645 ≈ 数据 8.2648);
|
||||
- 环境修正查表 `dev+0xAC…0xC8`:**全 0**;
|
||||
- `dev+0xEC/0xF0` 增益项:**0/0**(`dev+0x6C=1` 但系数为 0);
|
||||
- 环境补偿 `v50/v54`:本机 `dev+0x54==0x5C`、`0x58==0x60` → `v50≈30`、`v54≈11`
|
||||
(≈ +32 mC,方向相反,不是这 −197);
|
||||
- 距离/大气项(`dev+0xA8=−0.0279`,v56=`dev+0x44CB8` 均值温度):按反编译算出的
|
||||
增量 ≈ −320(辐射域)≈ −800 mC,**与官方输出不符 → 该项的实际语义仍未读对**
|
||||
(可能 `dev+0xA8` 需与其他字段组合,或该项仅在对焦/距离参数被设置时才生效)。
|
||||
- 观察到的可疑未读字段:`dev+0x50 = 200`(int)、`dev+0x14 = 20000`(温度样)、
|
||||
`dev+0xD0 = 0.65`(float)——需与官方输出做单变量对照确认。
|
||||
|
||||
**下一步(精确做法,不猜)**:
|
||||
1. 在 SDK 的 `SetNewIRFrameDelegate` 回调里读设备字段(最接近温度计算时刻),对同一个
|
||||
count 记录 (字段值, 官方输出) 序列;看 −197 是否随某个字段变化 → 定位该字段。
|
||||
2. 若 `dev+0xA8` 距离项确需生效,用 `MAG_SetFixPara`/`MAG_FixTemperature` 改变距离参数
|
||||
再采一次,观察官方输出的变化量,反推该项的正确组合方式。
|
||||
3. 钉死后即按 §5 落地 Kotlin,并用本轮同帧数据做逐像素回归(band 1 目标 mC 级)。
|
||||
|
||||
## 5. 我们 App 侧要改什么(等模型钉死后再动手)
|
||||
|
||||
1. `TempMath` 增加"官方放射学分支"实现:波段映射(参数取自 DDT 尾部)+ §3 修正;
|
||||
|
||||
Reference in New Issue
Block a user