DOM

SerialPort インターフェイス

  編集:2022.03.10 by T.A.

MS(en)

安全なコンテキスト: この機能は、一部またはすべてのサポート ブラウザのセキュア コンテキスト(HTTPS)でのみ使用できます。

WebシリアルAPIのSerialPortインターフェイスは、ホストデバイスのシリアル ポートへのアクセスを提供します。

コンストラクター

このインターフェイスのインスタンスは、シリアル インターフェイスのメソッドを呼び出すことで取得できます。したがって、独自のコンストラクターはありません。

プロパティ
SerialPort.readable 読取専用
ポートに接続されたデバイスからデータを受信するための ReadableStream を返します。
SerialPort.writable 読取専用
ポートに接続されているデバイスにデータを送信するための WritableStream を返します。
メソッド
promise= SerialPort.getInfo()
ポートのプロパティを含むオブジェクトで解決する Promise を返します。
promise= SerialPort.open(options)
ポートが開かれたときに解決される Promise を返します。デフォルトでは、ポートは8データビット、1ストップ ビットでパリティチェックなし、で開かれます。
promise= SerialPort.setSignals([options])
ポートに制御信号を設定し、設定されたときに解決される Promise を返します。
promise= SerialPort.getSignals()
ポートの制御信号の現在の状態を含むオブジェクトで解決する Promise を返します。
promise= SerialPort.close()
ポートが閉じたときに解決される Promise を返します。
イベント
connect
ポートがデバイスに接続されたときに発生するイベント。
disconnect
ポートがデバイスから切断されたときに発生するイベント。
ポートを開く

シリアルポートで通信する前に、それを開く必要があります。ポートを開くと、サイトはデータの送受信方法を制御するために必要なパラメータを指定できます。開発者は、接続しているデバイスのドキュメントで適切なパラメータを確認する必要があります。

await port.open({ baudRate: /* ボーレートを選択してください */ });

open() によって返された Promise が解決されると、読み取り可能および書き込み可能な属性にアクセスして、接続されたデバイスとの間でデータを送受信するための ReadableStream および WritableStream インスタンスを取得できます。

ポートからのデータの読み取り

次の例は、ポートからデータを読み取る方法を示しています。外側のループは致命的でないエラーを処理しますが、致命的なエラーが発生し、readable がnullになるまで、新しいリーダーを作成します。

while (port.readable) {
  const reader = port.readable.getReader();
  try {
    while (true) {
      const { value, done } = await reader.read();
      if (done) {
        // |reader| キャンセルされました
        break;
      }
      // |value| で何をするか...
    }
  } catch (error) {
    // 処理 |error|...
  } finally {
    reader.releaseLock();
  }
}
ポートへのデータの書き込み

次の例は、ポートに文字列を書き込む方法を示しています。TextEncoderは、送信前に文字列を Uint8Array に変換します。

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

テスト
HTML:

ここに表示
スクリプト組み込み:



スクリプト:


スクリプト:



表示内容:
表示内容: