classe USB_VCP – port de communication virtuel USB

La classe USB_VCP permet de créer un objet de type stream représentant le port de communication virtuel USB. Elle peut être utilisée pour lire et écrire des données via USB vers l’hôte connecté.

Constructeurs

class pyb.USB_VCP(id: int = 0)

Crée un nouvel objet USB_VCP. L’argument id sélectionne quel port USB VCP utiliser lorsque plus d’un est exposé.

Méthodes

init(*, flow: int = -1) None

Configure le port USB VCP. Si l’argument flow n’est pas -1, il définit le contrôle de flux, un OU binaire de USB_VCP.RTS et USB_VCP.CTS. RTS régule le comportement de lecture ; CTS régule le comportement d’écriture.

setinterrupt(chr: int) None

Définit le caractère qui interrompt l’exécution du code Python. Il est défini sur 3 (CTRL-C) par défaut, et lorsqu’un caractère CTRL-C est reçu sur le port USB VCP, une exception KeyboardInterrupt est levée.

Définissez-le sur -1 pour désactiver cette fonctionnalité d’interruption. Cela est utile lorsque vous souhaitez envoyer des octets bruts sur le port USB VCP.

isconnected() bool

Renvoie True si l’USB est connecté en tant que périphérique série, sinon False.

debug_mode_enabled() bool

Renvoie True si OpenMV IDE est connecté à l’OpenMV Cam.

any() bool

Renvoie True si des caractères sont en attente, sinon False.

close() None

Cette méthode ne fait rien. Elle existe pour que l’objet USB_VCP puisse se comporter comme un fichier.

read(nbytes: int | None = None) bytes | None

Lit au plus nbytes depuis le périphérique série et les renvoie sous forme d’objet bytes. Si nbytes n’est pas spécifié, la méthode lit tous les octets disponibles depuis le périphérique série. Le stream USB_VCP fonctionne implicitement en mode non bloquant, donc si aucune donnée en attente n’est disponible, cette méthode renverra immédiatement la valeur None.

readinto(buf: bytearray, maxlen: int | None = None) int | None

Lit des octets depuis le périphérique série et les stocke dans buf, qui doit être un objet de type tampon. Au plus len(buf) octets sont lus. Si maxlen est fourni, alors au plus min(maxlen, len(buf)) octets sont lus.

Renvoie le nombre d’octets lus et stockés dans buf ou None si aucune donnée en attente n’est disponible.

readline() bytes | None

Lit une ligne entière depuis le périphérique série.

Renvoie un objet bytes contenant les données, y compris le caractère de saut de ligne final, ou None si aucune donnée en attente n’est disponible.

readlines() List[bytes]

Lit autant de données que possible depuis le périphérique série, en les découpant en lignes.

Renvoie une liste d’objets bytes, chaque objet étant l’une des lignes. Chaque ligne inclura le caractère de saut de ligne.

write(buf: bytes | bytearray | str) int

Écrit les octets de buf sur le périphérique série.

Renvoie le nombre d’octets écrits.

recv(data: int | bytearray, *, timeout: int = 5000) bytes | int

Reçoit des données sur le bus :

  • data peut être un entier, qui est le nombre d’octets à recevoir, ou un tampon mutable, qui sera rempli avec les octets reçus.

  • timeout est le délai d’attente en millisecondes pour la réception.

Valeur de retour : si data est un entier, alors un nouveau tampon des octets reçus, sinon le nombre d’octets lus dans data est renvoyé.

send(data: int | bytes | bytearray, *, timeout: int = 5000) int

Envoie des données via l’USB VCP :

  • data est la donnée à envoyer (un entier à envoyer, ou un objet tampon).

  • timeout est le délai d’attente en millisecondes pour l’envoi.

Valeur de retour : nombre d’octets envoyés.

irq(handler: Callable[[USB_VCP], None] | None = None, trigger: int = IRQ_RX, hard: bool = False) None

Enregistre handler pour être appelé chaque fois qu’un événement spécifié par trigger se produit. La fonction handler doit prendre exactement un argument, qui sera l’objet USB VCP. Passez None pour désactiver la fonction de rappel.

Les valeurs valides pour trigger sont :

  • USB_VCP.IRQ_RX : de nouvelles données sont disponibles en lecture depuis l’objet USB VCP.

Constantes

RTS: int

Indicateur de contrôle de flux pour init(). Activer RTS fait que le périphérique limite la transmission de l’hôte lorsque le tampon de lecture est plein.

CTS: int

Indicateur de contrôle de flux pour init(). Activer CTS fait que le périphérique respecte le contrôle de flux de l’hôte pendant les écritures (bloquant jusqu’à ce que l’hôte soit prêt à recevoir). Peut être combiné par OU avec RTS.

IRQ_RX: int

Déclencheur irq() : se déclenche lorsque de nouvelles données sont disponibles en lecture depuis l’objet USB VCP.