USB_VCP osztály – USB virtuális kommunikációs port

A USB_VCP osztály lehetővé teszi egy stream-szerű objektum létrehozását, amely az USB virtuális kommunikációs portot reprezentálja. Használható adatok olvasására és írására USB-n keresztül a csatlakoztatott gazdagéphez.

Konstruktorok

class pyb.USB_VCP(id: int = 0)

Létrehoz egy új USB_VCP objektumot. Az id argumentum választja ki, hogy melyik USB VCP portot kell használni, ha egynél több van kivezetve.

Metódusok

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

Konfigurálja az USB VCP portot. Ha a flow argumentum nem -1, akkor beállítja az áramlásvezérlést, amely a USB_VCP.RTS és USB_VCP.CTS bitenkénti VAGY kapcsolata. Az RTS az olvasási viselkedést szabályozza; a CTS az írási viselkedést szabályozza.

setinterrupt(chr: int) None

Beállítja azt a karaktert, amely megszakítja a futó Python kódot. Ez alapértelmezés szerint 3 (CTRL-C), és amikor egy CTRL-C karakter érkezik az USB VCP porton keresztül, egy KeyboardInterrupt kivétel keletkezik.

Állítsa -1-re ennek a megszakítási funkciónak a letiltásához. Ez akkor hasznos, amikor nyers bájtokat szeretne küldeni az USB VCP porton keresztül.

isconnected() bool

True értéket ad vissza, ha az USB soros eszközként van csatlakoztatva, ellenkező esetben False.

debug_mode_enabled() bool

True értéket ad vissza, ha az OpenMV IDE csatlakoztatva van az OpenMV Camhez.

any() bool

True értéket ad vissza, ha vannak várakozó karakterek, ellenkező esetben False.

close() None

Ez a metódus nem csinál semmit. Azért létezik, hogy a USB_VCP objektum fájlként viselkedhessen.

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

Legfeljebb nbytes bájtot olvas be a soros eszközről, és bytes objektumként adja vissza. Ha a nbytes nincs megadva, akkor a metódus az összes elérhető bájtot beolvassa a soros eszközről. A USB_VCP stream implicit módon nem blokkoló módban működik, így ha nincs elérhető függőben lévő adat, ez a metódus azonnal visszatér None értékkel.

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

Bájtokat olvas be a soros eszközről, és a buf pufferbe tárolja, amelynek puffer-szerű objektumnak kell lennie. Legfeljebb len(buf) bájtot olvas be. Ha a maxlen meg van adva, akkor legfeljebb min(maxlen, len(buf)) bájtot olvas be.

Visszaadja a beolvasott és a buf pufferbe tárolt bájtok számát, vagy None értéket, ha nincs elérhető függőben lévő adat.

readline() bytes | None

Beolvas egy egész sort a soros eszközről.

Egy bytes objektumot ad vissza, amely az adatokat tartalmazza, beleértve a záró újsor karaktert is, vagy None értéket, ha nincs elérhető függőben lévő adat.

readlines() List[bytes]

A lehető legtöbb adatot olvassa be a soros eszközről, sorokra bontva azt.

Egy bytes objektumokból álló listát ad vissza, ahol minden objektum egy-egy sor. Minden sor tartalmazza az újsor karaktert.

write(buf: bytes | bytearray | str) int

A buf pufferből származó bájtokat a soros eszközre írja.

Visszaadja a kiírt bájtok számát.

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

Adatot fogad a buszon:

  • A data lehet egy egész szám, amely a fogadandó bájtok száma, vagy egy módosítható puffer, amelyet a fogadott bájtokkal tölt fel.

  • A timeout a fogadásra való várakozás időkorlátja milliszekundumban.

Visszatérési érték: ha a data egész szám, akkor egy új puffer a fogadott bájtokkal, ellenkező esetben a data pufferbe olvasott bájtok száma kerül visszaadásra.

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

Adatot küld az USB VCP-n keresztül:

  • A data a küldendő adat (egy küldendő egész szám vagy egy puffer objektum).

  • A timeout a küldésre való várakozás időkorlátja milliszekundumban.

Visszatérési érték: az elküldött bájtok száma.

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

Regisztrálja a handler függvényt, amelyet meghívnak, valahányszor a trigger által megadott esemény bekövetkezik. A handler függvénynek pontosan egy argumentumot kell fogadnia, amely a USB VCP objektum lesz. Adjon át None értéket a visszahívás letiltásához.

A trigger érvényes értékei:

  • USB_VCP.IRQ_RX: új adat áll rendelkezésre olvasásra a USB VCP objektumból.

Konstansok

RTS: int

Áramlásvezérlési jelző az init() metódushoz. Az RTS engedélyezése arra készteti az eszközt, hogy lefékezze a gazdagép adását, amikor az olvasási puffer megtelt.

CTS: int

Áramlásvezérlési jelző az init() metódushoz. A CTS engedélyezése arra készteti az eszközt, hogy írás közben tiszteletben tartsa a gazdagép áramlásvezérlését (blokkolva, amíg a gazdagép készen áll a fogadásra). OR-olható a RTS jelzővel.

IRQ_RX: int

irq() trigger: akkor aktiválódik, amikor új adat áll rendelkezésre olvasásra a USB VCP objektumból.