class USB_VCP – USB virtuele compoort

De klasse USB_VCP maakt het mogelijk een stream-achtig object te creëren dat de USB virtuele compoort vertegenwoordigt. Het kan worden gebruikt om data via USB naar de aangesloten host te lezen en te schrijven.

Constructors

class pyb.USB_VCP(id: int = 0)

Maak een nieuw USB_VCP-object aan. Het argument id selecteert welke USB VCP-poort moet worden gebruikt wanneer er meer dan één beschikbaar is.

Methoden

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

Configureer de USB VCP-poort. Als het argument flow niet -1 is, stelt het de stroombesturing in, een bitsgewijze OR van USB_VCP.RTS en USB_VCP.CTS. RTS regelt het leesgedrag; CTS regelt het schrijfgedrag.

setinterrupt(chr: int) None

Stel het teken in dat draaiende Python-code onderbreekt. Dit is standaard ingesteld op 3 (CTRL-C), en wanneer er een CTRL-C-teken via de USB VCP-poort wordt ontvangen, wordt een KeyboardInterrupt-uitzondering gegenereerd.

Stel in op -1 om deze interruptfunctie uit te schakelen. Dit is handig wanneer u onbewerkte bytes via de USB VCP-poort wilt verzenden.

isconnected() bool

Retourneert True als USB is aangesloten als serieel apparaat, anders False.

debug_mode_enabled() bool

Retourneert True als OpenMV IDE is aangesloten op de OpenMV Cam.

any() bool

Retourneert True als er tekens wachten, anders False.

close() None

Deze methode doet niets. Het bestaat zodat het USB_VCP-object zich als een bestand kan gedragen.

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

Lees maximaal nbytes van het seriële apparaat en retourneer ze als een bytes-object. Als nbytes niet is opgegeven, leest de methode alle beschikbare bytes van het seriële apparaat. De USB_VCP stream werkt impliciet in niet-blokkerende modus, dus als er geen wachtende data beschikbaar is, retourneert deze methode direct met de waarde None.

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

Lees bytes van het seriële apparaat en sla ze op in buf, dat een buffer-achtig object moet zijn. Er worden maximaal len(buf) bytes gelezen. Als maxlen is opgegeven, worden er maximaal min(maxlen, len(buf)) bytes gelezen.

Retourneert het aantal gelezen en in buf opgeslagen bytes of None als er geen wachtende data beschikbaar is.

readline() bytes | None

Lees een hele regel van het seriële apparaat.

Retourneert een bytes-object met de data, inclusief het afsluitende nieuwe-regelteken, of None als er geen wachtende data beschikbaar is.

readlines() List[bytes]

Lees zoveel mogelijk data van het seriële apparaat en splits deze op in regels.

Retourneert een lijst van bytes-objecten, waarbij elk object een van de regels is. Elke regel bevat het nieuwe-regelteken.

write(buf: bytes | bytearray | str) int

Schrijf de bytes uit buf naar het seriële apparaat.

Retourneert het aantal geschreven bytes.

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

Ontvang data op de bus:

  • data kan een geheel getal zijn, namelijk het aantal te ontvangen bytes, of een veranderbare buffer, die met ontvangen bytes wordt gevuld.

  • timeout is de time-out in milliseconden om op de ontvangst te wachten.

Retourwaarde: als data een geheel getal is, dan een nieuwe buffer met de ontvangen bytes, anders wordt het aantal in data gelezen bytes geretourneerd.

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

Verzend data via de USB VCP:

  • data is de te verzenden data (een geheel getal om te verzenden, of een bufferobject).

  • timeout is de time-out in milliseconden om op de verzending te wachten.

Retourwaarde: aantal verzonden bytes.

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

Registreer handler om te worden aangeroepen wanneer een door trigger gespecificeerde gebeurtenis optreedt. De handler-functie moet precies één argument aannemen, namelijk het USB_VCP-object. Geef None door om de callback uit te schakelen.

Geldige waarden voor trigger zijn:

  • USB_VCP.IRQ_RX: er is nieuwe data beschikbaar om te lezen van het USB_VCP-object.

Constanten

RTS: int

Stroombesturingsvlag voor init(). Het inschakelen van RTS zorgt ervoor dat het apparaat de transmissie van de host beperkt wanneer de leesbuffer vol is.

CTS: int

Stroombesturingsvlag voor init(). Het inschakelen van CTS zorgt ervoor dat het apparaat de stroombesturing van de host tijdens het schrijven respecteert (blokkeert totdat de host gereed is om te ontvangen). Kan met RTS worden gecombineerd via OR.

IRQ_RX: int

irq()-trigger: wordt geactiveerd wanneer er nieuwe data beschikbaar is om te lezen van het USB_VCP-object.