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 in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Hinweis: Diese Funktion ist in Dedicated Web Workers verfügbar.

Die SerialPort-Schnittstelle der Web Serial API bietet Zugriff auf einen seriellen Port des Host-Geräts.

EventTarget SerialPort

Konstruktor

Instanzen dieser Schnittstelle können durch Aufrufen von Methoden der Serial-Schnittstelle erhalten werden, daher besitzt sie keinen eigenen Konstruktor.

Instanzeigenschaften

SerialPort.readable Schreibgeschützt Experimentell

Gibt einen ReadableStream zurück, um Daten vom Gerät zu empfangen, das mit dem Port verbunden ist.

SerialPort.writable Schreibgeschützt Experimentell

Gibt einen WritableStream zurück, um Daten an das Gerät zu senden, das mit dem Port verbunden ist.

Instanzmethoden

SerialPort.forget() Experimentell

Gibt ein Promise zurück, das aufgelöst wird, wenn der Port geschlossen und vergessen wird.

SerialPort.getInfo() Experimentell

Gibt ein Objekt zurück, das Eigenschaften des Ports enthält.

SerialPort.open() Experimentell

Gibt ein Promise zurück, das aufgelöst wird, wenn der Port geöffnet wird. Standardmäßig wird der Port mit 8 Daten-Bits, 1 Stopp-Bit und ohne Paritätsprüfung geöffnet.

SerialPort.setSignals() Experimentell

Setzt Steuersignale am Port und gibt ein Promise zurück, das aufgelöst wird, wenn diese gesetzt sind.

SerialPort.getSignals() Experimentell

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

SerialPort.close() Experimentell

Gibt ein Promise zurück, das aufgelöst wird, wenn der Port geschlossen wird.

Ereignisse

connect Experimentell

Ein Ereignis, das ausgelöst wird, wenn der Port mit dem Gerät verbunden wurde.

disconnect Experimentell

Ein Ereignis, das ausgelöst wird, wenn der Port vom Gerät getrennt wurde.

Beispiele

Öffnen eines Ports

Bevor auf einem seriellen Port kommuniziert wird, muss dieser geöffnet werden. Das Öffnen des Ports ermöglicht es der Seite, die notwendigen Parameter anzugeben, die steuern, wie Daten gesendet und empfangen werden. Entwickler sollten die Dokumentation für das Gerät überprüfen, mit dem sie sich verbinden, um die geeigneten Parameter zu finden.

js
await port.open({ baudRate: 9600 /* pick your baud rate */ });

Sobald das von open() zurückgegebene Promise aufgelöst wird, können die Attribute readable und writable zugegriffen werden, um die Instanzen von ReadableStream und WritableStream zu erhalten, um Daten vom verbundenen Gerät zu empfangen und an dieses zu senden.

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 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 eine Zeichenkette an einen Port schreibt. Ein TextEncoder konvertiert die Zeichenkette vor der Übertragung in ein Uint8Array.

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

Spezifikationen

Specification
Web Serial API
# dom-serialport

Browser-Kompatibilität

BCD tables only load in the browser