style(HDMI-Tool): 按用户标记微调 CTk 界面
This commit is contained in:
Binary file not shown.
+31
-21
@@ -20,7 +20,8 @@
|
||||
| EDID 逐字节解析 | "EDID 原始数据"框右上"逐字节解析"按钮:按偏移逐字段展开基础块与 CTA-861 扩展块,每字段附原始字节 hex;命令行等价 `--edid-fields` |
|
||||
| 分辨率切换 | "分辨率"下拉列出显卡按该屏 EDID 提供的全部模式;**应用**=临时切换(不写注册表,重启/恢复即还原),**恢复**=回到本次会话切改前的模式 |
|
||||
| 测试图案投屏 | 全屏投到所选显示器,测试卡区域可选 `640x360 / 800x600 / full 铺满`;内置 纯红/纯绿/纯蓝/黑白棋盘格/网格线 + R/G/B 三行 55/AA/FF 纯色值按钮 + 3 个自定义图片栏位 |
|
||||
| 光机控制 | RS485 → 板载 GD32E230 网关 → DLPC3421:开关光机(可定时)、设光强、查电流/温度/版本、TEC 控制、软件重启;收发日志带协议译码(见 §5) |
|
||||
| 界面 | CustomTkinter 深色双栏仪表盘(左列 HDMI 源端 / 右列 光机控制),顶栏可切换 Dark/Light/System |
|
||||
| 光机控制 | RS485 → 板载 GD32E230 网关 → DLPC3421:开关光机(可定时)、设光强、查电流/温度/版本、TEC 控制、软件重启;光强/定时提供快捷滑条;收发日志带协议译码(见 §5) |
|
||||
| 智能显示拓扑 | 仅当检测到转接板(EDID 厂商 "XLS")接入但未进入桌面(Windows 卡在"仅电脑屏幕")时才强制扩展把它拉回;你主动选的"仅第二屏幕"等拓扑不会被改动 |
|
||||
| 命令行模式 | 全部功能可脚本化调用,供自动化测试(见 §6、§7) |
|
||||
| 波形分析脚本 | 逻辑分析仪 CSV 波形按占空比签名分段,输出行结构/占空比/消隐明细(见 §7.3) |
|
||||
@@ -45,24 +46,25 @@ HDMI-Tool/
|
||||
|
||||
## 3. GUI 使用
|
||||
|
||||
主窗口自上而下四块区域:
|
||||
主窗口为双栏仪表盘(布局设计稿:`UI参考布局.svg`),默认深色外观,顶栏可切换 Dark/Light/System:
|
||||
|
||||
```
|
||||
┌ 显示器: [ ... ▼] [刷新] ┐
|
||||
├ 分辨率: [800x600@60 ▼] [应用] [恢复] ├ 显示器/EDID
|
||||
│ 支持的模式(EDID 解算) | EDID 信息 ┘
|
||||
├ 测试图案 — 图案按钮 / R,G,B 0x55,0xAA,0xFF / 测试卡区域 / 自定义栏位 ┐
|
||||
├ 光机控制 — 串口 [连接] / 开关光机 / 光强 / 命令下拉 / 自定义命令 ┘ 投屏+光机
|
||||
│ └ 收发日志(带协议译码与原始 hex)
|
||||
└ EDID 原始数据 — hex dump [逐字节解析] ┘
|
||||
左列(HDMI 源端) 右列(光机控制 RS485)
|
||||
┌ 显示器选择区域 [刷新] ┐ ┌ 串口选择 + 波特率 / 连接状态 ┐
|
||||
├ 支持的模式: 分辨率[应用][恢复] + 明细 ┐ ├ 串口数据 — 收发日志(译码+hex) ┤
|
||||
├ EDID 信息(表格) ┘ ├ 光机命令 — 快捷按钮 │
|
||||
├ 测试图案 / 纯色 / 自定义 / 测试卡区域 │ 预设下拉 / 自定义命令输入 │
|
||||
├ EDID 原始数据 [逐字节解析] ┘ └ 快捷滑条 — 光强 / 定时投光(秒) ┘
|
||||
```
|
||||
|
||||
1. 顶部显示器下拉选择目标屏(多屏时注意别选成主屏),"刷新"重新枚举;
|
||||
2. **切分辨率**:选模式 → "应用";测完点"恢复";
|
||||
3. **投测试图**:先选**测试卡区域**(640x360 / 800x600 / full)→ 点图案按钮全屏投放,
|
||||
按 **ESC** 或点击退出;R/G/B 三行纯色按钮(55/AA/FF)用于 RGB 位交换类测试
|
||||
(55 与 AA 互为字节镜像对,FF 全高基准);自定义图片点"⚙"配置(图片自动复制到 exe 旁);
|
||||
4. 区域与自定义栏位配置自动保存在 exe 旁的 `pattern_slots.json`。
|
||||
1. 左上显示器下拉选择目标屏(多屏时注意别选成主屏),"刷新"重新枚举;
|
||||
2. **切分辨率**:"支持的模式"卡片里选模式 → "应用";测完点"恢复";
|
||||
3. **投测试图**:"测试图案"卡片先选**测试卡区域**(640x360 / 800x600 / full)→
|
||||
点图案按钮全屏投放,按 **ESC** 或点击退出;R/G/B 纯色按钮(55/AA/FF,按通道着色)
|
||||
用于 RGB 位交换类测试;自定义图片点"⚙"配置(图片自动复制到 exe 旁);
|
||||
4. **光机控制**:右列选串口 → 连接 → 快捷按钮/预设下拉/自定义输入(回车即发);
|
||||
快捷滑条直接拖光强后"下发 M731S",拖秒数后"开光机(定时)"(0 秒=不限时 M730S0);
|
||||
5. 测试卡区域、自定义栏位与串口记忆自动保存在 exe 旁的 `pattern_slots.json`。
|
||||
|
||||
## 4. 典型测试场景
|
||||
|
||||
@@ -177,8 +179,13 @@ python la_wave_analyzer3.py <capture.csv> # 3 通道(RGB 三组同拍, ch8/
|
||||
```
|
||||
HDMI-Tool/
|
||||
├── src/ # 源代码(人工维护区)
|
||||
│ ├── hdmi_gui.py # 主程序:GUI + 命令行(标准库; pyserial/Pillow 可选)
|
||||
│ ├── dlpc_rs485.py # 光机 RS485 协议与串口链路(帧/解析/译码/线程)
|
||||
│ ├── hdmi_gui.py # 入口与命令行模式(argparse 分发)
|
||||
│ ├── app_gui.py # CustomTkinter 主界面(双栏仪表盘)
|
||||
│ ├── display_win.py # Win32 显示器枚举/分辨率/智能拓扑(纯标准库)
|
||||
│ ├── edid_parse.py # EDID 1.4/CEA-861 解析(纯标准库)
|
||||
│ ├── patterns.py # 测试图案全屏投屏窗口
|
||||
│ ├── config.py # 运行目录与 pattern_slots.json 配置
|
||||
│ ├── dlpc_rs485.py # 光机 RS485 协议与串口链路
|
||||
│ ├── selftest_rs485.py # 光机协议自检(无硬件回归)
|
||||
│ ├── build_exe.py # PyInstaller 打包 → release/
|
||||
│ ├── package_release.py # 组装发布 zip(exe+图案+说明)
|
||||
@@ -197,18 +204,21 @@ HDMI-Tool/
|
||||
│ ├── *.png / README.md # 附属文件平铺副本(由 package_release.py 从 assets/ 同步)
|
||||
│ └── *.zip # 发布包(不入库, 上传 Gitea Release)
|
||||
├── README.md # 本说明
|
||||
└── AGENTS.md # 面向 AI/Agent 的工程档案(结构/约定/构建规程)
|
||||
├── AGENTS.md # 面向 AI/Agent 的工程档案(结构/约定/构建规程)
|
||||
└── UI参考布局.svg/.png # 界面布局设计稿(app_gui.py 按此实现)
|
||||
```
|
||||
|
||||
从源码运行:`python src/hdmi_gui.py`,需 Python ≥3.10,标准库即可跑 EDID/投屏;
|
||||
光机控制需 pyserial(`py -m pip install pyserial`),自定义图片要 JPG/BMP/WebP 需可选 Pillow。
|
||||
从源码运行:`python src/hdmi_gui.py`,需 Python ≥3.10;EDID/命令行纯标准库;
|
||||
GUI 需 customtkinter(`py -m pip install customtkinter`);光机控制需 pyserial;
|
||||
自定义图片要 JPG/BMP/WebP 需可选 Pillow。
|
||||
|
||||
## 9. 构建与发布
|
||||
|
||||
```powershell
|
||||
cd src
|
||||
python selftest_rs485.py # 光机协议回归(改 dlpc_rs485.py 后必跑)
|
||||
python build_exe.py # 打包 → ../release/HDMI-Tool.exe(自动装 PyInstaller; 内置 pyserial)
|
||||
python build_exe.py # 打包 → ../release/HDMI-Tool.exe(自动装 PyInstaller;
|
||||
# 内置 pyserial/customtkinter, CTk 主题数据自动收集)
|
||||
python build_exe.py --debug # 额外出一个带控制台的调试变体(--dump 可见输出)
|
||||
python package_release.py 0.2.0 # 组装 release/HDMI-Tool-v0.2.0-win64.zip
|
||||
python publish_gitea.py HDMI-Tool-v0.2.0-win64.zip --insecure # 上传 Gitea Release(需 GITEA_TOKEN)
|
||||
|
||||
Reference in New Issue
Block a user