#!/usr/bin/env python3 import serial import struct import time import binascii SERIAL_PORT = '/dev/ttyUSB1' BAUD_RATE = 9600 def calculate_checksum(data): """Calculate XOR checksum for AMT protocol""" checksum = 0 for byte in data: checksum ^= byte return checksum def create_amt_packet(msg_id, payload=b""): """Create properly formatted AMT packet""" # Message structure: [0x02][msg_id][payload][checksum][0x02] msg = struct.pack('>H', msg_id) + payload # Big-endian message ID checksum = calculate_checksum(msg) packet = b'\x02' + msg + bytes([checksum]) + b'\x02' # Add 4-byte length header (little-endian) length = len(packet) return struct.pack('