AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
usb_hid_class_api.h

Human Interface Devices Class Driver API Header

Human Interface Devices Class Driver提供ヘッダ

none

AXELL CORPORATION

2017_02_22 初版 

2017_10_26 Ver2.0

1: 9: 10: 14: #ifndef __USB_HID_CLASS_API_H__ 15: #define __USB_HID_CLASS_API_H__ 16: 17: 18: #include "usb_hid_type.h" 19: #include "usb_hid_log.h" 20: 21: 22: #define HID_MAJOR_VERSION (0x01) 23: 24: 25: #define HID_MINOR_VERSION (0x00) 26: 27: 28: #define USB_DESC_TYPE_HID (0x21U) 29: 30: 31: #define USB_DESC_TYPE_REPORT (0x22U) 32: 33: 34: typedef enum { 35: REPORT_TYPE_INPUT = 1, 36: REPORT_TYPE_OUTPUT, 37: REPORT_TYPE_FEATURE 38: } REPORT_TYPE_SELECTOR; 39: 40: 41: typedef struct HidDescInfo* PHID_DESC_INFO; 42: typedef struct HidReportInfo* PHID_REPORT_INFO; 43: typedef struct HidProtocol* PHID_PROTOCOL; 44: typedef struct HidIdle* PHID_IDLE; 45: 46: 55: typedef struct HidDescInfo { 56: uhs_ubit16_t u16Length; 57: uhs_ubit8_t* pu8Buff; 58: } HID_DESC_INFO; 59: 60: 65: typedef struct HidReportInfo { 66: REPORT_TYPE_SELECTOR ReportTypeSelector; 67: uhs_ubit8_t u8Id; 68: uhs_ubit16_t u16Length; 69: uhs_ubit8_t* pu8Buff; 70: } HID_REPORT_INFO; 71: 72: 77: typedef struct HidProtocol { 78: uhs_ubit8_t u8Data; 79: } HID_PROTOCOL; 80: 81: 87: typedef struct HidIdle { 88: uhs_ubit8_t u8Id; 89: uhs_ubit8_t u8Duration; 90: } HID_IDLE; 91: 92: 93: extern uhs_status_t Usbh_Hid_GetVersion(uhs_ubit8_t* pu8MajorVersion, uhs_ubit8_t* pu8MinorVersion); 94: extern uhs_status_t Usbh_Hid_RegistCallBack(void* pContext, hid_callback_t pUserNotifyCallback); 95: extern uhs_status_t Usbh_Hid_GetHIDDescriptor(void* pContext, PHID_DESC_INFO pstData); 96: extern uhs_status_t Usbh_Hid_GetReportDescriptor(void* pContext, PHID_DESC_INFO pstData); 97: extern uhs_status_t Usbh_Hid_GetReport(void* pContext, PHID_REPORT_INFO pstData); 98: extern uhs_status_t Usbh_Hid_GetProtocol(void* pContext, PHID_PROTOCOL pstData); 99: extern uhs_status_t Usbh_Hid_SetIdle(void* pContext, PHID_IDLE pstData); 100: extern uhs_status_t Usbh_Hid_SetProtocol(void* pContext, PHID_PROTOCOL pstData); 101: extern uhs_status_t Usbh_Hid_RestartIntIN(void* pContext); 102: extern uhs_status_t Usbh_Hid_StopIntIN(void* pContext); 103: 104: 105: 106: 107: 108: 109: 110: #ifdef USBH_STACK_DEBUG_BUILD 111: #define CIAPI_HID_REPORT_SUMMARY(err) Usbh_Hid_Log_ReportError( g_filename, __LINE__, (err), (uhs_ubit8_t*)"1", 0 ) 112: #define CIAPI_HID_REPORT_DETAIL(err, mesg, len) Usbh_Hid_Log_ReportError( g_filename, __LINE__, (err), (mesg), (len) ) 113: #define CIAPI_HID_REPORT_MILESTONE(num) Usbh_Hid_Log_ReportMilestone((num)) 114: #else 115: #define CIAPI_HID_REPORT_SUMMARY(err) Usbh_Hid_Log_ReportDummy(err) 116: #define CIAPI_HID_REPORT_DETAIL(err, mesg, len) Usbh_Hid_Log_ReportDummy(err) 117: #define CIAPI_HID_REPORT_MILESTONE(num) Usbh_Hid_Log_ReportMilestone((num)) 118: #endif 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: #endif
名前 
説明 
レポートタイプ 
 
名前 
説明 
 
HIDディスクリプタを取得する 
 
現在のプロトコルを取得する 
 
レポートを取得する 
 
レポートディスクリプタを取得する 
 
ファームウェアバージョン情報を取得をする 
 
HIDドライバの初期化および通知用コールバック関数の登録をする 
 
Interrupt IN 転送を再開する 
 
通信機能を設定する 
 
プロトコル情報を設定する 
 
Interrupt IN 転送を停止する 
名前 
説明 
HID ドライバ:メジャーバージョン 
HID ドライバ:マイナーバージョン 
HIDディスクリプタ 
レポートディスクリプタ 
 
名前 
説明 
 
HIDクラス固有ディスクリプタ情報
HIDクラス固有ディスクリプタの詳細については、「Device Class Definition for Human Interface Devices (HID) Firmware Specification」を参照して下さい。
バッファは対象ディスクリプタが格納出来るサイズ以上の大きさのものを非キャッシュ領域より取得し、 アプリケーション側が用意して下さい。
また、本システムではBootプロトコルのみを想定しているため、本構造体にはHIDディスクリプタ、 レポートディスクリプタのみ格納されます。
生成タイミング : HIDクラス固有ディスクリプタ取得前
削除タイミング : HIDクラス固有ディスクリプタ取得後 
 
レポート頻度情報
持続時間を0とすると、デバイスはデータが変化したときのみレポート通知を行います。
レポートIDは、本システムではBootプロトコルのみを想定しているため、通常は0を想定しています。
0の場合は、すべてのInputレポートに適用されます。
生成タイミング : レポート頻度設定前
削除タイミング : レポート頻度設定後 
 
プロトコル設定情報
設定するデータの詳細については、「Device Class Definition for Human Interface Devices (HID) Firmware Specification」を参照して下さい。
生成タイミング : プロトコル設定情報取得・設定前
削除タイミング : プロトコル設定情報取得・設定後 
 
GetReportで取得するレポート情報
バッファは、レポートが格納出来るサイズ以上の大きさのものをアプリケーション側が用意して下さい。
レポートIDは、本システムではBootプロトコルのみを想定しているため、通常は0を想定しています。
生成タイミング : GetReportによるレポート取得前
削除タイミング : GetReportによるレポート取得後 
 
HIDクラス固有ディスクリプタ情報
HIDクラス固有ディスクリプタの詳細については、「Device Class Definition for Human Interface Devices (HID) Firmware Specification」を参照して下さい。
バッファは対象ディスクリプタが格納出来るサイズ以上の大きさのものを非キャッシュ領域より取得し、 アプリケーション側が用意して下さい。
また、本システムではBootプロトコルのみを想定しているため、本構造体にはHIDディスクリプタ、 レポートディスクリプタのみ格納されます。
生成タイミング : HIDクラス固有ディスクリプタ取得前
削除タイミング : HIDクラス固有ディスクリプタ取得後 
 
レポート頻度情報
持続時間を0とすると、デバイスはデータが変化したときのみレポート通知を行います。
レポートIDは、本システムではBootプロトコルのみを想定しているため、通常は0を想定しています。
0の場合は、すべてのInputレポートに適用されます。
生成タイミング : レポート頻度設定前
削除タイミング : レポート頻度設定後 
 
プロトコル設定情報
設定するデータの詳細については、「Device Class Definition for Human Interface Devices (HID) Firmware Specification」を参照して下さい。
生成タイミング : プロトコル設定情報取得・設定前
削除タイミング : プロトコル設定情報取得・設定後 
 
GetReportで取得するレポート情報
バッファは、レポートが格納出来るサイズ以上の大きさのものをアプリケーション側が用意して下さい。
レポートIDは、本システムではBootプロトコルのみを想定しているため、通常は0を想定しています。
生成タイミング : GetReportによるレポート取得前
削除タイミング : GetReportによるレポート取得後 
名前 
説明 
ディスクリプタ格納バッファ型へのポインタ 
アイドル時間情報型へのポインタ 
プロトコル情報型へのポインタ 
レポート情報型へのポインタ 
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.