ハードウェア連携のレシピ

シリアルポート、Bluetooth (BLE)、USB、HID、プリンター、Web カメラ、マイク、MIDI、バッテリー、画面の明るさなど、PC に接続された機器や物理デバイスを扱うレシピです。多くは Rust クレートを Tauri コマンドで包む形になります。

全 13 件 / 対象: Tauri 2.x

  1. 1 シリアルポート通信 (RS-232C) を行う serialport クレートを Tauri コマンドで包み、ポート一覧から選んだ COM ポートや /dev/tty* をボーレート指定で開いて 1 回送受信する。Linux の dialout 権限など OS ごとの注意も扱う。 更新日: 2026-09-12
  2. 2 シリアルポートの接続維持と送受信 (State管理) 開いたシリアルポートを State に持って開きっぱなしにし、受信は専用スレッドで読んで 1 行ごとにイベントで送る。USB を抜いたときの切断検知と自動再接続、1 回ずつ開く方式との使い分けも示す。 更新日: 2026-09-12
  3. 3 Bluetooth (BLE) デバイスをスキャンする tauri-plugin-blec の startScan() で BLE 機器を探し、サービス UUID や電波の強さで絞り込む。Rust の ScanFilter、macOS の Info.plist、Android の許可も扱う。 更新日: 2026-09-12
  4. 4 BLE デバイスに接続してキャラクタリスティックを読み書きする tauri-plugin-blec の connect() で BLE 機器に接続し、UUID を指定して read()・send() で読み書き、subscribe() で通知を受ける。切断の検知と再接続、Rust からの操作も示す。 更新日: 2026-09-12
  5. 5 接続されている USB デバイス一覧を取得する rusb で接続中の USB デバイスを列挙し、VID/PID と製品名を取る。Windows でドライバーにより名前が読めない機器、Linux の udev 権限、抜き差しの検知方法も示す。 更新日: 2026-09-12
  6. 6 キーボードやマウス (HID) の入力を取る ウィンドウ内のキーやマウスは DOM のイベントで取り、ほかのアプリへの入力まで要るなら rdev の listen で受けて JS に送る。macOS の許可、Wayland 非対応、プライバシーへの配慮も示す。 更新日: 2026-09-12
  7. 7 プリンターの一覧を取得して印刷する printers クレートでプリンターの一覧と既定のプリンターを取り、ファイルやバイト列をダイアログなしで送る。画面を印刷する window.print() との使い分けと、Windows ではデータがそのまま届く点も示す。 更新日: 2026-09-12
  8. 8 Webカメラの映像を取得して表示する WebView の getUserMedia() でカメラの映像を video 要素に映し、カメラの選択と静止画の取り出しまで行う。macOS の Info.plist の説明文とエンタイトルメント、OS ごとの許可の違いも示す。 更新日: 2026-09-12
  9. 9 マイクから音声を録音する cpal でマイクの音を受け取り hound で WAV に保存する。録音の開始と停止は State で管理する。macOS の Info.plist に書く説明文と、WebView の getUserMedia との使い分けも示す。 更新日: 2026-09-12
  10. 10 音声の出力スピーカーを切り替える rodio で出力デバイスの一覧を取り、選んだスピーカーやヘッドホンで音声ファイルを再生する。再生中の切り替えと選択の保存、HTML の audio 要素の setSinkId() との違いも示す。 更新日: 2026-09-12
  11. 11 MIDI 機器と入出力する(midir) midir で MIDI キーボードの入力を受けてイベントで JS に送り、シンセや DAW へノートを送信する。接続を State に保持する方法、ポートの選び方、Web MIDI API との使い分けも示す。 更新日: 2026-09-12
  12. 12 バッテリー状態と電源接続を取得・監視する starship-battery クレートで残量・充電状態・残り時間・健康度・消費電力を取得し、Rust 側の定期ポーリングで AC 電源の抜き差しをイベント通知する。複数バッテリーや非搭載 PC の扱いも示す。 更新日: 2026-09-12
  13. 13 画面の明るさ(輝度)を制御する brightness クレートで内蔵ディスプレイと DDC/CI 対応の外部モニターの明るさを取得・設定する。外部モニターで効かないときの確認点、macOS でビルドを通す書き方も示す。 更新日: 2026-09-12