UVCのベンダーインターフェース - KBA218335 - Community Translated (JA)

Version 1

    Community Translated by keni_4440091 Expert       Version: **

     

    Translation - English: Vendor Interface in UVC - KBA218335

     

    質問:

    UVCデバイスへのベンダー要求の送信方法

     

    回答:

    コントロールセンターからベンダーコマンドを送信するためには、UVC記述子ファイルの中でベンダーインターフェースを生成する必要があります。終端はこのインターフェースと関係しているか、関係していない場合があります。列挙後、このベンダーインターフェースはコントロールセンターで表示されるcyusb3ドライバーとバインドされる必要があります。

    ベンダーインターフェースを生成するためには、AN75779サンプルプロジェクトで下記の変更が求められます:

    1. UVC記述子ファイルの中の、CyFxUSBHSConfigDscr[ ] およびCyFxUSBSSConfigDscr[ ]

     

      1. 記述子の長さおよび、全てのサブ記述子フィールドをD9からE2CyFxUSBSSConfigDscrの中)におよびCDからD6CyFxUSBHSConfigDscrの中)に更新します。

     

             2. インターフェース数を2から3に変更します。

     

             3. バルクストリーミングビデオデータ(CyFxUSBHSConfigDscrの中)用の終端記述子およびバルク終端(CyFxUSBSSConfigDscrの中)用超高速終端コンパニオン記述子の後、下記を含みます:

    0x09,               /*記述子サイズ */

    CY_U3P_USB_INTRFC_DESCR,       /* インターフェース記述子タイプ */

    0x02,               /* インターフェース数 */

    0x00,               /* 代替設定数 */

    0x00,               /* 終端数 */

    0xFF,               /* インターフェースクラス */

    0x00,                /* インターフェースサブクラス */

    0x00,                /* インターフェースプロトコルクラス */

    0x00                 /* インターフェース記述子文字列インデックス */

     

     

      2. uvc.cファイルのCyFxUVCApplnUSBSetupCB()関数で、ベンダー要求を処理するための下記のテンプレートを含むUVCクラス要求用のスイッチケースの前に: if ((bmReqType &
    CY_U3P_USB_TYPE_MASK) ==
          CY_U3P_USB_VENDOR_RQT)
          {
             switch(bRequest)
             {
                   case 0x76:
                        CyU3PDebugPrint(2, "Vendor command received…\n");
                                  /*
    要求される機能毎のコードを実装 */
                         CyU3PUsbAckSetup();
                        return CyTrue;
                       default:
                           return CyFalse;
             }

          }