Files
MAG160C/README.md
T
ZXCLI e3f0729218 docs: 新增 App 操作手册 + README 里程碑/阅读顺序更新
docs/android_app/app_manual.md(新,223 行):
- 安装与首次连接(含"重启后 USB 授权失效需重新确认")
- 界面总览图、实时界面各控件、测温点增删
- 标记怎么读(准星/描边字/MAX-MIN/引线的含义)
- 相册、分析(离线测温)逐项操作
- 设置逐项说明,并标出**是否真正生效**:发射率/报警温度/语言目前仅保存未接入,
  云同步为占位——避免文档承诺 App 做不到的事
- 方向规则(文件跟随握持、预览锁定、录像方向在按下瞬间确定)
- 文件位置与 MDT 容器格式、远程预览双机用法、常见问题、已知限制
  (相册不列录像、红热调色板为近似、PDF/巡检未接入界面)

README.md:阅读顺序加入操作手册;仓库结构表更新;里程碑补记 2026-09-11~12
真机多轮联调的三个根因级修复(launchMode / SET_CONFIGURATION / 软件画布卡顿,
6.5→15.1fps)与同期完成项。

session_state.md 第二十四轮条目补记本轮新增文档。
2026-09-12 15:14:05 +08:00

79 lines
4.3 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×12015fpsUSB VID `0x833C`)的逆向工程与双端实现:
**C 参考实现**Linux/Windows,源自官方 PC SDK 逆向)与**安卓统一 App**
Kotlin + Compose,适配 Android 16,整合官方 4 个 App 的功能)。
## 从这里开始(新接手者阅读顺序)
1. `docs/android_app/HANDOFF_DEVELOPMENT.md` — 安卓 App 总交接(必读)
2. `docs/android_app/session_state.md` — 会话心跳与待办(最新进度)
3. `docs/android_app/app_manual.md`**App 操作手册**(界面/设置/方向/排障)
4. `analysis/README.md` — 逆向工程总目录索引(Linux/Windows/Android 三条线)
5. `analysis/magcx_official_flow.md`**权威 USB 协议结论**(官方源码逐行核对版)
6. `analysis/protocol_spec.md` — 早期 PC 端协议逆向(硬件验证记录)
7. `csdk/README.md` — C SDK 文档(构建/API/工具/测试)
## 仓库结构
| 路径 | 用途 |
|---|---|
| `android/` | **安卓统一 App**Kotlin + ComposeGradle 工程,package `com.mag160c.thermal`):实时预览、拍照 MDT、录像、媒体库、离线分析、PDF 报告、任务巡检、设置 |
| `csdk/` | 纯 C SDK(官方管线 C 复刻:渲染/温度/IR 会话/FFC 调度,见 `csdk/README.md`|
| `analysis/` | 逆向工程总目录(Linux/Windows/Android 三条 SDK 线的解包产物与结论,见 `analysis/README.md`|
| `IR_Camera_SDK-1.0.1/` | 原厂 Windows/Android/Linux SDK 原始包 |
| `app/` | 官方安卓 APK 存档(普通版/专业版/ThermoScope/demo|
| `build-artifacts/` | 构建产物(安卓 APK、PC demo3、DDT 标定数据)|
| `docs/android_app/` | 安卓 App 文档:`app_manual.md` 操作手册 / `HANDOFF_DEVELOPMENT.md` 交接 / `session_state.md` 进度心跳 / 逆向功能总表 |
| `vendor-docs/` | 厂商资料 |
| `tools/` | 会话恢复脚本 |
## 快速入口
### 安卓 App(构建/测试)
```powershell
cd C:\Project\MAG160C\android
$env:JAVA_HOME = "C:\Tools\jdk-21"
.\gradlew.bat :app:assembleDebug test --no-daemon
# 产物:build-artifacts\mag160c-app-debug.apk
```
### C 管线复刻 demo3
```powershell
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"
```
## 硬件
- 设备:MAG160C 热像仪机芯,160×120 @15fps
- USBVID `0x833C` PID `0x0001`;端点 0x03 命令 / 0x82 响应 / 0x81 图像流 /
0x84 标定文件 / 0x05 标定上传
- 协议细节:`analysis/magcx_official_flow.md`(权威)
## 里程碑
- 2026-08:官方 PC SDKlibmagcore/CoreSDKLib)逆向 + C 管线逐像素复刻(demo3)
- 2026-09-06~09:安卓 App(纯 Kotlin,无 NDK):渲染管线移植(逐字节验证)、
USB 层(官方协议 Java 源码逐行复刻)、相机式 UI、拍照/录像/媒体库/分析/PDF
- 2026-09-10:真机联调打通(根因:USB 命令字节序反转,已修复并用单测锁死);
官方 App 全量解包入库(jadx + Ghidra
- 2026-09-11~12:真机多轮联调(无线 adb)。修复根因级的三个问题:
**launchMode 缺失**导致 MIUI 重复广播 ATTACHED、建出多个 Activity 争抢相机
(重连风暴的真凶);`SET_CONFIGURATION` 复位设备导致相机反复重枚举;
**实时画面卡顿**——热像走 `lockCanvas` 软件画布,每帧在 CPU 上放大整屏,
实测只有 6.5 帧/秒、单帧 134ms,改用硬件画布后 **15.1 帧/秒、单帧 6.4ms**
同期完成:官方 7×7 局部细节增强移植(含混叠系数修正与黄金值测试)、
测温点标注风格重做(准星+描边字,去白底)、拍照/录像方向跟随握持角度、
录像 3× 分辨率、分析页与照片标记完全对齐、设置持久化
- 文档:`docs/android_app/app_manual.md`(操作手册)、
`docs/android_app/session_state.md`(第 18~24 轮修复记录与排查方法)
## 仓库说明
仓库包含官方 SDK、反编译产物、二进制样本和抓帧数据。部分内容可能受原厂许可
限制,仅用于本项目的互操作性研究和设备调试。