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 获取设备版本号响应 ──────────────────────────────────────