RSS Twitter Facebook


« 2021年01月 | 2021年02月のアーカイブ | 2021年03月 »

2021/02/25

WebHID API 日本語訳を公開しました


3月に安定版になる Chrome 89 では、フラグ設定なしで使用可能になる ハード系 Web API として Web Serial API と並んで WebHID API があります。
* なぜ "Web HID API" でなくて "WebHID API" なのか? 統一して欲しいな。

先日 Web Serial API を日本語訳したのですが、ついでに WebHID API も日本語にしたので公開しておきます。
Web Serial API と同じく WICG (Web Platform Incubator Community Group) のドラフトレポートです。
分量は Web Serial API と比べてもかなり小規模な内容です。

元文書 : https://wicg.github.io/webhid/

日本語訳GitHub : https://github.com/g200kg/webhid-api-ja/
日本語訳公開URL : https://g200kg.github.io/webhid-api-ja/
手引書 : https://g200kg.github.io/webhid-api-
ja/EXPLAINER.html

Web USB API も GamePad API もあるのに WebHID API は何を目指しているのかと言うと、 USB HID で接続されるニッチなデバイスを Web アプリから動かすのが目的になっています。 GamePad API はあくまでも共通規格を目指しているので各種コントローラーに共通なボタンやらセンサーやらを同じやり方で扱うのが目的ですが、WebHID では機種毎にバラバラなセンサーやバイブレーション機能等を扱うのが目的です。

規格の中身は、はなから機能の共通化は無理なので、コマンドの通り道だけ準備するから機種個別に勝手にやってくれ、みたいな内容で、ほとんど説明なしに、インターフェースとサンプルだけどかんと置いて、この辺りを触るのはどうせマニアックな奴しかいないからこれだけで分かるだろ、的な感じがもうなんか面白いかも知れない。

キーボード側に搭載されているコントローラーのキーマップを Web アプリから書き換える試みなんかもやられている模様です : https://www.eisbahn.jp/yoichiro/2020/12/webvia.html


posted by g200kg : 3:29 PM : PermaLink

2021/02/19

Web Serial API 日本語訳 公開


さて、先日 "Web Serial API" について少しだけ書いたのですが、この際なので仕様書を日本語訳しました。
GitHub に置いてあります。

本編の他に付属文書としてもう少し簡単な手引書がありますので、取り合えず動かしてみたい、という場合にはそちらを読むのがはやいと思います:

Web Serial API (日本語訳) Draft Community Group Report
Web Serial API (日本語訳) 手引書

W3C 勧告に至る TR (Technical Report) ではなく、W3C Web Platform Incubator Community Group の Draft Report ですが、3月に安定版になる Chrome 89 以降、フラグ設定なしでデフォルトで使えるようになります。

前も書きましたけど、こういうハード系に近いブラウザ API が色々出てきていると同時にセキュリティ面の風当りは強くなりつつあり、将来的にどうなるかはさっぱりわかりませんが、ハードウェアに手が届く何らかの手段は生き残って欲しいところです。


posted by g200kg : 7:00 AM : PermaLink

2021/02/16

Web Serial API


現在 Chrome の安定版のバージョンは 88 ですが、3月に入るとそろそろ Chrome 89 が安定版に降りてくる予定になっています。それで、Chrome 89 では工作系の人にとってはちょっと気になるかも知れない 「Web Serial API」という ブラウザ API がフラグ無しで使用可能になります。まあ今でも "chrome://flags" で "Experimental Web Platform features" を "Enable" にすれば使えるようになるんですけどね。 なお、88 ⇒ 89 で USB デバイスの接続/切断あたりのイベントの仕様に少し変更があるので、本格的に使うなら Chrome 88 でフラグをイネーブルするよりは 89 を待つか Chrome BETA で試した方が良いかも知れません。

Web Serial API の仕様書はこちらにあります。

Web Serial API (W3C 英文)
Web Serial API (日本語訳)

それで、これで何ができるかというと、Web アプリから PC のシリアルポートを直接叩けるようになります。 Ardiono とか micro:bit とかの IoT デバイス等と Web アプリが繋がるというあたりがメインターゲットになるようです。とは言っても、WebUSB API と言う USB に繋がっているものなら何でも制御しようとしているもっとヤバい API が既にあるので、そこまでインパクトは強くないかも知れませんが。

WebUSB との違いとしては今となってはレアかも知れませんが USB 接続じゃないシリアルポートも制御対象になります。それから USB 経由のシリアルポートを Web USB から叩いて動かすのは、シリアルポートの立場から見れば API の上層をスキップして中間層をいきなり叩かれる事になるのでシリアルポートは Web Serial API からシリアルポートとして叩くというのが行儀のよい使い方、という事のようです。

実際に動作する例として googlechromelabs に Web Serial API で作ったシリアルターミナルのデモがあります。
https://googlechromelabs.github.io/serial-terminal/

使い勝手としては、機能をシリアルポートに絞っている分シンプルですね。ポートを requestPort() で選択したら open() / close() する感じで、データの送受信は port オブジェクトの readable、writable 属性からストリームとしてアクセスして行います。また、DTR や RTS 等の制御線は setSignals()、getSignals() でコントロールできます。

なお、最近のブラウザのセキュリティポリシーの強化の流れもあり、最初にポートに接続する際には下のようなプロンプトが表示されるので、ユーザー自身が直接選択の操作を行う必要があります。一度許可したポートは覚えているようなので、USB経由のポートの場合 getPorts() で現在アクセスできるポートの列挙ができます。

この Web Serial API ですが、現在は W3C の "Web Platform Incubator Community Group" で議論されていて、いわゆる W3C 勧告に繋がる標準化のラインには載っていません。なので残念ながら Chrome 以外のブラウザで対応するという話も今の所ありません。特に Apple はセキュリティ面を懸念して Web MIDI にも否定的でしたしね。 こういう物理デバイスに届く API はなかなか標準化される所まで行くのは難しいと思いますが、ちょっと何か簡単に外部デバイスを繋ぎたいという時には重宝しそうだと思います。

posted by g200kg : 3:26 AM : PermaLink

2021/02/09

Web Audio API (日本語訳) を更新しました


W3C で公開されている Web Audio API (CR) が 2021年1月14日に更新されましたので、日本語訳も対応して 2021/01/14 版に更新しました。

今回更新した版も W3C 勧告候補 (CR, Candidate Recommendation) 版となっています。

2020年6月に更新されて以来ですが、内容的には細部の説明の追加や修正等で機能面での変更はありません。流石にもうほぼ安定していて今までは更新の度に内容が大移動したりしていたのですが、今回は章立てレベルで変わったのは AudioWorklet 関係で説明が追加になった箇所だけです。

今後の流れとしては、大きな問題が出てこなければ現在の 勧告候補 (CR) から 勧告案 (PR) を経て正式な W3C 勧告となるはずです。

Web Audio API (日本語訳)
Web Audio API : W3C の英語版 ページ

間違いなど見つけたら GitHub issues へお願いします。


posted by g200kg : 11:09 PM : PermaLink

« 2021年01月 | 2021年02月のアーカイブ | 2021年03月 »


g200kg