WebHID経由でDualSenseに接続する


WebUSB経由でDualSenseに接続できなかった話WebUSB 経由ではDualSenseには接続できないことが分かった。
そこで、WebHID 経由でDualSenseに接続できるか調査したところ、WebHID経由ならば、DualSenseに接続できることが分かった。
以下で詳細を記載する。

詳細

公式のAPIを参考にすると良い。

自分の場合は以下のコードを書き、適当なhtmlに含めるようにした。
その際、ボタン経由でrequest_open_dualsensesend を呼び出せるようにしておく。

let dualsense
function request_open_dualsense() {
	navigator.hid.requestDevice({ filters: [{ vendorId: 0x054c, productId: 0x0ce6 }] })
    .then(devices => {
      dualsense = devices[0];
      return dualsense.open(); 
    })
}

function send(packet) {
  dualsense.sendReport(0x02, packet)
}

その後、DualSenseに繋いだ状態で、ボタンからでrequest_open_dualsense を呼び出すと、ブラウザのポップアップとして接続する機器を選択するような画面が現れる。
DualSenseを選択して接続した後に、send を適当なデータとともにDualSenseに送信することで、アダプティブトリガーを起動できることを確認できた。

サンプル

WebHID と Godot を使ってアダプティブトリガーを試せるウェブアプリを実装した。

参考