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 はデータ構造体を使用して、hiddevice.h で定義されている HID デバイスに関連するすべての情報を格納します (表 7-1 を参照)。この構造体のインスタンスは、デバイスに関係する任意の API 呼び出しに渡されます。

表 A-1 strHidDevice 構造体の定義
フィールド概要データの起源
HANDLE hndHidDeviceこの HID デバイスのハンドル。HID_Open() によって書き込まれます。HID_Close() をするとき、INVALID_HANDLE_VALUE に設定されます。
BOOL bDeviceOpenデバイスが開いていること、および hndHidDevice のハンドルが有効であることを示すブール値。HID_Open() および HID_Close() によって書き込まれます。
UINT uGetReportTimeoutデータ読み取りのタイムアウト値 (ミリ秒単位)。これは、データ読み取り動作中に、デバイスからの特定のレポートを HID_ReadFile() が待機する時間です。アプリケーションによって初期化される必要があります。デモ・アプリケーションでは、これを UsbAppDlg.cpp で実行します。
UINT uSetReportTimeoutデータ書き込みのタイムアウト値 (ミリ秒単位)。これは、データ送信動作中に、デバイスが特定のレポートを受信するまで、HID_WriteFile() が待機する時間です。アプリケーションによって初期化される必要があります。デモ・アプリケーションでは、これを UsbAppDlg.cpp で実行します。
OVERLAPPED oRead非同期 I/O 構造体HID_Init() によって初期化されます。
OVERLAPPED oWrite非同期 I/O 構造体HID_Init() によって初期化されます。
WORD wInReportBufferLength入力レポートの最大長。デバイスの USB ディスクリプタから派生した HID_Init() によって初期化されます。
WORD wOutReportBufferLength出力レポートの最大長。デバイスの USB ディスクリプタから派生した HID_Init() によって初期化されます。
BYTE inBuffer[256]受信データを受信するためのバッファ。HID_readFile() によって書き込まれ、アプリケーションによって読み取られます。
WORD inBufferUsedinBuffer[] のバイト数。HID_readFile() によって書き込まれ、アプリケーションによって読み取られます。