import struct import logging from datetime import datetime class Command1F20: def __init__(self): self.command_1f = 0x1F # 启动充电命令 self.command_20 = 0x20 # 启动充电回复 def build_1f_command(self, pile_id, card_no="18771978016"): """构建1FH启动充电命令""" try: print("\n构建1FH启动充电命令...") frame = bytearray() frame.extend(b'JX') # 帧起始标志 frame.append(self.command_1f) # 命令码1FH frame.extend(pile_id) # 桩号 frame.append(0x01) # 数据加密方式(不加密) # 构建数据域 data = bytearray() # 添加时间标识 now = datetime.now() data.extend(bytes([ now.year - 2000, now.month, now.day, now.hour, now.minute, now.second ])) # 添加枪号 data.append(0x01) # 添加卡号(32字节) data.extend(card_no.encode().ljust(32, b'\x00')) # 添加用户ID(32字节) user_id = "84043" data.extend(user_id.encode().ljust(32, b'\x00')) # 添加组织机构代码(9字节) data.extend(b'\x16'.ljust(9, b'\x00')) # 添加控制方式(1字节) - 定金额充 data.append(0x03) # 添加控制参数(4字节) - 1000元 data.extend(struct.pack("