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 întreUSB_VCP.RTSșiUSB_VCP.CTS.RTScontrolează comportamentul la citire;CTScontrolează 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.
- 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
nbytesde la dispozitivul serial și îi returnează ca un obiect bytes. Dacănbytesnu 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 valoareaNone.
- 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 multlen(buf)octeți. Dacămaxleneste dat, atunci se citesc cel multmin(maxlen, len(buf))octeți.Returnează numărul de octeți citiți și stocați în
bufsauNonedacă 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
Nonedacă 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
bufcă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ă:
datapoate 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.timeouteste timpul de așteptare (timeout) în milisecunde pentru recepție.
Valoare returnată: dacă
dataeste un întreg, atunci un nou tampon cu octeții primiți, altfel se returnează numărul de octeți citiți îndata.
- send(data: int | bytes | bytearray, *, timeout: int = 5000) int¶
Trimite date prin USB VCP:
datasunt datele de trimis (un întreg de trimis sau un obiect tampon).timeouteste 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
Nonepentru 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(). ActivareaRTSface ca dispozitivul să limiteze transmisia gazdei atunci când tamponul de citire este plin.