Klasse USB_VCP – virtueller USB-COM-Port¶
Die Klasse USB_VCP ermöglicht die Erstellung eines stream-ähnlichen Objekts, das den virtuellen USB-COM-Port repräsentiert. Sie kann verwendet werden, um Daten über USB an den verbundenen Host zu lesen und zu schreiben.
Konstruktoren¶
- class pyb.USB_VCP(id: int = 0)¶
Erstellt ein neues
USB_VCP-Objekt. Das Argument id wählt aus, welcher USB-VCP-Port verwendet werden soll, wenn mehr als einer verfügbar ist.Methoden¶
- init(*, flow: int = -1) None¶
Konfiguriert den USB-VCP-Port. Wenn das Argument flow nicht
-1ist, legt es die Flusssteuerung fest, eine bitweise OR-Verknüpfung vonUSB_VCP.RTSundUSB_VCP.CTS.RTSsteuert das Leseverhalten;CTSsteuert das Schreibverhalten.
- setinterrupt(chr: int) None¶
Legt das Zeichen fest, das laufenden Python-Code unterbricht. Dies ist standardmäßig auf 3 (CTRL-C) gesetzt, und wenn ein CTRL-C-Zeichen über den USB-VCP-Port empfangen wird, wird eine KeyboardInterrupt-Ausnahme ausgelöst.
Auf -1 setzen, um diese Interrupt-Funktion zu deaktivieren. Dies ist nützlich, wenn Sie rohe Bytes über den USB-VCP-Port senden möchten.
- isconnected() bool¶
Gibt
Truezurück, wenn USB als serielles Gerät verbunden ist, andernfallsFalse.
- close() None¶
Diese Methode tut nichts. Sie existiert, damit das USB_VCP-Objekt sich wie eine Datei verhalten kann.
- read(nbytes: int | None = None) bytes | None¶
Liest höchstens
nbytesvom seriellen Gerät und gibt sie als Bytes-Objekt zurück. Wennnbytesnicht angegeben ist, liest die Methode alle verfügbaren Bytes vom seriellen Gerät. Der USB_VCP-stream arbeitet implizit im nicht-blockierenden Modus, sodass diese Methode sofort mit dem WertNonezurückkehrt, wenn keine ausstehenden Daten verfügbar sind.
- readinto(buf: bytearray, maxlen: int | None = None) int | None¶
Liest Bytes vom seriellen Gerät und speichert sie in
buf, das ein puffer-ähnliches Objekt sein sollte. Es werden höchstenslen(buf)Bytes gelesen. Wennmaxlenangegeben ist, werden höchstensmin(maxlen, len(buf))Bytes gelesen.Gibt die Anzahl der gelesenen und in
bufgespeicherten Bytes zurück oderNone, wenn keine ausstehenden Daten verfügbar sind.
- readline() bytes | None¶
Liest eine ganze Zeile vom seriellen Gerät.
Gibt ein Bytes-Objekt zurück, das die Daten einschließlich des abschließenden Zeilenumbruchzeichens enthält, oder
None, wenn keine ausstehenden Daten verfügbar sind.
- readlines() List[bytes]¶
Liest so viele Daten wie möglich vom seriellen Gerät und teilt sie in Zeilen auf.
Gibt eine Liste von Bytes-Objekten zurück, wobei jedes Objekt eine der Zeilen ist. Jede Zeile enthält das Zeilenumbruchzeichen.
- write(buf: bytes | bytearray | str) int¶
Schreibt die Bytes aus
bufan das serielle Gerät.Gibt die Anzahl der geschriebenen Bytes zurück.
- recv(data: int | bytearray, *, timeout: int = 5000) bytes | int¶
Empfängt Daten auf dem Bus:
datakann eine Ganzzahl sein, die die Anzahl der zu empfangenden Bytes angibt, oder ein veränderbarer Puffer, der mit empfangenen Bytes gefüllt wird.timeoutist die Zeitüberschreitung in Millisekunden, die auf den Empfang gewartet wird.
Rückgabewert: Wenn
dataeine Ganzzahl ist, wird ein neuer Puffer mit den empfangenen Bytes zurückgegeben, andernfalls wird die Anzahl der indatagelesenen Bytes zurückgegeben.
- send(data: int | bytes | bytearray, *, timeout: int = 5000) int¶
Sendet Daten über den USB-VCP:
datasind die zu sendenden Daten (eine zu sendende Ganzzahl oder ein Pufferobjekt).timeoutist die Zeitüberschreitung in Millisekunden, die auf das Senden gewartet wird.
Rückgabewert: Anzahl der gesendeten Bytes.
- irq(handler: Callable[[USB_VCP], None] | None = None, trigger: int = IRQ_RX, hard: bool = False) None¶
Registriert handler, der aufgerufen wird, wann immer ein durch trigger angegebenes Ereignis auftritt. Die handler-Funktion muss genau ein Argument annehmen, welches das USB_VCP-Objekt sein wird. Übergeben Sie
None, um den Callback zu deaktivieren.Gültige Werte für trigger sind:
USB_VCP.IRQ_RX: Neue Daten sind zum Lesen aus dem USB_VCP-Objekt verfügbar.
Konstanten¶
- RTS: int¶
Flusssteuerungs-Flag für
init(). Das Aktivieren vonRTSbewirkt, dass das Gerät die Übertragung des Hosts drosselt, wenn der Lesepuffer voll ist.