docs: refresh handoff for next model - final layout conventions + next-round prompt
This commit is contained in:
@@ -56,7 +56,7 @@ android/app/src/main/kotlin/com/mag160c/thermal/
|
||||
├─ ui/theme/Theme.kt M3 动态取色(Android12+)
|
||||
├─ ui/live/ ★实时画面(最核心)
|
||||
│ ├─ LiveViewModel.kt 状态机/演示模式/多点测温/追踪开关/拍照/录像/inset上报
|
||||
│ ├─ LiveScreen.kt 稳定单分支布局:顶栏控制条(恒顶部,适配挖孔屏)+SurfaceView
|
||||
│ ├─ LiveScreen.kt 稳定单分支相机布局:顶栏4控制项+底部快门区(相册/拍照/录像)+SurfaceView
|
||||
│ └─ LiveRenderer.kt SurfaceView 软件渲染:图像恒90°旋转(3:4竖)钉在竖屏框架固定区域,
|
||||
│ 文字恒屏幕水平;色标条/圆圈标记/中心温OSD
|
||||
├─ ui/gallery/ 相册页(MediaStore DCIM/MAG160C 扫描 + 内嵌JPEG缩略图 + 运行时媒体权限)
|
||||
@@ -164,9 +164,19 @@ git -C C:\Project\MAG160C commit -m "android: ..."
|
||||
|
||||
## 7. 当前状态与待办
|
||||
|
||||
**已完成**:核心管线移植(字节级验证)、USB 层、实时画面(竖图固定+顶栏控制+底栏导航+
|
||||
圆圈标记+大色标+演示模式)、拍照 MDT 容器→MediaStore、MP4 录像、媒体库、离线分析查看器、
|
||||
PDF 报告、任务解析、设置页、Android16 沉浸(状态栏隐藏+挖孔适配+fullSensor)、乱码多次修复。
|
||||
**已完成**:核心管线移植(字节级验证)、USB 层、实时画面(相机式布局:
|
||||
顶栏4控制项 FFC/变倍/追踪/调色板 + 底部快门区 相册/拍照/录像 + 底导航)、
|
||||
图标文字按物理持机朝向补偿旋转(加速度计)、演示模式、拍照 MDT 容器→MediaStore、
|
||||
MP4 录像、媒体库、离线分析查看器、PDF 报告、任务解析、设置页、Android16 沉浸
|
||||
(状态栏隐藏+竖屏锁定+挖孔安全区)、乱码多次修复。
|
||||
|
||||
**布局约定(最终,勿回退)**:
|
||||
- Activity **锁定竖屏**(`portrait`),构图钉死手机竖屏框架:顶栏/热像区域/快门区/底导航
|
||||
绝对位置永不随手机物理旋转变化(屏显方向永远对应镜头方向)。
|
||||
- 图标/文字持机朝向补偿:`ui/DeviceOrientation`(加速度计,真机约定 y=+9.81=0°;
|
||||
模拟器是反的重力约定)→ `rotationZ=-φ`(Compose)/`canvas.rotate(-φ)`(Canvas)。
|
||||
- 顶栏 `uiTopPx` 必须挂在 `safeDrawing` inset **之前**(包含挖孔安全区,否则真机热像
|
||||
顶端被顶栏盖住);`uiBottomPx` = 底导航高 + 快门区高。
|
||||
|
||||
**待办**(记录在 session_state.md):
|
||||
1. 真机 USB 实测:温度绝对值标定、FFC/录像/MDT 保存端到端。
|
||||
@@ -184,3 +194,41 @@ PDF 报告、任务解析、设置页、Android16 沉浸(状态栏隐藏+挖
|
||||
- PC 参考工具:`analysis/render_offline.c`、`analysis/gen_kotlin_tables.py`
|
||||
- 预览截图:`analysis/preview/preview_*.png`
|
||||
- APK 产物:`build-artifacts/mag160c-app-debug.apk`
|
||||
|
||||
## 9. 下一轮提示词(交付新模型直接用)
|
||||
|
||||
> 你是本项目的续任开发者。请先完整阅读 `C:\Project\MAG160C\docs\android_app\HANDOFF_DEVELOPMENT.md`
|
||||
> 和 `C:\Project\MAG160C\docs\android_app\session_state.md`、`docs\android_app\reverse_apk_features.md`、
|
||||
> `C:\Project\MAG160C\analysis\protocol_spec.md`,再继续开发。
|
||||
> 项目根 `C:\Project\MAG160C` 是 git 仓库,源码在 `android\`(Gradle 工程,package
|
||||
> `com.mag160c.thermal`)。Android 16 已适配,目标是一个 MAG160C 热像仪(160×120, 15fps,
|
||||
> USB VID 0x833C PID 1)统一 APP。
|
||||
>
|
||||
> 当前已完成到第 9 轮反馈修复:核心渲染管线 Kotlin 移植(逐字节验证)、USB 层、
|
||||
> 相机式实时布局(顶栏4控制项+底部快门区+底导航)、图标文字持机朝向补偿旋转、
|
||||
> 演示模式(无设备用真实管线+DDT渲染合成帧)、拍照MDT存MediaStore、MP4录像、
|
||||
> 媒体库、离线分析、PDF报告、任务解析、设置页、Android16沉浸(竖屏锁定+挖孔适配)。
|
||||
>
|
||||
> 硬性约定(勿回退):① Activity 竖屏锁定 `portrait`,构图钉死手机竖屏框架,
|
||||
> 屏显方向必须始终对应镜头方向;图标/文字用 `ui/DeviceOrientation`(加速度计,
|
||||
> 真机约定 y=+9.81=0°)补偿旋转。② 源码全 UTF-8;python 读写必须显式
|
||||
> `encoding='utf-8'`(本机默认 GBK,裸写会乱码)。③ 图标用双弧圆+直线/矩形。
|
||||
>
|
||||
> 下一步建议按 session_state.md「待办」推进:
|
||||
> 1. 真机 USB 实测——温度绝对值标定(对 DDT 核对 counts→毫度);
|
||||
> 2. 网络互连远程预览——UDP 广播自动发现 + 手动内网 IP,主机手机插热像仪、
|
||||
> 局域网另一台手机远程实时预览(自定义轻量协议:控制通道 JSON + 图像流,
|
||||
> 不走厂商 33596/33597);
|
||||
> 3. 离线 MDT 温度解码(ConvertResponse2Temperature + 标定参数);
|
||||
> 4. 厂商 12 调色板精确提取;5. 可见光 PIP 融合、云模块(Retrofit opt-in 预留)。
|
||||
>
|
||||
> 构建/提交:
|
||||
> ```powershell
|
||||
> cd C:\Project\MAG160C\android; $env:JAVA_HOME="C:\Program Files\Zulu\zulu-21"
|
||||
> & "C:\Tools\gradle-8.14.3\bin\gradle.bat" :app:assembleDebug --no-daemon
|
||||
> & "C:\Tools\gradle-8.14.3\bin\gradle.bat" test --no-daemon
|
||||
> git -C C:\Project\MAG160C add -A; git -C C:\Project\MAG160C commit -m "android: ..."
|
||||
> ```
|
||||
> 环境:`C:\Tools\gradle-8.14.3`、JDK Zulu 21、SDK `C:\Users\ZXC\AppData\Local\Android\Sdk`、
|
||||
> AVD `Medium_Phone_API_36.1`。注意:git 工作树里有大量与本任务无关的脏文件
|
||||
> (`.tools/`、`IR_Camera_SDK/`、`csdk/`、`analysis/` 等),**不要提交它们**,只提交你的改动。
|
||||
Reference in New Issue
Block a user