import struct import logging import binascii from datetime import datetime # 配置日志 logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') class Command2324: def __init__(self): self.command_23 = 0x23 # 最新充电订单命令 self.command_24 = 0x24 # 平台回复最新充电订单命令 def parse_23h_latest_charging_order(self, data): """ 解析23H最新充电订单命令 :param data: 完整的23H命令报文 :return: 解析后的字典或None """ try: # 验证基本帧格式 if len(data) < 14 or data[0:2] != b'JX' or data[2] != self.command_23: logging.warning(f"23H命令帧格式不正确,原始报文: {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 # 解析记录索引号 record_index = struct.unpack("