Host Controller Interface (HCI) digunakan untuk berinteraksi dengan pengontrol Bluetooth.
Dokumen ini memberikan daftar persyaratan HCI Bluetooth (BT) dan Bluetooth Hemat Energi (BLE). Tujuannya adalah agar vendor stack BT Host dan vendor pengontrol BT mematuhi persyaratan platform ini untuk menggunakan set fitur yang dijelaskan di bawah.
Dokumen ini merujuk pada Spesifikasi Bluetooth Core 5.2 sebagai "spec". Spesifikasi Bluetooth Core 5.2 tersedia di situs Bluetooth SIG bersama dengan dokumen lain yang diadopsi.
Ringkasan desain umum
Kemampuan dan konfigurasi chip
Sebagai platform terbuka, Android memiliki matriks rilis software, OEM, vendor, serta kemampuan platform dan chip.
Untuk mengelola berbagai lanskap dan mengelola migrasi, filosofi desain yang memungkinkan pengontrol BT mengekspos kemampuannya (di luar Spesifikasi Inti Bluetooth 5.2 standar) dijelaskan dalam dokumen ini. Stack BT host kemudian dapat menggunakan kemampuan ini untuk menentukan fitur mana yang akan diaktifkan.
Mendukung standar terbuka
Salah satu tujuan Android adalah mendukung standar terbuka setelah ratifikasi dalam spesifikasi Bluetooth. Jika fitur yang dijelaskan di bawah tersedia dalam metode HCI standar dalam spesifikasi Bluetooth mendatang, kami akan cenderung menjadikan pendekatan tersebut sebagai default.
Kemampuan khusus vendor
Perintah khusus vendor: LE_Get_Vendor_Capabilities_Command
OpCode Command Field (OCF): 0x153
| Parameter perintah | Ukuran | Tujuan |
|---|---|---|
| NA | Daftar parameter perintah kosong |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
max_advt_instances(Tidak digunakan lagi) |
1 oktet |
Jumlah instance iklan yang didukung. Dicadangkan setelah v0.98. Parameter ini tidak digunakan lagi di spesifikasi fitur Google v0.98 dan yang lebih tinggi untuk mendukung LE Extended Advertising yang tersedia di spesifikasi BT versi 5.0 dan yang lebih tinggi. |
offloaded_resolution_of_private-address(Tidak digunakan lagi) |
1 oktet |
Kemampuan chip BT RPA. Jika didukung oleh chip, fitur ini perlu diaktifkan oleh host. 0 = Tidak mampu 1 = Mampu Dicadangkan setelah v0.98. Parameter ini tidak digunakan lagi di spesifikasi fitur Google v0.98 dan yang lebih tinggi untuk mendukung Fitur privasi yang tersedia di spesifikasi BT versi 4.2 dan yang lebih tinggi. |
total_scan_results_storage |
2 oktet | Penyimpanan untuk hasil pemindaian dalam byte |
max_irk_list_sz |
1 oktet | Jumlah entri IRK yang didukung di firmware |
filtering_support |
1 oktet |
Dukungan untuk pemfilteran di pengontrol 0 = Tidak didukung 1 = Didukung |
max_filter |
1 oktet | Jumlah filter yang didukung |
activity_energy_info_support |
1 oktet |
Mendukung pelaporan informasi aktivitas dan energi 0 = Tidak mampu 1 = Mampu |
version_supported |
2 oktet |
Menentukan versi spesifikasi fitur Google yang didukung byte[0] = Nomor utama byte[1] = Nomor kecil v1.05 byte[0] = 0x01 byte[1] = 0x05 Penambahan fitur dalam versi berikut: v1.05:
|
total_num_of_advt_tracked |
2 oktet |
Jumlah total pengiklan yang dilacak untuk tujuan OnLost/OnFound
|
extended_scan_support |
1 oktet | Mendukung interval dan jendela pemindaian yang diperluas |
debug_logging_supported |
1 oktet | Mendukung logging informasi debug biner dari pengontrol |
LE_address_generation_offloading_support(Tidak digunakan lagi) |
1 oktet |
0 = Tidak didukung 1 = Didukung Dicadangkan setelah v0.98. Parameter ini tidak digunakan lagi di spesifikasi fitur Google v0.98 dan yang lebih tinggi untuk mendukung Fitur privasi yang tersedia di spesifikasi BT versi 4.2 dan yang lebih tinggi. |
A2DP_source_offload_capability_mask |
4 Oktet |
Masker bit untuk jenis codec yang didukung Bit 0 - SBC Bit 1 - AAC Bit 2 - APTX Bit 3 - APTX HD Bit 4 - LDAC Bit 5-31 dicadangkan |
bluetooth_quality_report_support |
1 oktet |
Mendukung pelaporan peristiwa Kualitas Bluetooth 0 = Tidak mampu 1 = Mampu |
dynamic_audio_buffer_support |
4 oktet |
Mendukung buffer audio dinamis di pengontrol Bluetooth Masker bit untuk jenis codec yang didukung Bit 0 - SBC Bit 1 - AAC Bit 2 - APTX Bit 3 - APTX HD Bit 4 - LDAC Bit 5-31 dicadangkan |
a2dp_offload_v2_support |
1 oktet |
Mendukung perintah offload A2DP v2 di pengontrol Bluetooth (lihat
Mulai offload A2DP,
Hentikan offload A2DP) 0 = Tidak didukung 1 = Didukung |
iso_link_feedback_support |
1 oktet |
Mendukung peristiwa Masukan Link ISO 0 = Tidak didukung 1 = Didukung |
sniff_offload_support |
1 oktet |
Mendukung perintah Sniff Offload di pengontrol Bluetooth 0 = Tidak didukung 1 = Didukung |
Hasil pemindaian batch
Tujuan desainnya adalah untuk meningkatkan cara notifikasi peristiwa Bluetooth LE Scan Response dikirimkan ke host, guna menghemat daya di host.
Dengan mengurangi seberapa sering pengontrol memberi tahu prosesor aplikasi host
untuk memindai hasil, prosesor aplikasi host dapat tetap dalam
mode tidak ada aktivitas/tidur lebih lama. Hal ini mengurangi konsumsi daya di host. Parameter
yang ditampilkan total_scan_results_storage dari
LE_Get_Vendor_Capabilities_Command menunjukkan kemampuan
chip untuk penyimpanan hasil pemindaian.
Fitur ini berfokus pada pengelolaan dan konfigurasi fasilitas penyimpanan Hasil Pemindaian LE di pengontrol Bluetooth. Penyimpanan digunakan untuk mengelompokkan data iklan dan data serta metadata pemindaian yang diterima oleh pengontrol untuk dikirimkan ke host nanti.
Firmware harus mendukung dua jenis batching, yang dapat diaktifkan secara bersamaan:
- Terpotong. Berisi elemen informasi berikut: {MAC, TX Power, RSSI, Timestamp}
- Penuh. Berisi elemen informasi berikut: {MAC, Daya TX, RSSI, Stempel Waktu, Data Iklan, Respons Pemindaian}
LE_Batch_Scan_Command
OCF: 0x156
| Parameter perintah | Ukuran | Tujuan |
|---|---|---|
Batch_Scan_opcode |
1 oktet |
0x1 - Mengaktifkan fitur khusus pelanggan 0x2 - Menetapkan parameter Batch Scan Storage 0x3 - Menetapkan parameter Batch Scan 0x4 - Membaca parameter Hasil Batch Scan |
Peristiwa Command Complete akan dibuat untuk perintah ini. Mengaktifkan fitur khusus pelanggan tidak memulai pemindaian.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Batch_Scan_opcode |
1 oktet |
0x1 - Mengaktifkan fitur khusus pelanggan 0x2 - Menetapkan parameter Batch Scan Storage 0x3 - Menetapkan parameter Batch Scan 0x4 - Membaca parameter Hasil Batch Scan |
LE_Batch_Scan_Command: Mengaktifkan fitur khusus pelanggan
Sub OCF: 0x01
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
enable_customer_specific_feature_set |
1 oktet |
0x01 - Mengaktifkan fitur Pemindaian Batch 0x00 - Menonaktifkan fitur Pemindaian Batch |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Batch_Scan_opcode |
1 oktet |
0x1 - Mengaktifkan fitur khusus pelanggan 0x2 - Menetapkan parameter Batch Scan Storage 0x3 - Menetapkan parameter Batch Scan 0x4 - Membaca parameter Hasil Batch Scan |
LE_Batch_Scan_Command: Subperintah setel parameter penyimpanan pemindaian batch
Sub OCF: 0x02
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
Batch_Scan_Full_Max |
1 oktet |
Ruang penyimpanan maksimum (dalam %) yang dialokasikan untuk gaya penuh [Rentang: 0-100] |
Batch_Scan_Truncated_Max |
1 oktet |
Ruang penyimpanan maksimum (dalam %) yang dialokasikan untuk gaya yang dipangkas [Rentang: 0-100] |
Batch_Scan_Notify_Threshold |
1 oktet |
Menyiapkan tingkat notifikasi (dalam %) untuk setiap pool penyimpanan
[Rentang: 0-100] Menyetel ke 0 akan menonaktifkan notifikasi. Peristiwa HCI khusus vendor dibuat (Subperistiwa pelanggaran nilai minimum penyimpanan) |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Batch_scan_opcode |
1 oktet | 0x02 [Setel parameter Pemindaian Batch] |
LE_Batch_Scan_Command: Menetapkan subperintah parameter pemindaian batch
Sub OCF: 0x03
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
Batch_Scan_Mode |
1 oktet |
0x00 – Pemindaian batch dinonaktifkan 0x01 – Mode yang dipangkas diaktifkan 0x02 – Mode penuh diaktifkan 0x03 – Mode yang dipangkas dan Mode penuh diaktifkan |
Duty_cycle_scan_window |
4 oktet | Waktu pemindaian Pemindaian Batch (jumlah slot) |
Duty_cyle_scan_interval |
4 oktet | Periode interval Pemindaian Batch (jumlah slot) |
own_address_type |
1 oktet |
0x00 - Alamat perangkat publik 0x01 - Alamat perangkat acak |
Batch_scan_Discard_Rule |
1 oktet |
0 - Hapus iklan terlama 1 - Hapus iklan dengan RSSI terlemah |
Subperintah ini akan memulai pemindaian batch, jika diaktifkan. Dalam pemindaian
yang Disingkat, hasil disimpan dalam bentuk yang disingkat dengan kunci unik untuk
gaya yang Disingkat = {BD_ADDR, scan_interval}. Artinya, hanya
satu BD_ADDR will yang dicatat untuk setiap interval pemindaian. Data
yang disimpan untuk mode Terpotong adalah sebagai berikut: {BD_ADDR,
Tx Power, RSSI, Stempel Waktu}
Jika mode Penuh diaktifkan, pemindaian aktif akan digunakan dan Respons Pemindaian
akan direkam. Kunci unik gaya Penuh = {MAC, Paket iklan},
terlepas dari interval pemindaian. Data yang disimpan untuk mode Penuh adalah
{BD_ADDR, Tx Power, RSSI, Stempel Waktu, Paket iklan, Respons
Pemindaian}. Dalam gaya Penuh, paket AD yang sama, jika dilihat beberapa kali
di berbagai interval pemindaian, hanya dicatat satu kali. Namun, dalam
mode Terpotong, yang menarik adalah visibilitas BA_ADDR di
berbagai interval pemindaian (sekali per interval pemindaian). RSSI adalah nilai rata-rata dari semua duplikat iklan unik dalam interval pemindaian.
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Batch_scan_opcode |
1 oktet | 0x03 [Set Batch Scan Parameters] |
LE_Batch_Scan_Command: Subperintah baca hasil pemindaian batch
Sub OCF: 0x04
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
Batch_Scan_Data_read |
1 oktet |
0x01 - Data mode terpotong 0x02 - Data mode penuh |
Peristiwa Command Complete akan dibuat untuk perintah ini. Saat host mengeluarkan perintah ini, semua hasil di pengontrol mungkin tidak muat dalam satu peristiwa Penyelesaian Perintah. Host akan melakukan iterasi perintah ini hingga hasil yang sesuai dalam peristiwa Command Complete menunjukkan 0 dalam jumlah data, yang menunjukkan bahwa pengontrol tidak memiliki data lagi untuk dikirimkan ke host. Setiap peristiwa Command Complete dapat berisi beberapa catatan hanya dari satu jenis data (Penuh atau Terpotong).
Referensi waktu pengontrol dan host tidak disinkronkan. Satuan stempel
waktu adalah 50 md. Nilai stempel waktu didasarkan pada saat
Read_Batch_Scan_Results_Sub_cmd
diberikan oleh host. Jika waktu kedatangan perintah adalah
T_c di firmware, maka waktu sebenarnya saat stempel waktu
diambil di firmware adalah T_fw. Waktu pelaporan adalah:
(T_c - T_fw). T_c dan
T_fw berada dalam domain waktu firmware. Hal ini memungkinkan host
menghitung berapa lama peristiwa terjadi.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Batch_scan_opcode |
1 oktet | 0x03 [Setel parameter Pemindaian Batch] |
Batch_Scan_data_read |
1 oktet | Mengidentifikasi format (Dipotong atau Lengkap) |
num_of_records |
1 oktet | Jumlah catatan Batch_Scan_data_read |
format_of_data |
Variabel |
Mode yang Dipangkas: Address[0]: 6 oktet Address_Type[0]: 1 oktet Tx_Pwr[0]: 1 oktet RSSI[0] : 1 oktet Timestamp[0]: 2 oktet [beberapa data ( num_of_records) dengan format di atas]Mode Lengkap: Address[0]: 6 oktet Address_Type[0]: 1 oktet Tx_Pwr[0]: 1 oktet RSSI[0]: 1 oktet Timestamp[0]: 2 oktet Adv packet_len[0]: 1 oktet Adv_packet[0]: Adv_packet_len oktet Scan_data_resp_len[0]: 1 oktet Scan_data_resp[0]: Scan_data_resp oktet[beberapa data dengan format di atas ( num_of_records)]
|
Filter Konten Paket Iklan
Gunakan ini untuk mengaktifkan/menonaktifkan/menyiapkan Filter Konten Paket Iklan (APCF) di pengontrol. APCF memfilter laporan iklan di pengontrol, tetapi tidak memfilter iklan berkala.
LE_APCF_Command
OCF: 0x157
| Parameter perintah | Ukuran | Tujuan |
|---|---|---|
APCF_opcode |
1 oktet |
0x00 - APCF Enable 0x01 - APCF Set Filtering parameters 0x02 - APCF Broadcaster Address 0x03 - APCF Service UUID 0x04 - APCF Service Solicitation UUID 0x05 - APCF Local Name 0x06 - APCF Manufacturer Data 0x07 - APCF Service Data 0x08 - APCF Transport Discovery Service 0x09 - APCF AD Type Filter 0x10 ~ 0xAF - Dicadangkan untuk penggunaan di masa mendatang 0xB0 ~ 0xDF - Dicadangkan untuk vendor 0xE0 ~ 0xFE - Dicadangkan untuk penggunaan di masa mendatang 0xFF - APCF Read extended Features |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status pengembalian |
APCF_opcode |
1 oktet |
0x00 - APCF Enable 0x01 - APCF Set Filtering parameters 0x02 - APCF Broadcaster Address 0x03 - APCF Service UUID 0x04 - APCF Service Solicitation UUID 0x05 - APCF Local Name 0x06 - APCF Manufacturer Data 0x07 - APCF Service Data 0x08 - APCF Transport Discovery Service 0x09 - APCF AD Type Filter 0x10 ~ 0xAF - Dicadangkan untuk penggunaan di masa mendatang 0xB0 ~ 0xDF - Dicadangkan untuk vendor 0xE0 ~ 0xFE - Dicadangkan untuk penggunaan di masa mendatang 0xFF - APCF Read extended Features |
LE_APCF_Command: Enable_sub_cmd
Sub OCF: 0x00
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
APCF_enable |
1 oktet |
0x01 - Aktifkan fitur APCF 0x00 - Nonaktifkan fitur APCF |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
APCF_opcode |
1 oktet | 0x0 - Aktifkan APCF |
APCF_Enable |
1 oktet | Pengaktifan/penonaktifan ditetapkan melalui APCF_enable |
LE_APCF_Command: set_filtering_parameters_sub_cmd
Subperintah ini digunakan untuk menambahkan atau menghapus spesifikasi filter atau menghapus daftar filter untuk pemfilteran di chip.
Sub OCF: 0x01
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
APCF_Action |
1 oktet |
0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Hapus akan menghapus filter tertentu beserta entri fitur terkait di tabel lain. Hapus akan menghapus semua filter dan entri terkait di tabel lainnya. |
APCF_Filter_Index |
1 oktet | Indeks filter (0, max_filter-1) |
APCF_Feature_Selection |
2 oktet |
Masker bit untuk fitur yang dipilih: Bit 0: Disetel untuk mengaktifkan filter Alamat Siaran Bit 1: Disetel untuk mengaktifkan filter Perubahan Data Layanan Bit 2: Disetel untuk mengaktifkan pemeriksaan UUID Layanan Bit 3: Disetel untuk mengaktifkan pemeriksaan UUID Permintaan Layanan Bit 4: Disetel untuk mengaktifkan pemeriksaan Nama Lokal Bit 5: Disetel untuk mengaktifkan Pemeriksaan Data Produsen Bit 6: Disetel untuk mengaktifkan Pemeriksaan Data Layanan Bit 7: Disetel untuk mengaktifkan Pemeriksaan Layanan Penemuan Transportasi Bit 8: Disetel untuk mengaktifkan Pemeriksaan Jenis AD |
APCF_List_Logic_Type |
2 oktet |
Operasi logika untuk setiap pemilihan fitur (per posisi bit)
yang ditentukan dalam APCF_Feature_Selection.
Hanya valid jika fitur diaktifkan. Nilai posisi bit: 0: OR 1: AND Jika logika "AND" dipilih, paket ADV akan lulus filter hanya jika berisi SEMUA entri dalam daftar. Jika logika "OR" dipilih, paket ADV akan lulus filter jika berisi salah satu entri dalam daftar. |
APCF_Filter_Logic_Type |
1 oktet |
0x00: OR 0x01: AND Catatan: Jenis logika tidak berlaku (N/A) untuk tiga kolom pertama APCF_Feature_Selection, yang selalu berupa logika "AND". Hanya
berlaku untuk empat kolom (Bit 3 - Bit 6) dari
APCF_Feature_Selection.
|
rssi_high_thresh |
1 oktet |
[dalam dBm] Pengiklan dianggap terlihat hanya jika sinyal lebih tinggi daripada nilai minimum tinggi RSSI. Jika tidak, firmware harus berperilaku seolah-olah tidak pernah melihatnya. |
delivery_mode |
1 oktet |
0x00 - immediate0x01 - on_found0x02 - batched
|
onfound_timeout |
2 oktet |
Hanya valid jika delivery_mode adalah
on_found.[dalam milidetik] Waktu agar firmware tetap ada dan mengumpulkan iklan tambahan sebelum melaporkan. |
onfound_timeout_cnt |
1 oktet |
Hanya valid jika delivery_mode adalah
on_found.[count] Jika iklan di onFound tetap ada di firmware selama
durasi onfound_timeout, iklan tersebut akan mengumpulkan beberapa
iklan dan jumlahnya diperiksa. Jika jumlah melebihi
onfound_timeout_cnt, jumlah tersebut akan dilaporkan
OnFound segera setelahnya.
|
rssi_low_thresh |
1 oktet |
Hanya valid jika delivery_mode adalah
on_found.[dalam dBm] Paket pengiklan dianggap tidak terlihat jika RSSI paket yang diterima tidak di atas nilai minimum RSSI. |
onlost_timeout |
2 oktet |
Hanya valid jika delivery_mode adalah
on_found.[dalam milidetik] Jika iklan, setelah ditemukan, tidak terlihat secara berurutan selama periode lost_timeout, iklan tersebut akan langsung dilaporkan
hilang.
|
num_of_tracking_entries |
2 oktet |
Hanya valid jika delivery_mode adalah
on_found.[count] Jumlah total pengiklan yang akan dilacak per filter. |
Nilai RSSI harus menggunakan komplemen 2 untuk merepresentasikan nilai negatif.
Host harus dapat mengonfigurasi beberapa filter dengan
APCF_Application_Address_type disetel ke 0x02 (untuk semua
alamat penyiar) untuk mengelola berbagai kombinasi filter.
Pemfilteran, pengelompokan, dan pelaporan adalah konsep yang saling terkait. Setiap
iklan dan respons pemindaian terkait harus melalui semua
filter, satu per satu. Dengan demikian, tindakan yang dihasilkan
(delivery_mode) terkait erat dengan pemfilteran. Mode
pengiriman adalah sebagai berikut: report_immediately,
batch, dan onFound. Nilai
OnLost terkait dengan OnFound dalam arti
bahwa nilai tersebut akan muncul setelah OnFound saat kalah.
Alur pemrosesan ini menggambarkan model konseptual:
Saat frame iklan (atau respons pemindaian) diterima, frame tersebut diterapkan ke semua filter dalam urutan serial. Iklan dapat menyebabkan pelaporan langsung berdasarkan satu filter dan pengelompokan yang sama karena tindakan filter yang berbeda.
Nilai minimum RSSI (tinggi dan rendah) memberikan kemampuan untuk mengontrol kapan frame terlihat untuk pemrosesan filter, bahkan saat paket yang valid diterima oleh pengontrol. Jika mode pengiriman disetel ke segera atau berkelompok, RSSI frame akan dipertimbangkan untuk pemrosesan pengontrol lebih lanjut. Aplikasi yang berbeda memerlukan pelaporan dan perilaku batching yang berbeda. Hal ini memungkinkan beberapa aplikasi memiliki pelaporan langsung dan/atau pengelompokan hasil dalam firmware secara bersamaan. Contohnya adalah kasus ketika pemindaian batch aktif dari satu aplikasi dan kemudian pemindaian LE reguler dikeluarkan oleh aplikasi lain. Sebelum pemindaian batch dikeluarkan, framework/aplikasi menetapkan filter yang sesuai. Kemudian, saat aplikasi kedua mengeluarkan pemindaian reguler, pengelompokan sebelumnya akan berlanjut. Namun, karena pemindaian reguler, hal ini mirip dengan menambahkan filter null secara konseptual (bersama dengan semua filter yang ada) bersama dengan perintah pemindaian LE. Parameter perintah pemindaian LE lebih diutamakan saat aktif. Jika pemindaian LE reguler dinonaktifkan, pengontrol akan kembali ke pemindaian batch sebelumnya, jika ada.
Mode pengiriman OnFound didasarkan pada filter yang dikonfigurasi. Kombinasi
yang memicu keberhasilan tindakan filter dianggap sebagai
entitas yang akan dilacak untuk onLost. Peristiwa yang sesuai adalah sub-peristiwa pelacakan Advt LE.
Transisi OnFound/OnLost untuk filter (jika diaktifkan) akan
terlihat seperti berikut:
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
APCF_opcode |
1 oktet | 0x01 - APCF Set Filtering Parameters |
APCF_Action |
1 oktet | APCF_Action perintah echo balik |
APCF_AvailableSpaces |
1 oktet | Jumlah entri yang tersedia dalam tabel filter |
LE_APCF_Command: broadcast_address_sub_cmd
Subperintah ini digunakan untuk menambahkan atau menghapus alamat pengiklan atau untuk menghapus daftar alamat pengiklan untuk pemfilteran on-chip.
Sub OCF: 0x02
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
APCF_Action |
1 oktet |
0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Hapus akan menghapus alamat penyiar yang ditentukan dalam filter yang ditentukan. Clear akan menghapus semua alamat penyiar dalam filter yang ditentukan. |
APCF_Filter_Index |
1 oktet | Indeks filter (0, max_filter-1) |
APCF_Broadcaster_Address |
6 oktet | Alamat perangkat 6 byte yang akan ditambahkan ke atau dihapus dari daftar alamat penyiar |
APCF_Application_Address_type |
1 oktet |
0x00: Publik 0x01: Acak 0x02: T/A (abaikan jenis alamat) Untuk memfilter laporan iklan dengan jenis alamat identitas (0x02, 0x03). Untuk mendapatkan laporan iklan dengan jenis alamat 0x02 dan 0x03, tetapkan kolom ini ke 0x02: NA (abaikan jenis alamat). |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
APCF_opcode |
1 oktet | 0x02 - Alamat Penyiaran APCF |
APCF_Action |
1 oktet | APCF_Action perintah echo balik |
APCF_AvailableSpaces |
1 oktet | Jumlah entri gratis yang masih tersedia di tabel Alamat Siaran |
LE_APCF_Command: service_uuid_sub_cmd
Subperintah ini digunakan untuk menambahkan atau menghapus UUID layanan atau menghapus daftar UUID layanan untuk pemfilteran di chip.
Sub OCF: 0x03
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
APCF_Action |
1 oktet |
0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Hapus akan menghapus alamat UUID layanan yang ditentukan dalam filter yang ditentukan. Clear akan menghapus semua UUID layanan dalam filter yang ditentukan. |
APCF_Filter_Index |
1 oktet | Indeks filter (0, max_filter-1) |
APCF_UUID |
2,4,16 oktet | UUID Layanan (16-bit, 32-bit, atau 128-bit) untuk ditambahkan ke, atau dihapus dari, daftar. |
APCF_UUID_MASK |
2,4,16 oktet |
Masker UUID Layanan (16-bit, 32-bit, atau 128-bit) yang akan ditambahkan ke daftar.
Panjangnya harus sama dengan APCF_UUID.
|
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
APCF_opcode |
1 oktet | 0x03 - UUID Layanan APCF |
APCF_Action |
1 oktet | APCF_Action perintah echo balik |
APCF_AvailableSpaces |
1 oktet | Jumlah entri gratis yang masih tersedia dalam tabel UUID Layanan |
LE_APCF_Command: solicitation_uuid_sub_cmd
Subperintah ini digunakan untuk menambahkan atau menghapus UUID permintaan atau menghapus daftar UUID permintaan untuk pemfilteran on-chip.
Sub OCF: 0x04
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
APCF_Action |
1 oktet |
0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Hapus akan menghapus alamat UUID permintaan dalam filter yang ditentukan. Clear akan menghapus semua UUID permintaan di filter yang ditentukan. |
APCF_Filter_Index |
1 oktet | Indeks filter (0, max_filter-1) |
APCF_UUID |
2,4,16 oktet | UUID Permintaan (16-bit, 32-bit, atau 128-bit) yang akan ditambahkan ke atau dihapus dari daftar. |
APCF_UUID_MASK |
2,4,16 oktet |
Masker UUID Permintaan (16-bit, 32-bit, atau 128-bit) yang akan ditambahkan ke
daftar. Panjangnya harus sama dengan APCF_UUID.
|
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
APCF_opcode |
1 oktet | 0x04 - UUID Permintaan APCF |
APCF_Action |
1 oktet | APCF_Action perintah echo balik |
APCF_AvailableSpaces |
1 oktet | Jumlah entri gratis yang masih tersedia dalam tabel UUID Permintaan |
LE_APCF_Command: local_name_sub_cmd
Subperintah ini digunakan untuk menambahkan atau menghapus string nama lokal atau untuk menghapus daftar string nama lokal untuk pemfilteran on-chip.
Sub OCF: 0x05
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
APCF_Action |
1 oktet |
0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Hapus akan menghapus string nama lokal yang ditentukan dalam filter yang ditentukan. Clear akan menghapus semua string nama lokal dalam filter yang ditentukan. |
APCF_Filter_Index |
1 oktet | Indeks filter (0, max_filter-1) |
APCF_LocName_Mandata_or_SerData |
Ukuran variabel |
String karakter untuk nama lokal. Catatan:
|
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
APCF_opcode |
1 oktet | 0x05 - APCF Local Name |
APCF_Action |
1 oktet | APCF_Action perintah echo balik |
APCF_AvailableSpaces |
1 oktet | Jumlah entri gratis yang masih tersedia di tabel Nama lokal |
LE_APCF_Command: manf_data_sub_cmd
Subperintah ini digunakan untuk menambahkan atau menghapus string data produsen atau untuk menghapus daftar string data produsen untuk pemfilteran on-chip.
Sub OCF: 0x06
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
APCF_Action |
1 oktet |
0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Hapus akan menghapus string data produsen yang ditentukan dalam filter yang ditentukan. Clear akan menghapus semua string data produsen dalam filter yang ditentukan. |
APCF_Filter_Index |
1 oktet | Indeks Filter (0, max_filter-1) |
APCF_LocName_Mandata_or_SerData |
Ukuran variabel |
String karakter untuk data produsen. Catatan:
|
APCF_ManData_Mask |
Ukuran variabel |
Masker data manufaktur yang akan ditambahkan ke daftar. Panjangnya harus sama dengan
APCF_LocName_or_ManData_or_SerData.
|
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
APCF_opcode |
1 oktet | 0x06 - Data Produsen APCF |
APCF_Action |
1 oktet | APCF_Action perintah echo balik |
APCF_AvailableSpaces |
1 oktet | Jumlah entri gratis yang masih tersedia di tabel Data Produsen |
LE_APCF_Command: service_data_sub_cmd
Subperintah ini digunakan untuk menambahkan atau menghapus string data layanan atau untuk menghapus daftar string data layanan untuk pemfilteran on-chip.
Sub OCF: 0x07
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
APCF_Action |
1 oktet |
0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Hapus akan menghapus string data layanan yang ditentukan dalam filter yang ditentukan. Clear akan menghapus semua string data layanan dalam filter yang ditentukan. |
APCF_Filter_Index |
1 oktet | Indeks Filter (0, max_filter-1) |
APCF_LocName_Mandata_or_SerData |
Ukuran variabel |
String karakter untuk data layanan. Catatan:
|
APCF_LocName_Mandata_or_SerData_Mask |
Ukuran variabel |
Masker data layanan yang akan ditambahkan ke daftar. Panjangnya harus sama dengan
APCF_LocName_or_ManData_or_SerData.
|
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
APCF_opcode |
1 oktet | 0x07 - Data Layanan APCF |
APCF_Action |
1 oktet | APCF_Action perintah echo balik |
APCF_AvailableSpaces |
1 oktet | Jumlah entri gratis yang masih tersedia untuk tabel Data Layanan |
LE_APCF_Command: ad_type_sub_cmd
Subperintah ini digunakan untuk menambahkan atau menghapus jenis AD atau menghapus daftar jenis AD untuk pemfilteran on-chip. Gunakan
read_extended_features_sub_cmd untuk memeriksa apakah perintah ini
didukung atau tidak.
Jika APCF_AD_DATA_Length adalah 0, filter APCF_AD_TYPE tanpa
membandingkan Data AD dan Masker Data AD.
Jika panjang data paket ADV yang diterima melebihi AD_DATA_LENGTH, bandingkan
hanya AD_DATA_LENGTH byte pertama Data Iklan dan abaikan data yang tersisa.
Sub OCF: 0x09
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
APCF_Action |
1 oktet |
0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Hapus akan menghapus jenis AD yang ditentukan dalam filter yang ditentukan. Hapus akan menghapus semua jenis AD dalam filter yang ditentukan. |
APCF_Filter_Index |
1 oktet | Indeks Filter (0, max_filter-1) |
APCF_AD_TYPE |
1 oktet | Jenis AD untuk ditambahkan ke, atau dihapus dari, daftar. Diabaikan jika APCF_Action adalah 0x02 (Hapus) |
APCF_AD_DATA_Length |
1 oktet |
0x00 - berarti jangan memfilter konten data Diabaikan jika APCF_Action adalah 0x02 (Hapus)
|
APCF_AD_DATA |
Ukuran variabel |
Ukuran variabel, berdasarkan APCF_AD_DATA_LengthAbaikan jika APCF_Action adalah 0x02 (Hapus) |
APCF_AD_DATA_MASK |
Ukuran variabel |
Ukuran variabel, berdasarkan APCF_AD_DATA_LengthDiabaikan jika APCF_Action adalah 0x02 (Hapus)Panjangnya harus sama dengan APCF_AD_DATA.
|
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
APCF_opcode |
1 oktet | 0x09 - Jenis Iklan APCF |
APCF_Action |
1 oktet | APCF_Action perintah echo balik |
APCF_AvailableSpaces |
1 oktet | Jumlah entri gratis yang masih tersedia di tabel Jenis Iklan |
LE_APCF_Command: read_extended_features_sub_cmd
Subperintah ini digunakan untuk membaca fitur APCF yang diperluas.
Sub OCF: 0xFF
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
| Tidak berlaku | Parameter perintah kosong. |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
APCF_opcode |
1 oktet | 0xFF - APCF_Read_Extended_Features |
APCF_extended_features |
2 oktet |
Masker bit untuk fitur tambahan yang didukung:
Nilai bit
|
Perintah informasi energi dan aktivitas pengontrol
Tujuan informasi ini adalah agar fungsi sistem host yang lebih tinggi dapat menganalisis total aktivitas semua komponen, termasuk pengontrol BT dan status makronya, bersamaan dengan apa yang terjadi di aplikasi dan framework. Untuk melakukannya, informasi berikut diperlukan dari stack BT dan pengontrol:
- Stack BT: Melaporkan status operasional makro pengontrol saat ini
- Firmware: Melaporkan informasi aktivitas dan energi gabungan
Status makro stack host BT, sebagaimana ditentukan di tingkat pengguna:
- Tidak ada aktivitas: [pemindaian halaman, iklan LE, pemindaian pertanyaan, pemindaian LE]
- Pindai: [paging/inquiry/trying to connect]
- Aktif: [Link ACL aktif, link SCO sedang berlangsung, mode sniffing]
Aktivitas yang dilacak pengontrol selama masa pakainya adalah waktu Tx, waktu Rx, waktu tidak ada aktivitas, dan total energi yang digunakan. Data tersebut dihapus saat dibaca dari host.
LE_Get_Controller_Activity_Energy_Info
Ini adalah perintah khusus vendor.
OCF: 0x159
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
| NA | Parameter perintah kosong |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
total_tx_time_ms |
4 oktet | Total waktu melakukan Tx |
total_rx_time_ms |
4 oktet | Total waktu melakukan Rx |
total_idle_time_ms |
4 oktet | Total waktu dalam kondisi tidak aktif (status daya rendah non-tidur) |
total_energy_used |
4 oktet | Total energi yang digunakan [hasil kali arus (mA), voltase (V), dan waktu (ms)] |
Perintah parameter pemindaian set yang diperluas LE
Perintah ini dapat digunakan untuk mengaktifkan jendela dan interval pemindaian yang lebih besar di pengontrol. Sesuai dengan Spesifikasi BT Core 5.2, jendela dan interval pemindaian memiliki batas atas 10,24 detik, yang menghambat interval pemindaian di luar 10,24 detik untuk aplikasi.
Referensi dasar: Spesifikasi BT Core 5.2, halaman 2493 (Perintah Parameter Pemindaian Set LE)
OCF: 0x15A
| Parameter Perintah | Ukuran | Tujuan |
|---|---|---|
LE_Ex_Scan_Type |
1 oktet |
0x00 - Pemindaian pasif. Tidak ada paket SCAN_REQ yang akan dikirim (default).0x01 - Pemindaian aktif. Paket SCAN_REQ dapat dikirim.
|
LE_Ex_Scan_Interval |
4 oktet |
Ditentukan sebagai interval waktu dari saat Pengontrol memulai pemindaian LE terakhirnya hingga memulai pemindaian LE berikutnya. Rentang: 0x0004 hingga 0x00FFFFFF Default: 0x0010 (10 md) Waktu = N * 0,625 md Rentang waktu: 2,5 md hingga 10442,25 detik |
LE_Ex_Scan_Window |
4 oktet |
Durasi pemindaian LE. LE_Scan_Window harus lebih kecil
daripada atau sama dengan LE_Scan_Interval.
Rentang: 0x0004 hingga 0xFFFF Default: 0x0010 (10 md) Waktu = N * 0,625 md Rentang Waktu: 2,5 md hingga 40,95 detik |
Own_Address_Type |
1 oktet |
0x00 - Alamat Perangkat Publik (default) 0x01 - Alamat Perangkat Acak |
LE_Ex_Scan_Filter_Policy |
0x00 - Menerima semua paket iklan (default). Paket iklan yang ditujukan untuk perangkat ini akan diabaikan. 0x01 - Mengabaikan paket iklan dari perangkat yang tidak ada dalam Daftar yang Diizinkan Hanya daftar. Paket iklan terarah yang tidak ditujukan untuk perangkat ini akan diabaikan. |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Perintah Get controller debug info
Tujuan elemen informasi ini adalah untuk mendapatkan informasi debug pengontrol oleh host, dalam bentuk biner, untuk pasca-pemrosesan dan analisis. Hal ini membantu melakukan proses debug masalah di lapangan dan memberi engineer toolkit untuk mencatat informasi guna dianalisis. Pengontrol dapat memberikan informasi saat diminta oleh host melalui peristiwa (subperistiwa Info Debug Pengontrol) atau secara mandiri saat diinginkan oleh pengontrol. Contoh penggunaan dapat berupa melaporkan informasi status firmware, informasi dump error, informasi logging, dll.
OCF: 0x15B
| Parameter perintah | Ukuran | Tujuan |
|---|---|---|
| T/A | Daftar parameter perintah kosong |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Dukungan offload hardware A2DP
Fitur pelepasan A2DP mendukung pelepasan proses encoding audio A2DP ke prosesor audio yang terhubung ke Pengontrol BT. Aliran data audio yang dienkode diteruskan langsung dari Prosesor audio ke Pengontrol BT tanpa melibatkan host BT. Host BT masih bertanggung jawab atas konfigurasi dan kontrol sesi A2DP. Tersedia dua versi perintah. Perintah lama dengan Sub OCF 0x01-0x02 hanya mendukung codec open source. Versi dengan Sub-OCF 0x03-0x04 tidak bergantung pada codec yang dikonfigurasi.
OCF: 0x15D
Mulai offload A2DP (versi lama)
Sub OCF: 0x01
Gunakan perintah ini untuk mengonfigurasi proses offload A2DP dan memulai streaming A2DP.
| Parameter perintah | Ukuran | Tujuan |
|---|---|---|
Codec |
4 oktet |
Menentukan jenis Codec 0x01 - SBC 0x02 - AAC 0x04 - APTX 0x08 - APTX HD 0x10 - LDAC |
Max_Latency |
2 oktet | Latensi Maksimum yang Diizinkan (dalam md). Nilai nol akan menonaktifkan flush. |
SCMS-T_Enable |
2 oktet |
Oktet 0: Flag yang memungkinkan penambahan header SCMS-T.
Oktet 1: Nilai untuk header SCMS-T, jika diaktifkan. |
Sampling_Frequency |
4 oktet |
0x01 - 44100 Hz 0x02 - 48000 Hz 0x04 - 88200 Hz 0x08 - 96000 Hz |
Bits_Per_Sample |
1 oktet |
0x01 - 16 bit per sampel 0x02 - 24 bit per sampel 0x04 - 32 bit per sampel |
Channel_Mode |
1 oktet |
0x01 - Mono 0x02 - Stereo |
Encoded_Audio_Bitrate |
4 oktet |
Kecepatan bit audio yang dienkode dalam bit per detik. 0x00000000 - Kecepatan bit audio tidak ditentukan / tidak digunakan. 0x00000001 - 0x00FFFFFF - Kecepatan bit audio yang di-encode dalam bit per detik. 0x01000000 - 0xFFFFFFFF - Dicadangkan. |
Connection_Handle |
2 oktet | Connection Handle koneksi A2DP yang sedang dikonfigurasi |
L2CAP_Channel_ID |
2 oktet | ID Channel L2CAP yang akan digunakan untuk koneksi A2DP ini |
L2CAP_MTU_Size |
2 oktet | Ukuran maksimum MTU L2CAP yang berisi paket audio yang dienkodekan |
Codec_Information |
32 oktet |
Informasi Khusus Codec.
Codec SBC:
Lihat elemen informasi khusus Codec SBC di A2DP v1.3. Codec AAC:
Lihat elemen informasi khusus Codec AAC di A2DP v1.3 Codec LDAC:
Oktet 0-3: ID Vendor
Octet 4-5: ID Codec
Octet 6: Indeks Bitrate:
Oktet 7: Mode Channel LDAC Oktet 8-31: dicadangkan Semua codec lainnya: Oktet 0-31: dicadangkan |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Sub_Opcode |
1 oktet | 0x01 - Mulai offload A2DP |
Mulai offload A2DP
Sub OCF: 0x03
Gunakan perintah ini untuk mengonfigurasi proses offload A2DP dan memulai streaming A2DP.
| Parameter perintah | Ukuran | Tujuan |
|---|---|---|
Connection Handle |
2 oktet | Handle koneksi HCI aktif |
L2CAP_Channel_ID |
2 oktet | ID Channel L2CAP yang dibuka untuk streaming A2DP |
Data_Path_Direction |
1 oktet |
0x00 - Output (AVDTP Source/Merge) 0x01 - Input (AVDTP Sink/Split) |
Peer_MTU |
2 oktet | Ukuran maksimum paket L2CAP, yang dinegosiasikan dengan peer. |
CP_Enable_SCMS_T |
1 oktet |
0x00 - Menonaktifkan Header Perlindungan Konten SCMS-T 0x01 - Mengaktifkan Header Perlindungan Konten SCMS-T |
CP_Header_SCMS_T |
1 oktet |
Jika Header Perlindungan Konten SCMS-T diaktifkan (CP_SCMS_T_Enable
disetel ke 0x01), akan menentukan nilai header yang mendahului konten audio (lihat
A2DP, bagian 3.2.1-2) sebagaimana ditentukan oleh Nomor yang Ditetapkan Bluetooth, bagian
6.3.2.Diabaikan jika Perlindungan konten SCMS-T tidak diaktifkan. |
Vendor_Specific_Parameters_Length |
1 oktet |
Panjang Parameter Khusus Vendor, dalam rentang 0 hingga 128. Nilai 0 digunakan jika tidak ada parameter tambahan yang diberikan. |
Vendor_Specific_Parameters |
0-128 oktet |
Parameter Khusus Vendor yang disediakan oleh Bluetooth Audio HAL,
CodecParameters.vendorSpecificParameters[].
|
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Sub_Opcode |
1 oktet | 0x03 - Mulai offload A2DP |
Menghentikan offload A2DP (lama)
Sub OCF: 0x02
Perintah ini digunakan untuk menghentikan streaming offload A2DP.
| Parameter perintah | Ukuran | Tujuan |
|---|---|---|
| T/A | Daftar parameter perintah kosong. |
Tidak ada parameter yang ditentukan untuk perintah ini.
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Sub_Opcode |
1 oktet | 0x02 - Menghentikan offload A2DP |
Menghentikan offload A2DP
Sub OCF: 0x04
Perintah ini digunakan untuk menghentikan streaming offload A2DP.
| Parameter perintah | Ukuran | Tujuan |
|---|---|---|
Connection Handle |
2 oktet | Handle koneksi HCI aktif |
L2CAP_Channel_ID |
2 oktet | ID Channel L2CAP yang dibuka untuk streaming A2DP |
Data_Path_Direction |
1 oktet |
0x00 - Output (AVDTP Source/Merge) 0x01 - Input (AVDTP Sink/Split) |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Sub_Opcode |
1 oktet | 0x04 - Menghentikan offload A2DP |
Perintah Laporan Kualitas Bluetooth
Fitur perintah Laporan Kualitas BT memulai mekanisme di pengontrol Bluetooth untuk melaporkan peristiwa Kualitas Bluetooth ke host. Anda dapat mengaktifkan empat opsi:
- Mode Pemantauan Kualitas: Pengontrol secara berkala mengirimkan sub-event BQR terkait Kualitas Link ke host.
- Mendekati LSTO: Jika tidak ada paket yang diterima dari perangkat BT yang terhubung selama lebih dari setengah nilai Link Supervision TimeOut (LSTO), pengontrol akan melaporkan peristiwa Mendekati LSTO ke host.
- Audio A2DP Terputus-Putus: Saat pengontrol mendeteksi faktor yang menyebabkan audio terputus-putus, pengontrol melaporkan peristiwa Audio A2DP Terputus-Putus ke host.
- (e)SCO Voice Choppy: Saat pengontrol mendeteksi faktor yang menyebabkan suara terputus-putus, pengontrol akan melaporkan peristiwa (e)SCO Voice Choppy ke host.
- Inflamasi Root: Peristiwa ini dikirim oleh pengontrol ke stack saat HAL atau pengontrol mengalami error fatal dan perlu memulai ulang Bluetooth.
- Perekaman pesan LMP/LL: Pengontrol mengirimkan pesan LMP/LL handshake dengan perangkat jarak jauh ke host.
- Rekaman aktivitas penjadwalan Multi-profil/Coex Bluetooth: Pengontrol mengirimkan informasi penjadwalannya tentang penanganan beberapa profil Bluetooth dan koeksistensi nirkabel dalam band 2,4 Ghz ke host.
- Mekanisme Informasi Debug Pengontrol: Jika diaktifkan, pengontrol dapat melaporkan informasi logging debug secara mandiri melalui sub-peristiwa info debug Pengontrol ke host.
- LE Audio Terputus-putus: Saat pengontrol mendeteksi faktor yang menyebabkan audio terputus-putus, pengontrol melaporkan peristiwa LE Audio Terputus-putus ke host.
-
Mode Statistik RF Lanjutan: Pengontrol melaporkan informasi terkait statistik RF-nya ke host, yang mendukung dua kasus penggunaan laporan:
- Laporan berkala
- Pemicu acara (pemicu acara mulai/berhenti streaming dan kualitas link).
- Mekanisme pemantauan kondisi pengontrol memberikan informasi terkait kondisi kepada host melalui dua jenis peristiwa: laporan berkala dan laporan yang dipicu peristiwa.
- BQR_Report_Action dari Perintah Laporan Kualitas Bluetooth: Host dapat menggunakan perintah HCI ini untuk mendapatkan kueri satu kali untuk mode pemantauan kualitas, mode monitor energi, atau mode statistik RF lanjutan.
OCF: 0x15E
| Parameter perintah | Ukuran | Tujuan |
|---|---|---|
BQR_Report_Action |
1 oktet |
Tindakan untuk menambahkan / menghapus pelaporan peristiwa kualitas yang ditetapkan dalam
parameter BQR_Quality_Event_Mask, atau menghapus semuanya.
0x00 - Tambahkan
Menghapus akan menghapus pelaporan peristiwa kualitas tertentu. |
BQR_Quality_Event_Mask |
4 oktet |
Masker bit untuk pelaporan peristiwa kualitas yang dipilih.
Bit 0: Setel untuk mengaktifkan mode pemantauan kualitas. |
BQR_Minimum_Report_Interval |
2 oktet |
Tentukan interval waktu minimum pelaporan peristiwa kualitas untuk
peristiwa kualitas yang dipilih. Firmware pengontrol tidak boleh melaporkan
peristiwa berikutnya dalam interval waktu yang ditentukan. Setelan interval
harus masing-masing dan khusus untuk peristiwa kualitas yang
ditambahkan.
Satuan: ms |
BQR_Vendor_Specific_Quality_Event_Mask |
4 oktet |
Bit mask untuk pelaporan peristiwa kualitas khusus vendor yang dipilih. Parameter ini hanya valid jika bit 15 BQR_Quality_Event_Mask disetel.
Bit 0 ~ 31: Dicadangkan. |
BQR_Vendor_Specific_Trace_Mask |
4 oktet |
Masker bit untuk pelaporan rekaman aktivitas khusus vendor yang dipilih. Parameter ini hanya valid jika bit 31 BQR_Quality_Event_Mask disetel.
Bit 0 ~ 31: Dicadangkan. |
Report_interval_multiple |
4 oktet |
Pengganda untuk BQR_Minimum_Report_Interval. Jika nilai ini >= 1,
Interval Laporan BQR mengikuti format Interval Laporan BQR = BQR_Minimum_Report_Interval x Report_interval_multiple. Firmware pengontrol tidak boleh melaporkan peristiwa berikutnya dalam interval waktu yang ditentukan. Setelan interval secara khusus ditujukan untuk peristiwa kualitas yang ditambahkan.
Unit: ms BQR_Report_Interval lebih besar daripada kemampuan
pengontrol, pengontrol harus menampilkan waktu BQR_Report_Interval
maksimum setelah perintah selesai.
|
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Current_Quality_Event_Mask |
4 oktet |
Menunjukkan setelan mask bit saat ini. Bit 0: Mode pemantauan kualitas diaktifkan. Bit 1: Pelaporan peristiwa mendekati LSTO diaktifkan. Bit 2: Pelaporan peristiwa Audio A2DP Terputus-putus diaktifkan. Bit 3: (e)SCO Voice Choppy event reporting is enabled. Bit 4: Pelaporan peristiwa peradangan akar diaktifkan. Bit 5: Mode pemantauan energi diaktifkan. Bit 6: Pelaporan peristiwa audio LE tersendat diaktifkan. Bit 7: Peristiwa gagal menghubungkan. Bit 8: Disetel untuk mengaktifkan pemicu peristiwa mode Statistik RF Lanjutan. Bit 9: Disetel untuk mengaktifkan pelaporan berkala Statistik RF Lanjutan. Bit 10: Disetel untuk mengaktifkan pemicu peristiwa mekanisme pemantauan kondisi pengontrol. Bit 11: Disetel untuk mengaktifkan mekanisme pelaporan berkala pemantauan kondisi pengontrol. Bit 12 ~ 14: Dicadangkan. Bit 15: Pelaporan peristiwa kualitas khusus vendor diaktifkan. Bit 16: LMP/LL message trace diaktifkan. Bit 17: Pelacakan penjadwalan Multi-link/Coex Bluetooth diaktifkan. Bit 18: Mekanisme Informasi Debug Pengontrol diaktifkan. Bit 19: Dicadangkan untuk informasi debug pelepasan Bit 20: Pemicu Peristiwa Dump Histori UART Bit 21 ~ 30: Dicadangkan. Bit 31: Pelacakan khusus vendor diaktifkan. |
Current_Vendor_Specific_Quality_Event_Mask |
4 oktet | Menunjukkan setelan mask bit saat ini. |
Current_Vendor_Specific_Trace_Mask |
4 oktet | Menunjukkan setelan mask bit saat ini. |
BQR_Report_interval |
4 oktet | Menunjukkan setelan mask bit saat ini. |
Current_Vendor_Specific_Trace_Mask |
4 oktet |
Setelan BQR_Report_interval. Nilai ini harus berupa nilai minimum antara
BQR_Minimum_Report_Interval * Report_interval_multiple atau interval dukungan maksimum
pengontrol. |
Perintah buffer audio dinamis
Buffer audio dinamis mengurangi gangguan audio dengan mengubah ukuran buffer audio di pengontrol Bluetooth berdasarkan berbagai skenario.
OCF: 0x15F
Mendapatkan kemampuan waktu buffering audio
Sub OCF: 0x01
Gunakan perintah ini untuk mendapatkan kemampuan waktu buffer audio dari pengontrol Bluetooth.
| Parameter perintah | Ukuran | Tujuan |
|---|---|---|
| T/A | Daftar parameter Perintah kosong |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Dynamic_Audio_Buffer_opcode |
1 oktet | 0x01 - Mendapatkan waktu jeda audio |
Audio_Codec_Type_Supported |
4 oktet |
Masker bit untuk jenis codec yang didukung Bit 0 - SBC Bit 1 - AAC Bit 2 - APTX Bit 3 - APTX HD Bit 4 - LDAC Bit 5-31 dicadangkan |
Audio_Codec_Buffer_Default_Time_For_Bit_0 |
2 oktet |
Waktu buffer default jenis codec Bit 0 yang ditentukan di
Audio_Codec_Type_Supported. Nilai ini harus 0 jika jenis codec Bit 0 tidak didukung. Unit: md |
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 |
2 oktet |
Waktu buffer maksimum jenis codec Bit 0 yang ditentukan dalam
Audio_Codec_Type_Supported. Nilai ini harus 0 jika jenis codec Bit 0 tidak didukung. Unit: md |
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 |
2 oktet |
Waktu buffer minimum jenis codec Bit 0 yang ditentukan dalam
Audio_Codec_Type_Supported. Nilai ini harus 0 jika jenis codec Bit 0 tidak didukung. Unit: md |
Audio_Codec_Buffer_Default_Time_For_Bit_1 |
2 oktet |
Waktu buffer default jenis codec Bit 1 yang ditentukan dalam
Audio_Codec_Type_Supported. Nilai ini harus 0 jika jenis codec Bit 1 tidak didukung. Unit: md |
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 |
2 oktet |
Waktu buffer maksimum jenis codec Bit 1 yang ditentukan dalam
Audio_Codec_Type_Supported. Nilai ini harus 0 jika jenis codec Bit 1 tidak didukung. Unit: md |
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 |
2 oktet |
Waktu buffer minimum jenis codec Bit 1 yang ditentukan dalam
Audio_Codec_Type_Supported. Nilai ini harus 0 jika jenis codec Bit 1 tidak didukung. Unit: md |
| ...... | ...... | ...... |
Audio_Codec_Buffer_Default_Time_For_Bit_31 |
2 oktet |
Waktu buffer default jenis codec Bit 31 yang ditentukan dalam
Audio_Codec_Type_Supported. Nilai ini harus 0 jika jenis codec Bit 31 tidak didukung. Unit: md |
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 |
2 oktet |
Waktu buffer maksimum jenis codec Bit 31 yang ditentukan dalam
Audio_Codec_Type_Supported. Nilai ini harus 0 jika jenis codec Bit 31 tidak didukung. Unit: md |
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 |
2 oktet |
Waktu buffer minimum jenis codec Bit 31 yang ditentukan dalam
Audio_Codec_Type_Supported. Nilai ini harus 0 jika jenis codec Bit 31 tidak didukung. Unit: md |
Menyetel waktu buffer audio
Sub OCF: 0x02
Gunakan perintah ini untuk menyetel waktu buffer audio ke pengontrol Bluetooth.
| Parameter perintah | Ukuran | Tujuan |
|---|---|---|
Audio_Codec_Buffer_Time |
2 oktet |
Waktu buffer audio yang diminta untuk codec yang saat ini digunakan. Satuan: md |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Dynamic_Audio_Buffer_opcode |
1 oktet | 0x02 - Menetapkan waktu jeda audio |
Audio_Codec_Buffer_Time |
2 oktet |
Waktu buffer audio saat ini di pengontrol Bluetooth. Unit: md |
Peristiwa HCI (khusus vendor)
Peristiwa HCI khusus vendor diperlukan dalam beberapa kasus. Lihat Gambar 5.4 di halaman 1897 dalam Spesifikasi BT Core 5.2. Parameter peristiwa 0 akan selalu berisi kode sub-peristiwa pertama, yang menjadi dasar untuk mendekode peristiwa HCI lainnya.
| Parameter Peristiwa | Ukuran | Tujuan |
|---|---|---|
HCI_vendor_specific_event_code |
1 oktet | 0xFF |
sub_event_code |
1 oktet | Kode subperistiwa akan berukuran 1 oktet, byte segera setelah Panjang Parameter dalam paket peristiwa HCI. |
Sub-peristiwa pelanggaran batas penyimpanan
Peristiwa ini menunjukkan bahwa nilai batas penyimpanan telah dilampaui.
Kode sub-peristiwa = 0x54
| Parameter Subevent | Ukuran | Tujuan |
|---|---|---|
| Tidak ada |
Sub-peristiwa perubahan status multi-iklan LE
Peristiwa ini menunjukkan bahwa instance iklan telah mengubah statusnya. Saat ini, peristiwa ini hanya digunakan untuk menunjukkan instance iklan mana yang dihentikan sebagai akibat dari koneksi.
Kode sub-peristiwa = 0x55
| Parameter sub-peristiwa | Ukuran | Tujuan |
|---|---|---|
Advertising_instance |
1 oktet |
Mengidentifikasi instance iklan tertentu Nilai yang valid adalah 0 hingga max_advt_instances-1
|
State_Change_Reason |
1 oktet | 0x00: Koneksi diterima |
Connection_handle |
2 oktet |
Mengidentifikasi koneksi yang menyebabkan instance advt dinonaktifkan (0xFFFF jika tidak valid)
|
Sub-peristiwa pelacakan iklan LE
Peristiwa ini menunjukkan kapan pengiklan ditemukan atau tidak ditemukan.
Kode sub-peristiwa = 0x56
| Parameter Subevent | Ukuran | Tujuan |
|---|---|---|
APCF_Filter_Index |
1 oktet | Indeks Filter (0, max_filter-1) |
Advertiser_State |
1 oktet |
0x00: Pengiklan ditemukan 0x01: Pengiklan tidak ditemukan |
Advt_Info_Present |
1 oktet |
0x00: Informasi pengiklan (Advt_Info) ada0x01: Informasi pengiklan ( Advt_Info) tidak ada
|
Advertiser_Address |
6 oktet | Alamat publik atau acak |
Advertiser_Address_Type |
1 oktet |
0x00: Alamat publik 0x01: Alamat acak |
Advt_Info |
Tx_Pwr[0]: 1 oktetRSSI[0]: 1 oktetTimestamp[0]: 2 oktetAdv packet_len[0]: 1 oktetAdv_packet[0]: Adv_packet_len oktetScan_data_resp_len[0]: 1 oktetScan_data_resp[0]: Scan_data_resp oktet
|
Sub-peristiwa info debug pengontrol
Peristiwa ini digunakan oleh Pengontrol untuk memberikan informasi debug biner ke host.
Kode sub-peristiwa = 0x57
| Parameter Subevent | Ukuran | Tujuan |
|---|---|---|
debug_block_byte_offset_start |
2 oktet | Men-debug offset byte blok dari awal |
last_block |
1 oktet |
0x00: Ada lebih banyak data debug 0x01: Blok biner terakhir; tidak ada lagi data debug |
cur_pay_load_sz |
2 oktet | Ukuran blok biner dalam peristiwa saat ini |
Debug_Data |
Variabel | Data debug cur_payload_sz |
Sub-peristiwa Laporan Kualitas Bluetooth
Peristiwa ini menunjukkan salah satu hal berikut: peristiwa kualitas Bluetooth terjadi, pengontrol mengupload rekaman aktivitas pesan LMP/LL dan rekaman aktivitas penjadwalan Multi-link/Coex Bluetooth, atau pengontrol membuang data informasi debug.
Kode sub-peristiwa = 0x58 [Quality_Report_Id = 0x01 ~ 0x04, Link Quality related event]
| Parameter Subevent | Ukuran | Tujuan |
|---|---|---|
Quality_Report_Id |
1 oktet |
0x01: Pelaporan kualitas pada mode pemantauan. 0x02: Mendekati LSTO. 0x03: A2DP Audio Terputus-putus. 0x04: (e)SCO Voice Choppy. 0x05 ~ 0x06: Dicadangkan. 0x07: Audio LE terputus-putus. 0x08: Gagal terhubung. 0x09 ~ 0xFF: Dicadangkan. |
Packet_Types |
1 oktet |
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 0x10: DM1 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: Reserved 0x51: ISO packet 0x52: 1M PHY 0x53: 2M PHY 0x54: Codec PHY S=2 0x55: Codec PHY S=8 0x56 ~ 0xFF: Reserved |
Connection_Handle |
2 oktet | ACL/(e)SCO/ISO connection handle. |
Connection_Role |
1 oktet |
Peran yang Melakukan untuk koneksi. 0x00: Central 0x01: Peripheral 0x02 ~ 0xFF: Dicadangkan. |
TX_Power_Level |
1 oktet |
Tingkat daya transmisi saat ini untuk Connection_Handle yang ditentukan.
Nilai ini harus sama dengan pengontrol yang merespons perintah HCI_Read_Transmit_Power_Level HCI. |
RSSI |
1 oktet |
[dalam dBm]
Nilai Indikasi Kekuatan Sinyal yang Diterima (RSSI) untuk
Connection_Handle yang ditentukan. |
SNR |
1 oktet |
[dalam dB]
Nilai Rasio Sinyal terhadap Kebisingan (SNR) untuk Connection_Handle yang ditentukan. |
Unused_AFH_Channel_Count |
1 oktet |
Menunjukkan jumlah saluran yang tidak digunakan di AFH_channel_map. 0x4F ~ 0xFF: Dicadangkan. |
AFH_Select_Unideal_Channel_Count |
1 oktet |
Menunjukkan jumlah saluran yang terganggu dan memiliki kualitas buruk, tetapi masih dipilih untuk AFH. Jumlah minimum saluran yang diizinkan oleh spesifikasi Bluetooth adalah 20, jadi meskipun semua 79 saluran terganggu dan memiliki kualitas buruk, pengontrol tetap harus memilih setidaknya 20 saluran untuk AFH. |
LSTO |
2 oktet |
Setelan Waktu Tunggu Pengawasan Link Saat Ini. Waktu = N * 0,625 md Rentang Waktu: 0,625 md hingga 40,9 dtk |
Connection_Piconet_Clock |
4 oktet |
Piconet Clock untuk Connection_Handle yang ditentukan. Nilai ini harus sama dengan respons pengontrol terhadap perintah HCI_Read_Clock HCI dengan parameter "Which_Clock" 0x01 (Piconet Clock). Unit: N * 0,3125 md (1 Bluetooth Clock) |
Retransmission_Count |
4 oktet |
Jumlah transmisi ulang sejak peristiwa terakhir. Jumlah ini akan direset setelah dilaporkan kepada penyelenggara. |
No_RX_Count |
4 oktet |
Tidak ada jumlah RX sejak peristiwa terakhir. Jumlah akan bertambah jika tidak ada paket yang diterima pada slot waktu yang dijadwalkan atau paket yang diterima rusak. Jumlah ini akan direset setelah dilaporkan kepada penyelenggara. |
NAK_Count |
4 oktet |
Jumlah NAK (Negative Acknowledge) sejak peristiwa terakhir. Jumlah ini akan direset setelah dilaporkan kepada penyelenggara. |
Last_TX_ACK_Timestamp |
4 oktet |
Stempel waktu ACK TX terakhir. Ini didasarkan pada Bluetooth Clock dari
piconet central (CLK). Unit: N * 0,3125 md (1 Bluetooth Clock) |
Flow_Off_Count |
4 oktet |
Jumlah berapa kali pengontrol menerima Flow-off (STOP) sejak
peristiwa terakhir. Jumlah ini akan direset setelah dilaporkan kepada penyelenggara. |
Last_Flow_On_Timestamp |
4 oktet |
Stempel waktu Flow-on terakhir (GO). Ini didasarkan pada Bluetooth Clock dari
piconet central (CLK). Unit: N * 0,3125 md (1 Bluetooth Clock) |
Buffer_Overflow_Bytes |
4 oktet |
[dalam Byte]
Jumlah overflow buffer sejak peristiwa terakhir. |
Buffer_Underflow_Bytes |
4 oktet |
[dalam Byte]
Jumlah kekurangan buffer sejak peristiwa terakhir. |
bdaddr |
6 oktet | Alamat perangkat jarak jauh |
cal_failed_item_count |
1 oktet | Jumlah item yang gagal dikalibrasi |
TX_Total_Packets |
4 oktet | Jumlah paket yang dikirim. |
TX_UnAcked_Packets |
4 oktet |
Jumlah paket yang tidak menerima konfirmasi. Jumlah ini direset setelah dilaporkan ke host. |
TX_Flushed_Packets |
4 oktet |
Jumlah paket yang tidak dikirim oleh titik flush-nya. Jumlah ini direset setelah dilaporkan ke host. |
TX_Last_Subevent_Packets |
4 oktet |
Jumlah paket yang dikirimkan Link Layer PDU data CIS dalam sub-peristiwa terakhir dari peristiwa CIS. Jumlah ini direset setelah dilaporkan ke host. Nilainya adalah nol jika tidak ada nilai yang valid untuk link. |
CRC_Error_Packets |
4 oktet |
Jumlah paket yang diterima dengan error CRC sejak peristiwa terakhir. Jumlah ini direset setelah dilaporkan ke host. |
RX_Duplicate_Packets |
4 oktet |
Jumlah paket duplikat (transmisi ulang) yang diterima sejak peristiwa terakhir. Jumlah ini direset setelah dilaporkan ke host. |
RX_Unreceived_Packets |
4 oktet |
Jumlah paket yang tidak diterima sama dengan parameter perintah LE READ ISO Link Quality (lihat Spesifikasi inti Bluetooth Versi 5.4). Aliran terkait adalah CIS dan BIS. Saat nilai ini bertambah, Link Layer tidak menerima payload tertentu berdasarkan titik flush-nya (di CIS) atau di akhir peristiwa yang terkait dengannya (di BIS; lihat Bluetooth Core Specification Version 5.4 Vol 6 Part B, Bagian 4.4.6.6). |
Coex_Info_Mask |
2 oktet |
Bit 0 - CoexInvolvement: Ditetapkan untuk menunjukkan bahwa aktivitas koeks diduga terlibat
saat laporan ini dibuat (misalnya, A2DP Chops dan Approaching LSTO). Bit 1 - WL 2G Radio Active: Disetel untuk menunjukkan bahwa Radio WLAN 2G aktif. Bit 2 - WL 2G Connected: Disetel untuk menunjukkan bahwa Radio WLAN 2G aktif dan terhubung. Bit 3 - WL 5G/6G Radio Active: Disetel untuk menunjukkan bahwa Radio WLAN 5G/6G aktif. Bit 4-15 - Dicadangkan |
| Parameter Khusus Vendor | (total panjang parameter - TBD) * oktet | Agar vendor pengontrol mendapatkan lebih banyak parameter khusus vendor. |
Kode sub-peristiwa = 0x58 [Quality_Report_Id = 0x05, Root Inflammation event]
Peristiwa ini menunjukkan bahwa HAL Bluetooth atau pengontrol mengalami error fatal dan memerlukan stack Bluetooth untuk merekam situasi ini dan memulai ulang. Pengontrol harus mengirim Root_Inflammation_Event ke stack Bluetooth sebelum mengirim fragmen pertama peristiwa info debug dalam kasus apa pun.
Parameter Error_Code berisi kode error yang dilaporkan dari HAL/Controller, 0 jika merupakan error khusus vendor chipset. Vendor_Specific_Error_Code berisi kode error khusus vendor chipset dari HAL/Controller. Parameter ini harus ditetapkan sebagai 0 jika parameter Error_Code bukan 0. Parameter Error_Code dan Vendor_Specific_Error_Code tidak boleh bernilai 0.
| Parameter Subevent | Ukuran | Tujuan |
|---|---|---|
Quality_Report_Id |
1 oktet |
0x00 ~ 0x04: Dicadangkan. 0x05: Peradangan akar. 0x06 ~ 0xFF: Dicadangkan. |
Error_Code |
1 oktet |
0x00: Kode error khusus vendor chipset disertakan. 0x01 ~ 0xFF: Terjadi kegagalan pengontrol. Lihat Spesifikasi Bluetooth [Vol 2] Part D, Error Codes untuk mengetahui daftar kode error dan deskripsi. |
Vendor_Specific_Error_Code |
1 oktet |
0x00: Tidak ada kode error khusus vendor chipset. 0x01 ~ 0xFF: Kode error khusus vendor chipset. |
| Parameter Khusus Vendor | (Panjang Total Parameter - 4) * oktet | Agar vendor pengontrol mendapatkan lebih banyak parameter khusus vendor. |
Kode sub-peristiwa = 0x58 [Quality_Report_Id = 0x06, Peristiwa monitor energi]
Peristiwa ini memberikan gambaran singkat tentang konsumsi daya dan status operasional pengontrol Bluetooth selama jangka waktu tertentu. Peristiwa ini membantu developer dan engineer menganalisis cara pengontrol mengelola daya, mengidentifikasi aktivitas mana yang paling banyak mengonsumsi energi, dan memecahkan masalah terkait daya.
Parameter dalam laporan melacak metrik utama, termasuk:
- Konsumsi arus rata-rata: Arus keseluruhan yang digunakan oleh pengontrol.
- Waktu yang dihabiskan dalam berbagai status: Total waktu (dalam milidetik) yang dihabiskan pengontrol dalam status idle (tidur/daya rendah) versus status aktif (menghubungkan, mengirimkan, atau menerima data).
- Jumlah transisi status: Jumlah frekuensi pengontrol beralih antara status tidak ada aktivitas dan aktif.
- Waktu yang dihabiskan dalam status radio tertentu: Metrik terpisah untuk waktu yang dihabiskan untuk mengirim (Tx) dan menerima (Rx) untuk link BR/EDR (Bluetooth Klasik) dan LE (Bluetooth Hemat Energi).
- Tingkat daya transmisi rata-rata: Daya rata-rata (dalam dBm) yang digunakan untuk transmisi pada link BR/EDR dan LE.
- Aktivitas rantai terperinci: Melaporkan waktu yang dihabiskan dengan rantai transmisi atau penerimaan aktif, membedakan antara operasi satu rantai dan dua rantai, serta antara amplifier daya internal (iPA) dan eksternal (ePA).
- Waktu aktivitas pemindaian: Waktu yang digunakan pengontrol untuk memindai perangkat BR/EDR dan LE secara aktif.
Dengan memeriksa parameter ini, engineer dapat memperoleh insight tentang efisiensi daya pengontrol dan mengoptimalkan performanya.
| Parameter Subevent | Ukuran | Tujuan |
|---|---|---|
Quality_Report_Id |
1 oktet | 0x06: Pemantauan Energi |
Average_Current_Consumption |
2 oktet | [dalam mA] Konsumsi arus rata-rata semua aktivitas yang digunakan oleh pengontrol |
Idle_Total_Time (tidur) |
4 oktet | [dalam ms] Total waktu dalam status tidak ada aktivitas (status daya rendah, tidur). |
Idle_Sate_Enter_Count |
4 oktet | Menunjukkan berapa kali pengontrol memasuki status tidak ada aktivitas. |
Active_Total_Time |
4 oktet | [dalam ms] Total waktu dalam status aktif (meminta, membuat halaman, traffic ACL/SCO/eSCO/BIS/CIS, memproses tugas apa pun). |
Active_State_Enter_Count |
4 oktet | Menunjukkan berapa kali pengontrol memasuki status aktif. |
BR_RDR_Tx_Total_Time |
4 oktet | [dalam md] Total waktu dalam status Tx(Transmitting for ACL/SCO/eSCO traffic) khusus BR/EDR. |
BR_RDR_Tx_State_Enter_Count |
4 oktet | Menunjukkan berapa kali pengontrol memasuki status Tx khusus BR/EDR. |
BR_RDR_Tx_Average_Power_Level |
1 oktet | [dalam dBm] Tingkat daya Tx rata-rata dari semua link BR/EDR |
BR_RDR_Rx_Total_Time |
4 oktet | [dalam ms] Total waktu dalam status Rx (Menerima traffic ACL/SCO/eSCO) khusus BR/EDR. |
BR_RDR_Rx_State_Enter_Count |
4 oktet | [dalam ms] Menunjukkan berapa kali pengontrol memasuki status Rx khusus BR/EDR. |
LE_Tx_Total_Time |
4 oktet | [dalam ms] Total waktu dalam status Tx (Mengirimkan untuk traffic iklan ACL/BIS/CIS atau LE tertentu) LE. |
LE_Tx_State_Enter_Count |
4 oktet | Menunjukkan berapa kali pengontrol memasuki status Rx khusus BR/EDR. |
LE_Tx_Average_Power_Level |
1 oktet | [dalam dBm] Tingkat daya Tx rata-rata dari semua link LE. |
LE_Rx_Total_Time |
4 oktet | [dalam ms] Total waktu dalam status Rx (Menerima dari traffic pemindaian ACL/BIS/CIS atau LE) khusus LE. |
LE_Rx_State_Enter_Count |
4 oktet | [dalam ms] Menunjukkan berapa kali pengontrol memasuki status Rx khusus LE |
Report_Time_Duration (Total waktu) |
4 oktet | [dalam ms] Durasi waktu total untuk mengumpulkan informasi terkait daya. |
RX_Active_One_Chain_Time |
4 oktet | [dalam ms] Durasi waktu RX aktif dalam satu rantai |
RX_Active_Two_Chain_Time |
4 oktet | [dalam ms] Durasi waktu RX aktif dalam dua rantai |
TX_iPA_Active_One_Chain_Time |
4 oktet | [dalam ms] Durasi waktu TX internal aktif dalam satu rantai |
TX_iPA_Active_Two_Chain_Time |
4 oktet | [dalam ms] Durasi waktu TX internal aktif dalam dua rantai |
TX_ePA_Active_One_Chain_Time |
4 oktet | [dalam md] Durasi waktu TX eksternal aktif dalam satu rantai |
TX_ePA_Active_Two_Chain_Time |
4 oktet | [dalam ms] Durasi waktu TX eksternal aktif dalam dua rantai |
BREDR_RX_Active_Scan_total_Time |
4 oktet | [dalam md] Periode waktu (md) pada waktu aktif RX pemindaian BR/EDR |
LE_RX_Active_Scan_total_Time |
4 oktet | [dalam md] Periode waktu (md) pada waktu aktif RX pemindaian LE |
Kode sub-peristiwa = 0x58 [Quality_Report_Id = 0x09~0x0A, Peristiwa statistik RF lanjutan]
Peristiwa Statistik RF (Radio Frequency) Lanjutan Bluetooth memberikan metrik performa mendetail tentang perilaku radio pengontrol Bluetooth. Acara dapat dipicu dengan dua cara:
- Menurut Pemicu (0x09): Laporan satu kali dikirim sebagai respons terhadap perintah tertentu.
- Menurut Monitor (0x0A): Pengontrol mengirimkan laporan secara berkala pada interval yang ditentukan.
Parameter peristiwa pada dasarnya adalah penghitung paket yang melacak berbagai perilaku radio selama jangka waktu tertentu.
Metrik utama dan tujuannya
- Statistik daya transmisi: Penghitung ini melacak paket yang dikirim menggunakan konfigurasi daya yang berbeda, membedakan antara amplifier daya internal (iPA) dan eksternal (ePA) serta berbagai mode keragaman antena (Div) atau pembentukan berkas (BF). Hal ini membantu menentukan setelan daya dan antena mana yang paling sering digunakan.
- Kelompok indikator kekuatan sinyal yang diterima (RSSI): Parameter ini mengategorikan paket yang diterima berdasarkan kekuatan sinyalnya. Dengan memberikan jumlah paket dalam rentang RSSI tertentu (misalnya, kurang dari -90 dBm, -70 hingga -75 dBm), laporan ini memberikan gambaran yang jelas tentang kualitas link. Jumlah yang tinggi di bin sinyal "lemah" (misalnya, < -90 dBm) menunjukkan koneksi yang buruk.
- Delta RSSI: Metrik ini mengukur perbedaan kekuatan sinyal antara dua antena penerima (jika berlaku). Penghitung melacak jumlah paket yang memiliki delta RSSI dalam rentang yang berbeda. Delta besar (misalnya, >11 dBm) dapat menunjukkan adanya interferensi atau halangan fisik, karena satu antena menerima sinyal yang jauh lebih kuat daripada antena lainnya.
- Pengalihan antena dan transmisi ulang: Laporan menghitung seberapa sering pengontrol beralih antar-antena dan melacak paket yang ditransmisikan ulang (ReTX). Jumlah transmisi ulang yang tinggi sering kali menunjukkan koneksi yang lemah atau tidak andal, sehingga paket harus dikirim ulang.
- Kualitas saluran: Parameter ini memberikan ringkasan umum tentang kondisi berbagai saluran komunikasi, mengategorikannya sebagai "Baik", "Cukup", "Buruk", atau "Sangat Buruk" berdasarkan RSSI-nya. Hal ini memberikan ringkasan langsung tentang lingkungan RF.
- Antrean buffer TX: Bagian ini memantau jumlah paket yang menunggu di buffer transmisi pengontrol untuk berbagai jenis link, seperti ACL (Asynchronous Connection-oriented Logical link), LECONN (LE Connection), dan LEISOC (LE Isochronous). Jumlah buffer yang tinggi dapat menunjukkan adanya hambatan atau masalah pada aliran data dari host ke pengontrol.
| Parameter sub-peristiwa | Ukuran | Tujuan |
|---|---|---|
Quality_Report_Id |
1 oktet | 0x09: Advance RF Stats By Trigger 0x0A: Advance RF Stats By Monitor |
Extension_info |
1 oktet | Informasi versi BQR. 0x01 untuk BQRv6 0x02 untuk BQRv7 |
Report_Time_Period |
4 oktet | Periode waktu untuk mengumpulkan informasi performa. Unit: md |
TX_Power_iPA_BF |
4 oktet | Penghitung paket iPA BF |
TX_Power_ePA_BF |
4 oktet | Penghitung paket ePA BF |
TX_Power_iPA_Div |
4 oktet | Penghitung paket Divisi ePA |
TX_Power_ePA_Div |
4 oktet | Penghitung paket Divisi ePA |
RSSI_chain_50 |
4 oktet | Penghitung paket rantai RSSI > -50 dBm |
RSSI_chain_50_55 |
4 oktet | Penghitung paket rantai RSSI antara -50 dBm ~ >-55 dBm |
RSSI_chain_55_60 |
4 oktet | Penghitung paket rantai RSSI antara -55 dBm ~ >-60 dBm |
RSSI_chain_60_65 |
4 oktet | Penghitung paket rantai RSSI antara -60 dBm ~ >-65 dBm |
RSSI_chain_65_70 |
4 oktet | Penghitung paket rantai RSSI antara -65 dBm ~ >-70 dBm |
RSSI_chain_70_75 |
4 oktet | Penghitung paket rantai RSSI antara -70 dBm ~ >-75 dBm |
RSSI_chain_75_80 |
4 oktet | Penghitung paket rantai RSSI antara -75 dBm ~ >-80 dBm |
RSSI_chain_80_85 |
4 oktet | Penghitung paket rantai RSSI antara -80 dBm ~ >-85 dBm |
RSSI_chain_85_90 |
4 oktet | Penghitung paket rantai RSSI antara -85 dBm ~ >-90 dBm |
RSSI_chain_90 |
4 oktet | Penghitung paket rantai RSSI < -90 dBm |
RSSI_delta_2 |
4 oktet | Penghitung paket delta RSSI < 2 dBm |
RSSI_delta_2_5 |
4 oktet | Penghitung paket delta RSSI antara 2 dBm ~ 5 dBm |
RSSI_delta_5_8 |
4 oktet | Penghitung paket delta RSSI antara 5 dBm ~ 8 dBm |
RSSI_delta_8_11 |
4 oktet | Penghitung paket delta RSSI antara 8 dBm ~ 11 dBm |
RSSI_delta_11 |
4 oktet | Penghitung paket delta RSSI > 11 dBm |
Antenna_Switch_Count |
4 oktet | Penghitung paket peristiwa pengalihan antena |
ReTX_iPA_BF |
4 oktet | Penghitung paket ReTX_iPA_BF dalam jangka waktu terbaru |
ReTX_ePA_BF |
4 oktet | Penghitung paket ReTX_ePA_BF dalam jangka waktu terbaru |
ReTX_iPA_Div |
4 oktet | Penghitung paket ReTX_iPA_Div dalam jangka waktu terbaru |
ReTX_ePA_Div |
4 oktet | Penghitung paket ReTX_ePA_Div dalam jangka waktu terbaru |
Channel_count_Good |
1 oktet | Jumlah saluran yang RSSI-nya berada dalam Bin-1 (<-90) |
Channel_count_OK |
1 oktet | Jumlah saluran yang RSSI-nya berada dalam Bin-2 (-90~-76) |
Channel_count_Bad |
1 oktet | Jumlah saluran yang RSSI-nya berada dalam Bin-3 (-76~-50) |
Channel_count_VeryBad |
1 oktet | Jumlah saluran yang RSSI-nya berada dalam Bin-4 (>-50) |
TX_buffer_Queue_Count |
4 oktet | Counter buffer TX status pengontrol antrean dalam jangka waktu terbaru [0:3] ACL_1 [4:7] ACL_2 [8:11] LECONN_1 [12:15] LECONN_2 [16:19] LEISOC_1 [20:23] LEISOC_2 [24:27] LEBroadcast [28:31] rsvd |
Kode sub-peristiwa = 0x58 [Quality_Report_Id = 0x0B~0x0C, peristiwa Pemantauan Kondisi Pengontrol]
Peristiwa Pemantauan Kondisi Pengontrol Bluetooth memberikan ringkasan status operasional pengontrol. Acara dapat dipicu dengan dua cara:
- Menurut Pemicu (0x09): Laporan satu kali dikirim sebagai respons terhadap perintah tertentu.
- Dengan Monitor (0x0A): Pengontrol mengirimkan laporan secara berkala pada interval yang ditentukan.
Peristiwa Pemantauan Kondisi Pengontrol Bluetooth adalah alat diagnostik yang memberikan ringkasan status operasional pengontrol. Peristiwa ini adalah bagian dari framework Bluetooth Quality Report (BQR) dan digunakan untuk men-debug masalah konektivitas, pengelolaan daya, dan pengaturan waktu. Laporan ini dapat dikirim sebagai laporan satu kali atau secara berkala untuk memberikan pemantauan berkelanjutan.
Metrik utama dan tujuannya
- Penghitung Paket HCI: Peristiwa ini melacak jumlah total paket yang dikirim dari Host ke Pengontrol dan sebaliknya. Penghitung ini penting untuk men-debug masalah dengan transportasi Host Controller Interface (HCI), yang merupakan saluran komunikasi antara stack software dan chip pengontrol Bluetooth.
- Panjang Paket: Peristiwa ini melaporkan panjang paket HCI terakhir yang dikirim dan diterima. Hal ini membantu memverifikasi bahwa data ditransmisikan dengan benar dan tidak ada masalah ukuran yang tidak terduga.
- Jumlah Sinyal Aktif: Laporan ini mencakup jumlah total berapa kali pin BT_Wake dan HOST_Wake telah ditegaskan. Sinyal fisik ini sangat penting untuk pengelolaan daya, karena digunakan untuk mengaktifkan entitas yang bersangkutan dari status daya rendah. Memantau jumlah ini membantu men-debug masalah terkait daya, seperti perangkat yang tiba-tiba aktif atau gagal masuk ke mode tidur.
- Stempel waktu: Peristiwa ini menyediakan beberapa stempel waktu, termasuk waktu sinyal aktif terakhir dan reset HCI terakhir. Stempel waktu ini membantu memecahkan masalah terkait waktu dan memberikan titik referensi untuk mengetahui kapan peristiwa tertentu terjadi.
- Timer Watchdog: Flag tertentu menunjukkan apakah peristiwa dibuat sebagai peringatan dini bahwa timer watchdog pengontrol akan segera berakhir. Peringatan ini adalah peringatan penting untuk potensi pembekuan atau malfungsi pengontrol.
- Status Penautan: Laporan ini merangkum status koneksi aktif saat ini, termasuk jumlah total link BR/EDR, LE, dan CIS (Connected Isochronous Stream). Bagian ini juga menunjukkan apakah ada link SCO (Synchronous Connection-Oriented) yang aktif. Informasi ini memberikan ringkasan beban koneksi pengontrol saat ini.
| Parameter sub-peristiwa | Ukuran | Tujuan |
|---|---|---|
Quality_Report_Id |
1 Oktet | 0xB~0xC 0x0B: laporan satu kali atau yang dipicu peristiwa 0x0C: laporan berkala. |
Packet_Count_Host_to_Controller |
4 Oktet | Jumlah total paket yang dikirim dari Host ke Pengontrol melalui transportasi HCI. Kolom ini digunakan untuk tujuan proses debug masalah HCI (misalnya, UART). Perilaku: penghitung direset saat pengontrol menerima reset HCI. |
Packet_Count_Controller_to_Host |
4 Oktet | Jumlah total paket Peristiwa HCI yang dikirim ke Host. Kolom ini digunakan untuk tujuan proses debug HCI (misalnya, UART). Perilaku: penghitung direset saat pengontrol menerima reset HCI. |
Last_Packet_Length_Host_to_Controller |
2 Oktet | Panjang paket HCI terakhir yang dikirim ke Host UART. Catatan: Panjang Paket HCI maks. 2 oktet (Mencakup HCI, ACL, SCO, ISO) |
Last_Packet_Length_Controller_To_host |
2 Oktet | Panjang paket HCI terakhir yang diterima dari Host UART. Catatan: Panjang Paket HCI maks. 2 oktet (Termasuk HCI, ACL, SCO, ISO) |
Total_BT_Wake_Count |
4 Oktet | Jumlah gabungan pernyataan pin BT_Wake oleh entity Host. Kolom ini berfungsi sebagai alat diagnostik untuk proses debug masalah terkait daya. Perilaku: penghitung direset saat pengontrol menerima reset HCI. |
Total_HOST_Wake_Count |
4 Oktet | Penghitungan gabungan pernyataan pin Host_Wake yang dimulai oleh Pengontrol. Kolom ini berfungsi sebagai alat diagnostik untuk proses debug masalah terkait daya. Perilaku: penghitung direset saat pengontrol menerima reset HCI. |
Last_BT_Wake_TimeStamp |
4 Oktet | Stempel Waktu Terakhir saat Host Mengirimkan Sinyal Pin BT_Wake.Kolom ini diterapkan untuk tujuan men-debug masalah Daya. |
Last_HOST_Wake_TimeStamp |
4 Oktet | Stempel waktu terbaru saat pengontrol menegaskan pin Host_Wake. Kolom ini digunakan untuk men-debug masalah daya. |
Reset_Timestamp |
4 Oktet | Stempel waktu yang menunjukkan penyelesaian Reset HCI terbaru. Kolom ini digunakan untuk tujuan khusus memfasilitasi penyelesaian masalah terkait waktu. Item ini harus berfungsi sebagai titik perekaman awal yang menjadi acuan semua item lainnya. |
Current_Timestamp |
4 Oktet | Waktu saat ini ketika peristiwa ini dihasilkan. Kolom ini digunakan untuk tujuan pemecahan masalah perbedaan waktu. Elemen ini harus berfungsi sebagai titik perekaman pemicu yang direferensikan oleh semua elemen lainnya. |
Is_WatchDog_Timer_About_To_Expire |
4 Oktet | Flag untuk menunjukkan bahwa peristiwa status kesehatan ini dibuat oleh pengontrol sebagai peringatan dini tentang masa berlaku watchdog akan berakhir. Stempel waktu saat ini berfungsi untuk menunjukkan waktu terjadinya. |
Coex_Status_Mask |
2 Oktet | Bit 0 - Dicadangkan |
Total_Links_BR_EDR_LE_Active |
1 Oktet | Jumlah total link BR/EDR/LE dalam status Aktif. |
Total_Links_BR_EDR_Sniff |
1 Oktet | Jumlah total link BR/EDR dalam status Sniff/Idle. |
Total_Links_CIS |
1 Oktet | Jumlah total link ISO. |
Is_SCO_Active |
1 Oktet | Indikator untuk memeriksa apakah link SCO saat ini diaktifkan. |
Kode sub-peristiwa = 0x58 [Quality_Report_Id = 0x11 ~ 0x13, Peristiwa terkait Dump Log]
| Parameter Subevent | Ukuran | Tujuan |
|---|---|---|
Quality_Report_Id |
1 oktet |
0x00 ~ 0x10: Dicadangkan. 0x11: LMP/LL message trace. 0x12: Pelacakan penjadwalan Multi-link/Coex Bluetooth. 0x13: Dump data Informasi Debug Pengontrol. 0x14 ~ 0xFF: Dicadangkan. |
Connection_Handle |
2 oktet | Tuas Koneksi. |
| Parameter Khusus Vendor | (Panjang Total Parameter - 4) * oktet | Format khusus vendor dari rekaman aktivitas pesan LMP, rekaman aktivitas penjadwalan Multi-link/Coex Bluetooth, dan dump data Informasi Debug Pengontrol. |
Sub-peristiwa Masukan Link ISO
Subkode peristiwa = 0x5C
Jika diaktifkan, peristiwa ini harus dihasilkan selama setiap interval ISO.
Aktivasi
Aktivasi dilakukan dengan memilih kodeData_Path_ID vendor
0x19 dalam perintah standar HCI_LE_Setup_ISO_Data_Path.
Perintah HCI_Configure_Data_Path dengan Data_Path_ID yang ditetapkan ke
0x19 dan Vendor_Specific_Config_Length yang ditetapkan ke 0,
harus diterima, meskipun tidak ada tindakan yang diharapkan dari pengontrol setelah menerima
perintah ini.
Titik waktu pengiriman
Peristiwa dipancarkan dari awal interval ISO (titik penanda CIG atau BIG), hingga interval ISO berikutnya. Pengontrol menunjukkan penundaan dengan awal efektif interval ISO menggunakanAnchor_Point_Delay.
Sinkronisasi pengontrol
Di awal interval ISO, pengontrol menghitung StreamSN dengan menambahkan nilai saat ini denganISO_Interval ÷ SDU_Interval yang dikonfigurasi; pada interval
pertama, nilai ini diinisialisasi ke 0.Kemudian, untuk setiap paket dalam FIFO ISO, hal berikut berlaku:
-
Pengontrol menghitung perbedaan pembungkusan SNdiff antara dua
nomor urut:
SNdiff = (SDUSN - StreamSN + 0x10000) mod 0x10000 - Jika
(SNdiff + (FT-1) × ISO_Interval ÷ SDU_Interval) mod 0x10000 <= (FT-1) × ISO_Interval ÷ SDU_Interval:
Paket berada di jendela transmisi ulang. Pesan seharusnya dijadwalkan untuk dikirimkan pada interval sebelumnya dan kini tersedia untuk dikirim ulang. Jika tidak demikian (belum dijadwalkan untuk dikirim), berarti pesan tersebut terlambat diterima. Hal ini harus disinyalkan ke host menggunakanIn_Status. Paket tersebut dapat dibuang atau dijadwalkan untuk transmisi; pilihannya ditentukan oleh implementasi. - Atau saat
SNdiff < ISO_Interval ÷ SDU_Interval:
Paket dijadwalkan untuk transmisi dari peristiwa ini hingga waktu tunggu flush terjadi. - Atau saat
SNdiff >= ISO_Interval ÷ SDU_IntervaldanSNdiff <= Max_Forward_Buffers:
Paket berada di masa mendatang; paket akan ditransmisikan dengan peristiwa berikutnya. Karena paket dikirim secara berurutan, kondisi ini mengakhiri penelusuran paket untuk interval ini.
Buffer yang digunakan oleh host tidak dikomunikasikan ke pengontrol, tetapi terbatas padaMax_Forward_Buffers = 16. - Atau jika tidak ada kondisi di atas yang terpenuhi:
Paket dibuang, batas waktu flush tercapai, atau paket yang salah bentuk telah diterima.
| Parameter sub-peristiwa | Ukuran | Tujuan |
|---|---|---|
Connection_Handle |
2 oktet |
Handle koneksi CIS atau BIS Rentang: 0x0000 hingga 0x0EFF |
Sequence_Number |
2 oktet |
Nomor urut aliran data, yang dikelola oleh pengontrol. Diinisialisasi ke 0 saat CIS atau BIS dibuat, dan diinkrementalkan berdasarkan jumlah SDU menurut interval Isochronous ISO, yang ditentukan sebagai ISO_interval ÷ SDU_Interval,
di setiap interval ISO.
|
Anchor_Point_Delay |
2 oktet |
Penundaan dalam mikrodetik antara pembuatan peristiwa dan titik penambat BIG atau CIG yang efektif
atau awal interval ISO.
Stempel waktu titik penahan yang efektif ditentukan oleh:Event generation time - Anchor_Point_Delay
Rentang: 0 hingga interval ISO dalam mikrodetik |
In_Status |
2 oktet |
Status buffer ISO pengontrol Pada awal interval ISO, setiap bit bi disetel saat SDU (Sequence_Number + i) mod 0x10000 tersedia. Jika tidak tersedia, SDU
diidentifikasi sebagai Not received from the host.Nilai i berkisar dari 0 hingga ISO_Interval ÷ SDU_Interval - 1.
Untuk nilai i lainnya, bit ditetapkan ke 0.
|
Tx_Status |
2 oktet |
Status transmisi, relatif terhadap SDU dengan nomor urut:(Sequence_Number - Flush_Timeout × ISO_Interval ÷ SDU_Interval + i + 0x10000)
mod 0x10000
Setiap bit bi disetel saat semua PDU SDU yang diidentifikasi, berdasarkan nomor urutnya, telah berhasil dikirim dan dikonfirmasi. Nilai i berkisar dari 0 hingga ISO_Interval ÷ SDU_Interval - 1.
Untuk nilai i lainnya, bit ditetapkan ke 0.Di grup siaran, transmisi harus selalu dikonfirmasi. |
Dukungan multipengiklan
Tujuan dukungan multi-pengiklan adalah sebagai berikut:
-
Kemampuan untuk mendukung beberapa iklan
(
max_advt_instances) - Daya transmisi yang berbeda untuk memungkinkan rentang yang bervariasi
- Konten iklan yang berbeda
- Respons individual untuk setiap pengiklan
- Privasi (tidak dapat dilacak) untuk setiap pengiklan
- Dapat terhubung
Agar spesifikasi ini tetap sesuai dengan standar yang ada, perintah khusus vendor berikut disediakan. Nilai ini berasal dari Spesifikasi Bluetooth Core 4.1.
LE_Multi_Advt_Command
OCF: 0x154
| Parameter perintah | Ukuran | Tujuan |
|---|---|---|
Multi_advt_opcode |
1 oktet |
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
|
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Multi_advt_opcode |
1 oktet |
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
Referensi dasar: Spesifikasi Bluetooth Core 4.1, halaman 964 (LE Set Advertising Parameter Command)
Sub OCF: 0x01
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
Advertising_Interval_Min |
Per spesifikasi | Per spesifikasi |
Advertising_Interval_Max |
Per spesifikasi | Per spesifikasi |
Advertising_Type |
Per spesifikasi | Per spesifikasi |
Own_Address_Type |
Per spesifikasi | Per spesifikasi |
Own_Address |
Per spesifikasi | Per spesifikasi |
Direct_Address_Type |
Per spesifikasi | Per spesifikasi |
Direct_Address |
Per spesifikasi | Per spesifikasi |
Advertising_Channel_Map |
Per spesifikasi | Per spesifikasi |
Adverstising_Filter_Policy |
Per spesifikasi | Per spesifikasi |
Advertising_Instance |
1 oktet | Menentukan penerapan parameter di atas ke instance |
Tx_power |
1 oktet |
Transmit_Power Unit - dalam dBm (bilangan bulat bertanda) Rentang (-70 hingga +20) |
Parameter Own_Address dapat berupa alamat yang dikonfigurasi host
pada saat menyiapkan instance multi-iklan ini. Hal ini memberikan
kemampuan untuk memiliki alamat pribadi yang dapat diselesaikan pada saat
transmisi beacon pertama. Iklan di instance akan terus ditampilkan
terlepas dari koneksinya. Stack BT host dapat mengeluarkan perintah untuk
memulai iklan pada instance, setelah koneksi.
Peristiwa Command Complete akan dihasilkan untuk perintah ini seperti yang ditentukan
dalam Spesifikasi Bluetooth Core 4.1, per perintah di atas. Pengontrol akan merespons dengan kode non-berhasil (parameter tidak valid) jika
parameter instance iklan atau Tx_Power tidak valid.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Multi_advt_opcode |
1 oktet | 0x01 [Set_Advt_Param_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Advt_Data_Multi_Sub_Cmd
Referensi dasar: Spesifikasi Bluetooth Core 4.1, halaman 969 (Perintah Data Iklan Set LE)
Sub OCF: 0x02
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
Advertising_Data_Length |
Per spesifikasi | Per spesifikasi |
Advertising_Data |
Per spesifikasi | Per spesifikasi |
Advertising_Instance |
1 oktet | Menentukan penerapan parameter di atas ke instance |
Peristiwa Command Complete akan dihasilkan untuk perintah ini seperti yang ditentukan
dalam Spesifikasi Bluetooth Core 4.1, per perintah di atas. Pengontrol akan merespons dengan kode non-keberhasilan jika instance iklan atau parameter Tx_Power tidak valid.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Multi_advt_opcode |
1 oktet | 0x02 [Set_Advt_Data_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Scan_Resp_Data_Multi_Sub_Cmd
Referensi dasar: Spesifikasi Bluetooth Core 4.1, halaman 970 (Perintah Data Respons Pemindaian Set LE)
Sub OCF: 0x03
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
Scan_Response_Data_Length |
Per spesifikasi | Per spesifikasi |
Scan_Response_Data |
Per spesifikasi | Per spesifikasi |
Advertising_Instance |
1 oktet | Menentukan penerapan parameter di atas ke instance |
Peristiwa Command Complete akan dihasilkan untuk perintah ini seperti yang ditentukan
dalam Spesifikasi Bluetooth Core 4.1, per perintah di atas. Pengontrol akan merespons dengan kode non-keberhasilan (parameter tidak valid) jika
parameter instance iklan atau Tx_Power tidak valid.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Multi_advt_opcode |
1 oktet | 0x03 [Set_Scan_Resp_Data_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Random_Addr_Multi_Sub_Cmd
Referensi dasar: Spesifikasi Bluetooth Core 4.1, halaman 963 (LE Set Random Address Command)
Sub OCF: 0x04
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
| Alamat Acak | Per spesifikasi | Per spesifikasi |
Advertising_Instance |
1 oktet | Menentukan penerapan parameter di atas ke instance |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Multi_advt_opcode |
1 oktet | 0x04 [Set_Random_Addr_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Advt_Enable_Multi_Sub_Cmd
Referensi dasar: Spesifikasi Bluetooth Core 4.1, halaman 971 (Perintah Aktifkan Iklan Set LE dalam spesifikasi inti tersebut)
OCF: 0x05
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
Advertising_Enable |
1 oktet | Nilai 1 berarti aktifkan. Nilai lainnya berarti nonaktif. |
Advertising_Instance |
1 oktet | Menentukan penerapan parameter di atas ke instance. Instance 0 berarti instance HCI standar. |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Multi_advt_opcode |
1 oktet | 0x05 [Set_Advt_Enable_Multi_Sub_Cmd] |
Menurunkan resolusi alamat pribadi
Fitur ini menyelesaikan alamat pribadi di firmware atau hardware pengontrol, yang memberikan manfaat berikut:
- Latensi yang terkait dengan host dalam menyelesaikan alamat pribadi
- Menghemat daya dengan tidak mengaktifkan host
LE_Set_RPA_Timeout
OCF: 0x15C
| Parameter perintah | Ukuran | Tujuan |
|---|---|---|
LE_local_IRK |
16 oktet | IRK perangkat lokal yang digunakan untuk membuat alamat acak yang dapat diselesaikan. |
tRPA_min |
2 oktet |
Waktu tunggu pembuatan RPA minimum dalam detik. Pengontrol harus
membuat alamat baru yang dapat diselesaikan untuk setiap
peristiwa iklan/pemindaian/koneksi pada atau setelah waktu tunggu ini. Rentang yang valid: 300-1800 |
tRPA_max |
2 oktet |
Waktu tunggu pembuatan RPA maksimum dalam detik. Pengontrol harus
membuat alamat baru yang dapat diselesaikan untuk
peristiwa iklan/pemindaian/koneksi pada atau sebelum waktu tunggu ini. Rentang yang valid: tRPA_min-1800
|
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet |
Status perintah. Nilai status HCI yang disarankan: 0x00 Berhasil 0x01 Perintah tidak diketahui (jika tidak didukung) 0x12 Parameter perintah tidak valid (jika ada parameter di luar rentang yang diberikan) |
LE_RPA_offload_Command
OCF: 0x155
| Parameter perintah | Ukuran | Tujuan |
|---|---|---|
RPA_offload_opcode |
1 oktet |
0x1 - Aktifkan fitur khusus pelanggan 0x2 - Tambahkan IRK ke daftar 0x3 - Hapus IRK dari daftar 0x4 - Hapus daftar IRK 0x5 - Baca entri daftar IRK |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Event_RPA_offload_opcode |
1 oktet |
0x1 - Aktifkan fitur khusus pelanggan 0x2 - Tambahkan IRK ke daftar 0x3 - Hapus IRK dari daftar 0x4 - Hapus daftar IRK 0x5 - Baca entri daftar IRK |
LE_RPA_offload: Enable_cust_specific_sub_Command
Sub OCF: 0x01
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
enable_customer_specific_feature_set |
1 oktet |
0x01 - Aktifkan fitur RPA yang di-offload 0x00 - Nonaktifkan fitur RPA yang di-offload |
Pelepasan RPA harus diaktifkan oleh host, berdasarkan kemampuan chip. Lihat LE_Get_Vendor_Capabilities_Command.
Setiap chip dapat memiliki max_irk_list_sz yang berbeda-beda di firmware.
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Event_cust_specific_feature_opcode |
1 oktet | 0x01 [Aktifkan fitur khusus pelanggan] |
LE_RPA_offload: Add_IRK_to_list_sub_Command
Sub OCF: 0x02
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
LE_IRK |
16 oktet | LE IRK (LSB byte ke-1) |
Address_Type |
1 oktet |
0: Alamat publik 1: Alamat acak |
LE_Device_Address |
6 oktet | Alamat publik atau acak yang terkait dengan IRK (LSB byte ke-1) |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Event_cust_specific_feature_opcode |
1 oktet | 0x02 [Tambahkan IRK ke daftar] |
LE_IrkList_AvailableSpaces |
1 oktet | Entri daftar IRL yang tersedia setelah operasi saat ini |
LE_RPA_offload: Remove_IRK_to_list_sub_Command
Sub OCF: 0x03
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
Address_Type |
1 oktet |
0: Alamat publik 1: Alamat acak |
LE_Device_Address |
6 oktet | Alamat publik atau acak yang terkait dengan IRK |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Event_cust_specific_feature_opcode |
1 oktet | 0x03 [Menghapus IRK dari daftar] |
LE_IrkList_AvailableSpaces |
1 oktet | Entri daftar IRL yang tersedia setelah operasi saat ini |
LE_RPA_offload: Clear_IRK_list_sub_Command
Sub OCF: 0x04
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
| Tidak ada |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Event_cust_specific_feature_opcode |
1 oktet | 0x04 [Hapus Daftar IRK] |
LE_IrkList_AvailableSpaces |
1 oktet |
Entri daftar IRL yang tersedia setelah operasi saat ini [max_irk_list_sz]
|
LE_RPA_offload: Read_IRK_list_sub_Command
Sub OCF: 0x05
| Parameter subperintah | Ukuran | Tujuan |
|---|---|---|
LE_read_IRK_list_entry-index |
1 oktet | Indeks daftar IRK [0, max_irk_list_sz-1] |
Peristiwa Command Complete akan dibuat untuk perintah ini.
| Parameter pengembalian | Ukuran | Tujuan |
|---|---|---|
Status |
1 oktet | Status Command Complete |
Event_cust_specific_feature_opcode |
1 oktet | 0x05 [Membaca Entri Daftar IRK] |
LE_Read_IRK_List_entry |
1 oktet | Indeks IRK yang ingin dibaca kembali oleh host (ukuran daftar IRK maksimum adalah 32) |
LE_IRK |
16 oktet | Nilai IRK |
Address_Type |
1 oktet |
0: Alamat publik 1: Alamat acak |
LE_Device_Address |
6 oktet | Alamat publik atau acak yang terkait dengan IRK |
LE_Resolved_Private_Address |
6 oktet | Alamat pribadi yang dapat diselesaikan dan saat ini diselesaikan dari IRK ini |
Pengurangan Beban Sniff
Fitur Sniff Offload memindahkan pengelolaan mode Sniff dari stack host Bluetooth ke pengontrol Bluetooth. Hal ini memungkinkan pengontrol mengelola waktu masuk/keluar dari mode Sniff dan menerapkan parameter sub-peringkat Sniff dan Sniff yang dapat dikonfigurasi, sementara host mempertahankan kontrol atas pemilihan parameter berdasarkan perubahan aktivitas profil Bluetooth.
Status Offload Sniff
Bagian ini menentukan status dalam pengontrol Bluetooth sehubungan dengan fungsi Sniff Offload. Dua status global telah ditentukan untuk mengidentifikasi status pengontrol Bluetooth sehubungan dengan pengaktifan Sniff Offload. Dua status khusus koneksi telah ditentukan untuk mengidentifikasi status koneksi BR/EDR saat pengontrol Bluetooth dalam status Sniff Offload Enabled.
Status Global
Dua status global telah ditentukan untuk mengidentifikasi status pengontrol Bluetooth sehubungan dengan pengaktifan Sniff Offload.
Status Nonaktif Offload Sniff
Pengontrol Bluetooth dianggap berada dalam status 'Sniff Offload Disabled' secara default. Pengontrol Bluetooth diharapkan menangani perintah HCI_Sniff_Mode, HCI_Exit_Sniff_Mode, dan HCI_Sniff_Subrating yang dikeluarkan dari host Bluetooth. Pengontrol Bluetooth juga harus meneruskan peristiwa HCI_Mode_Change dan HCI_Sniff_Subrating ke host Bluetooth sesuai dengan mask peristiwa yang ditetapkan oleh host Bluetooth.
Status Aktifkan Offload Sniff
Pengontrol Bluetooth dianggap berada dalam status 'Pengalihan Sniff Diaktifkan' setelah berhasil menangani 'WriteSniffOffloadEnable' untuk mengaktifkan Pengalihan Sniff. Dalam status ini, pengontrol Bluetooth diharapkan meneruskan peristiwa HCI_Mode_Change dan HCI_Sniff_Subrating ke host Bluetooth sebagaimana diputuskan oleh fungsi AND logis dari mask peristiwa yang ditetapkan oleh host Bluetooth dan Flag Penekanan Peristiwa.
Status Khusus Koneksi
Saat pengontrol Bluetooth dalam status ‘Offload Sniff Diaktifkan’, setiap ACL aktif dapat berada dalam salah satu dari dua status yang dijelaskan di bawah.
Status Parameter Tertunda
ACL dianggap dalam status 'Pending-Parameters' saat pengontrol Bluetooth dalam status 'Sniff Offload Enabled', tetapi perintah khusus vendor 'WriteSniffOffloadParameters' belum dikeluarkan setidaknya sekali oleh host Bluetooth untuk ACL saat ini.
Status Dimulai Kontrol
ACL dianggap dalam status 'Control-Started' saat pengontrol Bluetooth dalam status 'Sniff Offload Enabled', dan perintah khusus vendor 'WriteSniffOffloadParameters' telah dikeluarkan setidaknya sekali oleh host Bluetooth untuk ACL saat ini.
WriteSniffOffloadEnable
OCF: 0x310
| Parameter perintah | Ukuran | Tujuan |
|---|---|---|
Enable_Sniff_Offload |
1 oktet | 0x00 : Nonaktifkan 0x01 : Aktifkan |
Subrating_Max_Latency |
2 oktet | Parameter Latensi Maksimum akan digunakan untuk menghitung sub-kecepatan mengintip maksimum yang dapat digunakan perangkat jarak jauh. Default: Latensi*sniff* T = N × 0,625 md (1 slot Baseband) Rentang: 0x0002 hingga 0xFFFE Rentang Waktu: 1,25 md hingga 40,9 dtk |
Subrating_Min_Remote_Timeout |
2 oktet | Waktu tunggu mode deteksi minimum (T*sniff_mode_timeout*) yang dapat digunakan perangkat jarak jauh Default: 0x0000 Waktu tunggu = N × 0,625 md (1 slot Baseband) Rentang: 0x0000 hingga 0xFFFE Rentang Waktu: 0 dtk hingga 40,9 dtk |
Subrating_Min_Local_Timeout |
2 oktet | Waktu tunggu mode deteksi minimum (T*sniff_mode_timeout*) yang dapat digunakan perangkat lokal. Default: 0x0000 Waktu Tunggu = N × 0,625 md (1 slot Baseband) Rentang: 0x0000 hingga 0xFFFE Rentang Waktu: 0 dtk hingga 40,9 dtk |
Suppress_Mode_Change_Event |
1 oktet | 0x00 : Pengontrol Bluetooth akan melaporkan peristiwa HCI Mode_Change ke host
sesuai dengan konfigurasi yang ditetapkan dalam perintah HCI_Set_Event_Mask. 0x01 : Pengontrol Bluetooth tidak akan melaporkan peristiwa HCI Mode_Change ke host. |
Suppress_Sniff_Subrating_Event |
1 oktet | 0x00 : Pengontrol Bluetooth akan melaporkan peristiwa HCI Sniff_Subrating ke host
sesuai dengan konfigurasi yang ditetapkan dalam perintah HCI_Set_Event_Mask. 0x01 : Pengontrol Bluetooth tidak akan melaporkan peristiwa HCI Sniff_Subrating ke host. |
WriteSniffOffloadParameters
OCF: 0x311
| Parameter perintah | Ukuran | Tujuan |
|---|---|---|
Connection_Handle |
2 oktet | Handle koneksi ACL BR/EDR 16-bit. Rentang: 0x0000 hingga 0x0EFF |
Sniff_Max_Interval |
2 oktet | –Rentang yang Ditentukan Bluetooth SIG, biasanya digunakan untuk masuk ke mode Sniff. Rentang: 0x0002 hingga 0xFFFE; hanya nilai genap yang valid Rentang Wajib: 0x0006 hingga 0x0540 Waktu = N × 0,625 md Rentang Waktu: 1,25 md hingga 40,9 dtk –Kasus Khusus 0x0000 : Digunakan untuk memilih “Push-Active” Mode Offload Sniff. 0x0001 : Digunakan untuk memilih Mode Offload Sniff “Prefer-Active”. |
Sniff_Min_Interval |
2 oktet | Rentang: 0x0002 hingga 0xFFFE; hanya nilai genap yang valid Rentang Wajib: 0x0006 hingga 0x0540 Waktu = N × 0,625 md Rentang Waktu: 1,25 md hingga 40,9 dtk |
Sniff_Attempts |
2 oktet | Jumlah slot penerimaan Baseband untuk upaya mengendus. Panjang = N × 1,25 md Rentang: 0x0001 hingga 0x7FFF Rentang Waktu: 1,25 md hingga 40,9 d Rentang Wajib untuk Pengontrol: 1 hingga T*sniff* ÷ 2 |
Sniff_Timeout |
2 oktet | Jumlah slot penerimaan Baseband untuk waktu tunggu habis sniffing. Panjang = N × 1,25 md Rentang: 0x0000 hingga 0x7FFF Rentang Waktu: 0 md hingga 40,9 d Rentang Wajib untuk Pengontrol: 0 hingga 0x0028 |
Link_Inactivity_Timeout |
2 oktet | Nilai waktu tunggu dalam milidetik. Timer Link_Inactivity dimulai/direset pada setiap transaksi HCI-ACL. Saat timer ini berakhir, pengontrol akan memulai masuk ke mode Sniff. |
Subrating_Max_Latency |
2 oktet | Parameter Latensi Maksimum akan digunakan untuk menghitung sub-kecepatan mengintip maksimum yang dapat digunakan perangkat jarak jauh. Default: Latensi*sniff* T = N × 0,625 md (1 slot Baseband) Rentang: 0x0002 hingga 0xFFFE Rentang Waktu: 1,25 md hingga 40,9 dtk |
Subrating_Min_Remote_Timeout |
2 oktet | Waktu tunggu mode deteksi minimum (T*sniff_mode_timeout*) yang dapat digunakan perangkat jarak jauh Default: 0x0000 Waktu tunggu = N × 0,625 md (1 slot Baseband) Rentang: 0x0000 hingga 0xFFFE Rentang Waktu: 0 dtk hingga 40,9 dtk |
Subrating_Min_Local_Timeout |
2 oktet | Waktu tunggu mode deteksi minimum (T*sniff_mode_timeout*) yang dapat digunakan perangkat lokal. Default: 0x0000 Waktu Tunggu = N × 0,625 md (1 slot Baseband) Rentang: 0x0000 hingga 0xFFFE Rentang Waktu: 0 dtk hingga 40,9 dtk |
Allow_Exit_Sniff_On_Rx |
1 oktet | Flag untuk mengontrol keluar dari mode Sniff pada transaksi HCI-ACL arah terima. 0x00 : Do not exit sniff on Rx. 0x01 : Keluar dari Sniff pada Rx Arah terima HCI-ACL ditentukan sebagai transmisi paket ACL dari pengontrol ke host melalui HCI. |
Allow_Exit_Sniff_On_Tx |
1 oktet | Flag untuk mengontrol keluar dari mode Sniff pada transaksi HCI-ACL arah transmisi. 0x00 : Do not exit sniff on Tx. 0x01 : Exit Sniff on Tx Transmit-direction HCI-ACL ditentukan sebagai transmisi paket ACL dari host ke pengontrol melalui HCI. |