import can def calcular_checksum(data): return sum(data) & 0xFF def main(): bus = can.interface.Bus(interface='slcan', channel='COM6', bitrate=500000) device_id = 0x01 func_code = 0x30 data = [func_code] crc = calcular_checksum([device_id] + data) full_data = data + [crc] msg = can.Message(arbitration_id=device_id, data=full_data, is_extended_id=False) try: bus.send(msg) print("Comando 0x30 enviado com sucesso!") except can.CanError as e: print("Erro ao enviar:", e) print("Aguardando resposta...") resposta = bus.recv(timeout=1.0) if resposta: print(f"Resposta recebida: ID={hex(resposta.arbitration_id)}, Dados={resposta.data.hex()}") else: print("Nenhuma resposta.") if __name__ == "__main__": main()