class USB_VCP – port de comunicație virtual USB

Clasa USB_VCP permite crearea unui obiect de tip stream care reprezintă portul de comunicație virtual USB. Poate fi folosit pentru a citi și scrie date prin USB către gazda conectată.

Constructori

class pyb.USB_VCP(id: int = 0)

Creează un nou obiect USB_VCP. Argumentul id selectează care port USB VCP să fie folosit atunci când mai multe sunt expuse.

Metode

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

Configurează portul USB VCP. Dacă argumentul flow nu este -1, acesta setează controlul fluxului, un OR pe biți între USB_VCP.RTS și USB_VCP.CTS. RTS controlează comportamentul la citire; CTS controlează comportamentul la scriere.

setinterrupt(chr: int) None

Setează caracterul care întrerupe execuția codului Python. Acesta este setat la 3 (CTRL-C) în mod implicit și, când un caracter CTRL-C este primit prin portul USB VCP, se generează o excepție KeyboardInterrupt.

Setați la -1 pentru a dezactiva această funcție de întrerupere. Acest lucru este util atunci când doriți să trimiteți octeți bruți prin portul USB VCP.

isconnected() bool

Returnează True dacă USB este conectat ca dispozitiv serial, altfel False.

debug_mode_enabled() bool

Returnează True dacă OpenMV IDE este conectat la OpenMV Cam.

any() bool

Returnează True dacă există caractere în așteptare, altfel False.

close() None

Această metodă nu face nimic. Există pentru ca obiectul USB_VCP să se poată comporta ca un fișier.

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

Citește cel mult nbytes de la dispozitivul serial și îi returnează ca un obiect bytes. Dacă nbytes nu este specificat, metoda citește toți octeții disponibili de la dispozitivul serial. Fluxul stream USB_VCP funcționează implicit în mod non-blocant, deci dacă nu există date în așteptare, această metodă va returna imediat cu valoarea None.

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

Citește octeți de la dispozitivul serial și îi stochează în buf, care ar trebui să fie un obiect de tip tampon (buffer). Se citesc cel mult len(buf) octeți. Dacă maxlen este dat, atunci se citesc cel mult min(maxlen, len(buf)) octeți.

Returnează numărul de octeți citiți și stocați în buf sau None dacă nu există date în așteptare.

readline() bytes | None

Citește o linie întreagă de la dispozitivul serial.

Returnează un obiect bytes care conține datele, inclusiv caracterul de linie nouă final, sau None dacă nu există date în așteptare.

readlines() List[bytes]

Citește cât mai multe date posibil de la dispozitivul serial, împărțindu-le în linii.

Returnează o listă de obiecte bytes, fiecare obiect fiind una dintre linii. Fiecare linie va include caracterul de linie nouă.

write(buf: bytes | bytearray | str) int

Scrie octeții din buf către dispozitivul serial.

Returnează numărul de octeți scriși.

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

Primește date pe magistrală:

  • data poate fi un întreg, care este numărul de octeți de primit, sau un tampon (buffer) modificabil, care va fi umplut cu octeții primiți.

  • timeout este timpul de așteptare (timeout) în milisecunde pentru recepție.

Valoare returnată: dacă data este un întreg, atunci un nou tampon cu octeții primiți, altfel se returnează numărul de octeți citiți în data.

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

Trimite date prin USB VCP:

  • data sunt datele de trimis (un întreg de trimis sau un obiect tampon).

  • timeout este timpul de așteptare (timeout) în milisecunde pentru trimitere.

Valoare returnată: numărul de octeți trimiși.

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

Înregistrează handler-ul care urmează să fie apelat ori de câte ori survine un eveniment specificat de trigger. Funcția handler trebuie să accepte exact un argument, care va fi obiectul USB VCP. Transmiteți None pentru a dezactiva funcția de retroapelare (callback).

Valorile valide pentru trigger sunt:

  • USB_VCP.IRQ_RX: sunt disponibile date noi pentru citire din obiectul USB VCP.

Constante

RTS: int

Indicator de control al fluxului pentru init(). Activarea RTS face ca dispozitivul să limiteze transmisia gazdei atunci când tamponul de citire este plin.

CTS: int

Indicator de control al fluxului pentru init(). Activarea CTS face ca dispozitivul să respecte controlul fluxului al gazdei în timpul scrierilor (blocând până când gazda este pregătită să primească). Poate fi combinat prin OR cu RTS.

IRQ_RX: int

Declanșator irq(): se activează când sunt disponibile date noi pentru citire din obiectul USB VCP.