JAJA452A january   2011  – may 2023

 

  1.   1
  2. 1MSP430™ USB HID Windows API プログラマー・ガイド
  3. 2はじめに
  4. 3実装
    1. 3.1 概要
    2. 3.2 ファイル構成
    3. 3.3 システム要件
    4. 3.4 MSP430 USB API スタック
    5. 3.5 Windows が物理 USB HID デバイスをホスト・アプリケーションにマッピングする方法
    6. 3.6 システム上で特定の HID デバイス / インターフェイスを見つけて開く
    7. 3.7 データの送受信
    8. 3.8 HID デバイスの動的接続 / 切断の検出
  5. 4関数呼び出しのリファレンス
    1. 4.1 デバイス接続管理および初期化呼び出し
      1. 4.1.1 VOID HID_Init(struct strHidDevice* pstrHidDevice)
      2. 4.1.2 DWORD HID_GetSerNums(WORD vid, WORD pid, struct strTrackSerialNumbers *serialNumList)
      3. 4.1.3 DWORD HID_GetNumOfInterfaces(WORD vid, WORD pid, DWORD numSerNums)
      4. 4.1.4 BYTE HID_Open(struct strHidDevice* pstrHidDevice, WORD vid, WORD pid, DWORD deviceIndex, char serialNumber[SERNUM_LEN], DWORD totalDevNum, DWORD totalSerNum)
      5. 4.1.5 BYTE HID_Close(struct strHidDevice* pstrHidDevice)
      6. 4.1.6 BYTE HID_GetVersionNumber(struct strHidDevice* pstrHidDevice, USHORT * VersionNumber)
    2. 4.2 データの送受信
      1. 4.2.1 BYTE HID_WriteFile(struct strHidDevice* pstrHidDevice, BYTE* buffer, DWORD bufferSize, DWORD* bytesSent)
      2. 4.2.2 BYTE HID_ReadFile(struct strHidDevice* pStrHidDevice, BYTE* buffer, DWORD bufferSize, DWORD* bytesReturned)
    3. 4.3 プラグ・アンド・プレイ管理
      1. 4.3.1 BYTE HID_RegisterForDeviceNotification(HWND hWnd, HDEVNOTIFY* diNotifyHandle)
      2. 4.3.2 BYTE HID_UnregisterForDeviceNotification(HDEVNOTIFY* diNotifyHandle)
      3. 4.3.3 BOOL IsDeviceAffected(struct strHidDevice* pstrHidDevice)
  6. 5デモ・アプリケーション
  7. 6MSP430 USB ツール・スイート
  8.   HID インターフェイスのデータ構造体:strHidDevice
  9.   HID-Datapipe デバイスに関するレポートの形式
  10.   C 関連資料
  11.   C 改訂履歴

デモ・アプリケーション

API の使用方法を示す簡単なデモ・アプリケーションが提供されています。このアプリケーションは、ハイパーターミナルのような COM ポート・ターミナル・アプリケーションと似ていると考えることができます。HID インターフェイスを経由すること以外は、同様の方法でデータのチャンクを送受信します。

GUID-80B2D79B-AAE7-490D-8B67-92EB46B6F3FA-low.gif図 5-1 デモ・アプリケーション・ウィンドウ

このプログラムを動作させるには、datapipe 関数呼び出しを使用して HID API スタックを実行する MSP430 を接続します。API スタック・ディストリビューションに、いくつかの例が提供されています。シングル・インターフェイス HID、CDC+HID 複合デバイス、および HID+HID 複合デバイスの例があります。これらはすべて、このデモ・アプリケーションで使用できます。

GUI の VID および PID フィールドに、アプリケーションで検索する VID/PID を選択します。入力後、「Set VID/PID」ボタンを押します。

VID/PID が設定されている場合、アプリケーションは、この VID/PID に一致する物理デバイスがいくつシステムに接続されているかを決定します。シリアル番号を見つけ、「Serial Number」コンボ・ボックスに入力します。リスト内の最初のシリアル番号が自動的に選択され、そのデバイスに存在する HID インターフェイスの数を決定します。「Interface」コンボ・ボックスに、それぞれのインターフェイスに対応する文字列がロードされます。「HID 0」、「HID 1」など。HID インターフェイスが見つかった場合、デフォルトで「HID 0」が選択されます。

「Connect」ボタンを押します。これにより、USB デバイスとのデータ接続が開きます。成功した場合は、ボタンの下の文字列にそのことが示されます。成功しない場合は、以下をお試しください。

  • Windows デバイス・マネージャをチェックして、デバイスが HID デバイスとしてシステムに正常に列挙されていることを確認
  • デバイスに MSP430 HID API スタックが搭載され、HID-datapipe アプリケーションが実行されていることを確認
  • descriptors.h に表示されている VID/PID が、デモ・アプリのフィールドに入力されたのと同じペアであること、および「Set VID/PID」ボタンが押されていることを確認

接続が初期化されたら、テキストを入力して「Send」を押すと、データをデバイスに送信できます。アプリケーションがデバイスから随時受信したデータは、大きなテキスト・フィールドに表示されます。「クリア」ボタンで受信ウィンドウをクリアすることができます。

別のデバイスへのアクセス中に HID デバイスがバスから削除された場合、またはこの VID/PID の別の HID デバイスが追加された場合、アプリケーションはプルダウン・メニュー・リストを自動的に更新します。