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 改訂履歴

BYTE HID_ReadFile(struct strHidDevice* pStrHidDevice, BYTE* buffer, DWORD bufferSize, DWORD* bytesReturned)

概要

pStrHidDevice で指定された HID デバイスから、bufferSize バイトのペイロード・データを取得し、バッファに格納します。これは、bufferSize バイトが返されるまで、必要なだけ HID レポートを読み取ることによって行われます。

この関数が HID_DEVICE_SUCCESS を返す場合、bytesReturned は bufferSize と等しくなります。他のリターン・コードのいずれかが発生した場合にのみ、bytesReturned は bufferSize より小さくなります。

この関数は、HID レポートを「パケット」として使用してデータを受信します。pStrHidDevice.uGetReportTimeout の値に従って、USB デバイスからパケットを読み取る試みがタイムアウトした場合、この関数は HID_DEVICE_TRANSFER_TIMEOUT を返します。

bufferSize が DWORD 値であることによる制限以外に、受信できるバイト数に固有の制限はありません。パケット化は自動的に処理されます。

パラメータ

表 4-11 HID_ReadFile() のパラメータ
strHidDevice* pstrHidDeviceHID デバイス情報を含む構造体。
BYTE* buffer受信データを格納するための配列。
DWORD bufferSizeバッファのサイズ。受信しようとする最大バイト数を示します。
DWORD* bytesReturned実際に受信したバイト数 (エラー発生時)
戻り値HID_DEVICE_NOT_OPENEDHID デバイスを開けませんでした。
HID_DEVICE_TRANSFER_TIMEOUTレポート要求がタイムアウトしました。
HID_DEVICE_TRANSFER_FAILED不明な理由により送信に失敗しました。
HID_DEVICE_SUCCESS正しいバイト数を受信しました。