Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob

AnyCloudBluetoothアプリケーションでのベンダー固有のコマンドの使用 - KBA232328-Community translated (JA)

AnyCloudBluetoothアプリケーションでのベンダー固有のコマンドの使用 - KBA232328-Community translated (JA)

JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Original KBA:
Using Vendor-Specific Commands in AnyCloud Bluetooth Applications - KBA232328

Translated by: Kenshow

 

タイトル: AnyCloudBluetoothアプリケーションでのベンダー固有のコマンドの使用 - KBA232328

 

バージョン:**

 

AnyCloud SDKに基づくBluetoothアプリケーションでは、標準のHCIコマンドやその他のAPI関数では処理されないデバイス固有の機能が必要になる場合があります。このような場合、ベンダー固有のコマンド(VSC)を使用できます。名前が示すように、VSCはベンダーによって定義されており、相互運用可能である必要がある標準のHCIコマンドとは対照的に、ベンダーのデバイスにのみ適用できます。これらのコマンドは、デバイスからより優れた機能を実現するのに役立ちます。

VSCの構造は、標準のHCIコマンドに似ていますが、16ビットのオペコード、パラメータの長さ、実際のパラメータが続きます。16ビットのオペコードは、10ビット(0〜9)のオペコードコマンドフィールド(OCF)と6ビットのオペコードグループフィールド(OGF)で構成されます。VSCでは、OGFは常に0b111111(10進数の63)ですが、OCFはベンダーの定義どおりにすることができます。残りのパラメータは、実際のコマンドに基づいています。

この記事では、最初にAnyCloudアプリケーションでVSCを使用する方法について説明し、次にCYW4343WやCYW43012などの一部のデバイスで現在サポートされているコマンドのリストを示します。

BTSTACKミドルウェアは、HCIを介してVSCを送信し、コールバックを介してBluetoothコントローラーからイベントを受信するためのAPIを提供します。アプリケーションでVSCを使用するには、次の手順を実行します。

1. アプリケーションでwiced_bt_dev_vendor_specific_command関数を呼び出します。以下に示すように、btstack / <version> /wiced_include/wiced_bt_dev.hファイルを参照してください。

JennaJo_0-1615448353264.jpeg

 

 

 

  1. パラメータオペコード:これは、送信するコマンドのオペコードです。いくつかのオペコードを表1に示します。
  2. パラメータparam_len:コマンドのパラメータの長さ。コマンドによって異なります。
  3. パラメータp_param_buf:パラメータ値のバッファ。コマンドによって異なります。
  4. パラメータp_cback:コマンド完了時に受信されるコールバック。これがNULLとして指定されている場合、コマンド完了イベントは発生しません。
  5. 戻り値:戻り値には次の3つのタイプがあります。
    1. WICED_BT_SUCCESS :コマンドは正常に送信されました。コマンド完了コールバックはありません。
    2. WICED_BT_PENDING :コマンドは正常に送信されました。コマンド完了イベントコールバックを待機しています。
    3. WICED_BT_BUSY :コマンドは送信されません。リソースは、前のコマンドのコマンド完了イベントを待機しています。

次のスナップショットは、この関数を呼び出す方法の例を示しています。

JennaJo_1-1615448353219.jpeg

 

 

JennaJo_2-1615448353806.jpeg

 

 

JennaJo_3-1615448353776.jpeg

 

このスナップショットでは、wiced_bt_dev_vendor_specific_commandが次のパラメータ値を使用して呼び出されます。

  1. HCI_UPDATE_BAUD_RATE_COMMAND:HCIボーレートを更新するためのオペコード。コマンドオペコードは0x18で、ベンダー固有のコマンドグループと組み合わせて16ビット値を形成します。
  2. HCI_UPDATE_BAUD_RATE_UNENCODED_LENGTH:このパラメータ値は6です。これは、サイズ6バイトのパラメータが続くことを意味します。
  3. baud_rate_buf:設定する必要のあるボーレート。この例では、値は3000000です。
  4. vendor_specific_command_cb:コマンドの完了時に呼び出す必要のあるコールバックを指定します。

 

2. コマンドの完了時に呼び出されるコールバック関数を作成します。コールバック関数の構造体は次のとおりです。

JennaJo_4-1615448353307.jpeg

 

JennaJo_5-1615448353238.jpeg

 

  1. Element opcode:コールバックが呼び出されているコマンドのオペコード。
  2. 要素param_len:後に続くパラメータの長さ。
  3. 要素* p_param_buf:パラメータ値はこのバッファを介して渡されます。値は、コールバックが呼び出されているコマンドによって異なります。
JennaJo_6-1615448353215.jpeg

 

1.VSCコマンド

コマンド

説明

オペコード

パラメータ

戻り値

CYW4343W

CYW43012

Set_Transmit_Power

このコマンドは、接続ごとに送信電力の減衰を調整します

0x026

接続ハンドルuint_16:電力レベルを変更する必要がある接続の接続ハンドル。

 

最大送信電力レベルint8:送信電力(dB)。最大値は4、最小値は-28です。

Status

はい

はい

Update_UART_Baud_Rate

UARTトランスポートが通信するボーレートを変更します。「コマンド完了」イベントは前のボーレートで生成されます。「コマンド完了イベント」が成功を示す場合、UARTトランスポートは新しいボーレートにシフトします。

0x018

Encoded_Baud_Rate uint8_t:エンコードされていないボーレートを使用するには、これを0にします

 

Explicit_Baud_Rate uint32_t:整数形式のボーレート

Status

はい

はい

LE_Read_Random_Address

このコマンドはランダムなアドレスを読み取ります

0x0BA

なし

Status 

WD_ADDR bdaddr:デバイスのランダムアドレス

はい

はい

 

追加のリソース

  • PSoC®6MCUメモリアーキテクチャの詳細については、PSoC 6TRMを参照してください。
  • シリアル・メモリ・インタフェースの詳細についてはAN228740を参照してください。
0 件の賞賛
193 件の閲覧回数