classe USB_VCP – porta de comunicação virtual USB#
A classe USB_VCP permite a criação de um objeto do tipo stream que representa a porta de comunicação virtual USB. Ela pode ser usada para ler e escrever dados via USB para o host conectado.
Construtores#
- class pyb.USB_VCP(id: int = 0)#
Cria um novo objeto
USB_VCP. O argumento id seleciona qual porta USB VCP usar quando mais de uma é exposta.Métodos#
- init(*, flow: int = -1) None#
Configura a porta USB VCP. Se o argumento flow não for
-1, ele define o controle de fluxo, um OR bit a bit deUSB_VCP.RTSeUSB_VCP.CTS.RTScontrola o comportamento de leitura;CTScontrola o comportamento de escrita.
- setinterrupt(chr: int) None#
Define o caractere que interrompe a execução do código Python. Isso é definido como 3 (CTRL-C) por padrão, e quando um caractere CTRL-C é recebido pela porta USB VCP, uma exceção KeyboardInterrupt é lançada.
Defina como -1 para desabilitar esse recurso de interrupção. Isso é útil quando você deseja enviar bytes brutos pela porta USB VCP.
- isconnected() bool#
Retorna
Truese o USB estiver conectado como um dispositivo serial, caso contrárioFalse.
- close() None#
Este método não faz nada. Ele existe para que o objeto USB_VCP possa agir como um arquivo.
- read(nbytes: int | None = None) bytes | None#
Lê no máximo
nbytesdo dispositivo serial e os retorna como um objeto bytes. Senbytesnão for especificado, o método lê todos os bytes disponíveis do dispositivo serial. O stream USB_VCP funciona implicitamente em modo não bloqueante, portanto, se nenhum dado pendente estiver disponível, este método retornará imediatamente com o valorNone.
- readinto(buf: bytearray, maxlen: int | None = None) int | None#
Lê bytes do dispositivo serial e os armazena em
buf, que deve ser um objeto do tipo buffer. No máximolen(buf)bytes são lidos. Semaxlenfor fornecido, então no máximomin(maxlen, len(buf))bytes são lidos.Retorna o número de bytes lidos e armazenados em
bufouNonese nenhum dado pendente estiver disponível.
- readline() bytes | None#
Lê uma linha inteira do dispositivo serial.
Retorna um objeto bytes contendo os dados, incluindo o caractere de nova linha no final, ou
Nonese nenhum dado pendente estiver disponível.
- readlines() List[bytes]#
Lê a maior quantidade de dados possível do dispositivo serial, dividindo-os em linhas.
Retorna uma lista de objetos bytes, cada objeto sendo uma das linhas. Cada linha incluirá o caractere de nova linha.
- write(buf: bytes | bytearray | str) int#
Escreve os bytes de
bufno dispositivo serial.Retorna o número de bytes escritos.
- recv(data: int | bytearray, *, timeout: int = 5000) bytes | int#
Recebe dados no barramento:
datapode ser um inteiro, que é o número de bytes a receber, ou um buffer mutável, que será preenchido com os bytes recebidos.timeouté o tempo limite em milissegundos para aguardar a recepção.
Valor de retorno: se
datafor um inteiro, então um novo buffer com os bytes recebidos; caso contrário, o número de bytes lidos emdataé retornado.
- send(data: int | bytes | bytearray, *, timeout: int = 5000) int#
Envia dados pela USB VCP:
datasão os dados a serem enviados (um inteiro a enviar ou um objeto buffer).timeouté o tempo limite em milissegundos para aguardar o envio.
Valor de retorno: número de bytes enviados.
- irq(handler: Callable[[USB_VCP], None] | None = None, trigger: int = IRQ_RX, hard: bool = False) None#
Registra handler para ser chamado sempre que um evento especificado por trigger ocorrer. A função handler deve receber exatamente um argumento, que será o objeto USB VCP. Passe
Nonepara desabilitar o callback.Os valores válidos para trigger são:
USB_VCP.IRQ_RX: novos dados estão disponíveis para leitura no objeto USB VCP.
Constantes#
- RTS: int#
Flag de controle de fluxo para
init(). HabilitarRTSfaz com que o dispositivo limite a transmissão do host quando o buffer de leitura está cheio.