From 668a7e1ca5a1586eb916e033aa926be82f3ac5a5 Mon Sep 17 00:00:00 2001 From: hulk Date: Fri, 18 Sep 2026 01:04:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(DLPilot):=20=E5=8A=9F=E7=8E=87=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=E8=AF=BB=E6=95=B0=E6=9A=82=E4=B8=8D=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E5=8A=9F=E7=8E=87=E5=80=BC(=E5=BE=85=E5=9B=BA=E4=BB=B6?= =?UTF-8?q?=E5=8A=9F=E7=8E=87=E5=91=BD=E4=BB=A4=E8=BF=94=E5=9B=9E),=20?= =?UTF-8?q?=E5=8D=A0=E4=BD=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DLPilot/AGENTS.md | 4 +++- DLPilot/README.md | 2 +- DLPilot/release/README.md | 19 +++++++++++++++---- DLPilot/src/app_gui.py | 8 +++----- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/DLPilot/AGENTS.md b/DLPilot/AGENTS.md index 816495d..775eb04 100644 --- a/DLPilot/AGENTS.md +++ b/DLPilot/AGENTS.md @@ -114,8 +114,10 @@ DLPilot/ - **电源自检序列**(M301 协议→M302 挡位最大电流→M303 实测母线电压,帧驱动状态机 `_pd_on_frame/_pd_seq`,超时 3s/步):FPDO 判定 = 电压就近挡(标准 PD 固定挡 5/9/12/15/20/28V,±5% 容差)+ M302 挡位电流;**12V 且 ≥3A 绿底,挡位不符红底, - 无匹配挡 ERR**。功率检测 = M303+M304 → V/mA/W。应答按 TYPE=0xF0 判成功; + 无匹配挡 ERR**。应答按 TYPE=0xF0 判成功; CH224Q 电压配置寄存器(0x0A)只写不可读,挡位只能实测判定。 +- **功率检测** = M303+M304 → 读数框 电压V / 电流mA;**功率值暂不计算** + (用户要求:后续固件会提供功率命令直接返回,届时填充),显示占位"功率: —"。 ## 5. 构建 / 发布流水线(全部在 src/ 下执行) diff --git a/DLPilot/README.md b/DLPilot/README.md index eaac4e8..aae53c5 100644 --- a/DLPilot/README.md +++ b/DLPilot/README.md @@ -104,7 +104,7 @@ GUI"光机控制"区:选串口 → 连接 → 点快捷按钮或命令下拉/ 按实测电压就近判定 PD 固定挡(5/9/12/15/20/28V,容差 ±5%):**12V 挡且 ≥3A 绿底 "FPDO: 12V@3A"**;挡位不符(如 9V 挡)**红底**显示实际挡位;不落在任何标准挡显示 **ERR**(CH224Q 电压配置寄存器只写不可读,挡位只能靠实测判定)。**功率检测**依序发 -M303+M304,读数框显示 电压(V) / 电流(mA) / 功率(W,=电压×电流)。 +M303+M304,读数框显示 电压(V) / 电流(mA);功率暂留空(后续固件命令直接返回)。 | 命令 | 功能 | 响应示例 | |---|---|---| diff --git a/DLPilot/release/README.md b/DLPilot/release/README.md index ff08bf9..aae53c5 100644 --- a/DLPilot/release/README.md +++ b/DLPilot/release/README.md @@ -52,10 +52,11 @@ DLPilot/ ``` 左列(HDMI 源端) 右列(光机控制 RS485) ┌ 显示器选择区域 [刷新] ┐ ┌ 串口选择 + 波特率/8-N-1 参数/连接 ┐ -├ 支持的模式: 分辨率[应用][恢复] + 明细 ┐ ├ 串口数据 — 收发日志(译码+hex) ┤ -├ EDID 信息(表格) ┘ ├ 光机命令 — 快捷按钮+TEC │ -├ 测试图案 / 纯色 / 自定义 / 测试卡区域 │ 预设下拉 / 自定义 / 温度读取 │ -├ EDID 原始数据 [逐字节解析] ┘ └ 快捷滑条 — 光强/定时/TEC温度 ┘ +├ 支持的模式: 分辨率[应用][恢复] + 明细 ┐ ├ 电源检查 — PD自检/FPDO挡位/功率读数 ┤ +├ EDID 信息 ┘ ├ 串口数据 — 收发日志(译码+hex) ┤ +├ 测试图案 / 纯色 / 校准图案 / 测试卡区域 │ ├ 光机命令 — 快捷按钮+TEC │ +├ EDID 原始数据 [逐字节解析] ┘ │ 预设下拉 / 温度电流读取 / 自定义 │ +└─────────────────────────────┘ └ 快捷滑条 — 光强/定时/TEC温度 ┘ ``` 1. 左上显示器下拉选择目标屏(多屏时注意别选成主屏),"刷新"重新枚举; @@ -99,6 +100,12 @@ GUI"光机控制"区:选串口 → 连接 → 点快捷按钮或命令下拉/ 多口描述相同时自动附物理位置消歧。日志区实时显示 `→ 命令` / `← 译码结果 (原始 hex)`, 错误自动附释义(如 `err:3(I2C NACK)`)。 +"电源检查"卡:**电源自检**依序发 M301(协议)→M302(挡位最大电流)→M303(实测母线电压), +按实测电压就近判定 PD 固定挡(5/9/12/15/20/28V,容差 ±5%):**12V 挡且 ≥3A 绿底 +"FPDO: 12V@3A"**;挡位不符(如 9V 挡)**红底**显示实际挡位;不落在任何标准挡显示 +**ERR**(CH224Q 电压配置寄存器只写不可读,挡位只能靠实测判定)。**功率检测**依序发 +M303+M304,读数框显示 电压(V) / 电流(mA);功率暂留空(后续固件命令直接返回)。 + | 命令 | 功能 | 响应示例 | |---|---|---| | `M730S0` / `M730S1` | 开 / 关光机 | `ok` | @@ -106,6 +113,10 @@ GUI"光机控制"区:选串口 → 连接 → 点快捷按钮或命令下拉/ | `M731S100` | 设光强 54-800(RGB 同值,写后读回复核) | `ok` / `err:R..G..B..` | | `M732` | 查三路电流设置值(0-65535) | `okR110G110B110` | | `M201` / `M202` | 查 DMD / LAMP 温度(0.1°C) | `okTL:246` = 24.6°C | +| `M301` | 查电源协议(CH224Q 握手结果) | ASCII:`PD` / `QC3.0` / `EPR` … | +| `M302` | 查 PD 挡位最大电流(u16 大端 **mA**,50mA/LSB 固件已换算) | 0x0BB8 = 3000 mA = 3 A | +| `M303` | 查母线电压(SQ52205 实测,**2 字节大端二进制载荷**) | 0x2EF4 = 12020 mV = 12.02 V(12V 轨窗口 11400~12600) | +| `M304` | 查负载电流(SQ52205 实测,**2 字节大端二进制载荷**) | s16 补码 mA:0x0034=+52;FF 06=−250(正=正向) | | `M999` | 查固件版本 | `okv20.0.0.1` | | `M737` | 查投光是否结束(投光中延迟应答) | `ok` | | `M7S0` / `M7S1` | TEC 自动控温开 / 关(注意 S0=开) | `ok` | diff --git a/DLPilot/src/app_gui.py b/DLPilot/src/app_gui.py index f0c9c6d..2c93ee3 100644 --- a/DLPilot/src/app_gui.py +++ b/DLPilot/src/app_gui.py @@ -949,7 +949,7 @@ class App(ctk.CTk): self.var_fpdo.set(f'FPDO: {gear}V@{a_txt}A') def _pwr_query(self): - """功率检测: M303 实测电压 + M304 实测电流(按有符号) -> 换算功率""" + """功率检测: M303 实测电压 + M304 实测电流(按有符号); 功率值待固件功率命令""" if not self.dlpc.is_connected(): self.lbl_dlpc_st.configure(text='未连接串口', text_color='#E07A3F') return @@ -990,10 +990,8 @@ class App(ctk.CTk): self._pwr_step_next() def _pwr_update(self, v_mv, ma): - """功率读数框更新: 电压 V / 电流 mA / 功率 W""" - v = v_mv / 1000 - self.var_pwr.set(f'电压: {v:.2f} V 电流: {ma} mA ' - f'功率: {v * ma / 1000:.2f} W') + """功率读数框更新: 电压 V / 电流 mA; 功率暂不计算(待固件功率命令返回后填充)""" + self.var_pwr.set(f'电压: {v_mv / 1000:.2f} V 电流: {ma} mA 功率: —') def _light_entry_apply(self, _evt=None): """滑条数值输入框回车: 校验并限幅 54-800, 同步回滑条"""