android+docs: debug 日志默认关闭;操作手册升级为插图版

debug 日志:DebugLog 增加总开关 enabled(默认 false),log() 直接返回、
init() 不装崩溃钩子、startFile() 不建文件。要在设备上排查时改成 true 重新构建
即可,其它代码不动。关闭后崩溃仍按安卓常规方式可见(logcat AndroidRuntime +
系统弹窗),只是不再有落在相册目录旁的 debug_*.log。

真机烟雾测试(小米 22041211AC,相机插着):出流正常、拍照成功(相册 19→20,
新增 MAG160C_20260912_153522.jpg)、崩溃 0、App 自身日志行数 0、无新日志文件。

插图版手册 docs/android_app/app_manual.md + manual_images/:
- 02_markers:标记结构解剖(准星/读数/引线/描边字),真机照片放大 3 倍并标注
- 03/04:横屏 960x720 与竖屏 720x960 的真实照片
- 05/06/07:设置、分析(含底部测量面板)、相册 真机截图
- 01_live_schematic:实时界面改为**自绘示意图**,因为实时 OSD 文字按握持角度预旋转
  (用户要求的可读性设计),手册拍摄时手机横放,截图里文字全是侧躺的无法阅读;
  其余界面文字本就水平,直接用截图。

图由 manual_images/MakeFigures.java 生成(裁剪缩放/放大标注/示意图绘制),
界面改动后重跑即可;原始截图存为 JPEG(PNG→JPEG 省约 8MB)作为可再生输入。
.class 已加入 .gitignore。

README 阅读顺序加入操作手册、结构表更新、里程碑补记根因级修复。105 项测试全绿。
This commit is contained in:
ZXCLI
2026-09-12 15:36:34 +08:00
parent 6ba90f2bb6
commit ee6859877a
20 changed files with 459 additions and 70 deletions
+50 -64
View File
@@ -3,6 +3,10 @@
适用版本:MAG160C 统一热像版 1.0.0`com.mag160c.thermal`
硬件:MAG160C 热像仪机芯(160×120 @15fps),USB VID `0x833C` PID `0x0001`
> 本文中的插图:**截图**取自真机(小米 22041211AC / Android 12);**示意图**用于说明
> 布局与标记结构。图片源文件在 `manual_images/`,可用同目录的 `MakeFigures.java`
> 重新生成(界面改动后请重新出图,避免手册与实物不一致)。
---
## 1. 安装与首次连接
@@ -14,79 +18,62 @@
也可以直接把 APK 拷进手机点击安装(需允许"安装未知应用")。
2. 把热像仪插到手机的 USB 口。系统会弹出 **"允许 App 访问该 USB 设备"** →
勾选"始终允许"并确定。**这个授权在手机重启后会失效,需要重新确认一次**。
3. App 会自动连接并出图,通常 1~2 秒。画面出现即表示握手完成(内部流程:
查设备 → 请求权限 → 握手 → 读标定文件 → 开始出流)。
3. App 会自动连接并出图,通常 1~2 秒(内部流程:查设备 → 请求权限 → 握手 →
读标定文件 → 开始出流)。
> 如果顶栏下显示"未检测到热像仪",见第 11 节。
> 顶栏下显示"未检测到热像仪",见第 11 节。
---
## 2. 界面总览
```
┌─────────────────────────────────────────┐
│ FFC 1× 追高·低 铁虹 画中画 │ ← 控制顶栏
├─────────────────────────────────────────┤
│ │
│ 热成像画面(锁屏构图) │
│ │
├─────────────────────────────────────────┤
│ 相册 拍照(快门) 录像 │ ← 拍摄栏
├─────────────────────────────────────────┤
│ 实时 相册 分析 设置 │ ← 底部导航
└─────────────────────────────────────────┘
```
![实时界面示意图](manual_images/01_live_schematic.png)
| 编号 | 位置 | 作用 |
|---|---|---|
| ① | 顶栏 · FFC | 手动做一次快门校正(画面短暂冻结属正常) |
| ② | 顶栏 · 1× | 数码变倍,点一次在 1× → 2× → 3× → 4× 循环 |
| ③ | 顶栏 · 追踪 | 全画面最高/最低温标记(最高、最低、两者、关闭) |
| ④ | 顶栏 · 铁虹 | 切换调色板(12 种) |
| — | 顶栏 · 画中画 | 可见光画面叠加,三档尺寸,可拖动 |
| ⑤ | 拍摄栏 | 相册 / **拍照** / 录像 |
| ⑥ | 底部导航 | 实时 / 相册 / 分析 / 设置 |
画面里还有两个读数:左上角 **"中心 xx.x℃"** 是画面中心点温度;右侧竖条是
**温度色标**,上下端标注当前画面的最高温与最低温。
App 固定竖屏显示。转动手机时**界面和画面构图都不跟着转**(见第 8 节)。
---
## 3. 实时界面
## 3. 实时界面操作
| 控件 | 作用 |
|---|---|
| **FFC** | 手动做一次快门校正。画面会短暂冻结一下,属正常;校正后温度读数会刷新 |
| **1×** | 数码变倍,点一次在 1× → 2× → 3× → 4× 之间循环(从画面中心裁剪放大) |
| **追高·低** | 全画面最高温/最低温标记的开关与目标(最高、最低、两者、关闭) |
| **铁虹** | 切换调色板(12 种,点开选择) |
| **画中画** | 可见光画面叠加(首次使用需授予摄像头权限),三档尺寸,可拖动摆放 |
| **相册 / 拍照 / 录像** | 见下 |
**测温点**:直接在画面上**点一下**就加一个测点;**点已有的测点**则删除它。
测点会显示序号 + 温度,并随画面一起保存进照片。
**拍照**:立刻把当前画面存成照片(含温度数据、测点、最高/最低温标记)。
**录像**:点一次开始,再点一次停止并保存。录制中按钮显示"停止"。
- **测温点**:直接在画面上**点一下**就加一个测点;**点已有的测点**则删除它。
测点会显示序号 + 温度,并随照片一起保存。
- **拍照**:立刻把当前画面存成照片(含温度数据、测点、最高/最低温标记)。
- **录像**:点一次开始,再点一次停止并保存;录制中按钮显示"停止"。
---
## 4. 画面上的标记怎么读
从本轮起标记改成仪表风格,含义如下:
![标记结构](manual_images/02_markers.png)
```
┌─┴─┐
───┤ ├─── Pt1 25.0℃
└─┬─┘
| 编号 | 部位 | 说明 |
|---|---|---|
| ① | 方形准星 + 四根短臂 | 指住被测量的**那一个像素**;中心镂空,不遮挡被测区域 |
| ② | 读数 | `Pt1`/`Pt2`… 是手动测点;`MAX`/`MIN` 是全画面最高/最低温 |
| ③ | 引线 | 把读数和它自己的准星连起来,测点多时不会看错 |
| ④ | 文字样式 | 白字 + 黑描边,**没有白色底板**:冷端(黑)和热端(白)上都读得清,且不挡画面 |
方形准星 + 四根短臂:指住被测量的那一个像素,中心镂空不遮挡被测区域
右侧描边白字:温度读数;引线把读数和自己的准星连起来,测点多时不会看错
没有白色底板 —— 冷端(黑)和热端(白)上都靠描边保证可读,且不遮挡画面
```
- **`MAX` / `MIN`**:全画面的最高温与最低温,显示哪一个由"追踪"设置决定
- **`Pt1` `Pt2` …**:你手动点的测点
- **引线**:从读数连到自己那个准星,测点多时不会看错
温度单位统一为 ℃,显示一位小数。
温度单位统一 ℃,一位小数。
---
## 5. 相册
![相册](manual_images/07_gallery.png)
- 列出 `DCIM/MAG160C` 里的照片,按时间倒序(最新的在最前)
- **点开**:全屏查看;**双指缩放**、**拖动平移**、**双击复位**
- **删除**:右上角"删除" → 确认后从手机中移除(不可恢复)
@@ -96,9 +83,9 @@ App 固定竖屏显示。转动手机时**界面和画面构图都不跟着转**
## 6. 分析(离线测温)
进入"分析"页会列出**带温度数据的照片**(早期没有温度数据的旧照片会被过滤掉)。
![分析界面](manual_images/06_analysis.png)
打开一张照片后:
进入"分析"页会列出**带温度数据的照片**(早期没有温度数据的旧照片会被过滤)。
| 操作 | 说明 |
|---|---|
@@ -108,7 +95,7 @@ App 固定竖屏显示。转动手机时**界面和画面构图都不跟着转**
| **顶部 · 备注** | 给这张照片写一段文字备注(写入文件本身) |
| **顶部 · 保存** | 把当前测点烧录进图像,**另存为一张新照片**(温度数据一并保留) |
分析页显示的标记与照片里已烧录的标记位置完全一致,不会出现"两个测点"。
分析页显示的标记与照片里已烧录的标记位置完全一致,不会出现"两个测点"。
**注意**:分析读的是照片里存的原始温度数据,所以同一张照片任何时候打开,
读数都一样(不会因为环境变化而漂移)。
@@ -117,6 +104,8 @@ App 固定竖屏显示。转动手机时**界面和画面构图都不跟着转**
## 7. 设置
![设置](manual_images/05_settings.png)
| 设置项 | 说明 | 是否影响画面 |
|---|---|---|
| **默认调色板** | 启动时使用的调色板 | ✔ |
@@ -137,7 +126,7 @@ App 固定竖屏显示。转动手机时**界面和画面构图都不跟着转**
若画面上下颠倒,用"旋转USB画面"(每次 90°);若左右镜像反了,用"水平翻转"或
"竖直翻转"。这三项是**永久生效的设置**,实时、拍照、录像都会跟着变。
**图像增强怎么选**:档位越高,纳入增强的对比度门槛越高、强边缘增强幅度越大,
**图像增强怎么选**:档位越高,纳入增强的对比度门槛越高、强边缘增强幅度越大,
即"更锐但更挑"——弱对比区域(噪声所在处)会被排除,所以调高**不会**把噪声放大。
日常建议 2~4 级;需要看清弱纹理时再上 6~8 级。默认关闭。
@@ -145,10 +134,13 @@ App 固定竖屏显示。转动手机时**界面和画面构图都不跟着转**
## 8. 拍照 / 录像的方向(重要)
- **文件方向跟随你拿手机的方向**(和普通相机一样):
- 竖着拿 → 照片 720×960竖幅),录像也是竖幅
- 横着拿 → 照片 960×720(横幅),录像也是横幅
- 无论怎么拿,**场景都是正的**,不需要事后旋转
![竖屏握持拍出的照片](manual_images/04_photo_portrait.png)
*竖着拿手机拍 → 720×960 竖幅照片,场景是正的*
![横屏握持拍出的照片](manual_images/03_photo_landscape.png)
*横着拿手机拍 → 960×720 横幅照片,场景同样是正的*
- **文件方向跟随你拿手机的方向**(和普通相机一样),所以**不需要事后旋转**。
- **预览画面本身是锁定的**:横着拿手机时,屏幕里的画面看起来是侧的
(因为屏幕构图固定在竖屏框架上),但保存下来的文件是正的。
这是刻意设计:热像仪固定在手机上,锁定预览才能保证转动手机时不晃方向。
@@ -164,7 +156,6 @@ App 固定竖屏显示。转动手机时**界面和画面构图都不跟着转**
| 照片 | `DCIM/MAG160C/MAG160C_yyyyMMdd_HHmmss.jpg` |
| 分析另存 | `DCIM/MAG160C/MAG160C_yyyyMMdd_HHmmss_edit.jpg` |
| 录像 | `DCIM/MAG160C/MAG160C_V_yyyyMMdd_HHmmss.mp4` |
| 调试日志 | `Download/MAG160C/debug_*.log`(部分机型写进 `DCIM/MAG160C/`,排查问题时取这个文件) |
照片文件是 **MDT 容器**:文件开头就是标准 JPEG(任何看图软件都能打开),
后面追加了温度数据、测点坐标、备注、渲染参数等信息。
@@ -201,17 +192,12 @@ App 固定竖屏显示。转动手机时**界面和画面构图都不跟着转**
- 先做一次 FFC(环境温度变化后尤其需要)
- 分析页的读数来自照片里存的原始数据,不会随时间变化;实时页读数会随环境漂移
**录像停止时日志里有 "drain error"**
- 文件仍然完整可播放(尾部可能略短)。这是编码器在停止瞬间偶发的状态问题,
已做保护不会闪退,文件也已保存
**手机息屏后回来**
- 息屏时渲染停止(省电)、USB 读取继续,已保存的文件不受影响
**电脑上想取文件**
**想拿文件到电脑上**
```
adb pull /sdcard/DCIM/MAG160C/
adb pull /sdcard/Download/MAG160C/ # 调试日志(部分机型在 DCIM/MAG160C
```
---