Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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.

EventTarget SerialPort

Konstruktor

Instanzen dieses Interfaces können durch Aufrufen von Methoden des Serial-Interfaces erhalten werden, daher hat es keinen eigenen Konstruktor.

Instanz-Eigenschaften

SerialPort.connected Schreibgeschützt

Gibt einen booleschen Wert zurück, der angibt, ob der Port logisch mit dem Gerät verbunden ist.

SerialPort.readable Schreibgeschützt

Gibt einen ReadableStream zum Empfangen von Daten vom mit dem Port verbundenen Gerät zurück.

SerialPort.writable Schreibgeschützt

Gibt einen WritableStream zum Senden von Daten an das mit dem Port verbundene Gerät zurück.

Instanz-Methoden

SerialPort.forget()

Gibt ein Promise zurü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 Promise zurü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 Promise zurück, das aufgelöst wird, wenn sie gesetzt sind.

SerialPort.getSignals()

Gibt ein Promise zurück, das mit einem Objekt aufgelöst wird, das den aktuellen Zustand der Steuersignale des Ports enthält.

SerialPort.close()

Gibt ein Promise zurü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.

js
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.

js
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.

js
const encoder = new TextEncoder();
const writer = port.writable.getWriter();
await writer.write(encoder.encode("PING"));
writer.releaseLock();

Spezifikationen

Spezifikation
Web Serial API
# dom-serialport

Browser-Kompatibilität