AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
Usbh_Api_SetFeature 関数

SET_FEATUREを発行

Syntax
C++
uhs_status_t Usbh_Api_SetFeature(struct usb_control_block* ucb, struct usbd_usb_deviceinfo* usbdev, const uhs_ubit8_t bmRequest, const uhs_ubit16_t feature_select, const uhs_ubit16_t wIndex);
引数 
説明 
struct usb_control_block* ucb 
[in] USBコントロールブロック 
struct usbd_usb_deviceinfo* usbdev 
[in] USBデバイス構造体 
const uhs_ubit8_t bmRequest 
[in] bmRequestType 
const uhs_ubit16_t wIndex 
[in] 0またはインタフェース番号またはエンドポイント番号 
feature_selector 
[in] USB_DEVICE_REQUEST_ENDPOINT_HALTを指定 

SET_FEATUREの発行結果

返値の詳細 
説明 
正常終了 
状態異常 
パラメータ異常 
リソース不足 
USBリクエストの受付に失敗(キューフル等) 

SET_FEATUREの発行を行います。 

bmRequest は USB_DEVICE_REQUEST_TYPE_ENDPOINT_RECIPIENT を指定して下さい。 

feature_selector は USB_DEVICE_REQUEST_ENDPOINT_HALT を指定して下さい。

CALLBACK関数内から本関数を呼び出すと、転送処理は行われますがタイムアウトによるエラーリターンします。 

SUSPEND/RESUME中に呼び出すとエラーリターンします。

1: uhs_status_t Usbh_Api_SetFeature( 2: struct usb_control_block* ucb, 3: struct usbd_usb_deviceinfo* usbdev, 4: const uhs_ubit8_t bmRequest, 5: const uhs_ubit16_t feature_select, 6: const uhs_ubit16_t wIndex 7: ) 8: { 9: uhs_status_t retval = UDI_OK; 10: 11: 12: if( Usbh_susres_get_state() != USBH_SUSRES_STS_IDLE ){ 13: uhs_debug_print (DBG_ERR, ("ERROR : Don't Call Current State!!")); 14: CORE_REPORT_ERROR( USBC_ILLEGAL_ERROR ); 15: return UDI_STAT_INVALID_STATE; 16: } 17: 18: if (( ucb == NULL ) || ( usbdev == NULL )) { 19: CORE_REPORT_ERROR( USBC_INVALID_PARAMETER ); 20: return UDI_STAT_DATA_ERROR; 21: } 22: 23: 24: Usbh_Api_FixupPipeInfo( 25: &ucb->pipe, 26: ucb->usbdev->usbdev_DevNum, 27: USB_DEFAULT_EP_NUM, 28: USB_PACKETID_OUT, 29: USB_TRANS_CONTROL, 30: ucb->usbdev->usbdev_EpMaxpktOut[USB_DEFAULT_EP_NUM] 31: ); 32: 33: retval = Usbh_Api_SyncControlMsg( 34: ucb, 35: bmRequest, 36: USB_DEVICE_REQUEST_SET_FEATURE, 37: feature_select & 0xffU, 38: feature_select >> 8, 39: wIndex & 0xffU, 40: wIndex >> 8, 41: NULL, 42: 0 ); 43: 44: if( retval != UDI_OK) { 45: CORE_REPORT_WARNING(USBC_ILLEGAL_ERROR); 46: } 47: 48: return retval; 49: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.