O pacote python-can fornece suporte a [[Rede de área de controlador|redes CAN]] para desenvolvedores que usam a linguagem [[Linguagem de programação Python|Python]]; fornecendo abstrações comuns para diferentes dispositivos de hardware e um conjunto de utilitários para enviar e receber mensagens por um [[Rede de área de controlador|barramento CAN]]. A biblioteca atualmente suporta CPython, bem como PyPy, e funciona em Mac, Linux e Windows. > Para instalar a biblioteca, use o comando `pip install python-can`. **:: Referência ::** [python-can · PyPI](https://pypi.org/project/python-can/) > [!Warning] Importante > - A [[Rede de área de controlador|rede CAN]] permite apenas a comunicação de dados de 8 bytes. Portanto, o tamanho máximo da variável de dados da mensagem deve ser de 8 bytes. > - [CAN](Rede%20de%20área%20de%20controlador.md) a ele. Para simulações, qualquer ID é válido. No entanto, em aplicações reais, este ID não deve entrar em conflito com outro. # Exemplo de uso simples ```python # import the library import can # create a bus instance using 'with' statement, # this will cause bus.shutdown() to be called on the block exit; # many other interfaces are supported as well (see documentation) with can.Bus(interface='socketcan', channel='vcan0', receive_own_messages=True) as bus: # send a message message = can.Message(arbitration_id=123, is_extended_id=True, data=[0x11, 0x22, 0x33]) bus.send(message, timeout=0.2) # iterate over received messages for msg in bus: print(f"{msg.arbitration_id:X}: {msg.data}") # or use an asynchronous notifier notifier = can.Notifier(bus, [can.Logger("recorded.log"), can.Printer()]) ```