新增平台无关渲染模块 mag160c_render + Linux 参考程序 + 移植评估文档

- csdk/include/mag160c/mag160c_render.h + csdk/src/mag160c_render.c:
  官方渲染管线(快门提取/FFC 状态机/ref 采集/表重建/NUC/盲元/窗口/
  LUT(0x8c)/gray/2x/调色板)封装为无平台依赖 API,FFC 命令经回调发出
- csdk/tools/mag160c_linux_demo.c:Linux 风格参考程序(libusb + render
  API + 显示后端抽象 fbdev/DRM/LVGL),Windows 可编译验证(BMP 输出)
- 修复帧组装:第二段 bulk 读 38428B(像素+尾),尾部含快门字
  实测 shutter=31492 sel=2 stats 正常
- docs/linux_port_plan.md:芯片选型(推荐 T113-S3 QFP128 非 BGA ~20元)、
  动画库(LVGL+rlottie 参考 LiThermal)、显示方案、接口抽象设计
- csdk/README 增加 Linux 移植章节
This commit is contained in:
ZXCLI
2026-08-14 17:08:38 +08:00
parent df6c6dd444
commit 5c22bfe78c
6 changed files with 1154 additions and 2 deletions
+34 -1
View File
@@ -207,7 +207,40 @@ Start-Process "C:\Project\MAG160C\build-artifacts\mag160c_demo3.exe" -WorkingDir
- 输出日志:`demo3_diag.txt`(每帧统计)、`demo3_ffc.txt`FFC 事件)、
`demo3_auto_*.bmp`(每 30 帧快照,320×240
### 5. 官方抓帧工具(tsdk_pair2 / tsdk_pair3
### 5. Linux 移植(mag160c_render API
`include/mag160c/mag160c_render.h` + `src/mag160c_render.c` 是平台无关的
**官方渲染管线模块**:喂原始 USB 帧 → 输出 320x240 RGB24。内部完整实现
官方链路(快门提取→FFC 状态机→ref 采集→表重建→NUC→盲元→窗口→LUT→
gray→2x→调色板),FFC 命令通过回调发给调用方(调用方持有 USB 传输)。
```c
mag160c_render_cfg_t cfg = { .width = 160, .height = 120,
.ddt_path = "mag160c_official.ddt", .ffc_period = 1800,
.ffc_drift = 250, .startup_force_ffc = 1, .cdf_pivot_75 = 1,
.ffc_cb = my_ffc_sender, .ffc_user = NULL };
mag160c_render_init(&r, &cfg);
/* 每帧: */
mag160c_render_frame(r, full_frame_with_header, 1, rgb320x240);
```
`tools/mag160c_linux_demo.c` 是 Linux 风格参考程序(libusb + render API +
display 后端抽象,Windows 上也可编译运行,输出 thermal_*.bmp 验证)。
Linux 构建:
```bash
gcc -O2 -Wall csdk/tools/mag160c_linux_demo.c csdk/src/mag160c_render.c \
csdk/src/mag160c_ir.c csdk/src/mag160c_frame.c csdk/src/mag160c_temp.c \
csdk/src/mag160c_tcm.c csdk/src/mag160c_error.c csdk/src/mag160c_display.c \
-lusb-1.0 -lpthread -lm -o mag160c_linux_demo
```
显示后端(display_rgb 中)可按目标平台实现:fbdev / DRM-KMS / LVGL image。
UI 与动画建议:LVGL(界面/交互动画)+ rlottieLottie 特效),参考
LiThermal 项目;主控建议全志 T113-S3QFP128,非 BGA~20 元,G2D 2D
加速,Tina Linux)。完整评估见 `../docs/linux_port_plan.md`
### 6. 官方抓帧工具(tsdk_pair2 / tsdk_pair3
用途:对照验证 demo3 与官方管线。先停 demo3,再运行(同一设备独占):