klassen USB_VCP – USB virtuell kommunikationsport

Klassen USB_VCP möjliggör skapande av ett stream-liknande objekt som representerar den virtuella USB-kommunikationsporten. Den kan användas för att läsa och skriva data över USB till den anslutna värden.

Konstruktorer

class pyb.USB_VCP(id: int = 0)

Skapa ett nytt USB_VCP-objekt. Argumentet id väljer vilken USB VCP-port som ska användas när fler än en är exponerad.

Metoder

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

Konfigurera USB VCP-porten. Om argumentet flow inte är -1 ställer det in flödeskontrollen, en bitvis-OR av USB_VCP.RTS och USB_VCP.CTS. RTS styr läsbeteendet; CTS styr skrivbeteendet.

setinterrupt(chr: int) None

Ställ in tecknet som avbryter körande Python-kod. Detta är som standard satt till 3 (CTRL-C), och när ett CTRL-C-tecken tas emot över USB VCP-porten utlöses ett KeyboardInterrupt-undantag.

Sätt till -1 för att inaktivera denna avbrottsfunktion. Detta är användbart när du vill skicka råa byte över USB VCP-porten.

isconnected() bool

Returnerar True om USB är ansluten som en seriell enhet, annars False.

debug_mode_enabled() bool

Returnerar True om OpenMV IDE är ansluten till OpenMV Cam:en.

any() bool

Returnerar True om några tecken väntar, annars False.

close() None

Denna metod gör ingenting. Den finns för att USB_VCP-objektet ska kunna fungera som en fil.

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

Läs högst nbytes från den seriella enheten och returnera dem som ett bytes-objekt. Om nbytes inte anges läser metoden alla tillgängliga byte från den seriella enheten. USB_VCP stream arbetar implicit i icke-blockerande läge, så om ingen väntande data är tillgänglig returnerar denna metod omedelbart med värdet None.

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

Läs byte från den seriella enheten och lagra dem i buf, som bör vara ett buffertliknande objekt. Högst len(buf) byte läses. Om maxlen anges läses högst min(maxlen, len(buf)) byte.

Returnerar antalet byte som lästes in och lagrades i buf eller None om ingen väntande data är tillgänglig.

readline() bytes | None

Läs en hel rad från den seriella enheten.

Returnerar ett bytes-objekt som innehåller datan, inklusive det avslutande radslutstecknet, eller None om ingen väntande data är tillgänglig.

readlines() List[bytes]

Läs så mycket data som möjligt från den seriella enheten och dela upp den i rader.

Returnerar en lista med bytes-objekt, där varje objekt är en av raderna. Varje rad inkluderar radslutstecknet.

write(buf: bytes | bytearray | str) int

Skriv byten från buf till den seriella enheten.

Returnerar antalet skrivna byte.

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

Ta emot data på bussen:

  • data kan vara ett heltal, vilket är antalet byte som ska tas emot, eller en muterbar buffert, som kommer att fyllas med mottagna byte.

  • timeout är timeouten i millisekunder för att vänta på mottagningen.

Returvärde: om data är ett heltal returneras en ny buffert med de mottagna byten, annars returneras antalet byte som lästes in i data.

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

Skicka data över USB VCP:

  • data är datan som ska skickas (ett heltal att skicka, eller ett buffertobjekt).

  • timeout är timeouten i millisekunder för att vänta på sändningen.

Returvärde: antalet skickade byte.

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

Registrera handler för att anropas närhelst en händelse som anges av trigger inträffar. Funktionen handler måste ta exakt ett argument, vilket kommer att vara USB_VCP-objektet. Skicka in None för att inaktivera återanropet.

Giltiga värden för trigger är:

  • USB_VCP.IRQ_RX: ny data är tillgänglig för läsning från USB_VCP-objektet.

Konstanter

RTS: int

Flödeskontrollflagga för init(). Att aktivera RTS får enheten att strypa värdens överföring när läsbufferten är full.

CTS: int

Flödeskontrollflagga för init(). Att aktivera CTS får enheten att respektera värdens flödeskontroll vid skrivningar (blockerar tills värden är redo att ta emot). Kan OR:as med RTS.

IRQ_RX: int

irq()-trigger: utlöses när ny data är tillgänglig för läsning från USB_VCP-objektet.