classe USB_VCP – porta de comunicação virtual USB¶
A classe USB_VCP permite criar um objeto semelhante a um stream que representa a porta de comunicação virtual USB. Pode ser utilizada para ler e escrever dados via USB para o host ligado.
Construtores¶
- class pyb.USB_VCP(id: int = 0)¶
Cria um novo objeto
USB_VCP. O argumento id seleciona qual a porta USB VCP a utilizar quando mais de uma está exposta.Métodos¶
- init(*, flow: int = -1) None¶
Configura a porta USB VCP. Se o argumento flow não for
-1, define o controlo de fluxo como um OR lógico bit a bit deUSB_VCP.RTSeUSB_VCP.CTS.RTScondiciona o comportamento de leitura;CTScondiciona o comportamento de escrita.
- setinterrupt(chr: int) None¶
Define o carácter que interrompe o código Python em execução. É definido como 3 (CTRL-C) por padrão, e quando um carácter CTRL-C é recebido pela porta USB VCP, é lançada uma exceção KeyboardInterrupt.
Defina como -1 para desativar esta funcionalidade de interrupção. Isto é útil quando se pretende enviar bytes brutos pela porta USB VCP.
- isconnected() bool¶
Devolve
Truese o USB estiver ligado como dispositivo série, caso contrárioFalse.
- close() None¶
Este método não faz nada. Existe para que o objeto USB_VCP possa funcionar como um ficheiro.
- read(nbytes: int | None = None) bytes | None¶
Lê no máximo
nbytesdo dispositivo série e devolve-os como objeto bytes. Senbytesnão for especificado, o método lê todos os bytes disponíveis do dispositivo série. O stream USB_VCP trabalha implicitamente em modo não bloqueante, pelo que, se não houver dados pendentes disponíveis, este método retornará imediatamente com o valorNone.
- readinto(buf: bytearray, maxlen: int | None = None) int | None¶
Lê bytes do dispositivo série e armazena-os em
buf, que deve ser um objeto semelhante a um buffer. São lidos no máximolen(buf)bytes. Semaxlenfor fornecido, são lidos no máximomin(maxlen, len(buf))bytes.Devolve o número de bytes lidos e armazenados em
bufouNonese não houver dados pendentes disponíveis.
- readline() bytes | None¶
Lê uma linha completa do dispositivo série.
Devolve um objeto bytes com os dados, incluindo o carácter de nova linha no final, ou
Nonese não houver dados pendentes disponíveis.
- readlines() List[bytes]¶
Lê o máximo de dados possível do dispositivo série, dividindo-os em linhas.
Devolve uma lista de objetos bytes, sendo cada objeto uma das linhas. Cada linha incluirá o carácter de nova linha.
- write(buf: bytes | bytearray | str) int¶
Escreve os bytes de
bufno dispositivo série.Devolve 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 receção.
Valor de retorno: se
datafor um inteiro, devolve um novo buffer com os bytes recebidos; caso contrário, é devolvido o número de bytes lidos emdata.
- send(data: int | bytes | bytearray, *, timeout: int = 5000) int¶
Envia dados pela USB VCP:
datasão os dados a enviar (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¶
Regista handler para ser chamado sempre que ocorra um evento especificado por trigger. A função handler deve aceitar exatamente um argumento, que será o objeto USB VCP. Passe
Nonepara desativar o callback.Os valores válidos para trigger são:
USB_VCP.IRQ_RX: novos dados estão disponíveis para leitura a partir do objeto USB VCP.
Constantes¶
- RTS: int¶
Flag de controlo de fluxo para
init(). Ao ativarRTS, o dispositivo limita a transmissão do host quando o buffer de leitura está cheio.