třída USB_VCP – USB virtuální komunikační port¶
Třída USB_VCP umožňuje vytvoření objektu podobného stream, který představuje USB virtuální komunikační port. Lze jej použít ke čtení a zápisu dat přes USB do připojeného hostitele.
Konstruktory¶
- class pyb.USB_VCP(id: int = 0)¶
Vytvoří nový objekt
USB_VCP. Argument id vybírá, který USB VCP port se má použít, když je vyveden více než jeden.Metody¶
- init(*, flow: int = -1) None¶
Nakonfiguruje USB VCP port. Pokud argument flow není
-1, nastaví řízení toku, bitový ORUSB_VCP.RTSaUSB_VCP.CTS.RTSřídí chování čtení;CTSřídí chování zápisu.
- setinterrupt(chr: int) None¶
Nastaví znak, který přeruší běžící Python kód. Ten je standardně nastaven na 3 (CTRL-C), a když je přes USB VCP port přijat znak CTRL-C, vyvolá se výjimka KeyboardInterrupt.
Nastavte na -1 pro vypnutí této funkce přerušení. To je užitečné, když chcete odesílat surové bajty přes USB VCP port.
- close() None¶
Tato metoda nedělá nic. Existuje proto, aby se objekt USB_VCP mohl chovat jako soubor.
- read(nbytes: int | None = None) bytes | None¶
Přečte nejvýše
nbytesze sériového zařízení a vrátí je jako objekt bytes. Pokudnbytesnení zadáno, metoda přečte ze sériového zařízení všechny dostupné bajty. USB_VCP stream implicitně pracuje v neblokujícím režimu, takže pokud nejsou k dispozici žádná čekající data, tato metoda se okamžitě vrátí s hodnotouNone.
- readinto(buf: bytearray, maxlen: int | None = None) int | None¶
Přečte bajty ze sériového zařízení a uloží je do
buf, což by měl být objekt podobný bufferu. Přečte se nejvýšelen(buf)bajtů. Pokud je zadánomaxlen, pak se přečte nejvýšemin(maxlen, len(buf))bajtů.Vrátí počet bajtů přečtených a uložených do
bufneboNone, pokud nejsou k dispozici žádná čekající data.
- readline() bytes | None¶
Přečte celý řádek ze sériového zařízení.
Vrátí objekt bytes obsahující data včetně koncového znaku nového řádku nebo
None, pokud nejsou k dispozici žádná čekající data.
- readlines() List[bytes]¶
Přečte co nejvíce dat ze sériového zařízení a rozdělí je na řádky.
Vrátí seznam objektů bytes, kde každý objekt je jedním z řádků. Každý řádek bude zahrnovat znak nového řádku.
- write(buf: bytes | bytearray | str) int¶
Zapíše bajty z
bufdo sériového zařízení.Vrátí počet zapsaných bajtů.
- recv(data: int | bytearray, *, timeout: int = 5000) bytes | int¶
Přijme data ze sběrnice:
datamůže být celé číslo, což je počet bajtů k přijetí, nebo měnitelný buffer, který se naplní přijatými bajty.timeoutje časový limit v milisekundách pro čekání na příjem.
Návratová hodnota: pokud je
datacelé číslo, pak nový buffer s přijatými bajty, jinak se vrátí počet bajtů přečtených dodata.
- send(data: int | bytes | bytearray, *, timeout: int = 5000) int¶
Odešle data přes USB VCP:
datajsou data k odeslání (celé číslo k odeslání nebo objekt bufferu).timeoutje časový limit v milisekundách pro čekání na odeslání.
Návratová hodnota: počet odeslaných bajtů.
- irq(handler: Callable[[USB_VCP], None] | None = None, trigger: int = IRQ_RX, hard: bool = False) None¶
Zaregistruje handler, který se zavolá pokaždé, když nastane událost určená pomocí trigger. Funkce handler musí přijímat přesně jeden argument, kterým bude objekt USB VCP. Předáním
Nonecallback vypnete.Platné hodnoty pro trigger jsou:
USB_VCP.IRQ_RX: jsou k dispozici nová data ke čtení z objektu USB VCP.
Konstanty¶
- RTS: int¶
Příznak řízení toku pro
init(). ZapnutíRTSzpůsobí, že zařízení omezí vysílání hostitele, když je čtecí buffer plný.