USBDevice: clearHalt() メソッド

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

USBDevice インターフェイスの clearHalt() メソッドは、停止状態のクリアが完了したら解決する Promise を返します。停止状態はデバイスへ、またはデバイスからのデータ転送が 'stall' 状態であるときであり、ウェブページ (USB の用語では ホスト システム) がこの状態をクリアする必要があります。詳細を参照してください。

構文

js
clearHalt(direction, endpointNumber)

引数

direction

デバイスの入力または出力のどっちをクリアするかを表します。有効な値は 'in' および 'out' です。

endpointNumber

クリアするエンドポイントの番号を表します。無効なエンドポイントが指定された場合は、プロミスは拒否されます。

返値

promise です。

以下の例は、データ転送の結果の 'stall' 状態をチェックしてクリアする方法を示します。

メモ: USB デバイスにどのようなデータを渡すことができ、それをどのように渡すかは、デバイスに固有で独特です。

js
while (true) {
  let result = await data.transferIn(1, 6);

  if (result.data && result.data.byteLength === 6) {
    console.log(`チャンネル 1: ${result.data.getUint16(0)}`);
    console.log(`チャンネル 2: ${result.data.getUint16(2)}`);
    console.log(`チャンネル 5: ${result.data.getUint16(4)}`);
  }

  if (result.status === "stall") {
    console.warn("エンドポイントがストールしました。クリアします。");
    await device.clearHalt("in", 1);
  }
}

仕様書

Specification
WebUSB API
# ref-for-dom-usbdevice-clearhalt①

ブラウザーの互換性

BCD tables only load in the browser