feat: HDMI-Tool 与 I2C-Inject 首版工具集

This commit is contained in:
2026-09-03 17:24:33 +08:00
parent 6243b8c262
commit d0cefeebf3
38 changed files with 2778 additions and 1 deletions
+76
View File
@@ -0,0 +1,76 @@
# HDMI-Tool — HDMI 源端测试工具(LT8619C/DLPC3421 转接板调试)
> 更新:2026-09-03。单文件 Python GUI`hdmi_gui.py`),另附命令行分辨率/图案工具
> `hdmi_source.bat`。已打包版直接双击 `HDMI-Tool.exe`,无需安装 Python。
---
## 1. 功能总览
| 功能 | 说明 |
|---|---|
| EDID 查看 | 枚举各显示输出口,从注册表读取 EDID 原始数据,按 EDID 1.4/CEA-861 解算:厂商/型号/尺寸/支持模式(DTD/已建立/标准/CEA-VIC)/首选时序完整参数/校验和 |
| 分辨率切换 | 第二行"分辨率"下拉列出显卡按该屏 EDID 提供的全部模式;**应用**=临时切换(不写注册表,重启还原),**恢复**=回到本次会话切改前的模式 |
| 测试图案 | 全屏投到所选显示器,测试卡区域可选 `640x360 / 800x600 / full 铺满`;内置 纯红/纯绿/纯蓝/棋盘格/网格线 + R/G/B 三行纯色值按钮(55/AA/FF,与 dist 下 solid_*.png 对应)+ 3 个自定义图片栏位 |
| 命令行模式 | 自动化测试脚本可直接调用(见 §4) |
## 2. 快速上手(GUI
1. 双击 `HDMI-Tool.exe`(或 `python hdmi_gui.py`,需 Python ≥3.10 + pyserial 不需要,纯标准库;自定义图片 JPG/BMP 需 Pillow
2. 顶部显示器下拉选择目标屏(多屏时注意别选成主屏),"刷新"重新枚举
3. **切分辨率**:第二行选模式 → 点"应用";测完点"恢复"
4. **投测试图**
- 先在图案按钮行右侧选**测试卡区域**640x360 / 800x600 / full
- 点图案按钮即全屏投放;按 **ESC** 退出
- R/G/B 三行纯色按钮(55/AA/FF)用于位交换类测试:55 与 AA 互为字节镜像对,FF 为全高基准
- 自定义图片:点"⚙"配置名称与图片文件(图片会复制到本目录),点栏位名投放
5. 区域与自定义栏位配置自动保存在本目录 `pattern_slots.json`
## 3. 典型场景(LT8619C demo 板测试)
```
1. HDMI 接 demo 板 → 启动 HDMI-Tool → 刷新 → 选中 demo 板显示器
2. 分辨率切 800x600@60demo 板 shadow EDID 首选)→ 测试卡区域选 800x600
3. 点 R/G/B 行的纯色按钮投图 → 配合逻辑分析仪/万用表测 RGB 输出
4. 测完"恢复"分辨率
```
## 4. 命令行模式
```
python hdmi_gui.py --dump 控制台输出 EDID 解算(exe 版不支持)
python hdmi_gui.py --test-pattern Blue --area 800x600 --seconds 5
出图 5 秒自动退出
python hdmi_gui.py --test-pattern Custom1 投自定义栏位 1
--area {640x360,800x600,full} --monitor N --seconds S
```
**hdmi_source.bat**PowerShell 源端工具,功能与 GUI 互补):
```
tools\hdmi_source.bat -List 枚举显示器与支持分辨率(验证 EDID)
tools\hdmi_source.bat -Monitor 1 -Mode 800x600 切模式
tools\hdmi_source.bat -Mode 800x600 -Pattern -Restore
切模式→出图案→退出后自动恢复
```
## 5. 目录内容
| 文件 | 用途 |
|---|---|
| `HDMI-Tool.exe` | 打包好的单文件版(--noconsole`--dump` 请用源码方式跑) |
| `hdmi_gui.py` | 主程序源码 |
| `build_exe.py` | 打包脚本(`python build_exe.py`,自动装 PyInstaller`--debug` 额外出带控制台版) |
| `hdmi_source.ps1 / .bat` | 源端分辨率/图案命令行工具 |
| `gen_bw_patterns.py` / `gen_solid_colors.py` | 测试图生成脚本(bw 黑白系列 640x360 / solid 纯色系列 800x600 |
| `solid_*.png` | 9 张 800x600 纯色图(R/G/B 各 55/AA/FF,供自定义栏位或脚本使用) |
| `bw_*.png` | 5 张 640x360 黑白测试图(西门子星/频率条纹/渐变棋盘/波带/综合卡) |
| `logos/` | 图标源文件与 `make_ico.py`(改 logo 后重跑再打包) |
| `pattern_slots.json` | 自定义栏位 + 测试卡区域配置(运行后自动生成/更新) |
## 6. 注意事项
- 测试卡区域与自定义栏位配置按 exe/脚本所在目录各自保存,两份安装互不影响
- 重打包后 Windows 图标缓存可能仍显示旧图标:`ie4uinit -show` 或改名即可
- 多屏环境切分辨率前先确认显示器序号(下拉框中名称与 `-List` 输出一致)
- 修改源码后重新打包前,先结束残留的 HDMI-Tool 进程(build_exe.py 会自动处理)