clase USB_VCP – puerto de comunicación virtual USB¶
La clase USB_VCP permite crear un objeto similar a un stream que representa el puerto de comunicación virtual USB. Puede usarse para leer y escribir datos a través de USB hacia el host conectado.
Constructores¶
- class pyb.USB_VCP(id: int = 0)¶
Crea un nuevo objeto
USB_VCP. El argumento id selecciona qué puerto USB VCP usar cuando hay más de uno expuesto.Métodos¶
- init(*, flow: int = -1) None¶
Configura el puerto USB VCP. Si el argumento flow no es
-1, establece el control de flujo, una operación OR a nivel de bits deUSB_VCP.RTSyUSB_VCP.CTS.RTSregula el comportamiento de lectura;CTSregula el comportamiento de escritura.
- setinterrupt(chr: int) None¶
Establece el carácter que interrumpe la ejecución del código Python. Está establecido en 3 (CTRL-C) por defecto, y cuando se recibe un carácter CTRL-C a través del puerto USB VCP, se lanza una excepción KeyboardInterrupt.
Establézcalo en -1 para deshabilitar esta función de interrupción. Esto es útil cuando se desea enviar bytes en bruto a través del puerto USB VCP.
- isconnected() bool¶
Devuelve
Truesi el USB está conectado como un dispositivo serie, de lo contrarioFalse.
- close() None¶
Este método no hace nada. Existe para que el objeto USB_VCP pueda actuar como un archivo.
- read(nbytes: int | None = None) bytes | None¶
Lee como máximo
nbytesdel dispositivo serie y los devuelve como un objeto bytes. Si no se especificanbytes, el método lee todos los bytes disponibles del dispositivo serie. El stream USB_VCP funciona implícitamente en modo no bloqueante, por lo que si no hay datos pendientes disponibles, este método devolverá inmediatamente con el valorNone.
- readinto(buf: bytearray, maxlen: int | None = None) int | None¶
Lee bytes del dispositivo serie y los almacena en
buf, que debe ser un objeto de tipo búfer. Se leen como máximolen(buf)bytes. Si se damaxlen, se leen como máximomin(maxlen, len(buf))bytes.Devuelve el número de bytes leídos y almacenados en
bufoNonesi no hay datos pendientes disponibles.
- readline() bytes | None¶
Lee una línea completa del dispositivo serie.
Devuelve un objeto bytes que contiene los datos, incluido el carácter de nueva línea final, o
Nonesi no hay datos pendientes disponibles.
- readlines() List[bytes]¶
Lee todos los datos posibles del dispositivo serie, dividiéndolos en líneas.
Devuelve una lista de objetos bytes, siendo cada objeto una de las líneas. Cada línea incluirá el carácter de nueva línea.
- write(buf: bytes | bytearray | str) int¶
Escribe los bytes de
bufen el dispositivo serie.Devuelve el número de bytes escritos.
- recv(data: int | bytearray, *, timeout: int = 5000) bytes | int¶
Recibe datos en el bus:
datapuede ser un entero, que es el número de bytes que recibir, o un búfer mutable, que se llenará con los bytes recibidos.timeoutes el tiempo de espera en milisegundos que esperar la recepción.
Valor de retorno: si
dataes un entero, entonces un nuevo búfer con los bytes recibidos; de lo contrario, se devuelve el número de bytes leídos endata.
- send(data: int | bytes | bytearray, *, timeout: int = 5000) int¶
Envía datos a través del USB VCP:
datason los datos que enviar (un entero que enviar, o un objeto búfer).timeoutes el tiempo de espera en milisegundos que esperar el envío.
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 que sea llamado cada vez que ocurra un evento especificado por trigger. La función handler debe tomar exactamente un argumento, que será el objeto USB VCP. Pase
Nonepara deshabilitar la función de retorno (callback).Los valores válidos para trigger son:
USB_VCP.IRQ_RX: hay nuevos datos disponibles para leer desde el objeto USB VCP.
Constantes¶
- RTS: int¶
Bandera de control de flujo para
init(). HabilitarRTShace que el dispositivo limite la transmisión del host cuando el búfer de lectura está lleno.