ホスト コントローラ インターフェース(HCI)は、Bluetooth コントローラとの通信に使用されます。
このドキュメントでは、Bluetooth(BT)および Bluetooth Low Energy(BLE)の HCI の要件を示します。ホスト BT スタックのベンダーおよび BT コントローラのベンダーが、プラットフォーム要件に対応していることを確認し、以下で説明する機能セットを使用できるようにすることを目的としています。
このドキュメントにおける「仕様」とは、Bluetooth コア仕様 5.2 を指します。Bluetooth コア仕様 5.2 は、Bluetooth SIG のウェブサイトで他の採択済みドキュメントとともに入手できます。
設計全般の概要
チップ機能と構成
オープン プラットフォームである Android では、ソフトウェア リリース、OEM、ベンダー、プラットフォームといった構成とチップ機能との間にさまざまな組み合わせが存在します。
多様な環境と移行を管理することを目的として、このドキュメントでは、BT コントローラの機能(標準的な Bluetooth コア仕様 5.2 の範囲を超える機能を含む)を公開するという設計思想について説明しています。ホスト BT スタックはこれらの機能を使用して、有効にする機能を決定できます。
オープン標準のサポート
Android では Bluetooth 仕様に選ばれたオープン標準をサポートすることを目標の一つにしています。以下に説明する機能が今後の Bluetooth 仕様で標準 HCI 方式として利用可能になった場合、Google ではその方式をデフォルトにする予定です。
ベンダー固有の機能
ベンダー固有のコマンド: LE_Get_Vendor_Capabilities_Command
オペコード コマンド フィールド(OCF): 0x153
| コマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| 該当なし | コマンド パラメータ リストは空 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| max_advt_instances(非推奨) | 1 オクテット | サポートされているアドバタイズメント インスタンスの数。 v0.98 より後で予約済み。 このパラメータは、BT 仕様バージョン 5.0 以降で利用可能な LE 拡張アドバタイジングを優先するため、Google 機能仕様 v0.98 以降ではサポートされなくなりました。 | 
| offloaded_resolution_of_private-address(非推奨) | 1 オクテット | BT チップの RPA 機能。 チップでサポートされている場合は、ホストによる有効化が必要です。 0 = 機能なし 1 = 機能あり v0.98 より後で予約済み。 このパラメータは、BT 仕様バージョン 4.2 以降で利用可能なプライバシー機能を優先するため、Google 機能仕様 v0.98 以降ではサポートされなくなりました。 | 
| total_scan_results_storage | 2 オクテット | スキャン結果用ストレージ容量(バイト単位) | 
| max_irk_list_sz | 1 オクテット | ファームウェアでサポートされている IRK エントリの数 | 
| filtering_support | 1 オクテット | コントローラによるフィルタリングのサポート 0 = サポートなし 1 = サポートあり | 
| max_filter | 1 オクテット | サポートされているフィルタの数 | 
| activity_energy_info_support | 1 オクテット | 動作と電力に関する報告のサポート 0 = 機能なし 1 = 機能あり | 
| version_supported | 2 オクテット | サポートされている Google 機能仕様のバージョン バイト [0]=メジャー バージョン バイト [1]=マイナー バージョン v1.04 バイト [0] = 0x01 バイト [1] = 0x04 | 
| total_num_of_advt_tracked | 2 オクテット | OnLostまたはOnFoundのためにトラッキングされるアドバタイザーの総数 | 
| extended_scan_support | 1 オクテット | 拡張スキャン ウィンドウと拡張スキャン間隔のサポート | 
| debug_logging_supported | 1 オクテット | コントローラのバイナリ デバッグ情報をロギングする機能のサポート | 
| LE_address_generation_offloading_support(非推奨) | 1 オクテット | 0 = サポートなし 1 = サポートあり v0.98 より後で予約済み。 このパラメータは、BT 仕様バージョン 4.2 以降で利用可能なプライバシー機能を優先するため、Google 機能仕様 v0.98 以降ではサポートされなくなりました。 | 
| A2DP_source_offload_capability_mask | 4 オクテット | サポートされているコーデック タイプのビットマスク ビット 0 - SBC ビット 1 - AAC ビット 2 - APTX ビット 3 - APTX HD ビット 4 - LDAC ビット 5~31 は予約済み | 
| bluetooth_quality_report_support | 1 オクテット | Bluetooth 品質イベントの報告のサポート 0 = サポートなし 1 = サポートあり | 
| dynamic_audio_buffer_support | 4 オクテット | Bluetooth コントローラでのダイナミック オーディオ バッファのサポート サポートされているコーデック タイプのビットマスク ビット 0 - SBC ビット 1 - AAC ビット 2 - APTX ビット 3 - APTX HD ビット 4 - LDAC ビット 5~31 は予約済み | 
| a2dp_offload_v2_support | 1 オクテット | Bluetooth コントローラでの A2dp オフロード v2 コマンドのサポート(A2DP オフロードの開始、A2DP オフロードの停止を参照してください) 0 = サポートなし 1 = サポートあり | 
一括スキャン結果
設計目標の一つに、ホストに対する Bluetooth LE スキャン応答イベント通知の配信方法を改善して、ホストの電力を節約することがあります。
      コントローラからホストアプリ プロセッサへの結果スキャン依頼の頻度を減らすことで、ホストアプリ プロセッサはアイドル状態またはスリープ状態を長期間保持できます。その結果、ホストの消費電力を節約できます。LE_Get_Vendor_Capabilities_Command のリターン パラメータ total_scan_results_storage から、チップのスキャン結果用ストレージ容量がわかります。
この機能は、主に Bluetooth コントローラの LE スキャン結果ストレージ ファシリティの管理と設定をするためのものです。このストレージは、後でホストに配信するために、一時的にアドバタイズメント データを一括処理し、コントローラで受信したデータとメタデータをスキャンする目的で使用されます。
ファームウェアは、同時に使用可能な次の 2 種類の一括処理をサポートします。
- 短縮型。情報要素 {MAC, TX Power, RSSI, Timestamp} を含みます。
- 完全型。情報要素 {MAC, TX Power, RSSI, Timestamp, Adv Data, Scan Response} を含みます。
LE_Batch_Scan_Command
OCF: 0x156
| コマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| Batch_Scan_opcode | 1 オクテット | 0x1 - 顧客固有の機能の有効化 0x2 - 一括スキャン ストレージ パラメータの設定 0x3 - 一括スキャン パラメータの設定 0x4 - 一括スキャン結果パラメータの読み取り | 
このコマンドに対してコマンド完了イベントが生成されます。顧客固有の機能を有効にしてもスキャンは開始されません。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Batch_Scan_opcode | 1 オクテット | 0x1 - 顧客固有の機能の有効化 0x2 - 一括スキャン ストレージ パラメータの設定 0x3 - 一括スキャン パラメータの設定 0x4 - 一括スキャン結果パラメータの読み取り | 
LE_Batch_Scan_Command: 顧客固有の機能の有効化
サブ OCF: 0x01
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| enable_customer_specific_feature_set | 1 オクテット | 0x01 - 一括スキャン機能の有効化 0x00 - 一括スキャン機能の無効化 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Batch_Scan_opcode | 1 オクテット | 0x1 - 顧客固有の機能の有効化 0x2 - 一括スキャン ストレージ パラメータの設定 0x3 - 一括スキャン パラメータの設定 0x4 - 一括スキャン結果パラメータの読み取り | 
LE_Batch_Scan_Command: 一括スキャン ストレージ パラメータ設定サブコマンド
サブ OCF: 0x02
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| Batch_Scan_Full_Max | 1 オクテット | 完全型に割り当てられた最大ストレージ容量(%) [範囲: 0~100] | 
| Batch_Scan_Truncated_Max | 1 オクテット | 短縮型に割り当てられた最大ストレージ容量(%) [範囲: 0~100] | 
| Batch_Scan_Notify_Threshold | 1 オクテット | 個々のストレージ プールに設定する通知レベル(%) [範囲: 0~100] 0 に設定すると、通知が無効になります。 ベンダー固有の HCI イベントが生成されます(ストレージしきい値違反サブイベント)。 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Batch_scan_opcode | 1 オクテット | 0x02 [一括スキャン パラメータの設定] | 
LE_Batch_Scan_Command: 一括スキャン パラメータ設定サブコマンド
サブ OCF: 0x03
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| Batch_Scan_Mode | 1 オクテット | 0x00 - 一括スキャンを無効化 0x01 - 短縮モードを有効化 0x02 - 完全モードを有効化 0x03 - 短縮モードと完全モードを有効化 | 
| Duty_cycle_scan_window | 4 オクテット | 一括スキャンのスキャン時間(スロット数) | 
| Duty_cyle_scan_interval | 4 オクテット | 一括スキャンの間隔時間(スロット数) | 
| own_address_type | 1 オクテット | 0x00 - デバイスのパブリック アドレス 0x01 - デバイスのランダム アドレス | 
| Batch_scan_Discard_Rule | 1 オクテット | 0 - 最も古いアドバタイズメントを破棄 1 - 最も弱い RSSI のアドバタイズメントを破棄 | 
      このサブコマンドを有効化することにより一括スキャンが開始されます。短縮型スキャンでは、結果は短縮形式で保存され、短縮型の一意のキーは {BD_ADDR, scan_interval} となります。つまり、スキャン間隔ごとに 1 つの BD_ADDR will しか記録されません。短縮モードで保持されるレコードは、{BD_ADDR, Tx Power, RSSI, Timestamp} です。
      完全モードを有効にすると、アクティブ スキャンが使用され、スキャン応答が記録されます。完全型の一意のキーは {MAC, Ad packet} であり、スキャン間隔は関係ありません。完全モードで保持されるレコードは、{BD_ADDR, Tx Power, RSSI, Timestamp, Ad packet, Scan Response} です。完全型で同じ AD パケットが複数のスキャン間隔にわたって認識された場合、記録されるのは 1 度のみです。一方、短縮モードでは、複数のスキャン間隔にわたって BA_ADDR を認識できる(スキャン間隔ごとに 1 回)ことが特徴です。RSSI は 1 回のスキャン間隔内で重複する一意のアドバタイズメントの平均値です。
                
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Batch_scan_opcode | 1 オクテット | 0x03 [一括スキャン パラメータの設定] | 
LE_Batch_Scan_Command: 一括スキャン結果読み取りサブコマンド
サブ OCF: 0x04
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| Batch_Scan_Data_read | 1 オクテット | 0x01 - 短縮モードデータ 0x02 - 完全モードデータ | 
このコマンドに対してコマンド完了イベントが生成されます。ホストからこのコマンドを発行した際、コントローラの結果全体が 1 つのコマンド完了イベントに収まらない場合があります。その場合は、コマンド完了イベントの結果でレコード数を示す値が 0(コントローラからホストに渡すレコードがこれ以上ない状態)になるまで、ホストからこのコマンドを繰り返し発行します。各コマンド完了イベントには、1 種類(完全型または短縮型)のみのデータについて、複数のレコードを含められます。
      コントローラとホストの時刻基準は同期されていません。タイムスタンプの単位は 50 ミリ秒で、その値はホストから Read_Batch_Scan_Results_Sub_cmd が発行されたタイミングが基準となります。ファームウェアにおけるコマンド到着時刻を T_c、ファームウェアでタイムスタンプが取得された時刻を T_fw とすると、報告される時間は(T_c - T_fw)になります。T_c と T_fw  はファームウェアの時間領域です。これにより、ホスト側でイベント発生時刻を計算できます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Batch_scan_opcode | 1 オクテット | 0x03 [一括スキャン パラメータの設定] | 
| Batch_Scan_data_read | 1 オクテット | 形式(短縮型または完全型) | 
| num_of_records | 1 オクテット | Batch_Scan_data_readのレコード数 | 
| format_of_data | 変数 | 短縮モード: Address[0]: 6 オクテット Address_Type[0]: 1 オクテット Tx_Pwr[0]: 1 オクテット RSSI[0]: 1 オクテット Timestamp[0]: 2 オクテット [上記形式の複数レコード( num_of_records)]完全モード: Address[0]: 6 オクテット Address_Type[0]: 1 オクテット Tx_Pwr[0]: 1 オクテット RSSI [0]: 1 オクテット Timestamp[0]: 2 オクテット Adv packet_len[0]: 1 オクテット Adv_packet[0]: Adv_packet_len オクテット Scan_data_resp_len[0]: 1 オクテット Scan_data_resp[0]: Scan_data_resp オクテット[上記形式の複数レコード( num_of_records)] | 
アドバタイジング パケット コンテンツ フィルタ
コントローラのアドバタイジング パケット コンテンツ フィルタ(APCF)の有効化、無効化、セットアップに使用します。APCF はコントローラのアドバタイジング レポートをフィルタしますが、定期アドバタイジングはフィルタしません。
LE_APCF_Command
OCF: 0x157
| コマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| APCF_opcode | 1 オクテット | 0x00 - APCF 有効 0x01 - APCF フィルタリング パラメータ設定 0x02 - APCF ブロードキャスターのアドレス 0x03 - APCF サービス UUID 0x04 - APCF サービス ソリシテーション UUID 0x05 - APCF ローカル名 0x06 - APCF メーカーデータ 0x07 - APCF サービスデータ 0x08 - APCF トランスポート ディスカバリー サービス 0x09 - APCF AD タイプフィルタ 0x10~0xAF - 将来の使用のために予約済み 0xB0~0xDF - ベンダー用に予約済み 0xE0~0xFE - 将来の使用のために予約済み 0xFF - APCF 拡張機能読み取り | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | リターン ステータス | 
| APCF_opcode | 1 オクテット | 0x00 - APCF 有効 0x01 - APCF フィルタリング パラメータ設定 0x02 - APCF ブロードキャスターのアドレス 0x03 - APCF サービス UUID 0x04 - APCF サービス ソリシテーション UUID 0x05 - APCF ローカル名 0x06 - APCF メーカーデータ 0x07 - APCF サービスデータ 0x08 - APCF トランスポート ディスカバリー サービス 0x09 - APCF AD タイプフィルタ 0x10~0xAF - 将来の使用のために予約済み 0xB0~0xDF - ベンダー用に予約済み 0xE0~0xFE - 将来の使用のために予約済み 0xFF - APCF 拡張機能読み取り | 
LE_APCF_Command: Enable_sub_cmd
サブ OCF: 0x00
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| APCF_enable | 1 オクテット | 0x01 - APCF 機能の有効化 0x00 - APCF 機能の無効化 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| APCF_opcode | 1 オクテット | 0x0 - APCF 有効 | 
| APCF_Enable | 1 オクテット | APCF_enableにより有効または無効が設定される | 
LE_APCF_Command: set_filtering_parameters_sub_cmd
このサブコマンドは、フィルタ仕様の追加または削除、オンチップ フィルタリング用フィルタリストの消去に使用されます。
サブ OCF: 0x01
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| APCF_Action | 1 オクテット | 0x00 - 追加 0x01 - 削除 0x02 - 消去 「削除」は、特定のフィルタを他のテーブルの関連する機能エントリとともに消去します。 「消去」は、すべてのフィルタと他のテーブルの関連エントリを消去します。 | 
| APCF_Filter_Index | 1 オクテット | フィルタ インデックス(0、 max_filter-1) | 
| APCF_Feature_Selection | 2 オクテット | 選択機能のビットマスク: ビット 0: ブロードキャスト アドレス フィルタを有効に設定 ビット 1: サービスデータ チェンジ フィルタを有効に設定 ビット 2: サービス UUID チェックを有効に設定 ビット 3: サービス ソリシテーション UUID チェックを有効に設定 ビット 4: ローカル名チェックを有効に設定 ビット 5: メーカーデータ チェックを有効に設定 ビット 6: サービスデータ チェックを有効に設定 ビット 7: トランスポート ディスカバリー サービス チェックを有効に設定 ビット 8: AD タイプチェックを有効に設定 | 
| APCF_List_Logic_Type | 2 オクテット | APCF_Feature_Selectionで指定した各選択機能(該当ビット位置)に対する論理演算。機能が有効な場合にのみ適用されます。 ビット位置の値: 0: OR 1: AND 「AND」ロジックを選択した場合、ADV パケットは、リスト内のエントリを「すべて」含む場合にのみフィルタを通過します。 「OR」ロジックを選択した場合、ADV パケットはリスト内のエントリのいずれかを含んでいればフィルタを通過します。 | 
| APCF_Filter_Logic_Type | 1 オクテット | 0x00: OR 0x01: AND 注: APCF_Feature_Selectionの最初の 3 つのフィールドに対するロジックタイプは N/A で、常に「AND」ロジックが適用されます。つまり、APCF_Feature_Selectionの 4 つのフィールド(ビット 3~6)にのみ適用されます。 | 
| rssi_high_thresh | 1 オクテット | [dBm 単位] アドバタイザーは、信号強度が RSSI 上限しきい値を上回る場合にのみ認識されたと見なされます。それ以外の場合のファームウェアの動作は、まったく認識していない場合と同じである必要があります。 | 
| delivery_mode | 1 オクテット | 0x00 - immediate0x01 - on_found0x02 - batched | 
| onfound_timeout | 2 オクテット | delivery_modeがon_foundの場合にのみ適用されます。[ミリ秒単位] 報告前に、ファームウェアで引き続き追加のアドバタイズメントを収集する時間。 | 
| onfound_timeout_cnt | 1 オクテット | delivery_modeがon_foundの場合にのみ適用されます。[個単位] onFoundのアドバタイズメントがファームウェア内に残っている場合(onfound_timeoutの時間内)、アドバタイズメントが収集され、その個数がチェックされます。個数がonfound_timeout_cntを超えると、すぐにOnFoundとして報告されます。 | 
| rssi_low_thresh | 1 オクテット | delivery_modeがon_foundの場合にのみ適用されます。[dBm 単位] アドバタイザー パケットは、受信パケットの RSSI が RSSI 下限しきい値以下の場合は、認識されていないと見なされます。 | 
| onlost_timeout | 2 オクテット | delivery_modeがon_foundの場合にのみ適用されます。[ミリ秒単位] 見つかったアドバタイズメントが lost_timeoutの時間継続して認識されない場合、アドバタイズメントは消失したと直ちに報告されます。 | 
| num_of_tracking_entries | 2 オクテット | delivery_modeがon_foundの場合にのみ適用されます。[個単位] フィルタごとにトラッキングするアドバタイザーの合計数。 | 
RSSI 値は負の値を表すために 2 の補数を使用する必要があります。
      ホストでは、さまざまなフィルタの組み合わせを管理するために、APCF_Application_Address_type を 0x02(すべてのブロードキャスター アドレスに対して)に設定して複数のフィルタを設定できるようにします。
    
      フィルタリング、一括処理、報告は相互に関連する概念です。すべてのアドバタイズメントおよび関連するスキャン応答は、すべてのフィルタを順番に通過する必要があります。したがって、結果としてのアクション(delivery_mode)はフィルタリングに密接に関係しています。配信モードは、report_immediately、batch、onFound です。OnLost 値は、OnFound になってから消失した場合に生じるという意味で、OnFound に関連しています。
    
次の処理フロー図で、この概念モデルを示します。
 
    アドバタイズメント(またはスキャン応答)フレームを受信すると、すべてのフィルタに順番に適用されます。あるアドバタイズメントが、あるフィルタによって即座に報告され、別のフィルタのアクションによって一括処理されるということもありえます。
コントローラで有効なパケットを受信した場合でも、RSSI レベルのしきい値(上限および下限)によって、フィルタ処理のためにフレームを可視化するタイミングを制御できます。配信モードが即時または一括に設定されている場合、フレームの RSSI を考慮して、コントローラでさらに処理を行うかどうかが決定されます。必要な報告と一括処理の動作はアプリによって異なります。これにより、同時に複数のアプリで、ファームウェアで結果の直接報告または結果の一括処理ができるようになります。たとえば、あるアプリから一括スキャンが実行され、その後別のアプリから通常の LE スキャンが実行された場合を考えます。フレームワークまたはアプリによって適切なフィルタが設定されてから、一括スキャンが実行されます。その後、2 つ目のアプリから通常のスキャンが実行されるときに、その前の一括処理は続行されます。ただし、通常のスキャンであるため、概念的には LE スキャン コマンドと同時に(既存のすべてのフィルタに加えて)null フィルタが追加されたのと同じことになります。LE スキャンがアクティブのときは、LE スキャン コマンドのパラメータが優先されます。通常の LE スキャンが無効化されたときに、前の一括スキャンが存在する場合、コントローラの処理は一括スキャンに戻ります。
      OnFound 配信モードは、設定されたフィルタに基づきます。フィルタのアクションを正常に完了させるトリガーの組み合わせは、onLost をトラッキングするエンティティと見なされます。対応するイベントは、LE Advt トラッキング サブイベントです。
    
フィルタの OnFound/OnLost への遷移(有効な場合)は次のようになります。
    
 
    このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| APCF_opcode | 1 オクテット | 0x01 - APCF フィルタリング パラメータの設定 | 
| APCF_Action | 1 オクテット | エコーバック コマンドの APCF_Action | 
| APCF_AvailableSpaces | 1 オクテット | フィルタ テーブル内の使用可能なエントリ数 | 
LE_APCF_Command: broadcast_address_sub_cmd
このサブコマンドは、アドバタイザー アドレスの追加または削除、オンチップ フィルタリング用アドバタイザー アドレスリストの消去に使用されます。
サブ OCF: 0x02
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| APCF_Action | 1 オクテット | 0x00 - 追加 0x01 - 削除 0x02 - 消去 「削除」は、指定したフィルタ内の指定したブロードキャスター アドレスを削除します。 「消去」は、指定したフィルタ内のすべてのブロードキャスター アドレスを消去します。 | 
| APCF_Filter_Index | 1 オクテット | フィルタ インデックス(0、 max_filter-1) | 
| APCF_Broadcaster_Address | 6 オクテット | ブロードキャスター アドレスのリストに追加する、またはリストから削除する 6 バイトのデバイス アドレス | 
| APCF_Application_Address_type | 1 オクテット | 0x00: パブリック 0x01: ランダム 0x02: N/A(アドレスタイプを無視) アイデンティティ アドレスタイプ(0x02、0x03)を使用して広告レポートをフィルタします。アドレスタイプ 0x02 および 0x03 で広告レポートを取得するには、このフィールドを 0x02: NA(アドレスタイプを無視)に設定します。 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| APCF_opcode | 1 オクテット | 0x02 - APCF ブロードキャスター アドレス | 
| APCF_Action | 1 オクテット | エコーバック コマンドの APCF_Action | 
| APCF_AvailableSpaces | 1 オクテット | ブロードキャスト アドレス テーブルで引き続き使用できる空きエントリの残数 | 
LE_APCF_Command: service_uuid_sub_cmd
このサブコマンドは、サービス UUID の追加または削除、オンチップ フィルタリング用サービス UUID リストの消去に使用されます。
サブ OCF: 0x03
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| APCF_Action | 1 オクテット | 0x00 - 追加 0x01 - 削除 0x02 - 消去 「削除」は、指定したフィルタ内の指定したサービス UUID アドレスを削除します。 「消去」は、指定したフィルタ内のすべてのサービス UUID を消去します。 | 
| APCF_Filter_Index | 1 オクテット | フィルタ インデックス(0、 max_filter-1) | 
| APCF_UUID | 2、4、16 オクテット | リストに追加する、またはリストから削除するサービス UUID(16 ビット、32 ビット、128 ビット)。 | 
| APCF_UUID_MASK | 2、4、16 オクテット | リストに追加するサービス UUID マスク(16 ビット、32 ビット、128 ビット)。 APCF_UUID.と同じ長さにする必要があります。 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| APCF_opcode | 1 オクテット | 0x03 - APCF サービス UUID | 
| APCF_Action | 1 オクテット | エコーバック コマンドの APCF_Action | 
| APCF_AvailableSpaces | 1 オクテット | サービス UUID テーブルで引き続き使用できる空きエントリの残数 | 
LE_APCF_Command: solicitation_uuid_sub_cmd
このサブコマンドは、ソリシテーション UUID の追加または削除、オンチップ フィルタリング用ソリシテーション UUID リストの消去に使用されます。
サブ OCF: 0x04
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| APCF_Action | 1 オクテット | 0x00 - 追加 0x01 - 削除 0x02 - 消去 「削除」は、指定したフィルタ内の特定のソリシテーション UUID アドレスを削除します。 「消去」は、指定したフィルタ内のすべてのソリシテーション UUID を消去します。 | 
| APCF_Filter_Index | 1 オクテット | フィルタ インデックス(0、 max_filter-1) | 
| APCF_UUID | 2、4、16 オクテット | リストに追加する、またはリストから削除するソリシテーション UUID(16 ビット、32 ビット、128 ビット)。 | 
| APCF_UUID_MASK | 2、4、16 オクテット | リストに追加するソリシテーション UUID マスク(16 ビット、32 ビット、128 ビット)。 APCF_UUIDと同じ長さにする必要があります。 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| APCF_opcode | 1 オクテット | 0x04 - APCF ソリシテーション UUID | 
| APCF_Action | 1 オクテット | エコーバック コマンドの APCF_Action | 
| APCF_AvailableSpaces | 1 オクテット | ソリシテーション UUID テーブルで引き続き使用できる空きエントリの残数 | 
LE_APCF_Command: local_name_sub_cmd
このサブコマンドは、ローカル名文字列の追加または削除、オンチップ フィルタリング用ローカル名文字列リストの消去に使用されます。
サブ OCF: 0x05
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| APCF_Action | 1 オクテット | 0x00 - 追加 0x01 - 削除 0x02 - 消去 「削除」は、指定したフィルタ内の指定したローカル名文字列を削除します。 「消去」は、指定したフィルタ内のすべてのローカル名文字列を消去します。 | 
| APCF_Filter_Index | 1 オクテット | フィルタ インデックス(0、 max_filter-1) | 
| APCF_LocName_Mandata_or_SerData | 可変 | ローカル名の文字列。 注: 
 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| APCF_opcode | 1 オクテット | 0x05 - APCF ローカル名 | 
| APCF_Action | 1 オクテット | エコーバック コマンドの APCF_Action | 
| APCF_AvailableSpaces | 1 オクテット | ローカル名テーブルで引き続き使用できる空きエントリの残数 | 
LE_APCF_Command: manf_data_sub_cmd
このサブコマンドは、メーカーデータ文字列の追加または削除、オンチップ フィルタリング用メーカーデータ文字列リストの消去に使用されます。
サブ OCF: 0x06
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| APCF_Action | 1 オクテット | 0x00 - 追加 0x01 - 削除 0x02 - 消去 「削除」は、指定したフィルタ内の指定したメーカーデータ文字列を削除します。 「消去」は、指定したフィルタ内のすべてのメーカーデータ文字列を消去します。 | 
| APCF_Filter_Index | 1 オクテット | フィルタ インデックス(0、 max_filter-1) | 
| APCF_LocName_Mandata_or_SerData | 可変 | メーカーデータの文字列。 注: 
 | 
| APCF_ManData_Mask | 可変 | リストに追加するメーカーデータのマスク。 APCF_LocName_or_ManData_or_SerDataと同じ長さにする必要があります。 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| APCF_opcode | 1 オクテット | 0x06 - APCF メーカーデータ | 
| APCF_Action | 1 オクテット | エコーバック コマンドの APCF_Action | 
| APCF_AvailableSpaces | 1 オクテット | メーカーデータ テーブルで引き続き使用できる空きエントリの残数 | 
LE_APCF_Command: service_data_sub_cmd
このサブコマンドは、サービスデータ文字列の追加または削除、オンチップ フィルタリング用サービスデータ文字列リストの消去に使用されます。
サブ OCF: 0x07
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| APCF_Action | 1 オクテット | 0x00 - 追加 0x01 - 削除 0x02 - 消去 「削除」は、指定したフィルタ内の指定したサービスデータ文字列を削除します。 「消去」は、指定したフィルタ内のすべてのサービスデータ文字列を消去します。 | 
| APCF_Filter_Index | 1 オクテット | フィルタ インデックス(0、 max_filter-1) | 
| APCF_LocName_Mandata_or_SerData | 可変 | サービスデータの文字列。 注: 
 | 
| APCF_LocName_Mandata_or_SerData_Mask | 可変 | リストに追加するサービスデータのマスク。 APCF_LocName_or_ManData_or_SerData.と同じ長さにする必要があります。 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| APCF_opcode | 1 オクテット | 0x07 - APCF サービスデータ | 
| APCF_Action | 1 オクテット | エコーバック コマンドの APCF_Action | 
| APCF_AvailableSpaces | 1 オクテット | サービスデータ テーブルで引き続き使用できる空きエントリの残数 | 
LE_APCF_Command: ad_type_sub_cmd
      このサブコマンドは、AD タイプの追加または削除、オンチップ フィルタリング用の AD タイプリストの消去に使用されます。read_extended_features_sub_cmd を使用して、このコマンドがサポートされているかどうかを確認します。APCF_AD_DATA_Length が 0 の場合は、広告データと広告データのマスクを比較せずに APCF_AD_TYPE をフィルタします。受信した ADV パケットのデータ長が AD_DATA_LENGTH を超える場合は、広告データの最初の AD_DATA_LENGTH バイトのみを比較し、残りのデータは無視します。
サブ OCF: 0x09
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| APCF_Action | 1 オクテット | 0x00 - 追加 0x01 - 削除 0x02 - 消去 「削除」は、指定したフィルタ内の指定した AD タイプを削除します。 「消去」は、指定したフィルタ内のすべての AD タイプを消去します。 | 
| APCF_Filter_Index | 1 オクテット | フィルタ インデックス(0、 max_filter-1) | 
| APCF_AD_TYPE | 1 オクテット | リストに追加する、またはリストから削除する AD タイプ。APCF_Action が 0x02(消去)の場合は無視されます。 | 
| APCF_AD_DATA_Length | 1 オクテット | 0x00 - データ コンテンツをフィルタしない APCF_Actionが 0x02(消去)の場合は無視されます。 | 
| APCF_AD_DATA | 可変 | APCF_AD_DATA_Lengthに基づく可変サイズAPCF_Actionが 0x02(消去)の場合は無視されます。 | 
| APCF_AD_DATA_MASK | 可変 | APCF_AD_DATA_Lengthに基づく可変サイズAPCF_Actionが 0x02(消去)の場合は無視されます。APCF_AD_DATAと同じ長さである必要があります。 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| APCF_opcode | 1 オクテット | 0x09 - APCF AD タイプ | 
| APCF_Action | 1 オクテット | エコーバック コマンドの APCF_Action | 
| APCF_AvailableSpaces | 1 オクテット | AD タイプテーブルで使用できる空きエントリの残数 | 
LE_APCF_Command: read_extended_features_sub_cmd
このサブコマンドは、拡張 APCF 機能の読み取りに使用されます。
サブ OCF: 0xFF
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| 該当なし | コマンド パラメータは空です。 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| APCF_opcode | 1 オクテット | 0xFF - APCF_Read_Extended_Features | 
| APCF_extended_features | 2 オクテット | サポートされている拡張機能のビットマスク: 
 ビットの値 
 | 
コントローラの動作と電力に関する情報コマンド
この情報は、上位のホストシステムで、すべてのコンポーネントの動作全体(BT コントローラとそのマクロ状態も含む)を、アプリとフレームワークで発生している事象と合わせて分析するためのものです。これを行うには、BT スタックとコントローラから次の情報が必要です。
- BT スタック: 現時点におけるコントローラのマクロ動作状態の報告
- ファームウェア: 動作と電力に関する集計情報の報告
ユーザーレベルで決定された BT ホストスタック マクロ状態:
- アイドル: [ページスキャン、LE advt、照会スキャン、LE スキャン]
- スキャン: [ページング、照会、接続試行]
- アクティブ: [ACL リンクオン、SCO リンク継続、スニフモード]
コントローラで全期間にわたりトラッキングされる動作には、Tx 時間、Rx 時間、アイドル時間、総消費電力があります。これらはホストに読み取られると消去されます。
LE_Get_Controller_Activity_Energy_Info
ベンダー固有のコマンドです。
OCF: 0x159
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| 該当なし | コマンド パラメータは空 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| total_tx_time_ms | 4 オクテット | Tx 動作の合計時間 | 
| total_rx_time_ms | 4 オクテット | Rx 動作の合計時間 | 
| total_idle_time_ms | 4 オクテット | アイドル状態の合計時間(非スリープ低電力状態) | 
| total_energy_used | 4 オクテット | 総消費電力 [電流(mA)、電圧(V)、時間(ミリ秒)の積] | 
LE 拡張スキャン パラメータ設定コマンド
このコマンドを使用して、コントローラでより長いスキャンのウィンドウと間隔を設定できます。BT コア仕様 5.2 では、スキャンのウィンドウと間隔に 10.24 秒の上限を設けており、アプリで 10.24 秒を超えるスキャン間隔を設定できないようにしています。
基本情報参照先: BT コア仕様 5.2、2,493 ページ「LE Set Scan Parameters command」
OCF: 0x15A
| コマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| LE_Ex_Scan_Type | 1 オクテット | 0x00 - パッシブ スキャン。 SCAN_REQパケットの送信が禁止されます(デフォルト)。0x01 - アクティブ スキャン。 SCAN_REQパケットの送信が許可されます。 | 
| LE_Ex_Scan_Interval | 4 オクテット | コントローラが最後の LE スキャンを開始してから次の LE スキャンを開始するまでの時間間隔を設定します。 範囲: 0x0004~0x00FFFFFF デフォルト: 0x0010(10 ミリ秒) 時間 = N × 0.625 ミリ秒 時間範囲: 2.5 ミリ秒~10,442.25 秒 | 
| LE_Ex_Scan_Window | 4 オクテット | LE スキャンの継続時間。 LE_Scan_Windowは、LE_Scan_Interval以下とします。範囲: 0x0004~0xFFFF デフォルト: 0x0010(10 ミリ秒) 時間 = N × 0.625 ミリ秒 時間範囲: 2.5 ミリ秒~40.95 秒 | 
| Own_Address_Type | 1 オクテット | 0x00 - デバイスのパブリック アドレス(デフォルト) 0x01 - デバイスのランダム アドレス | 
| LE_Ex_Scan_Filter_Policy | 0x00 - すべてのアドバタイジング パケットを受け入れる(デフォルト)。このデバイス宛てではないアドバタイジング パケットは無視されます。 0x01 - White List Only リストに入っていないデバイスからのアドバタイジング パケットを無視。このデバイス宛てではないアドバタイジング パケットは無視されます。 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
コントローラ デバッグ情報取得コマンド
この情報要素は、ホストがコントローラ デバッグ情報をバイナリ形式で取得し、後処理と分析を行うためのものです。これにより、実用場面での問題のデバッグが容易になり、エンジニアはツールキットを使って、分析用の情報を記録できます。この情報は、コントローラにより、ホストからイベント(コントローラ デバッグ情報サブイベント)で要求された場合や、コントローラ自らが必要とする場合に提供されます。ファームウェアの状態情報、クラッシュ ダンプ情報、ロギング情報などの報告に使用されます。
OCF: 0x15B
| コマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| なし | コマンド パラメータ リストは空 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
A2DP ハードウェア オフロードのサポート
A2DP オフロード機能は、BT コントローラに接続されたオーディオ プロセッサに対する A2DP オーディオ エンコーディング プロセスのオフロードをサポートします。この機能を使用すると、エンコードされたオーディオ データ ストリームは、BT ホストの関与なしに、オーディオ プロセッサから BT コントローラに直接渡されます。A2DP セッションの設定と制御については、従来どおり BT ホストが担当します。 2 つのバージョンのコマンドを使用できます。サブ OCF 0x01~0x02 の以前のコマンドは、オープンソースのコーデックのみサポートしています。サブ OCF 0x03~0x04 のバージョンは、設定済みのコーデックに依存しません。
OCF: 0x15D
A2DP オフロードの開始(以前)
サブ OCF: 0x01
このコマンドは、A2DP オフロード プロセスの設定と、A2DP ストリームの開始の両方に使用されます。
| コマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| Codec | 4 オクテット | コーデックの種類を指定: 0x01 - SBC 0x02 - AAC 0x04 - APTX 0x08 - APTX HD 0x10 - LDAC | 
| Max_Latency | 2 オクテット | 許容最大レイテンシ(ミリ秒単位)。0 にした場合、フラッシュは無効になります。 | 
| SCMS-T_Enable | 2 オクテット | オクテット 0: SCMS-T ヘッダーの追加を有効にするフラグ。 
 オクテット 1: SCMS-T ヘッダーが有効な場合、その値。 | 
| Sampling_Frequency | 4 オクテット | 0x01 - 44,100 Hz 0x02 - 48,000 Hz 0x04 - 88,200 Hz 0x08 - 96,000 Hz | 
| Bits_Per_Sample | 1 オクテット | 0x01 - サンプルあたり 16 ビット/ 0x02 - サンプルあたり 24 ビット 0x04 - サンプルあたり 32 ビット | 
| Channel_Mode | 1 オクテット | 0x01 - モノラル 0x02 - ステレオ | 
| Encoded_Audio_Bitrate | 4 オクテット | エンコードされたオーディオのビットレート(ビット/秒単位)。 0x00000000 - オーディオ ビットレート未指定または未使用。 0x00000001~0x00FFFFFF - エンコードされたオーディオのビットレート(ビット/秒単位)。 0x01000000~0xFFFFFFFF - 予約済み。 | 
| Connection_Handle | 2 オクテット | 設定する A2DP 接続の接続ハンドル | 
| L2CAP_Channel_ID | 2 オクテット | この A2DP 接続に使用される L2CAP チャネル ID | 
| L2CAP_MTU_Size | 2 オクテット | エンコードされたオーディオ パケットを含む L2CAP MTU の最大サイズ | 
| Codec_Information | 32 オクテット | コーデック固有の情報。 SBC コーデック: 
            A2DP v1.3 の SBC コーデック固有の情報要素をご覧ください。 AAC コーデック: 
            A2DP v1.3 の AAC コーデック固有の情報要素をご覧ください。 LDAC コーデック: 
            オクテット 0~3: ベンダー ID 
            オクテット 4~5: コーデック ID 
            オクテット 6: ビットレート インデックス: オクテット 7: LDAC チャネルモード オクテット 8~31: 予約済み 他のすべてのコーデック: オクテット 0~31: 予約済み | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Sub_Opcode | 1 オクテット | 0x01 - A2DP オフロードの開始 | 
A2DP オフロードの開始
サブ OCF: 0x03
このコマンドは、A2DP オフロード プロセスの設定と、A2DP ストリームの開始の両方に使用されます。
| コマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| Connection Handle | 2 オクテット | アクティブな HCI 接続のハンドル | 
| L2CAP_Channel_ID | 2 オクテット | A2DP ストリーミング用に開いた L2CAP チャネルの識別子 | 
| Data_Path_Direction | 1 オクテット | 0x00 - 出力(AVDTP ソース / マージ) 0x01 - 入力(AVDTP シンク / スプリット) | 
| Peer_MTU | 2 オクテット | L2CAP パケットの最大サイズ(ピアとのネゴシエーション)。 | 
| CP_Enable_SCMS_T | 1 オクテット | 0x00 - SCMS-T Content Protection Header の無効化 0x01 - SCMS-T Content Protection Header の有効化 | 
| CP_Header_SCMS_T | 1 オクテット | SCMS-T Content Protection Header を有効に( CP_SCMS_T_Enableを 0x01 に設定)すると、Bluetooth Assigned Numbers セクション 6.3.2 の定義に基づいて、オーディオ コンテンツの前に付くヘッダーの値が設定されます(A2DP セクション 3.2.1-2 を参照)。SCMS-T Content Protection が有効ではない場合は無視されます。 | 
| Vendor_Specific_Parameters_Length | 1 オクテット | ベンダー固有のパラメータの長さ(0~128 の範囲)。 追加のパラメータが提供されない場合は、0 の値が使用されます。 | 
| Vendor_Specific_Parameters | 0~128 オクテット | Bluetooth オーディオ HAL が提供するベンダー固有のパラメータ、 CodecParameters.vendorSpecificParameters[]。 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Sub_Opcode | 1 オクテット | 0x03 - A2DP オフロードの開始 | 
A2DP オフロードの停止(以前)
サブ OCF: 0x02
このコマンドは、A2DP オフロード ストリームの停止に使用されます。
| コマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| なし | コマンド パラメータ リストは空。 | 
このコマンドにはパラメータが定義されていません。
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Sub_Opcode | 1 オクテット | 0x02 - A2DP オフロードの停止 | 
A2DP オフロードの停止
サブ OCF: 0x04
このコマンドは、A2DP オフロード ストリームの停止に使用されます。
| コマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| Connection Handle | 2 オクテット | アクティブな HCI 接続のハンドル | 
| L2CAP_Channel_ID | 2 オクテット | A2DP ストリーミング用に開いた L2CAP チャネルの識別子 | 
| Data_Path_Direction | 1 オクテット | 0x00 - 出力(AVDTP ソース / マージ) 0x01 - 入力(AVDTP シンク / スプリット) | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Sub_Opcode | 1 オクテット | 0x04 - A2DP オフロードの停止 | 
Bluetooth 品質報告コマンド
BT 品質報告コマンド機能により、Bluetooth 品質イベントをホストに報告する Bluetooth コントローラのメカニズムが開始されます。次の 4 つのオプションを有効にできます。
- 品質モニタリング モード: コントローラはリンクの品質に関連する BQR サブイベントを定期的にホストに送信します。
- LSTO 接近: コントローラで、接続された BT デバイスからリンク監視タイムアウト(LSTO)値の半分より長い期間パケットを受信しなかった場合、コントローラからホストに LSTO 接近イベントが報告されます。
- A2DP オーディオ途切れ: オーディオの途切れを引き起こす要因がコントローラにより検出されると、コントローラからホストに A2DP オーディオ途切れイベントが報告されます。
- (e)SCO 音声途切れ: 音声の途切れを引き起こす要因がコントローラにより検出されると、コントローラからホストに (e)SCO 音声途切れイベントが報告されます。
- ルート インフラメーション: HAL またはコントローラに致命的なエラーが発生し、Bluetooth を再起動する必要がある場合に、このイベントがコントローラからスタックに送信されます。
- LMP / LL メッセージ トレース: コントローラはリモート デバイスの応答確認についての LMP / LL メッセージをホストに送信します。
- Bluetooth マルチプロファイル / Coex スケジューリング トレース: コントローラは、2.4 Ghz 周波数帯で複数の Bluetooth プロファイルとワイヤレス共存の処理に関するスケジュール情報をホストに送信します。
- コントローラ デバッグ情報メカニズム: 有効にすると、コントローラ デバッグ情報サブイベントを通じて、コントローラからデバッグ ロギングの情報を自らホストに報告できます。
- LE Audio 途切れ: オーディオの途切れを引き起こす要因がコントローラにより検出されると、コントローラからホストに LE オーディオ途切れイベントが報告されます。
- 
        高度な RF 統計モード: コントローラは RF 統計関連情報をホストに報告し、次の 2 つのレポート ユースケースをサポートします。
        - 定期レポート。
- イベント トリガー(ストリームの開始 / 停止、リンク品質のイベント トリガー)。
 
- Bluetooth 品質報告コマンドの BQR_Report_Action: ホストはこの HCI コマンドを使用して、品質モニタリング モード、エネルギー モニタリング モード、または高度な RF 統計モードの 1 回限りのクエリを取得できます。
OCF: 0x15E
| コマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| BQR_Report_Action | 1 オクテット | BQR_Quality_Event_Mask パラメータで指定した品質イベントの報告の追加および削除、すべての報告の消去を行うアクション。 
            0x00 - 追加 
            「削除」では、特定の品質イベントの報告が消去されます。 | 
| BQR_Quality_Event_Mask | 4 オクテット | 選択対象の品質イベント報告のビットマスク。 
            ビット 0: 品質モニタリング モードを有効にする設定。 | 
| BQR_Minimum_Report_Interval | 2 オクテット | 選択した品質イベントの報告の最小時間間隔を設定します。コントローラのファームウェアでは、設定された時間間隔内には次回のイベントを報告しません。間隔の設定は、追加する品質イベントそれぞれに対して個別に適用します。 
            単位: ミリ秒 | 
| BQR_Vendor_Specific_Quality_Event_Mask | 4 オクテット | 選択したベンダー固有品質イベント報告用のビットマスク。 このパラメータは、 BQR_Quality_Event_Maskのビット 15 が設定されている場合にのみ有効です。ビット 0~31: 予約済み。 | 
| BQR_Vendor_Specific_Trace_Mask | 4 オクテット | 選択したベンダー固有トレース報告用のビットマスク。 このパラメータは、 BQR_Quality_Event_Maskのビット 31 が設定されている場合にのみ有効です。ビット 0~31: 予約済み。 | 
| Report_interval_multiple | 4 オクテット | BQR_Minimum_Report_Intervalの乗数。この値が 1 以上の場合、BQR Report Interval は次の形式にしますBQR Report Interval = BQR_Minimum_Report_Interval x Report_interval_multiple。 コントローラのファームウェアでは、設定された時間間隔内には次回のイベントを報告してはなりません。間隔設定は、追加された品質イベント専用のものです。 
            単位: ミリ秒 BQR_Report_Intervalの設定がコントローラの能力を超えている場合、コマンドの完了時にコントローラは最大のBQR_Report_Interval時間を返す必要があります。 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Current_Quality_Event_Mask | 4 オクテット | 現在のビットマスク設定を示します。 ビット 0: 品質モニタリング モードが有効。 ビット 1: LSTO 接近イベントの報告が有効。 ビット 2: A2DP オーディオ途切れイベントの報告が有効。 ビット 3: (e)SCO 音声途切れイベントの報告が有効。 ビット 4: ルート インフラメーション イベントの報告が有効。 ビット 5: エネルギー モニタリング モードが有効。 ビット 6: LE オーディオ途切れイベントの報告が有効。 ビット 7: 接続失敗イベント。 ビット 8: 高度な RF 統計モードのイベント トリガーを有効にする設定。 ビット 9: 高度な RF 統計の定期レポートを有効にする設定。 ビット 10~14: 予約済み。 ビット 15: ベンダー固有品質イベントの報告が有効。 ビット 16: LMP / LL メッセージ トレースが有効。 ビット 17: Bluetooth マルチリンク / Coex スケジューリング トレースが有効。 ビット 18: コントローラ デバッグ情報メカニズムが有効。 ビット 19~30: 予約済み。 ビット 31: ベンダー固有トレースが有効。 | 
| Current_Vendor_Specific_Quality_Event_Mask | 4 オクテット | 現在のビットマスク設定を示します。 | 
| Current_Vendor_Specific_Trace_Mask | 4 オクテット | 現在のビットマスク設定を示します。 | 
| BQR_Report_interval | 4 オクテット | 現在のビットマスク設定を示します。 | 
| Current_Vendor_Specific_Trace_Mask | 4 オクテット | BQR_Report_intervalの設定。これは、BQR_Minimum_Report_Interval * Report_interval_multiple 間の最小値、またはコントローラの最大サポート間隔である必要があります。 | 
Dynamic Audio Buffer コマンド
Dynamic Audio Buffer は、さまざまなシナリオに基づいて Bluetooth コントローラのオーディオ バッファサイズを変更することで、オーディオの不具合を軽減します。
OCF: 0x15F
オーディオ バッファ時間機能を取得する
サブ OCF: 0x01
このコマンドを使用して、Bluetooth コントローラからオーディオ バッファ時間機能を取得します。
| コマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| なし | コマンド パラメータ リストは空 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Dynamic_Audio_Buffer_opcode | 1 オクテット | 0x01 - オーディオ バッファ時間を取得する | 
| Audio_Codec_Type_Supported | 4 オクテット | サポートされているコーデック タイプのビットマスク ビット 0 - SBC ビット 1 - AAC ビット 2 - APTX ビット 3 - APTX HD ビット 4 - LDAC ビット 5~31 は予約済み | 
| Audio_Codec_Buffer_Default_Time_For_Bit_0 | 2 オクテット | Audio_Codec_Type_Supported で指定されたビット 0 コーデック タイプのデフォルトのバッファ時間。 ビット 0 のコーデック タイプがサポートされていない場合、この値は 0 になります。 単位: ミリ秒 | 
| Audio_Codec_Buffer_Maximum_Time_For_Bit_0 | 2 オクテット | Audio_Codec_Type_Supported で指定されたビット 0 コーデック タイプの最大バッファ時間。 ビット 0 のコーデック タイプがサポートされていない場合、この値は 0 になります。 単位: ミリ秒 | 
| Audio_Codec_Buffer_Minimum_Time_For_Bit_0 | 2 オクテット | Audio_Codec_Type_Supported で指定されたビット 0 コーデック タイプの最小バッファ時間。 ビット 0 のコーデック タイプがサポートされていない場合、この値は 0 になります。 単位: ミリ秒 | 
| Audio_Codec_Buffer_Default_Time_For_Bit_1 | 2 オクテット | Audio_Codec_Type_Supported で指定されたビット 1 コーデック タイプのデフォルトのバッファ時間。 ビット 1 のコーデック タイプがサポートされていない場合、この値は 0 になります。 単位: ミリ秒 | 
| Audio_Codec_Buffer_Maximum_Time_For_Bit_1 | 2 オクテット | Audio_Codec_Type_Supported で指定されたビット 1 コーデック タイプの最大バッファ時間。 ビット 1 のコーデック タイプがサポートされていない場合、この値は 0 になります。 単位: ミリ秒 | 
| Audio_Codec_Buffer_Minimum_Time_For_Bit_1 | 2 オクテット | Audio_Codec_Type_Supported で指定されたビット 1 コーデック タイプの最小バッファ時間。 ビット 1 のコーデック タイプがサポートされていない場合、この値は 0 になります。 単位: ミリ秒 | 
| ...... | ...... | ...... | 
| Audio_Codec_Buffer_Default_Time_For_Bit_31 | 2 オクテット | Audio_Codec_Type_Supported で指定されたビット 31 コーデック タイプのデフォルトのバッファ時間。 ビット 31 のコーデック タイプがサポートされていない場合、この値は 0 になります。 単位: ミリ秒 | 
| Audio_Codec_Buffer_Maximum_Time_For_Bit_31 | 2 オクテット | Audio_Codec_Type_Supported で指定されたビット 31 コーデック タイプの最大バッファ時間。 ビット 31 のコーデック タイプがサポートされていない場合、この値は 0 になります。 単位: ミリ秒 | 
| Audio_Codec_Buffer_Minimum_Time_For_Bit_31 | 2 オクテット | Audio_Codec_Type_Supported で指定されたビット 31 コーデック タイプの最小バッファ時間。 ビット 31 のコーデック タイプがサポートされていない場合、この値は 0 になります。 単位: ミリ秒 | 
オーディオ バッファ時間を設定する
サブ OCF: 0x02
このコマンドを使用して、オーディオ バッファ時間を Bluetooth コントローラに設定します。
| コマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| Audio_Codec_Buffer_Time | 2 オクテット | 現在使用されているコーデックに対してリクエストされたオーディオ バッファ時間。 単位: ミリ秒 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Dynamic_Audio_Buffer_opcode | 1 オクテット | 0x02 - オーディオ バッファ時間を設定する | 
| Audio_Codec_Buffer_Time | 2 オクテット | Bluetooth コントローラの現在のオーディオ バッファ時間。 単位: ミリ秒 | 
HCI イベント(ベンダー固有)
ベンダー固有の HCI イベントが必要になる場合があります。BT コア仕様 5.2 の 1,897 ページの図 5.4 をご覧ください。イベント パラメータ 0 には、最初のサブイベント コードが常に含まれており、このコードに基づいて残りの HCI イベントがデコードされます。
| イベント パラメータ | サイズ | 目的 | 
|---|---|---|
| HCI_vendor_specific_event_code | 1 オクテット | 0xFF | 
| sub_event_code | 1 オクテット | サブイベント コードのサイズは 1 オクテットで、HCI イベント パケット内ではパラメータ長の直後のバイトです。 | 
ストレージしきい値違反サブイベント
このイベントは、ストレージしきい値違反が発生したことを示します。
サブイベント コード = 0x54
| サブイベント パラメータ | サイズ | 目的 | 
|---|---|---|
| なし | 
LE マルチアドバタイジング状態変化サブイベント
このイベントは、アドバタイジング インスタンスの状態が変化したことを示します。現時点では、接続の結果として停止したアドバタイジング インスタンスを示すためのみに、このイベントは使用されます。
サブイベント コード = 0x55
| サブイベント パラメータ | サイズ | 目的 | 
|---|---|---|
| Advertising_instance | 1 オクテット | アドバタイジング インスタンスを特定します 有効な値は 0~ max_advt_instances-1 です | 
| State_Change_Reason | 1 オクテット | 0x00: 接続を受信しました | 
| Connection_handle | 2 オクテット | advtインスタンスが無効になる原因となった接続を特定します(適用外の場合は 0xFFFF) | 
LE アドバタイズメント トラッキング サブイベント
このイベントは、アドバタイザーが見つかった、または消失したことを示します。
サブイベント コード = 0x56
| サブイベント パラメータ | サイズ | 目的 | 
|---|---|---|
| APCF_Filter_Index | 1 オクテット | フィルタ インデックス(0、 max_filter-1) | 
| Advertiser_State | 1 オクテット | 0x00: アドバタイザー発見 0x01: アドバタイザー消失 | 
| Advt_Info_Present | 1 オクテット | 0x00: アドバタイザー情報( Advt_Info)あり0x01: アドバタイザー情報( Advt_Info)なし | 
| Advertiser_Address | 6 オクテット | パブリック アドレスまたはランダム アドレス | 
| Advertiser_Address_Type | 1 オクテット | 0x00: パブリック アドレス 0x01: ランダム アドレス | 
| Advt_Info | Tx_Pwr[0]: 1 オクテットRSSI[0]: 1 オクテットTimestamp[0]: 2 オクテットAdv packet_len[0]: 1 オクテットAdv_packet[0]:Adv_packet_lenオクテットScan_data_resp_len[0]: 1 オクテットScan_data_resp[0]:Scan_data_respオクテット | 
コントローラ デバッグ情報サブイベント
このイベントは、コントローラがバイナリ デバッグ情報をホストに提供するために使用されます。
サブイベント コード = 0x57
| サブイベント パラメータ | サイズ | 目的 | 
|---|---|---|
| debug_block_byte_offset_start | 2 オクテット | 先頭からのデバッグ ブロックのバイト オフセット | 
| last_block | 1 オクテット | 0x00: さらにデバッグデータあり 0x01: 最後のバイナリ ブロック(これ以上デバッグデータなし) | 
| cur_pay_load_sz | 2 オクテット | 現在のイベントのバイナリ ブロック サイズ | 
| Debug_Data | 変数 | cur_payload_szのデバッグデータ | 
Bluetooth 品質報告サブイベント
このイベントは、Bluetooth の品質イベントの発生、コントローラによる LMP / LL メッセージ トレースと Bluetooth マルチリンク / Coex スケジューリング トレースのアップロード、コントローラによるデバッグ情報のダンプのいずれかを示します。
サブイベント コード = 0x58 [Quality_Report_Id = 0x01~0x04、リンクの品質に関連したイベント]
| サブイベント パラメータ | サイズ | 目的 | 
|---|---|---|
| Quality_Report_Id | 1 オクテット | 0x01: モニタリング モードの品質報告。 0x02: LSTO 接近。 0x03: A2DP オーディオ途切れ。 0x04: (e)SCO 音声途切れ。 0x05~0x06: 予約済み。 0x07: LE オーディオ途切れ。 0x08: 接続失敗。 0x09~0xFF: 予約済み。 | 
| Packet_Types | 1 オクテット | 0x01: ID 0x02: NULL 0x03: POLL 0x04: FHS 0x05: HV1 0x06: HV2 0x07: HV3 0x08: DV 0x09: EV3 0x0A: EV4 0x0B: EV5 0x0C: 2-EV3 0x0D: 2-EV5 0x0E: 3-EV3 0x0F: 3-EV5 0x11: DH1 0x12: DM3 0x13: DH3 0x14: DM5 0x15: DH5 0x16: AUX1 0x17: 2-DH1 0x18: 2-DH3 0x19: 2-DH5 0x1A: 3-DH1 0x1B: 3-DH3 0x1C: 3-DH5 0x1D~0x50: 予約済み 0x51: ISO パケット 0x52~0xFF: 予約済み | 
| Connection_Handle | 2 オクテット | ACL / (e)SCO / ISO 接続ハンドル。 | 
| Connection_Role | 1 オクテット | 接続における役割。 0x00: 中央 0x01: 周辺機器 0x02~0xFF: 予約済み。 | 
| TX_Power_Level | 1 オクテット | 指定された Connection_Handle の現在の送信電力レベル。 この値は HCI_Read_Transmit_Power_Level HCI コマンドに対するコントローラの応答と同じになります。 | 
| RSSI | 1 オクテット | [dBm 単位] 
            指定された Connection_Handle の受信電波強度表示(RSSI)値。 | 
| SNR | 1 オクテット | [dB 単位] 
            指定された Connection_Handle の信号対雑音比(SNR)値。 | 
| Unused_AFH_Channel_Count | 1 オクテット | AFH_channel_map 内の未使用のチャネル数を示します。 0x4F~0xFF: 予約済み。 | 
| AFH_Select_Unideal_Channel_Count | 1 オクテット | 干渉により品質が悪いものの、AFH 用に選択されているチャネルの数を示します。 Bluetooth 仕様で許可される最小チャネル数は 20 チャネルであるため、79 チャネルすべてが干渉を受けて品質が悪い場合でも、コントローラは少なくとも 20 チャネルを AFH 用に選択する必要があります。 | 
| LSTO | 2 オクテット | 現在のリンク監視タイムアウト設定。 時間 = N × 0.625 ミリ秒 時間範囲: 0.625 ミリ秒~40.9 秒 | 
| Connection_Piconet_Clock | 4 オクテット | 指定された Connection_Handle のピコネット クロック。 この値は、パラメータ「Which_Clock」を 0x01(ピコネット クロック)に設定した場合の HCI_Read_Clock HCI コマンドに対するコントローラの応答と同じになります。 単位: N × 0.3125 ミリ秒(1 Bluetooth クロック) | 
| Retransmission_Count | 4 オクテット | 最後のイベント以降の再送回数。 この値はホストへの報告後にリセットします。 | 
| No_RX_Count | 4 オクテット | 最後のイベント以降、受信がなかった回数。 この値は、スケジュールされたタイムスロットでパケットが受信されなかった場合、または受信したパケットが破損していた場合に増加します。 この値はホストへの報告後にリセットします。 | 
| NAK_Count | 4 オクテット | 最後のイベント以降の NAK(否定応答)の数。 この値はホストへの報告後にリセットします。 | 
| Last_TX_ACK_Timestamp | 4 オクテット | 最後の送信 ACK のタイムスタンプ。ピコネット セントラルの Bluetooth クロック(CLK)に基づきます。 単位: N × 0.3125 ミリ秒(1 Bluetooth クロック) | 
| Flow_Off_Count | 4 オクテット | 最後のイベント以降、コントローラでフローオフ(STOP)を受信した回数。 この値はホストへの報告後にリセットします。 | 
| Last_Flow_On_Timestamp | 4 オクテット | 最後のフローオン(GO)のタイムスタンプ。ピコネット セントラルの Bluetooth クロック(CLK)に基づきます。 単位: N × 0.3125 ミリ秒(1 Bluetooth クロック) | 
| Buffer_Overflow_Bytes | 4 オクテット | [バイト単位] 
            最後のイベント以降のバッファ オーバーフローのバイト数。 | 
| Buffer_Underflow_Bytes | 4 オクテット | [バイト単位] 
            最後のイベント以降のバッファ アンダーフローのバイト数。 | 
| bdaddr | 6 オクテット | リモート デバイスのアドレス | 
| cal_failed_item_count | 1 オクテット | 調整に失敗したアイテムの数 | 
| TX_Total_Packets | 4 オクテット | 送信されたパケットの数。 | 
| TX_UnAcked_Packets | 4 オクテット | 確認応答を受け取らなかったパケットの数。 この値はホストへの報告後にリセットされます。 | 
| TX_Flushed_Packets | 4 オクテット | フラッシュ ポイントまでに送信されなかったパケットの数。 この値はホストへの報告後にリセットされます。 | 
| TX_Last_Subevent_Packets | 4 オクテット | CIS イベントの最後のサブイベントで、リンクレイヤが CIS データ PDU を送信したパケットの数。 この値はホストへの報告後にリセットされます。 リンクに有効な値がない場合、値はゼロになります。 | 
| CRC_Error_Packets | 4 オクテット | 最後のイベント以降に、CRC エラーが起きた受信パッケージの数。 この値はホストへの報告後にリセットされます。 | 
| RX_Duplicate_Packets | 4 オクテット | 最後のイベント以降に受信した重複(再送信)パッケージの数。 この値はホストへの報告後にリセットされます。 | 
| RX_Unreceived_Packets | 4 オクテット | 受信されなかったパケットの数は、LE READ ISO リンクの品質コマンドのパラメータと同じです(Bluetooth コア仕様バージョン 5.4 を参照)。関連するストリームは CIS と BIS です。 この値が増加したとき、リンクレイヤは、CIS ではフラッシュ ポイントまでに、BIS では関連するイベントの終了時までに、特定のペイロードを受信しなくなります(Bluetooth コア仕様バージョン 5.4 Vol 6 パート B、セクション 4.4.6.6 を参照)。 | 
| Coex_Info_Mask | 2 オクテット | ビット 0 - CoexInvolvement: このレポートが生成される際に、共存活動(たとえば、A2DP Chops や LSTO 接近)が関与していると疑われることを示すように設定されます。 ビット 1 - WL 2G Radio Active: WLAN 2G 無線がアクティブであることを示すように設定されます。 ビット 2 - WL 2G Connected: WLAN 2G 無線がアクティブで接続されていることを示すように設定されます。 ビット 3 - WL 5G / 6G Radio Active: WLAN 5G / 6G 無線がアクティブであることを示すように設定されます。 ビット 4~15: 予約済み。 | 
| ベンダー固有のパラメータ | (パラメータ合計長 - 未確定)× オクテット | コントローラ ベンダーが、その他のベンダー固有のパラメータを取得することを目的とします。 | 
サブイベント コード = 0x58 [Quality_Report_Id = 0x05、ルート インフラメーション イベント]
このイベントは、Bluetooth HAL またはコントローラに致命的なエラーが発生し、この状況を記録して再起動するために Bluetooth スタックが必要であることを示します。コントローラは、どのような場合でもデバッグ情報イベントの最初のフラグメントを送信する前に、Root_Inflammation_Event を Bluetooth スタックに送信する必要があります。
Error_Code パラメータには、HAL / コントローラから報告されたエラーコードが含まれます。チップセット ベンダー固有のエラーの場合、0 となります。Vendor_Specific_Error_Code には、HAL / コントローラから送信されたチップセット ベンダー固有のエラーコードが含まれています。パラメータ Error_Code が 0 でない場合は 0 に設定する必要があります。パラメータ Error_Code と Vendor_Specific_Error_Code の両方を 0 にはしないでください。
| サブイベント パラメータ | サイズ | 目的 | 
|---|---|---|
| Quality_Report_Id | 1 オクテット | 0x00~0x04: 予約済み。 0x05: ルート インフラメーション。 0x06 ~ 0xFF: 0x06~0xFF: 予約済み。 | 
| Error_Code | 1 オクテット | 0x00: チップセット ベンダー固有のエラーコードが含まれています。 0x01~0xFF: コントローラでエラーが発生しました。エラーコードと説明のリストについては、Bluetooth の仕様 [Vol 2] Part D のエラーコードをご覧ください。 | 
| Vendor_Specific_Error_Code | 1 オクテット | 0x00: チップセット ベンダー固有のエラーコードは含まれていません。 0x01~0xFF: チップセット ベンダー固有のエラーコード。 | 
| ベンダー固有のパラメータ | (パラメータ合計長 - 4) × オクテット | コントローラ ベンダーが、その他のベンダー固有のパラメータを取得することを目的とします。 | 
サブイベント コード = 0x58 [Quality_Report_Id = 0x11~0x13、ログダンプに関連したイベント]
| サブイベント パラメータ | サイズ | 目的 | 
|---|---|---|
| Quality_Report_Id | 1 オクテット | 0x00~0x10: 予約済み。 0x11: LMP / LL メッセージ トレース。 0x12: Bluetooth マルチリンク / Coex スケジューリング トレース。 0x13: コントローラ デバッグ情報のデータダンプ。 0x14 ~ 0xFF: 0x14~0xFF: 予約済み。 | 
| Connection_Handle | 2 オクテット | 接続ハンドル。 | 
| ベンダー固有のパラメータ | (パラメータ合計長 - 4) × オクテット | ベンダー固有の形式の LMP メッセージ トレース、Bluetooth マルチリンク / Coex スケジューリング トレース、コントローラ デバッグ情報のデータダンプ。 | 
マルチアドバタイザー サポート
マルチアドバタイザー サポートの目的は次のとおりです。
- 
        複数のアドバタイズメントのサポート(max_advt_instances)
- 送信範囲に応じた多様な送信電力のサポート
- 多様なアドバタイジング コンテンツへの対応
- アドバタイザーごとの個別対応
- アドバタイザーごとのプライバシー(トラッキング不可能)のサポート
- 接続性の向上
この仕様を既存の基準に近づけるために、以下のベンダー固有のコマンドが用意されています。これらは、Bluetooth コア仕様 4.1 に基づいています。
LE_Multi_Advt_Command
OCF: 0x154
| コマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| Multi_advt_opcode | 1 オクテット | 0x01 - Set_Advt_Param_Multi_Sub_Cmd0x02 - Set_Advt_Data_Multi_Sub_Cmd0x03 - Set_Scan_Resp_Data_Multi_Sub_Cmd0x04 - Set_Random_Addr_Multi_Sub_Cmd0x05 - Set_Advt_Enable_Multi_Sub_Cmd | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Multi_advt_opcode | 1 オクテット | 0x01 - Set_Advt_Param_Multi_Command0x02 - Set_Advt_Data_Multi_Command0x03 - Set_Scan_Resp_Data_Multi_Command0x04 - Set_Random_Addr_Multi_Command0x05 - Set_Advt_Enable_Multi_Command | 
LE_Multi_Advt_Command: Set_Advt_Param_Multi_Sub_Cmd
基本情報参照先: Bluetooth コア仕様 4.1、964 ページ「LE Set Advertising Parameters Command」
サブ OCF: 0x01
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| Advertising_Interval_Min | 仕様どおり | 仕様どおり | 
| Advertising_Interval_Max | 仕様どおり | 仕様どおり | 
| Advertising_Type | 仕様どおり | 仕様どおり | 
| Own_Address_Type | 仕様どおり | 仕様どおり | 
| Own_Address | 仕様どおり | 仕様どおり | 
| Direct_Address_Type | 仕様どおり | 仕様どおり | 
| Direct_Address | 仕様どおり | 仕様どおり | 
| Advertising_Channel_Map | 仕様どおり | 仕様どおり | 
| Adverstising_Filter_Policy | 仕様どおり | 仕様どおり | 
| Advertising_Instance | 1 オクテット | 上記のパラメータのインスタンスへの適用を指定します | 
| Tx_power | 1 オクテット | Transmit_Power 単位: dBm(符号付き整数) 範囲: -70~+20 | 
      Own_Address パラメータは、このマルチアドバタイズメント インスタンスのセットアップ時にホストで設定したアドレスにできます。これにより、最初のビーコンの送信時に解決可能なプライベート アドレスを持つことができます。インスタンスでのアドバタイズメントは、接続に関係なく続行されます。ホスト BT スタックは、接続後にインスタンスでアドバタイズメントを開始するコマンドを発行できます。
      Bluetooth コア仕様 4.1 で指定されているように、上記のコマンドに対してコマンド完了イベントが生成されます。アドバタイジング インスタンスまたは Tx_Power パラメータが無効な場合、コントローラは不成功(無効なパラメータ)コードを返します。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Multi_advt_opcode | 1 オクテット | 0x01 [ Set_Advt_Param_Multi_Sub_Cmd] | 
LE_Multi_Advt_Command: Set_Advt_Data_Multi_Sub_Cmd
基本情報参照先: Bluetooth コア仕様 4.1、969 ページ「LE Set Advertising Data Command」
サブ OCF: 0x02
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| Advertising_Data_Length | 仕様どおり | 仕様どおり | 
| Advertising_Data | 仕様どおり | 仕様どおり | 
| Advertising_Instance | 1 オクテット | 上記のパラメータのインスタンスへの適用を指定します | 
      Bluetooth コア仕様 4.1 で指定されているように、上記のコマンドに対してコマンド完了イベントが生成されます。アドバタイジング インスタンスまたは Tx_Power パラメータが無効な場合は、コントローラは不成功コードを返します。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Multi_advt_opcode | 1 オクテット | 0x02 [ Set_Advt_Data_Multi_Sub_Cmd] | 
LE_Multi_Advt_Command: Set_Scan_Resp_Data_Multi_Sub_Cmd
基本情報参照先: Bluetooth コア仕様 4.1、970 ページ「LE Set Scan Response Data Command」
サブ OCF: 0x03
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| Scan_Response_Data_Length | 仕様どおり | 仕様どおり | 
| Scan_Response_Data | 仕様どおり | 仕様どおり | 
| Advertising_Instance | 1 オクテット | 上記のパラメータのインスタンスへの適用を指定します | 
      Bluetooth コア仕様 4.1 で指定されているように、上記のコマンドに対してコマンド完了イベントが生成されます。アドバタイジング インスタンスまたは Tx_Power パラメータが無効な場合、コントローラは不成功コード(無効なパラメータ)を返します。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Multi_advt_opcode | 1 オクテット | 0x03 [ Set_Scan_Resp_Data_Multi_Sub_Cmd] | 
LE_Multi_Advt_Command: Set_Random_Addr_Multi_Sub_Cmd
基本情報参照先: Bluetooth コア仕様 4.1、963 ページ「LE Set Random Address Command」
サブ OCF: 0x04
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| ランダム アドレス | 仕様どおり | 仕様どおり | 
| Advertising_Instance | 1 オクテット | 上記のパラメータのインスタンスへの適用を指定します | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Multi_advt_opcode | 1 オクテット | 0x04 [ Set_Random_Addr_Multi_Sub_Cmd] | 
LE_Multi_Advt_Command: Set_Advt_Enable_Multi_Sub_Cmd
基本情報参照先: Bluetooth コア仕様 4.1、971 ページ「LE Set Advertise Enable Command in that core specification」
OCF: 0x05
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| Advertising_Enable | 1 オクテット | 値 1 は、有効を意味します。その他の値は、無効を意味します。 | 
| Advertising_Instance | 1 オクテット | 上記のパラメータのインスタンスへの適用を指定します。インスタンス 0 は、標準の HCI インスタンスを意味します。 | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Multi_advt_opcode | 1 オクテット | 0x05 [ Set_Advt_Enable_Multi_Sub_Cmd] | 
プライベート アドレスのオフロード解決
この機能により、コントローラのファームウェアまたはハードウェアでプライベート アドレスが解決されるため、次のメリットがあります。
- プライベート アドレスをホストで解決することによるレイテンシの回避
- ホストのアイドル状態、スリープ状態からの復帰を避けることによる電力節約
LE_Set_RPA_Timeout
OCF: 0x15C
| コマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| LE_local_IRK | 16 オクテット | 解決可能なランダム アドレスの生成に使用したローカル デバイス IRK。 | 
| tRPA_min | 2 オクテット | 最小 RPA 生成タイムアウト(秒単位)。コントローラでは、このタイムアウト時またはそれ以降に、アドバタイジング、スキャニング、接続のイベント用の新しい解決可能なアドレスを生成する必要があります。 有効範囲: 300~1,800 | 
| tRPA_max | 2 オクテット | 最大 RPA 生成タイムアウト(秒単位)。コントローラでは、このタイムアウト時またはそれ以前に、アドバタイジング、スキャニング、接続のイベント用の新しい解決可能なアドレスを生成する必要があります。 有効範囲: tRPA_min~1,800 | 
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンドのステータス。 推奨される HCI ステータス値: 0x00 成功 0x01 不明なコマンド(サポートされていない場合) 0x12 無効なコマンド パラメータ(パラメータが指定範囲外の場合) | 
LE_RPA_offload_Command
OCF: 0x155
| コマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| RPA_offload_opcode | 1 オクテット | 0x1 - 顧客固有の機能の有効化 0x2 - リストへの IRK の追加 0x3 - リストからの IRK の削除 0x4 - IRK リストの消去 0x5 - IRK リストエントリの読み取り | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Event_RPA_offload_opcode | 1 オクテット | 0x1 - 顧客固有の機能の有効化 0x2 - リストへの IRK の追加 0x3 - リストからの IRK の削除 0x4 - IRK リストの消去 0x5 - IRK リストエントリの読み取り | 
LE_RPA_offload: Enable_cust_specific_sub_Command
サブ OCF: 0x01
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| enable_customer_specific_feature_set | 1 オクテット | 0x01 - オフロード RPA 機能の有効化 0x00 - オフロード RPA 機能の無効化 | 
      RPA オフロードは、チップの機能に応じてホストから有効化する必要があります。LE_Get_Vendor_Capabilities_Command をご覧ください。各チップのファームウェアの max_irk_list_sz はさまざまです。
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Event_cust_specific_feature_opcode | 1 オクテット | 0x01 [顧客固有の機能の有効化] | 
LE_RPA_offload: Add_IRK_to_list_sub_Command
サブ OCF: 0x02
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| LE_IRK | 16 オクテット | LE IRK(1 バイト目の LSB) | 
| Address_Type | 1 オクテット | 0: パブリック アドレス 1: ランダム アドレス | 
| LE_Device_Address | 6 オクテット | IRK(1 バイト目の LSB)に関連付けられたパブリック アドレスまたはランダム アドレス | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Event_cust_specific_feature_opcode | 1 オクテット | 0x02 [リストへの IRK の追加] | 
| LE_IrkList_AvailableSpaces | 1 オクテット | 現オペレーション後の使用可能な IRL リストエントリ | 
LE_RPA_offload: Remove_IRK_to_list_sub_Command
サブ OCF: 0x03
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| Address_Type | 1 オクテット | 0: パブリック アドレス 1: ランダム アドレス | 
| LE_Device_Address | 6 オクテット | IRK に関連付けられたパブリック アドレスまたはランダム アドレス | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Event_cust_specific_feature_opcode | 1 オクテット | 0x03 [リストからの IRK の削除] | 
| LE_IrkList_AvailableSpaces | 1 オクテット | 現オペレーション後の使用可能な IRL リストエントリ | 
LE_RPA_offload: Clear_IRK_list_sub_Command
サブ OCF: 0x04
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| なし | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Event_cust_specific_feature_opcode | 1 オクテット | 0x04 [IRK リストの消去] | 
| LE_IrkList_AvailableSpaces | 1 オクテット | 現オペレーション後の使用可能な IRL リストエントリ [ max_irk_list_sz] | 
LE_RPA_offload: Read_IRK_list_sub_Command
サブ OCF: 0x05
| サブコマンド パラメータ | サイズ | 目的 | 
|---|---|---|
| LE_read_IRK_list_entry-index | 1 オクテット | IRK リストのインデックス [0, max_irk_list_sz-1] | 
このコマンドに対してコマンド完了イベントが生成されます。
| リターン パラメータ | サイズ | 目的 | 
|---|---|---|
| Status | 1 オクテット | コマンド完了ステータス | 
| Event_cust_specific_feature_opcode | 1 オクテット | 0x05 [IRK リストエントリの読み取り] | 
| LE_Read_IRK_List_entry | 1 オクテット | ホストが読み上げる IRK のインデックス(最大 IRK リストサイズは 32) | 
| LE_IRK | 16 オクテット | IRK 値 | 
| Address_Type | 1 オクテット | 0: パブリック アドレス 1: ランダム アドレス | 
| LE_Device_Address | 6 オクテット | IRK に関連付けられたパブリック アドレスまたはランダム アドレス | 
| LE_Resolved_Private_Address | 6 オクテット | この IRK の現在解決された解決可能プライベート アドレス | 
