Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
SerialPort
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Sicherer Kontext: Diese Funktion ist nur insicheren Kontexten (HTTPS) in einigen oder allenunterstützenden Browsern verfügbar.
Experimentell:Dies ist eineexperimentelle Technologie
Überprüfen Sie dieBrowser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Hinweis: Diese Funktion ist inDedicated Web Workers verfügbar.
DasSerialPort-Interface derWeb Serial API ermöglicht Zugriff auf einen seriellen Anschluss des Host-Geräts.
In diesem Artikel
Konstruktor
Instanzen dieses Interfaces können durch Aufrufen von Methoden desSerial Interfaces erhalten werden, daher besitzt es keinen eigenen Konstruktor.
Instanzeigenschaften
SerialPort.connectedSchreibgeschütztExperimentellGibt einen booleschen Wert zurück, der anzeigt, ob der Anschluss logisch mit dem Gerät verbunden ist.
SerialPort.readableSchreibgeschütztExperimentellGibt einen
ReadableStreamzum Empfangen von Daten vom Gerät zurück, das mit dem Anschluss verbunden ist.SerialPort.writableSchreibgeschütztExperimentellGibt einen
WritableStreamzum Senden von Daten an das Gerät zurück, das mit dem Anschluss verbunden ist.
Instanzmethoden
SerialPort.forget()ExperimentellGibt ein
Promisezurück, das aufgelöst wird, wenn der Zugriff auf den seriellen Anschluss widerrufen wird. Ein Aufruf dieser Methode "vergisst" das Gerät, setzt alle zuvor festgelegten Berechtigungen zurück, sodass die aufrufende Site nicht mehr mit dem Anschluss kommunizieren kann.SerialPort.getInfo()ExperimentellGibt ein Objekt zurück, das identifizierende Informationen für das über den Anschluss verfügbare Gerät enthält.
SerialPort.open()ExperimentellGibt ein
Promisezurück, das aufgelöst wird, wenn der Anschluss geöffnet wird. Standardmäßig wird der Anschluss mit 8 Datenbits, 1 Stoppbit und ohne Paritätsprüfung geöffnet.SerialPort.setSignals()ExperimentellSetzt Steuersignale am Anschluss und gibt ein
Promisezurück, das aufgelöst wird, wenn diese gesetzt sind.SerialPort.getSignals()ExperimentellGibt ein
Promisezurück, das mit einem Objekt aufgelöst wird, das den aktuellen Status der Steuersignale des Anschlusses enthält.SerialPort.close()ExperimentellGibt ein
Promisezurück, das aufgelöst wird, wenn der Anschluss geschlossen wird.
Ereignisse
connectExperimentellWird ausgelöst, wenn der Anschluss mit dem Gerät verbunden wird.
disconnectExperimentellWird ausgelöst, wenn der Anschluss vom Gerät getrennt wird.
Beispiele
>Öffnen eines Anschlusses
Bevor über einen seriellen Anschluss kommuniziert werden kann, muss dieser geöffnet werden. Das Öffnen des Anschlusses ermöglicht es der Site, die erforderlichen Parameter anzugeben, die steuern, wie Daten übertragen und empfangen werden. Entwickler sollten die Dokumentation für das Gerät, mit dem sie sich verbinden, konsultieren, um die geeigneten Parameter zu finden.
await port.open({ baudRate: 9600 /* pick your baud rate */ });Sobald das vonopen() zurückgegebenePromise aufgelöst wird, können die Attributereadable undwritable abgerufen werden, um die Instanzen vonReadableStream undWritableStream zum Empfangen von Daten vom und Senden von Daten an das angeschlossene Gerät zu erhalten.
Lesen von Daten aus einem Anschluss
Das folgende Beispiel zeigt, wie Daten von einem Anschluss gelesen werden können. Die äußere Schleife behandelt nicht-kritische Fehler und erstellt einen neuen Leser, bis ein kritischer Fehler auftritt undreadablenull 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(); }}Schreiben von Daten in einen Anschluss
Das folgende Beispiel zeigt, wie ein String in einen Anschluss geschrieben wird. EinTextEncoder konvertiert den String vor der Übertragung in einUint8Array.
const encoder = new TextEncoder();const writer = port.writable.getWriter();await writer.write(encoder.encode("PING"));writer.releaseLock();Spezifikationen
| Specification |
|---|
| Web Serial API> # dom-serialport> |