SerialPort
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Dedicated Web Workers verfügbar.
Das SerialPort-Interface der Web Serial API ermöglicht den Zugriff auf einen seriellen Port des Host-Geräts.
Konstruktor
Instanzen dieses Interfaces können durch Aufrufen von Methoden des Serial-Interfaces erhalten werden, daher hat es keinen eigenen Konstruktor.
Instanz-Eigenschaften
SerialPort.connectedSchreibgeschützt-
Gibt einen booleschen Wert zurück, der angibt, ob der Port logisch mit dem Gerät verbunden ist.
SerialPort.readableSchreibgeschützt-
Gibt einen
ReadableStreamzum Empfangen von Daten vom mit dem Port verbundenen Gerät zurück. SerialPort.writableSchreibgeschützt-
Gibt einen
WritableStreamzum Senden von Daten an das mit dem Port verbundene Gerät zurück.
Instanz-Methoden
SerialPort.forget()-
Gibt ein
Promisezurück, das aufgelöst wird, wenn der Zugriff auf den seriellen Port widerrufen wird. Ein Aufruf dieser Methode "vergisst" das Gerät, setzt alle zuvor eingestellten Berechtigungen zurück, sodass die aufrufende Seite nicht mehr mit dem Port kommunizieren kann. SerialPort.getInfo()-
Gibt ein Objekt zurück, das Identifikationsinformationen für das über den Port verfügbare Gerät enthält.
SerialPort.open()-
Gibt ein
Promisezurück, das aufgelöst wird, wenn der Port geöffnet wird. Standardmäßig wird der Port mit 8 Datenbits, 1 Stoppbit und ohne Paritätsprüfung geöffnet. SerialPort.setSignals()-
Setzt Steuersignale auf dem Port und gibt ein
Promisezurück, das aufgelöst wird, wenn sie gesetzt sind. SerialPort.getSignals()-
Gibt ein
Promisezurück, das mit einem Objekt aufgelöst wird, das den aktuellen Zustand der Steuersignale des Ports enthält. SerialPort.close()-
Gibt ein
Promisezurück, das aufgelöst wird, wenn der Port geschlossen wird.
Ereignisse
connect-
Wird ausgelöst, wenn der Port mit dem Gerät verbindet.
disconnect-
Wird ausgelöst, wenn der Port vom Gerät trennt.
Beispiele
>Öffnen eines Ports
Bevor auf einem seriellen Port kommuniziert wird, muss dieser geöffnet werden. Das Öffnen des Ports ermöglicht der Seite, die notwendigen Parameter festzulegen, die steuern, wie Daten gesendet und empfangen werden. Entwickler sollten die Dokumentation des Geräts, mit dem sie sich verbinden, auf geeignete Parameter prüfen.
await port.open({ baudRate: 9600 /* pick your baud rate */ });
Sobald das von open() zurückgegebene Promise aufgelöst ist, können die readable- und writable-Attribute zugegriffen werden, um die ReadableStream- und WritableStream-Instanzen zu erhalten, die für das Empfangen von Daten vom und das Senden von Daten an das verbundene Gerät verwendet werden.
Daten von einem Port lesen
Das folgende Beispiel zeigt, wie man Daten von einem Port liest. Die äußere Schleife behandelt nicht-tödliche Fehler, indem sie einen neuen Leser erstellt, bis ein tödlicher Fehler auftritt und readable null wird.
while (port.readable) {
const reader = port.readable.getReader();
try {
while (true) {
const { value, done } = await reader.read();
if (done) {
// |reader| has been canceled.
break;
}
// Do something with |value|…
}
} catch (error) {
// Handle |error|…
} finally {
reader.releaseLock();
}
}
Daten an einen Port schreiben
Das folgende Beispiel zeigt, wie man einen String an einen Port schreibt. Ein TextEncoder konvertiert den String in ein Uint8Array vor der Übertragung.
const encoder = new TextEncoder();
const writer = port.writable.getWriter();
await writer.write(encoder.encode("PING"));
writer.releaseLock();
Spezifikationen
| Spezifikation |
|---|
| Web Serial API> # dom-serialport> |