Files
HW-Debug-Tools/HDMI-Tool/README.md
T

79 lines
4.8 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.
# HDMI-Tool — HDMI 源端测试工具(LT8619C/DLPC3421 转接板调试)
> 更新:2026-09-04。单文件 Python GUI(`hdmi_gui.py`),另附命令行分辨率/图案工具
> `hdmi_source.bat`。已打包版直接双击 `HDMI-Tool.exe`,无需安装 Python。
---
## 1. 功能总览
| 功能 | 说明 |
|---|---|
| EDID 查看 | 枚举各显示输出口,从注册表读取 EDID 原始数据,按 EDID 1.4/CEA-861 解算:厂商/型号/尺寸/支持模式(DTD/已建立/标准/CEA-VIC)/首选时序完整参数/校验和 |
| EDID 逐字节解析 | "EDID 原始数据"框右上"逐字节解析"按钮:按偏移逐字段展开基础块(同步头/厂商/产品/序列/版本/输入类型/尺寸/Gamma/特性位/色度/已建立+标准时序/4×描述符/扩展块数/校验和)与 CTA-861 扩展块(tag/版本/DTD 偏移/标志位/数据块链/扩展 DTD 区/校验和),每字段附原始字节 hex,自动换行;命令行等价 `--edid-fields` |
| 分辨率切换 | 第二行"分辨率"下拉列出显卡按该屏 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@60(demo 板 shadow EDID 首选)→ 测试卡区域选 800x600
3. 点 R/G/B 行的纯色按钮投图 → 配合逻辑分析仪/万用表测 RGB 输出
4. 测完"恢复"分辨率
```
## 4. 命令行模式
```
python hdmi_gui.py --dump 控制台输出 EDID 解算(exe 版不支持)
python hdmi_gui.py --edid-fields 控制台输出 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 会自动处理)