import can import struct import time import argparse # Константы CAN_INTERFACE = 'can0' DEVICE_ID = 0x00 # ID ADDR for servo REG_WRITE = 0x8 REG_POS = 0x72 # MOTOR+ANGLE = 0x72 def validate_crc16(data): # Calculate CRC16 crc = 0xFFFF for byte in data: crc ^= byte for _ in range(8): if crc & 0x0001: crc = (crc >> 1) ^ 0xA001 else: crc >>= 1 return crc def send_target_angle(bus, target_angle): # ID and cmd arbitration_id = (DEVICE_ID << 4) | REG_WRITE id_bytes = list(arbitration_id.to_bytes(2, byteorder='little')) # cmd + parametrs data_write = [REG_POS] + list(struct.pack('