Custom HID Checker は、自作 USB HID デバイスとの通信確認を簡単に行うための WPF アプリです。デバイス列挙からレポート送受信、ログ保存までを GUI 上で操作できます。
- 対象となる USB HID デバイスを PC に接続します。
- 必要に応じてドライバが正しくインストールされていることを確認します。
CustomHidChecker.exeを起動します。
- デバイス選択エリア: 右上のコンボボックスで接続中の HID デバイスを選択。「再検索」で最新状態に更新します。
- 接続コントロール: 「接続」「切断」ボタンでハンドルを開閉します。
- Output Report セクション: 送信したい OUT レポートを HEX 形式で入力し、「送信」で
WriteFileを実行します。 - Feature Report セクション: Feature レポートを取得・送信します。HEX 入力欄で Report ID を先頭に指定してください。
- 通信ログ: 送受信したレポートやステータスを時系列で表示します。必要に応じて「ログ保存」「ログクリア」を利用できます。
- 最新 Input Report: 直近で受信した Input Report の時刻と内容を表示します。
- ステータスバー: 現在の接続状態やエラー内容を表示します。
-
デバイス列挙
- 起動時および「再検索」ボタン押下時に HID クラス GUID をもとにデバイスを列挙。
- 取得情報 (VID/PID/レポート長) を
HidDeviceInfoに格納し、コンボボックスへ表示します。
-
接続
- 対象デバイスを選択して「接続」。内部では
WinHidDevice.OpenがCreateFileでハンドルを取得し、非同期ストリームを初期化します。 - 成功するとバックグラウンドで Read ループが開始され、Input Report を自動ポーリングしてログおよび画面の「最新 Input Report」へ反映します。
- 対象デバイスを選択して「接続」。内部では
-
Output Report 送信
- HEX 入力欄に Report ID を含むバイト列をスペース区切りで入力。
- 「送信」ボタンで
WriteFileに相当する非同期書き込みを行い、結果をログとステータスに反映します。 - 例: LED 点灯コマンドを送る場合
00 01 01(ReportID=00, コマンド=01, パラメータ=01)
-
Feature Report 取得 / 送信
- 取得: Report ID を含むバッファを用意し「取得」ボタンで
HidD_GetFeatureを呼び出します。受信した値は入力欄へ上書き表示。 - 送信: 入力欄の内容を
HidD_SetFeatureで送信します。
- 取得: Report ID を含むバッファを用意し「取得」ボタンで
-
ログ管理
- すべての送受信・状態変化は
DeviceLogEntryとして記録され、最大 1000 件まで保持します。 - 「ログ保存」で CSV/TXT 形式としてエクスポート可能です。
- すべての送受信・状態変化は
-
切断
- 「切断」またはエラー発生時にハンドルをクローズし、Read ループを停止します。
- ステータスバーに「未接続」と表示されます。
- Report ID を必ず 1 バイト目に入れてください。単一レポート構成でも 00 を先頭にします。
- HEX 入力はスペース区切り推奨です (例:
00 FF 01 02)。奇数桁の場合は自動的に 0 プロックが補完されます。 - エラー発生時はステータスバーとログのエントリを確認し、Win32 エラー内容を把握してください。
- デバイスが表示されない: USB ケーブルやドライバの状態を確認し、「再検索」を試してください。
- 接続に失敗する: 他プロセスがハンドルを保持している場合は切断し、再度「接続」を試します。
- レポート送信が失敗する: HEX 入力やレポート長が正しいか、Report ID が含まれているかを確認してください。
- 通信ログエリア右上の「ログ保存」を押下。
- 保存形式 (CSV / TXT) を選択しファイル名を指定。
- 保存後、ステータスバーに完了メッセージが表示されます。
- 接続中の場合は「切断」を実行し、ウィンドウを閉じます。
- アプリ終了時にはハンドルが自動的にクローズされます。