Files
MAG160C/README.md
T
ZXCLI 0bfb926892 完成官方管线全量逆向与 demo3 v5 复刻,清理仓库
- 逆向:Ghidra/IDA 全量反编译 CoreSDKLib.dll/ThermalSDK.dll/libthermalSDK.so/
  libcoresdk.so(ARM64)/libmagcore.so,导出 analysis/ida/export/
- 解码官方渲染管线:DDT 校准表加载->快门端点选择->Q12 插值->ref(4x type1 帧
  均值)->NUC 查表->盲元补偿->窗口->LUT1024 重建->2x 升采样->调色板
- 逐像素验证:NUC+盲元 0/19200、插值 0 误差、2x 0/76800、窗口一致
- demo3 v5:完整复刻官方管线(含 DDT 解析、FFC 状态机、快门温度驱动),
  修复 load_ddt 表错位导致的零像素问题
- 鬼影根因分析写入 analysis/reverse_20260813_full.md
- 心跳/恢复机制:analysis/session_state.md + tools/resume_rev.ps1
- 新增 tsdk_pair3 增强采集工具;历史工具归档 csdk/tools/legacy/;
  根目录抓帧残留删除,历史文档归档 analysis/history/
- csdk/README.md 完整使用文档;.gitignore/.gitattributes 补 LFS 规则
2026-08-13 23:16:12 +08:00

65 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MAG160C 热像仪逆向工程
MAG160C 热像仪(160×120USB VID 0x833C)的 USB 协议、官方 SDK 逆向、纯 C SDK
和**官方渲染管线逐像素复刻**(demo3 v5)的完整工程。
## 从这里开始
新接手者按顺序阅读:
1. `analysis/reverse_20260813_full.md` — 官方管线 Ghidra 全量逆向 + 鬼影根因(最新)
2. `analysis/session_state.md` — 当前会话状态与恢复点(心跳锚点)
3. `交接_完整逆向工程说明_20260811.md` — 项目总交接(目录/环境/历史/失败路线)
4. `analysis/protocol_spec.md` — USB 协议/帧/命令/温度规格
5. `csdk/README.md`**C SDK 完整使用文档**(构建/API/工具/测试)
6. `csdk/tools/mag160c_demo3.c` — 主程序(官方管线复刻)
## 当前状态(2026-08-13
- demo3 v5 已完整复刻官方渲染管线:DDT 校准表加载 → 快门驱动端点选择与
Q12 插值 → ref=FFC 窗口 4×type1 帧均值 → NUC 查表 → 盲元补偿 →
窗口 → LUT1024 重建 → 灰度 → 2x 升采样 → 官方调色板
- 逐像素验证:NUC+盲元 0/19200、插值 0 误差、2x 0/76800、窗口一致
- 同静态场景 gray 直方图与官方相关性 0.92(跨会话)
- 原"鬼影"问题的根因已定位并复刻官方行为(见 reverse_20260813_full.md §7
## 硬件
- 设备:MAG160C 热像仪,分辨率 160×12015 fps
- USB VID`0x833C`,常见 PID`0x0001`
- 帧:19200 个小端 `uint16`;端点:命令 `0x03`/响应 `0x82`/实时帧 `0x81`
## 快速入口
```powershell
# 编译 demo3(官方管线复刻)
gcc -O2 -w -DMAG160C_STATIC -I"csdk\third_party\libusb\win64" -I"csdk\include" -I"csdk\src" `
-o build-artifacts\mag160c_demo3.exe csdk\tools\mag160c_demo3.c `
csdk\src\mag160c_display.c csdk\src\mag160c_error.c `
csdk\third_party\libusb\win64\libusb-1.0.x64.a -lgdi32 -luser32
# 启动
Start-Process "build-artifacts\mag160c_demo3.exe" -WorkingDirectory "build-artifacts"
```
详细用法见 `csdk/README.md`
## 仓库结构
| 路径 | 用途 |
|---|---|
| `csdk/` | 纯 C SDK + 工具(见 `csdk/README.md`|
| `analysis/` | 逆向证据:反编译导出(`ida/`)、协议规格、交接文档、抓帧数据 |
| `IR_Camera_SDK-1.0.1/` | 原厂 Windows/Android/Linux SDK |
| `build-artifacts/` | 运行目录(demo3 exe、DDT 表、官方抓帧工具)|
| `docs/` `vendor-docs/` `app/` | 历史资料与模块文档 |
| `tools/resume_rev.ps1` | 会话恢复脚本(心跳配套)|
历史文档(早期 findings/progress/task_plan、根目录抓帧残留)已归档到
`analysis/history/`;早期探索工具源码在 `csdk/tools/legacy/`
## 仓库说明
仓库包含官方 SDK、第三方依赖、二进制样本和抓帧数据。部分内容可能受原厂
许可限制,仅用于本项目的互操作性研究和设备调试。大型文件使用 Git LFS。