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.