From 944870496aad0d79194b3b4dee6ceda408596263 Mon Sep 17 00:00:00 2001 From: wangfq Date: Wed, 10 Jun 2026 16:25:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=BB=A7=E7=94=B5=E5=99=A8=E8=BE=93?= =?UTF-8?q?=E5=87=BA=E7=8A=B6=E6=80=81=E8=A7=A3=E6=9E=90=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E5=AE=8C=E6=95=B4=E7=9A=84=20=E6=9C=89/=E6=97=A0=20=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 旧格式: '存在信号; 脉冲信号' (仅显示置位的 bit) 新格式: '存在继电器有输出,脉冲继电器有输出' (始终显示两个 bit 的状态) bit 0 (x & 0x01): 存在继电器有/无输出 bit 1 (x & 0x02): 脉冲继电器有/无输出 --- src/dg430.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/dg430.py b/src/dg430.py index 39dbe8b..a547f07 100644 --- a/src/dg430.py +++ b/src/dg430.py @@ -280,12 +280,16 @@ def decode_fault_info(fault: int) -> str: def decode_relay_info(relay: int) -> str: - """解码继电器 bitmask""" - items = [] - for bit, desc in RELAY_BITS.items(): - if relay & (1 << bit): - items.append(desc) - return "; ".join(items) if items else "无输出" + """解码继电器输出状态为可读字符串 + + 0xB2 继电器输出状态原始值 x 的解析规则: + - x & 0x01 为真 → "存在继电器有输出",否则 "存在继电器无输出" + - x & 0x02 为真 → "脉冲继电器有输出",否则 "脉冲继电器无输出" + 汇总格式: "存在继电器有输出,脉冲继电器有输出" + """ + exist = "存在继电器有输出" if (relay & 0x01) else "存在继电器无输出" + pulse = "脉冲继电器有输出" if (relay & 0x02) else "脉冲继电器无输出" + return f"{exist},{pulse}" # ─── 0x4A 获取设备版本号响应 ──────────────────────────────────────