Skip to content

Latest commit

 

History

History
63 lines (50 loc) · 4.46 KB

File metadata and controls

63 lines (50 loc) · 4.46 KB

Custom HID Checker 使い方ガイド

目的

Custom HID Checker は、自作 USB HID デバイスとの通信確認を簡単に行うための WPF アプリです。デバイス列挙からレポート送受信、ログ保存までを GUI 上で操作できます。

起動前の準備

  1. 対象となる USB HID デバイスを PC に接続します。
  2. 必要に応じてドライバが正しくインストールされていることを確認します。
  3. CustomHidChecker.exe を起動します。

画面構成概要

  • デバイス選択エリア: 右上のコンボボックスで接続中の HID デバイスを選択。「再検索」で最新状態に更新します。
  • 接続コントロール: 「接続」「切断」ボタンでハンドルを開閉します。
  • Output Report セクション: 送信したい OUT レポートを HEX 形式で入力し、「送信」で WriteFile を実行します。
  • Feature Report セクション: Feature レポートを取得・送信します。HEX 入力欄で Report ID を先頭に指定してください。
  • 通信ログ: 送受信したレポートやステータスを時系列で表示します。必要に応じて「ログ保存」「ログクリア」を利用できます。
  • 最新 Input Report: 直近で受信した Input Report の時刻と内容を表示します。
  • ステータスバー: 現在の接続状態やエラー内容を表示します。

動作フロー

  1. デバイス列挙

    • 起動時および「再検索」ボタン押下時に HID クラス GUID をもとにデバイスを列挙。
    • 取得情報 (VID/PID/レポート長) を HidDeviceInfo に格納し、コンボボックスへ表示します。
  2. 接続

    • 対象デバイスを選択して「接続」。内部では WinHidDevice.OpenCreateFile でハンドルを取得し、非同期ストリームを初期化します。
    • 成功するとバックグラウンドで Read ループが開始され、Input Report を自動ポーリングしてログおよび画面の「最新 Input Report」へ反映します。
  3. Output Report 送信

    • HEX 入力欄に Report ID を含むバイト列をスペース区切りで入力。
    • 「送信」ボタンで WriteFile に相当する非同期書き込みを行い、結果をログとステータスに反映します。
    • 例: LED 点灯コマンドを送る場合 00 01 01 (ReportID=00, コマンド=01, パラメータ=01)
  4. Feature Report 取得 / 送信

    • 取得: Report ID を含むバッファを用意し「取得」ボタンで HidD_GetFeature を呼び出します。受信した値は入力欄へ上書き表示。
    • 送信: 入力欄の内容を HidD_SetFeature で送信します。
  5. ログ管理

    • すべての送受信・状態変化は DeviceLogEntry として記録され、最大 1000 件まで保持します。
    • 「ログ保存」で CSV/TXT 形式としてエクスポート可能です。
  6. 切断

    • 「切断」またはエラー発生時にハンドルをクローズし、Read ループを停止します。
    • ステータスバーに「未接続」と表示されます。

操作のコツ

  • Report ID を必ず 1 バイト目に入れてください。単一レポート構成でも 00 を先頭にします。
  • HEX 入力はスペース区切り推奨です (例: 00 FF 01 02)。奇数桁の場合は自動的に 0 プロックが補完されます。
  • エラー発生時はステータスバーとログのエントリを確認し、Win32 エラー内容を把握してください。

トラブルシューティング

  • デバイスが表示されない: USB ケーブルやドライバの状態を確認し、「再検索」を試してください。
  • 接続に失敗する: 他プロセスがハンドルを保持している場合は切断し、再度「接続」を試します。
  • レポート送信が失敗する: HEX 入力やレポート長が正しいか、Report ID が含まれているかを確認してください。

ログエクスポート手順

  1. 通信ログエリア右上の「ログ保存」を押下。
  2. 保存形式 (CSV / TXT) を選択しファイル名を指定。
  3. 保存後、ステータスバーに完了メッセージが表示されます。

終了手順

  • 接続中の場合は「切断」を実行し、ウィンドウを閉じます。
  • アプリ終了時にはハンドルが自動的にクローズされます。