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 auf dem Host-Gerät.
Konstruktor
Instanzen dieses Interfaces können durch Aufrufe von Methoden des Serial-Interfaces erhalten werden, daher hat es keinen eigenen Konstruktor.
Instanzeigenschaften
SerialPort.connectedSchreibgeschützt-
Gibt einen booleschen Wert zurück, der anzeigt, ob der Port logisch mit dem Gerät verbunden ist.
SerialPort.readableSchreibgeschützt-
Gibt einen
ReadableStreamzurück, um Daten vom mit dem Port verbundenen Gerät zu empfangen. SerialPort.writableSchreibgeschützt-
Gibt einen
WritableStreamzurück, um Daten an das mit dem Port verbundene Gerät zu senden.
Instanzmethoden
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 gesetzten 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 am 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 er geöffnet werden. Das Öffnen des Ports ermöglicht es der Seite, die notwendigen Parameter festzulegen, die steuern, wie Daten gesendet und empfangen werden. Entwickler sollten die Dokumentation für das mit dem Port verbundene Gerät konsultieren, um die geeigneten Parameter festzulegen.
await port.open({ baudRate: 9600 /* pick your baud rate */ });
Sobald das Promise, das von open() zurückgegeben wird, aufgelöst ist, können die readable- und writable-Attribute aufgerufen werden, um die ReadableStream- und WritableStream-Instanzen zu erhalten, die zum Empfangen von Daten vom und 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-fatale Fehler und erstellt einen neuen Leser, bis ein fataler Fehler auftritt und readable zu 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 zu einem Port schreiben
Das folgende Beispiel zeigt, wie man einen String zu einem Port schreibt. Ein TextEncoder konvertiert den String vor der Übertragung in ein Uint8Array.
const encoder = new TextEncoder();
const writer = port.writable.getWriter();
await writer.write(encoder.encode("PING"));
writer.releaseLock();
Spezifikationen
| Spezifikation |
|---|
| Web Serial API> # dom-serialport> |