AnyCloudBluetoothアプリケーションでのベンダー固有のコマンドの使用 - KBA232328-Community translated (JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
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ファイルを参照してください。
- パラメータオペコード:これは、送信するコマンドのオペコードです。いくつかのオペコードを表1に示します。
- パラメータparam_len:コマンドのパラメータの長さ。コマンドによって異なります。
- パラメータp_param_buf:パラメータ値のバッファ。コマンドによって異なります。
- パラメータp_cback:コマンド完了時に受信されるコールバック。これがNULLとして指定されている場合、コマンド完了イベントは発生しません。
- 戻り値:戻り値には次の3つのタイプがあります。
- WICED_BT_SUCCESS :コマンドは正常に送信されました。コマンド完了コールバックはありません。
- WICED_BT_PENDING :コマンドは正常に送信されました。コマンド完了イベントコールバックを待機しています。
- WICED_BT_BUSY :コマンドは送信されません。リソースは、前のコマンドのコマンド完了イベントを待機しています。
次のスナップショットは、この関数を呼び出す方法の例を示しています。
このスナップショットでは、wiced_bt_dev_vendor_specific_commandが次のパラメータ値を使用して呼び出されます。
- HCI_UPDATE_BAUD_RATE_COMMAND:HCIボーレートを更新するためのオペコード。コマンドオペコードは0x18で、ベンダー固有のコマンドグループと組み合わせて16ビット値を形成します。
- HCI_UPDATE_BAUD_RATE_UNENCODED_LENGTH:このパラメータ値は6です。これは、サイズ6バイトのパラメータが続くことを意味します。
- baud_rate_buf:設定する必要のあるボーレート。この例では、値は3000000です。
- vendor_specific_command_cb:コマンドの完了時に呼び出す必要のあるコールバックを指定します。
2. コマンドの完了時に呼び出されるコールバック関数を作成します。コールバック関数の構造体は次のとおりです。
- Element opcode:コールバックが呼び出されているコマンドのオペコード。
- 要素param_len:後に続くパラメータの長さ。
- 要素* p_param_buf:パラメータ値はこのバッファを介して渡されます。値は、コールバックが呼び出されているコマンドによって異なります。
表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:デバイスのランダムアドレス |
はい |
はい |
追加のリソース