import struct import logging import binascii from datetime import datetime class Command25: def __init__(self): self.command = 0x25 # 充电信息命令 def parse_25h_charging_info(self, data): """ 解析25H充电信息命令 :param data: 完整的25H命令报文 :return: 解析后的字典或None """ try: # 验证基本帧格式 if len(data) < 14 or data[0:2] != b'JX' or data[2] != 0x25: logging.warning(f"25H命令帧格式不正确,原始报文: {binascii.hexlify(data)}") return None # 打印完整的原始报文以便调试 print(f"完整原始报文: {binascii.hexlify(data)}") # 提取桩号 pile_id_bytes = data[3:11] # 提取时间标识 time_bytes = data[14:20] year = time_bytes[0] + 2000 month, day, hour, minute, second = time_bytes[1:6] timestamp = f"{year:04d}-{month:02d}-{day:02d} {hour:02d}:{minute:02d}:{second:02d}" # 解析充电参数 current_index = 20 charging_voltage = struct.unpack("