安全なコンテキスト: この機能は、一部またはすべてのサポート ブラウザのセキュア コンテキスト(HTTPS)でのみ使用できます。
WebシリアルAPIのSerialPortインターフェイスは、ホストデバイスのシリアル ポートへのアクセスを提供します。
このインターフェイスのインスタンスは、シリアル インターフェイスのメソッドを呼び出すことで取得できます。したがって、独自のコンストラクターはありません。
シリアルポートで通信する前に、それを開く必要があります。ポートを開くと、サイトはデータの送受信方法を制御するために必要なパラメータを指定できます。開発者は、接続しているデバイスのドキュメントで適切なパラメータを確認する必要があります。
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();
表示内容: |
表示内容: |