Files
HW-Debug-Tools/EDID-viewer/release
hulk e902503807 chore: 仓库更名 LT8619C_Debug_Tools → HW-Debug-Tools
- Gitea 仓库已改名(旧地址自动重定向),git remote 同步更新
2026-09-28 10:01:16 +08:00
..

EDID Viewer

Windows 10/11 显示器 EDID 查看器。使用 PySide6 / PySide6-Fluent-Widgets,只读,不修改显示设置。

只想使用工具:到 Gitea Releases 下载 EDID-Viewer-vX.Y.Z-win64.zip,解压双击 EDID-Viewer.exe 即可(Windows 10/11 x64,免安装、无需 Python)。

使用

  • 双击 release\EDID-Viewer.exe(单文件,免安装)。
  • 或双击 start.cmd 使用本机 Python 环境运行源码。
  • 右上角「外观」选择 Light(浅色)、Dark(琥珀深色)、dark1(蓝色深色)、dark2(青色深色)或跟随系统;默认跟随系统,选择自动保存,系统模式响应 Windows 明暗变化。
  • 图标沿用 DLPilot 的黑底/橙色标签/白字语言,文字为 EDID / Viewer;窗口、任务栏和 EXE 使用同一图标。
  • 当前布局采用 Fluent Widgets:顶部设备/文件操作卡片、右上角「关于」,下方信息卡片和分组页签;Dark 使用琥珀强调色,dark1 使用蓝色强调色,dark2 使用青色强调色,主题随系统设置持久化。
  • 点击「刷新设备」,从下拉框选择设备。HDMI、DP 和内屏均显示连接类型。
  • 「设备与能力」显示身份和音频/HDR/色彩/HDMI 信息;「分辨率与时序」可展开 DTD 查看像素时钟、前后肩、同步宽度和极性。
  • 「原始 HEX」支持选中复制。「导出 BIN」保持读取到的字节不变;「导出报告」生成含原始数据的 UTF-8 JSON。
  • 支持 .bin/.edid 二进制和 .hex/.txt 纯十六进制。HEX 可以使用空格、逗号、0x 前缀,不接受带地址/ASCII 栏的 hexdump。

目录结构(对齐 DLPilot)

  • src/ — 人写代码:界面(main.py)、EDID 解析(edid.py)、Windows 读取(windows_edid.py)、主题(theme.py)、解析测试(test_edid.py)和打包流水线。
  • assets/ — 图标与生成脚本(可再生)。
  • release/ — 交付物:EDID-Viewer.exe 入库;发布 zip 只上传 Gitea Release,不入库。
  • AGENTS.md — 工程约定与任务边界(改代码前必读);VALIDATION.md — 验证记录。

环境与构建

本机:Python 3.14、PySide6 6.11.2、PySide6-Fluent-Widgets 1.11.3、PyInstaller 6.22.2。当前 .venv 通过 --system-site-packages 复用已安装依赖,不修改全局包。新电脑可以创建独立环境:

python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe src\main.py
cd src && python -m unittest          # 9 项解析测试
python src\build_exe.py               # 打包 → release\EDID-Viewer.exe
python src\package_release.py 0.1.0   # 组装 release\EDID-Viewer-v0.1.0-win64.zip
python src\publish_gitea.py ..\release\EDID-Viewer-v0.1.0-win64.zip --insecure

打包为单文件 exe;spec 由 build_exe.py 生成到 src/build/(不入库),其中剔除 PATH 上其他工具(Poppler/Conda)的版本化 ICU DLL,避免 QtCore 加载失败(WinError 127)。构建前关闭正在运行的 EDID Viewer,以免文件被占用。图标源为 assets/make_icon.py,重新生成时需安装 Pillow(仅开发时需要)。主题配置保存在当前用户的 QSettings: LT8619C-Tools/EDID-Viewer。

能力范围

  • EDID 1.x 基础身份、生产日期、名称/序列号、物理尺寸、Gamma、色深、色度坐标。
  • 已建立/标准时序、基础与 CTA 详细时序;常用 CTA VIC(未映射的 VIC 显示编号)。
  • 多个 CTA 扩展、音频 SAD、HDMI VSDB、CEC 地址、深色、TMDS、HF-VSDB 的 SCDC/TMDS。
  • HDR EOTF、色彩标准、YCbCr 4:2:0 声明。未知块原样保留。
  • 每块校验和、扩展计数、截断和数据块越界诊断。

限制

  • 读取 root/wmi:WmiMonitorDescriptorMethods 中的活动设备,不保证列出禁用输出/驱动不提供 WMI 的设备。失败会显示原因,可改用离线文件。
  • 数据来自 Windows/显卡驱动,可能是缓存或覆盖内容,不是实时 DDC 抓取。读取扩展失败时保留已经取得的块并报告缺失。
  • EDID 能力不等于当前输出模式;不能据此确定 HDCP、线材质量、正在使用的 HDR/色深或 HDMI 版本。
  • DisplayID 和 HDMI Forum VRR/ALLM/FRL/DSC 尚未详细解码;仅包含 DisplayID 时序的屏幕可能没有可解码的分辨率。范围描述符扩展偏移仅提示,未应用。
  • 不承诺所有 CTA VIC/扩展标签均已覆盖。厂商首先显示标准 PNP 三字母代码,避免错误猜测品牌。

推荐后续挖掘

  1. 桥接板时序匹配:像素时钟、H/V 消隐、同步极性和首选模式,排查黑屏、偏色、画面偏移。
  2. EDID 差异比较:对照板卡固件、Windows 读取值、显示器原始值,定位缓存、截断或改写。
  3. 带宽与色彩:TMDS/FRL、RGB/YCbCr、深色和 4:2:0,解释分辨率或刷新率受限。
  4. HDR 与音频:PQ/HLG、亮度元数据、PCM 位深/采样率/声道和压缩音频能力。
  5. DisplayID / VRR / DSC:适合高刷新率和高分辨率显示设备,作为下一阶段扩展。