SerialPort
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
Web Serial API の SerialPort インターフェイスは、ホストデバイスのシリアルポートへのアクセスを提供します。
コンストラクター
このインターフェイスのインスタンスは Serial インターフェイスのメソッドを呼ぶことにより得られるので、このインターフェイス自身のコンストラクターはありません。
インスタンスプロパティ
SerialPort.readable読取専用 Experimental-
ポートに接続されたデバイスからデータを受信する用の
ReadableStreamを返します。 SerialPort.writable読取専用 Experimental-
ポートに接続されたデバイスにデータを送信する用の
WritableStreamを返します。
インスタンスメソッド
SerialPort.forget()Experimental-
ポートを閉じ、忘れる処理が完了したら解決する
Promiseを返します。 SerialPort.getInfo()Experimental-
ポートの情報が入ったオブジェクトを返します。
SerialPort.open()Experimental-
ポートを開く処理が完了したら解決する
Promiseを返します。デフォルトでは、ポートは 8 ビットのデータ、1 ビットのストップビット、パリティチェックなしで開かれます。 SerialPort.setSignals()Experimental-
ポートの制御信号を設定し、完了したら解決する
Promiseを返します。 SerialPort.getSignals()Experimental-
ポートの制御信号の現在の状態が入ったオブジェクトで解決する
Promiseを返します。 SerialPort.close()Experimental-
ポートを閉じる処理が完了したら解決する
Promiseを返します。
イベント
connectExperimental-
ポートがデバイスに接続された時、発火するイベントです。
disconnectExperimental-
ポートがデバイスから切断された時、発火するイベントです。
例
ポートを開く
シリアルポートで通信を行う前に、ポートを開く必要があります。ポートを開くことで、サイトはデータがどのように送受信されるかを決めるために必要なパラメータを設定できます。開発者は、適切なパラメータを決めるために接続するデバイスのドキュメントを参照するべきです。
js
await port.open({ baudRate: 9600 /* ボーレートを決める */ });
open() が返した Promise が解決したら、readable および writable プロパティにアクセスすることで、デバイスからデータを受信したり接続されたデバイスにデータを送信したりする用の ReadableStream および WritableStream を得ることができます。
ポートからデータを受信する
この例は、ポートからデータを受信する方法を示します。外側のループは致命的なエラーが発生して readable が null になるまで新しい reader を生成し続けることで、致命的でないエラーを処理します。
js
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 に変換します。
js
const encoder = new TextEncoder();
const writer = port.writable.getWriter();
await writer.write(encoder.encode("PING"));
writer.releaseLock();
仕様書
| Specification |
|---|
| Web Serial API # dom-serialport |
ブラウザーの互換性
BCD tables only load in the browser