Web Serial API
chromium Issue 884928: Web Serial API が該当する。(Chrome 系以外では実装されていない。予定もない)
実は Chrome Stable 77 でも、既に chrome://flags/#enable-experimental-web-platform-features を有効にしていると navigator.serial が生えてくるようになっている。
が、Android では(まだ)使えないみたいだ。上記イシューも Android がスコープに入っていない。
簡単に試せるページもある GitHub - GoogleChromeLabs/serial-terminal: Demo application for the Serial API.
ちなみに WebUSB での polyfill があったりする(これも google のレポジトリに入っている…) https://github.com/google/web-serial-polyfill けど、USB CDCはだいたいはOS側でインターフェイスを握られてしまうので、ドライバを無効にしたりしないといけないことに注意がいる。
現行では worker コンテキスト内で使うことができない。API 自体は有効なのだが、requestPort() してペアリングしたシリアルポートを、worker 内の getPorts で取得することができない。Issue 1005079: Serial Mojo interface not provided to Workers 報告したらイシューが立った。
また、上記に関連するのかもしれないが、そこそこ高速で通信を行うと容易にバッファが溢れてしまい、データの欠落が起こる。なので非常に大きなバッファを指定する必要がある。複数同時に read してもダメ。
関連エントリー
- WebUSB HackRF One スペクトラムアナライザー HackRF One 用の sweep mode を利用するスペクトラムアナライザーで、いまいち安定して動くものが見つからなかった。WebU...
- Mojave で Android Emulator が起動しない emulator: Android emulator version 30.5.3.0 (build_id 7196367) (CL:N/A...
- NanoVNA を WebUSB を使ってブラウザから見る NanoVNA の USB のコミュニケーション方法が USB-CDC で、プロトコル自体は簡単そうだ、というのを前に書きました。なぜそんな...
- Chrome の WebAudio でステレオ入力ができない場合 input channel 数はちゃんと2なのに同じデータが入っている モノラルになるとかじゃなく、ステレオ入力すると、デフォルトではモノラ...
- Comlink は iframe 間通信にも使える https://github.com/GoogleChromeLabs/comlink 「Comlink makes WebWorkers ...