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.