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 kumpulan fitur yang dijelaskan di bawah.
Dokumen ini merujuk pada Spesifikasi Bluetooth Core 5.2 sebagai "spesifikasi". 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 lanskap yang bervariasi dan mengelola migrasi, filosofi desain yang memungkinkan pengontrol BT mengekspos kemampuannya (di luar Spesifikasi Bluetooth Core 5.2 standar) dijelaskan dalam dokumen ini. Stack BT host kemudian dapat menggunakan kemampuan ini untuk menentukan fitur yang akan diaktifkan.
Mendukung standar terbuka
Salah satu sasaran Android adalah mendukung standar terbuka setelah diratifikasi 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 Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
max_advt_instances (Tidak digunakan lagi) |
1 octet |
Jumlah instance iklan yang didukung. Disediakan setelah v0.98. Parameter ini tidak digunakan lagi dalam spesifikasi fitur Google v0.98 dan yang lebih tinggi, dan diganti dengan Iklan yang Diperluas LE yang tersedia di spesifikasi BT versi 5.0 dan yang lebih tinggi. |
offloaded_resolution_of_private-address (Tidak digunakan lagi) |
1 octet |
Kemampuan chip BT RPA. Jika didukung oleh chip, chip tersebut perlu diaktifkan oleh host. 0 = Tidak mampu 1 = Mampu Disediakan setelah v0.98. Parameter ini tidak digunakan lagi dalam spesifikasi fitur Google v0.98 dan yang lebih tinggi untuk mendukung fitur Privasi yang tersedia dalam spesifikasi BT versi 4.2 dan yang lebih tinggi. |
total_scan_results_storage |
2 octet | Penyimpanan untuk hasil pemindaian dalam byte |
max_irk_list_sz |
1 octet | Jumlah entri IRK yang didukung dalam firmware |
filtering_support |
1 octet |
Dukungan untuk pemfilteran di pengontrol 0 = Tidak didukung 1 = Didukung |
max_filter |
1 octet | Jumlah filter yang didukung |
activity_energy_info_support |
1 octet |
Mendukung pelaporan informasi aktivitas dan energi 0 = Tidak mampu 1 = Mampu |
version_supported |
2 octet |
Menentukan versi spesifikasi fitur Google yang didukung byte[0] = Nomor utama byte[1] = Nomor minor v1.04 byte[0] = 0x01 byte[1] = 0x04 |
total_num_of_advt_tracked |
2 octet |
Total jumlah pengiklan yang dilacak untuk tujuan OnLost /OnFound
|
extended_scan_support |
1 octet | Mendukung interval dan periode pemindaian yang diperpanjang |
debug_logging_supported |
1 octet | Mendukung logging informasi debug biner dari pengontrol |
LE_address_generation_offloading_support (Tidak digunakan lagi) |
1 octet |
0 = Tidak didukung 1 = Didukung Dicadangkan setelah v0.98. Parameter ini tidak digunakan lagi dalam spesifikasi fitur Google v0.98 dan yang lebih tinggi untuk mendukung fitur Privasi yang tersedia dalam spesifikasi BT versi 4.2 dan yang lebih tinggi. |
A2DP_source_offload_capability_mask |
4 Oktet |
Mask 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 octet |
Mendukung pelaporan peristiwa Kualitas Bluetooth 0 = Tidak mampu 1 = Mampu |
dynamic_audio_buffer_support |
4 octet |
Mendukung buffering audio dinamis di pengontrol Bluetooth Mask 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 octet |
Mendukung perintah offload A2DP v2 di pengontrol Bluetooth (lihat
Memulai offload A2DP,
Menghentikan offload A2DP) 0 = Tidak didukung 1 = Didukung |
Hasil pemindaian batch
Sasaran desainnya adalah meningkatkan cara notifikasi peristiwa Respon Pemindaian LE Bluetooth dikirim ke host, untuk menghemat daya di host.
Dengan mengurangi frekuensi pengontrol memberi tahu prosesor aplikasi
host untuk memindai hasil, prosesor aplikasi host dapat tetap dalam
mode tidak ada aktivitas/tidur lebih lama. Hal ini akan 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 memindai data serta metadata yang diterima oleh pengontrol untuk dikirimkan nanti ke host.
Firmware harus mendukung dua jenis pengelompokan, yang dapat diaktifkan secara bersamaan:
- Terpotong. Berisi elemen informasi berikut: {MAC, TX Power, RSSI, Stempel Waktu}
- Penuh. Berisi elemen informasi berikut: {MAC, TX Power, RSSI, Timestamp, Adv Data, Scan Response}
LE_Batch_Scan_Command
OCF: 0x156
Parameter perintah | Ukuran | Tujuan |
---|---|---|
Batch_Scan_opcode |
1 octet |
0x1 - Mengaktifkan fitur khusus pelanggan 0x2 - Menetapkan parameter Penyimpanan Pemindaian Batch 0x3 - Menetapkan parameter Pemindaian Batch 0x4 - Membaca parameter Hasil Pemindaian Batch |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini. Mengaktifkan fitur khusus pelanggan tidak akan memulai pemindaian.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Batch_Scan_opcode |
1 octet |
0x1 - Mengaktifkan fitur khusus pelanggan 0x2 - Menetapkan parameter Penyimpanan Pemindaian Batch 0x3 - Menetapkan parameter Pemindaian Batch 0x4 - Membaca parameter Hasil Pemindaian Batch |
LE_Batch_Scan_Command: Mengaktifkan fitur khusus pelanggan
Sub OCF: 0x01
Parameter subperintah | Ukuran | Tujuan |
---|---|---|
enable_customer_specific_feature_set |
1 octet |
0x01 - Mengaktifkan fitur Pemindaian Batch 0x00 - Menonaktifkan fitur Pemindaian Batch |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Batch_Scan_opcode |
1 octet |
0x1 - Mengaktifkan fitur khusus pelanggan 0x2 - Menetapkan parameter Penyimpanan Pemindaian Batch 0x3 - Menetapkan parameter Pemindaian Batch 0x4 - Membaca parameter Hasil Pemindaian Batch |
LE_Batch_Scan_Command: Menetapkan subperintah parameter penyimpanan pemindaian batch
Sub OCF: 0x02
Parameter subperintah | Ukuran | Tujuan |
---|---|---|
Batch_Scan_Full_Max |
1 octet |
Ruang penyimpanan maksimum (dalam %) yang dialokasikan untuk gaya penuh [Rentang: 0-100] |
Batch_Scan_Truncated_Max |
1 octet |
Ruang penyimpanan maksimum (dalam %) yang dialokasikan untuk gaya terpotong [Rentang: 0-100] |
Batch_Scan_Notify_Threshold |
1 octet |
Tingkat notifikasi penyiapan (dalam %) untuk setiap kumpulan penyimpanan
[Rentang: 0-100] Menetapkan ke 0 akan menonaktifkan notifikasi. Peristiwa HCI khusus vendor dibuat (Subperistiwa pelanggaran nilai minimum penyimpanan) |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Batch_scan_opcode |
1 octet | 0x02 [Menetapkan parameter Pemindaian Batch] |
LE_Batch_Scan_Command: Menetapkan subperintah parameter pemindaian batch
Sub OCF: 0x03
Parameter subperintah | Ukuran | Tujuan |
---|---|---|
Batch_Scan_Mode |
1 octet |
0x00 – Pemindaian batch dinonaktifkan 0x01 – Mode terpotong diaktifkan 0x02 – Mode lengkap diaktifkan 0x03 – Mode Terpotong dan Lengkap diaktifkan |
Duty_cycle_scan_window |
4 octet | Waktu pemindaian Pemindaian Batch (# slot) |
Duty_cyle_scan_interval |
4 octet | Periode interval Pemindaian Batch (# slot) |
own_address_type |
1 octet |
0x00 - Alamat perangkat publik 0x01 - Alamat perangkat acak |
Batch_scan_Discard_Rule |
1 octet |
0 - Hapus iklan terlama 1 - Hapus iklan dengan RSSI terlemah |
Subperintah ini akan memulai pemindaian batch, jika diaktifkan. Dalam pemindaian
Terpotong, hasil disimpan dalam bentuk terpotong dengan kunci unik untuk
Gaya terpotong = {BD_ADDR,
scan_interval}. Artinya, hanya
satu BD_ADDR will
yang dicatat untuk setiap interval pemindaian. Data
yang akan 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 Lengkap = {MAC, Paket iklan},
terlepas dari interval pemindaian. Data yang akan disimpan untuk mode Penuh adalah
{BD_ADDR
, Tx Power, RSSI, Stempel Waktu, Paket iklan, Respon
Pemindaian}. Dalam gaya Lengkap, paket AD yang sama, jika terlihat beberapa kali
di berbagai interval pemindaian, hanya dicatat satu kali. Namun, dalam
mode Terpotong, visibilitas BA_ADDR
di
berbagai interval pemindaian yang menarik (sekali per interval pemindaian). RSSI
adalah nilai rata-rata dari semua duplikat iklan unik
dalam interval pemindaian.
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Batch_scan_opcode |
1 octet | 0x03 [Menetapkan Parameter Pemindaian Batch] |
LE_Batch_Scan_Command: Subperintah baca hasil pemindaian batch
Sub OCF: 0x04
Parameter subperintah | Ukuran | Tujuan |
---|---|---|
Batch_Scan_Data_read |
1 octet |
0x01 - Data mode terpotong 0x02 - Data mode penuh |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini. Saat host mengeluarkan perintah ini, semua hasil di pengontrol mungkin tidak muat dalam satu peristiwa Command Complete. Host akan melakukan iterasi dengan mengeluarkan perintah ini hingga hasil yang sesuai dalam peristiwa Command Complete menunjukkan 0 dalam jumlah data, yang menunjukkan bahwa pengontrol tidak memiliki data lagi untuk berkomunikasi dengan host. Setiap peristiwa Command Complete dapat berisi beberapa kumpulan data dari satu jenis data saja (Lengkap 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
dalam firmware, waktu sebenarnya stempel waktu
diambil dalam firmware adalah T_fw
. Waktu pelaporan akan menjadi:
(T_c
- T_fw
). T_c
dan
T_fw
berada dalam domain waktu firmware. Hal ini memungkinkan host menghitung berapa lama peristiwa terjadi.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Batch_scan_opcode |
1 octet | 0x03 [Menetapkan parameter Pemindaian Batch] |
Batch_Scan_data_read |
1 octet | Mengidentifikasi format (Terpotong atau Lengkap) |
num_of_records |
1 octet | Jumlah data Batch_Scan_data_read |
format_of_data |
Variabel |
Mode Terpotong: Address[0]: 6 octet Address_Type[0]: 1 octet Tx_Pwr[0]: 1 octet RSSI[0] : 1 octet Timestamp[0]: 2 octet [beberapa data ( num_of_records ) dengan format di atas]Mode Lengkap: Address[0]: 6 octet Address_Type[0]: 1 octet Tx_Pwr[0]: 1 octet RSSI[0]: 1 octet Timestamp[0]: 2 octet Adv packet_len[0]: 1 octet Adv_packet[0]: Adv_packet_len octets Scan_data_resp_len[0]: 1 octet Scan_data_resp[0]: Scan_data_resp octets[beberapa data dengan format di atas ( num_of_records )]
|
Filter Konten Paket Iklan
Gunakan ini untuk mengaktifkan/menonaktifkan/menyiapkan Advertising Packet Content Filter (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 octet |
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 - Reserved for future use 0xB0 ~ 0xDF - Reserved for vendor 0xE0 ~ 0xFE - Reserved for future use 0xFF - APCF Read extended Features |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status pengembalian |
APCF_opcode |
1 octet |
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 - Reserved for future use 0xB0 ~ 0xDF - Reserved for vendor 0xE0 ~ 0xFE - Reserved for future use 0xFF - APCF Read extended Features |
LE_APCF_Command: Enable_sub_cmd
Sub OCF: 0x00
Parameter subperintah | Ukuran | Tujuan |
---|---|---|
APCF_enable |
1 octet |
0x01 - Aktifkan fitur APCF 0x00 - Nonaktifkan fitur APCF |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
APCF_opcode |
1 octet | 0x0 - APCF Aktif |
APCF_Enable |
1 octet | Aktifkan/nonaktifkan 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 octet |
0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Menghapus akan menghapus filter tertentu beserta entri fitur terkait di tabel lain. Hapus akan menghapus semua filter dan entri terkait di tabel lain. |
APCF_Filter_Index |
1 octet | Indeks filter (0, max_filter-1 ) |
APCF_Feature_Selection |
2 octet |
Mask bit untuk fitur yang dipilih: Bit 0: Tetapkan untuk mengaktifkan filter Alamat Siaran Bit 1: Tetapkan untuk mengaktifkan filter Perubahan Data Layanan Bit 2: Tetapkan untuk mengaktifkan pemeriksaan UUID Layanan Bit 3: Tetapkan untuk mengaktifkan pemeriksaan UUID Permintaan Layanan Bit 4: Tetapkan untuk mengaktifkan pemeriksaan Nama Lokal Bit 5: Tetapkan untuk mengaktifkan Pemeriksaan Data Produsen Bit 6: Tetapkan untuk mengaktifkan Pemeriksaan Data Layanan Bit 7: Tetapkan untuk mengaktifkan Pemeriksaan Layanan Penemuan Transpor Bit 8: Tetapkan untuk mengaktifkan Pemeriksaan Jenis AD |
APCF_List_Logic_Type |
2 octet |
Operasi logika untuk setiap pemilihan fitur (posisi per bit)
yang ditentukan dalam APCF_Feature_Selection .
Hanya berlaku jika fitur diaktifkan. Nilai posisi bit: 0: ATAU 1: DAN Jika logika "DAN" dipilih, paket ADV hanya akan lulus filter 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 octet |
0x00: ATAU 0x01: DAN Catatan: Jenis logika adalah T/A untuk tiga kolom pertama APCF_Feature_Selection , yang selalu merupakan logika "DAN". Nilai ini
hanya berlaku untuk empat kolom (Bit 3 - Bit 6)
APCF_Feature_Selection .
|
rssi_high_thresh |
1 octet |
[dalam dBm] Pengiklan dianggap terlihat hanya jika sinyal lebih tinggi dari nilai minimum RSSI tinggi. Jika tidak, firmware harus berperilaku seolah-olah tidak pernah melihatnya. |
delivery_mode |
1 octet |
0x00 - immediate 0x01 - on_found 0x02 - batched
|
onfound_timeout |
2 octet |
Hanya valid jika delivery_mode adalah
on_found .[dalam milidetik] Waktu yang diperlukan firmware untuk tetap aktif dan mengumpulkan iklan tambahan sebelum melaporkan. |
onfound_timeout_cnt |
1 octet |
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 akan diperiksa. Jika jumlahnya melebihi
onfound_timeout_cnt , jumlah tersebut akan segera dilaporkan
OnFound setelahnya.
|
rssi_low_thresh |
1 octet |
Hanya valid jika delivery_mode adalah
on_found .[dalam dBm] Paket pengiklan dianggap tidak terlihat jika RSSI paket yang diterima tidak melebihi nilai minimum RSSI. |
onlost_timeout |
2 octet |
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 segera dilaporkan
hilang.
|
num_of_tracking_entries |
2 octet |
Hanya valid jika delivery_mode adalah
on_found .[count] Jumlah total pengiklan yang akan dilacak per filter. |
Nilai RSSI harus menggunakan komplemen 2 untuk mewakili nilai negatif.
Host harus dapat mengonfigurasi beberapa filter dengan
APCF_Application_Address_type
ditetapkan 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 pengirimannya adalah sebagai berikut: report_immediately
,
batch
, dan onFound
. Nilai
OnLost
terkait dengan OnFound
dalam arti
bahwa nilai tersebut akan muncul setelah OnFound
jika hilang.
Alur pemrosesan ini menggambarkan model konseptual:

Saat frame iklan (atau respons pemindaian) diterima, frame tersebut akan diterapkan ke semua filter dalam urutan serial. Iklan mungkin dapat menyebabkan pelaporan langsung berdasarkan satu filter dan pengelompokan yang sama karena tindakan filter yang berbeda.
Nilai minimum level RSSI (tinggi dan rendah) memberikan kemampuan untuk mengontrol kapan frame terlihat untuk pemrosesan filter, meskipun saat paket yang valid diterima oleh pengontrol. Jika mode pengiriman disetel ke langsung atau dalam batch, RSSI frame akan dipertimbangkan untuk pemrosesan pengontrol lebih lanjut. Aplikasi yang berbeda memerlukan perilaku pelaporan dan pengelompokan yang berbeda. Hal ini memungkinkan beberapa aplikasi memiliki pelaporan langsung dan/atau pengelompokan hasil dalam firmware secara serentak. Contohnya adalah kasus saat pemindaian batch aktif dari satu aplikasi, lalu pemindaian LE reguler dikeluarkan oleh aplikasi lain. Sebelum pemindaian batch dikeluarkan, framework/aplikasi akan 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 (beserta 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 tindakan filter agar berhasil dianggap sebagai
entity yang akan dilacak untuk onLost
. Peristiwa yang sesuai adalah subperistiwa pelacakan
Advt LE.
Transisi OnFound/OnLost
untuk filter (jika diaktifkan) akan
terlihat seperti berikut:

Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
APCF_opcode |
1 octet | 0x01 - APCF Menetapkan Parameter Pemfilteran |
APCF_Action |
1 octet | APCF_Action perintah echo back |
APCF_AvailableSpaces |
1 octet | Jumlah entri yang tersedia di tabel filter |
LE_APCF_Command: broadcast_address_sub_cmd
Subperintah ini digunakan untuk menambahkan atau menghapus alamat pengiklan atau menghapus daftar alamat pengiklan untuk pemfilteran di chip.
Sub OCF: 0x02
Parameter subperintah | Ukuran | Tujuan |
---|---|---|
APCF_Action |
1 octet |
0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Hapus akan menghapus alamat penyiar yang ditentukan dalam filter yang ditentukan. Hapus akan menghapus semua alamat penyiar dalam filter yang ditentukan. |
APCF_Filter_Index |
1 octet | Indeks filter (0, max_filter-1 ) |
APCF_Broadcaster_Address |
6 octet | Alamat perangkat 6 byte yang akan ditambahkan ke atau dihapus dari daftar alamat penyiar |
APCF_Application_Address_type |
1 octet |
0x00: Publik 0x01: Acak 0x02: NA (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 Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
APCF_opcode |
1 octet | 0x02 - Alamat Penyiar APCF |
APCF_Action |
1 octet | APCF_Action perintah echo back |
APCF_AvailableSpaces |
1 octet | Jumlah entri kosong 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 octet |
0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Hapus akan menghapus alamat UUID layanan yang ditentukan dalam filter yang ditentukan. Hapus akan menghapus semua UUID layanan dalam filter yang ditentukan. |
APCF_Filter_Index |
1 octet | Indeks filter (0, max_filter -1) |
APCF_UUID |
2,4,16 octet | UUID Layanan (16-bit, 32-bit, atau 128-bit) untuk menambahkan ke, atau menghapus dari, daftar. |
APCF_UUID_MASK |
2,4,16 octet |
Mask UUID Layanan (16-bit, 32-bit, atau 128-bit) yang akan ditambahkan ke daftar.
Panjangnya harus sama dengan APCF_UUID.
|
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
APCF_opcode |
1 octet | 0x03 - UUID Layanan APCF |
APCF_Action |
1 octet | APCF_Action perintah echo back |
APCF_AvailableSpaces |
1 octet | Jumlah entri gratis yang masih tersedia di 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 di chip.
Sub OCF: 0x04
Parameter subperintah | Ukuran | Tujuan |
---|---|---|
APCF_Action |
1 octet |
0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Menghapus akan menghapus alamat UUID permintaan dalam filter yang ditentukan. Hapus akan menghapus semua UUID permintaan dalam filter yang ditentukan. |
APCF_Filter_Index |
1 octet | Indeks filter (0, max_filter -1) |
APCF_UUID |
2,4,16 octet | UUID Permintaan (16-bit, 32-bit, atau 128-bit) untuk ditambahkan ke atau dihapus dari daftar. |
APCF_UUID_MASK |
2,4,16 octet |
Mask UUID Permintaan (16-bit, 32-bit, atau 128-bit) yang akan ditambahkan ke
daftar. Panjangnya harus sama dengan APCF_UUID .
|
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
APCF_opcode |
1 octet | 0x04 - UUID Permintaan APCF |
APCF_Action |
1 octet | APCF_Action perintah echo back |
APCF_AvailableSpaces |
1 octet | Jumlah entri gratis yang masih tersedia di tabel UUID Permintaan |
LE_APCF_Command: local_name_sub_cmd
Subperintah ini digunakan untuk menambahkan atau menghapus string nama lokal atau menghapus daftar string nama lokal untuk pemfilteran di chip.
Sub OCF: 0x05
Parameter subperintah | Ukuran | Tujuan |
---|---|---|
APCF_Action |
1 octet |
0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Hapus akan menghapus string nama lokal yang ditentukan dalam filter yang ditentukan. Hapus akan menghapus semua string nama lokal dalam filter yang ditentukan. |
APCF_Filter_Index |
1 octet | Indeks filter (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData |
Ukuran variabel |
String karakter untuk nama lokal. Catatan:
|
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
APCF_opcode |
1 octet | 0x05 - Nama Lokal APCF |
APCF_Action |
1 octet | APCF_Action perintah echo back |
APCF_AvailableSpaces |
1 octet | 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 di chip.
Sub OCF: 0x06
Parameter subperintah | Ukuran | Tujuan |
---|---|---|
APCF_Action |
1 octet |
0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Hapus akan menghapus string data produsen yang ditentukan dalam filter yang ditentukan. Hapus akan menghapus semua string data produsen dalam filter yang ditentukan. |
APCF_Filter_Index |
1 octet | 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 produsen yang akan ditambahkan ke daftar. Panjangnya harus sama dengan APCF_LocName_or_ManData_or_SerData .
|
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
APCF_opcode |
1 octet | 0x06 - Data Produsen APCF |
APCF_Action |
1 octet | APCF_Action perintah echo back |
APCF_AvailableSpaces |
1 octet | 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 menghapus daftar string data layanan untuk pemfilteran di chip.
Sub OCF: 0x07
Parameter subperintah | Ukuran | Tujuan |
---|---|---|
APCF_Action |
1 octet |
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 octet | 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 |
Mask data layanan yang akan ditambahkan ke daftar. Panjangnya harus sama dengan APCF_LocName_or_ManData_or_SerData.
|
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
APCF_opcode |
1 octet | 0x07 - Data Layanan APCF |
APCF_Action |
1 octet | APCF_Action perintah echo back |
APCF_AvailableSpaces |
1 octet | 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 di 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 AD dan abaikan data yang tersisa.
Sub OCF: 0x09
Parameter subperintah | Ukuran | Tujuan |
---|---|---|
APCF_Action |
1 octet |
0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Hapus akan menghapus jenis AD yang ditentukan dalam filter yang ditentukan. Hapus akan menghapus semua jenis Iklan dalam filter yang ditentukan. |
APCF_Filter_Index |
1 octet | Indeks Filter (0, max_filter -1) |
APCF_AD_TYPE |
1 octet | Jenis AD untuk menambahkan ke, atau menghapus dari, daftar. Abaikan saat APCF_Action adalah 0x02 (Clear) |
APCF_AD_DATA_Length |
1 octet |
0x00 - berarti jangan filter konten data Abaikan jika APCF_Action adalah 0x02 (Jelas)
|
APCF_AD_DATA |
Ukuran variabel |
Berukuran variabel, berdasarkan APCF_AD_DATA_Length Abaikan jika APCF_Action adalah 0x02 (Bersihkan) |
APCF_AD_DATA_MASK |
Ukuran variabel |
Berukuran variabel, berdasarkan APCF_AD_DATA_Length Abaikan jika APCF_Action adalah 0x02 (Clear)Panjangnya harus sama dengan APCF_AD_DATA .
|
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
APCF_opcode |
1 octet | 0x09 - Jenis Iklan APCF |
APCF_Action |
1 octet | APCF_Action perintah echo back |
APCF_AvailableSpaces |
1 octet | 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 Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
APCF_opcode |
1 octet | 0xFF - APCF_Read_Extended_Features |
APCF_extended_features |
2 octet |
Mask bit untuk fitur yang diperluas yang didukung:
Nilai bit
|
Perintah aktivitas pengontrol dan informasi energi
Tujuan informasi ini adalah untuk fungsi sistem host yang lebih tinggi untuk menganalisis total aktivitas semua komponen, termasuk pengontrol BT dan status makronya, sehubungan 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, seperti yang ditentukan di tingkat pengguna:
- Tidak ada aktivitas: [pemindaian halaman, iklan LE, pemindaian permintaan, pemindaian LE]
- Pindai: [paging/inquiry/trying to connect]
- Aktif: [ACL link on, SCO link ongoing, sniff mode]
Aktivitas yang dilacak pengontrol selama masa pakainya adalah waktu Tx, waktu Rx, waktu tidak ada aktivitas, dan total energi yang dikonsumsi. Nilai ini akan 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 Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
total_tx_time_ms |
4 octet | Total waktu melakukan Tx |
total_rx_time_ms |
4 octet | Total waktu melakukan Rx |
total_idle_time_ms |
4 octet | Total waktu dalam mode tidak ada aktivitas (status daya rendah non-tidur) |
total_energy_used |
4 octet | Total energi yang digunakan [produk arus (mA), voltase (V), dan waktu (ms)] |
Perintah parameter pemindaian set yang diperluas LE
Perintah ini dapat digunakan untuk mengaktifkan interval dan periode pemindaian yang lebih besar di pengontrol. Sesuai dengan Spesifikasi BT Core 5.2, interval dan periode pemindaian memiliki batas 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 Memindai Set LE)
OCF: 0x15A
Parameter Perintah | Ukuran | Tujuan |
---|---|---|
LE_Ex_Scan_Type |
1 octet |
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 octet |
Didefinisikan sebagai interval waktu sejak Pengontrol memulai pemindaian LE
terakhir 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 octet |
Durasi pemindaian LE. LE_Scan_Window harus kurang
dari 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 octet |
0x00 - Alamat Perangkat Publik (default) 0x01 - Alamat Perangkat Acak |
LE_Ex_Scan_Filter_Policy |
0x00 - Menerima semua paket iklan (default). Paket iklan
terarah yang tidak ditujukan untuk perangkat ini akan
diabaikan. 0x01 - Abaikan paket iklan dari perangkat yang tidak ada dalam daftar Khusus Daftar Putih. Paket iklan terarah yang tidak ditujukan untuk perangkat ini akan diabaikan. |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Mendapatkan perintah info debug pengontrol
Tujuan elemen informasi ini adalah untuk mendapatkan informasi debug pengontrol oleh host, dalam bentuk biner, untuk pasca-pemrosesan dan analisis. Hal ini membantu men-debug masalah di lapangan dan memberi engineer toolkit untuk mencatat informasi guna analisis. Pengontrol dapat memberikan informasi saat diminta oleh host melalui peristiwa (subperistiwa Info Debug Pengontrol) atau secara mandiri jika diinginkan oleh pengontrol. Contoh penggunaannya 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 Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Dukungan offload hardware A2DP
Fitur offload A2DP mendukung offload proses encoding audio A2DP ke prosesor audio yang terpasang ke Pengontrol BT. Aliran data audio yang dienkode diteruskan langsung dari Prosesor audio ke Pengontrol BT tanpa keterlibatan 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
Memulai offload A2DP (lama)
Sub OCF: 0x01
Gunakan perintah ini untuk mengonfigurasi proses offload A2DP dan memulai streaming A2DP.
Parameter perintah | Ukuran | Tujuan |
---|---|---|
Codec |
4 octet |
Menentukan jenis Codec 0x01 - SBC 0x02 - AAC 0x04 - APTX 0x08 - APTX HD 0x10 - LDAC |
Max_Latency |
2 octet | Latensi Maksimal yang Diizinkan (dalam md). Nilai nol akan menonaktifkan flush. |
SCMS-T_Enable |
2 octet |
Oktet 0: Flag yang memungkinkan penambahan header SCMS-T.
Oktet 1: Nilai untuk header SCMS-T, jika diaktifkan. |
Sampling_Frequency |
4 octet |
0x01 - 44.100 Hz 0x02 - 48.000 Hz 0x04 - 88.200 Hz 0x08 - 96.000 Hz |
Bits_Per_Sample |
1 octet |
0x01 - 16 bit per sampel 0x02 - 24 bit per sampel 0x04 - 32 bit per sampel |
Channel_Mode |
1 octet |
0x01 - Mono 0x02 - Stereo |
Encoded_Audio_Bitrate |
4 octet |
Kecepatan bit audio yang dienkode dalam bit per detik. 0x00000000 - Kecepatan bit audio tidak ditentukan / tidak digunakan. 0x00000001 - 0x00FFFFFF - Kecepatan bit audio yang dienkode dalam bit per detik. 0x01000000 - 0xFFFFFFFF - Direservasi. |
Connection_Handle |
2 octet | ID Koneksi koneksi A2DP sedang dikonfigurasi |
L2CAP_Channel_ID |
2 octet | ID Saluran L2CAP yang akan digunakan untuk koneksi A2DP ini |
L2CAP_MTU_Size |
2 octet | Ukuran maksimum MTU L2CAP yang berisi paket audio yang dienkode |
Codec_Information |
32 octet |
Informasi khusus Codec.
Codec SBC:
Lihat elemen informasi khusus SBC Codec di A2DP v1.3. Codec AAC:
Lihat elemen informasi khusus Codec AAC di A2DP v1.3 Codec LDAC:
Oktet 0-3: ID Vendor
Oktet 4-5: ID Codec
Oktet 6: Indeks Kecepatan Bit:
Oktet 7: Mode Saluran LDAC Oktet 8-31: dicadangkan Semua codec lainnya: Oktet 0-31: dicadangkan |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Sub_Opcode |
1 octet | 0x01 - Memulai 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 octet | Nama sebutan koneksi HCI yang aktif |
L2CAP_Channel_ID |
2 octet | ID L2CAP Channel yang dibuka untuk streaming A2DP |
Data_Path_Direction |
1 octet |
0x00 - Output (Sumber/Penggabungan AVDTP) 0x01 - Input (Sink/Pembagian AVDTP) |
Peer_MTU |
2 octet | Ukuran maksimum paket L2CAP, yang dinegosiasikan dengan peer. |
CP_Enable_SCMS_T |
1 octet |
0x00 - Menonaktifkan Header Perlindungan Konten SCMS-T 0x01 - Mengaktifkan Header Perlindungan Konten SCMS-T |
CP_Header_SCMS_T |
1 octet |
Jika Header Perlindungan Konten SCMS-T diaktifkan (CP_SCMS_T_Enable
disetel ke 0x01), menentukan nilai header yang mendahului konten audio (lihat
A2DP, bagian 3.2.1-2) seperti yang ditentukan oleh Bluetooth Assigned Numbers, bagian
6.3.2.Diabaikan jika Perlindungan konten SCMS-T tidak diaktifkan. |
Vendor_Specific_Parameters_Length |
1 octet |
Panjang Parameter Khusus Vendor, dalam rentang 0 hingga 128. Nilai 0 digunakan jika tidak ada parameter tambahan yang diberikan. |
Vendor_Specific_Parameters |
0-128 octet |
Parameter Khusus Vendor yang disediakan oleh HAL Audio Bluetooth,
CodecParameters.vendorSpecificParameters[] .
|
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Sub_Opcode |
1 octet | 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 Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Sub_Opcode |
1 octet | 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 octet | Nama sebutan koneksi HCI yang aktif |
L2CAP_Channel_ID |
2 octet | ID L2CAP Channel yang dibuka untuk streaming A2DP |
Data_Path_Direction |
1 octet |
0x00 - Output (Sumber/Penggabungan AVDTP) 0x01 - Input (Sink/Pembagian AVDTP) |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Sub_Opcode |
1 octet | 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 subperistiwa 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.
- A2DP Audio Choppy: Saat pengontrol mendeteksi faktor yang menyebabkan audio tidak stabil, pengontrol akan melaporkan peristiwa A2DP Audio Choppy 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.
- Root Inflammation: Peristiwa ini dikirim oleh pengontrol ke stack saat HAL atau pengontrol mengalami error fatal dan perlu memulai ulang Bluetooth.
- Pelacakan pesan LMP/LL: Pengontrol mengirim handshake pesan LMP/LL 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 di band 2,4 Ghz ke host.
- Mekanisme Informasi Debug Pengontrol: Jika diaktifkan, pengontrol dapat melaporkan informasi logging debug secara mandiri melalui subperistiwa info debug Pengontrol ke host.
- Audio LE Audio Tidak Lancar: Saat pengontrol mendeteksi faktor yang menyebabkan audio tidak lancar, pengontrol akan melaporkan peristiwa Audio LE Audio Tidak Lancar ke host.
-
Mode Statistik RF Lanjutan: Pengontrol melaporkan informasi terkait statistik RF-nya kepada host, yang mendukung dua kasus penggunaan laporan:
- Laporan berkala
- Pemicu peristiwa (pemicu peristiwa kualitas link dan mulai/berhenti streaming).
- BQR_Report_Action dari Perintah Laporan Kualitas Bluetooth: Host dapat menggunakan perintah HCI ini untuk mendapatkan kueri satu kali untuk mode pemantauan kualitas, mode pemantauan energi, atau mode statistik RF lanjutan.
OCF: 0x15E
Parameter perintah | Ukuran | Tujuan |
---|---|---|
BQR_Report_Action |
1 octet |
Tindakan untuk menambahkan / menghapus pelaporan peristiwa kualitas yang ditetapkan di parameter BQR_Quality_Event_Mask, atau menghapus semua.
0x00 - Tambahkan
Menghapus akan menghapus pelaporan peristiwa kualitas tertentu. |
BQR_Quality_Event_Mask |
4 octet |
Mask bit untuk pelaporan peristiwa kualitas yang dipilih.
Bit 0: Tetapkan untuk mengaktifkan mode pemantauan kualitas. |
BQR_Minimum_Report_Interval |
2 octet |
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 sesuai dan khusus untuk peristiwa kualitas yang
ditambahkan.
Unit: md |
BQR_Vendor_Specific_Quality_Event_Mask |
4 octet |
Bit mask untuk pelaporan peristiwa kualitas khusus vendor yang dipilih. Parameter ini hanya valid jika bit 15 dari BQR_Quality_Event_Mask ditetapkan.
Bit 0 ~ 31: Direservasi. |
BQR_Vendor_Specific_Trace_Mask |
4 octet |
Mask bit untuk pelaporan rekaman aktivitas khusus vendor yang dipilih. Parameter ini hanya valid jika bit 31 dari BQR_Quality_Event_Mask ditetapkan.
Bit 0 ~ 31: Direservasi. |
Report_interval_multiple |
4 octet |
Pengganda untuk BQR_Minimum_Report_Interval . Jika nilai ini >= 1,
Interval Laporan BQR akan 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: md BQR_Report_Interval lebih besar dari kemampuan
pengontrol, pengontrol harus menampilkan waktu BQR_Report_Interval
maksimum saat perintah selesai.
|
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Current_Quality_Event_Mask |
4 octet |
Menunjukkan setelan bit mask saat ini. Bit 0: Mode pemantauan kualitas diaktifkan. Bit 1: Pelaporan peristiwa LSTO yang mendekati diaktifkan. Bit 2: Pelaporan peristiwa Audio A2DP yang Terputus-putus diaktifkan. Bit 3: Pelaporan peristiwa Suara (e)SCO yang Terputus-putus diaktifkan. Bit 4: Pelaporan peristiwa peradangan akar diaktifkan. Bit 5: Mode pemantauan energi diaktifkan. Bit 6: Pelaporan peristiwa audio LE yang tidak stabil diaktifkan. Bit 7: Peristiwa kegagalan koneksi. Bit 8: Tetapkan untuk mengaktifkan pemicu peristiwa mode Advance RF Stats. Bit 9: Tetapkan untuk mengaktifkan laporan Statistik RF Lanjutan secara berkala. Bit 10 ~ 14: Dicadangkan. Bit 15: Pelaporan peristiwa kualitas khusus vendor diaktifkan. Bit 16: Pelacakan pesan LMP/LL diaktifkan. Bit 17: Pelacakan penjadwalan Multi-link/Coex Bluetooth diaktifkan. Bit 18: Mekanisme Informasi Debug Pengontrol diaktifkan. Bit 19 ~ 30: Dicadangkan. Bit 31: Pelacakan khusus vendor diaktifkan. |
Current_Vendor_Specific_Quality_Event_Mask |
4 octet | Menunjukkan setelan bit mask saat ini. |
Current_Vendor_Specific_Trace_Mask |
4 octet | Menunjukkan setelan bit mask saat ini. |
BQR_Report_interval |
4 octet | Menunjukkan setelan bit mask saat ini. |
Current_Vendor_Specific_Trace_Mask |
4 octet |
Setelan BQR_Report_interval . Nilai ini harus berupa nilai minimum antara
BQR_Minimum_Report_Interval * Report_interval_multiple atau interval dukungan maksimum
pengontrol. |
Perintah buffering 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 buffering audio dari pengontrol Bluetooth.
Parameter perintah | Ukuran | Tujuan |
---|---|---|
T/A | Daftar parameter Perintah kosong |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Dynamic_Audio_Buffer_opcode |
1 octet | 0x01 - Mendapatkan waktu buffering audio |
Audio_Codec_Type_Supported |
4 octet |
Mask 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 octet |
Waktu buffering default dari 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 octet |
Waktu buffering 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 octet |
Waktu buffering 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 octet |
Waktu buffering default dari jenis codec Bit 1 yang ditentukan di
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 octet |
Waktu buffering 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 octet |
Waktu buffering 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 octet |
Waktu buffering default dari jenis codec Bit 31 yang ditentukan di
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 octet |
Waktu buffering maksimum jenis codec Bit 31 yang ditentukan di
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 octet |
Waktu buffering 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 |
Menetapkan waktu buffering audio
Sub OCF: 0x02
Gunakan perintah ini untuk menetapkan waktu buffering audio ke pengontrol Bluetooth.
Parameter perintah | Ukuran | Tujuan |
---|---|---|
Audio_Codec_Buffer_Time |
2 octet |
Waktu buffering audio yang diminta untuk codec yang digunakan saat ini. Satuan: md |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Dynamic_Audio_Buffer_opcode |
1 octet | 0x02 - Menetapkan waktu buffering audio |
Audio_Codec_Buffer_Time |
2 octet |
Waktu buffering 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 Spesifikasi BT Core 5.2. Parameter peristiwa 0 akan selalu berisi kode subperistiwa pertama, yang menjadi dasar untuk mendekode peristiwa HCI lainnya.
Parameter Peristiwa | Ukuran | Tujuan |
---|---|---|
HCI_vendor_specific_event_code |
1 octet | 0xFF |
sub_event_code |
1 octet | Kode subperistiwa akan berukuran 1 octet, byte yang langsung mengikuti Panjang Parameter dalam paket peristiwa HCI. |
Subperistiwa pelanggaran nilai minimum penyimpanan
Peristiwa ini menunjukkan bahwa batas penyimpanan telah dilanggar.
Kode subperistiwa = 0x54
Parameter Subperistiwa | Ukuran | Tujuan |
---|---|---|
Tidak ada |
Subperistiwa perubahan status multi-iklan LE
Peristiwa ini menunjukkan bahwa instance iklan telah mengubah statusnya. Saat ini, peristiwa ini hanya digunakan untuk menunjukkan instance iklan yang dihentikan sebagai akibat dari koneksi.
Kode subperistiwa = 0x55
Parameter subperistiwa | Ukuran | Tujuan |
---|---|---|
Advertising_instance |
1 octet |
Mengidentifikasi instance iklan tertentu Nilai yang valid adalah 0 hingga max_advt_instances -1
|
State_Change_Reason |
1 octet | 0x00: Koneksi diterima |
Connection_handle |
2 octet |
Mengidentifikasi koneksi yang menyebabkan instance advt dinonaktifkan (0xFFFF jika tidak valid)
|
Subperistiwa pelacakan iklan LE
Peristiwa ini menunjukkan kapan pengiklan ditemukan atau hilang.
Kode subperistiwa = 0x56
Parameter Subperistiwa | Ukuran | Tujuan |
---|---|---|
APCF_Filter_Index |
1 octet | Indeks Filter (0, max_filter -1) |
Advertiser_State |
1 octet |
0x00: Pengiklan ditemukan 0x01: Pengiklan hilang |
Advt_Info_Present |
1 octet |
0x00: Informasi pengiklan (Advt_Info ) ada0x01: Informasi pengiklan ( Advt_Info ) tidak ada
|
Advertiser_Address |
6 octet | Alamat publik atau acak |
Advertiser_Address_Type |
1 octet |
0x00: Alamat publik 0x01: Alamat acak |
Advt_Info |
Tx_Pwr[0] : 1 octetRSSI[0] : 1 octetTimestamp[0] : 2 octetAdv packet_len[0] : 1 octetAdv_packet[0] : Adv_packet_len octetScan_data_resp_len[0] : 1 octetScan_data_resp[0] : Scan_data_resp octet
|
Subperistiwa info debug pengontrol
Peristiwa ini digunakan oleh Pengontrol untuk memberikan informasi debug biner ke host.
Kode subperistiwa = 0x57
Parameter Subperistiwa | Ukuran | Tujuan |
---|---|---|
debug_block_byte_offset_start |
2 octet | Men-debug offset byte blok dari awal |
last_block |
1 octet |
0x00: Ada data debug lainnya 0x01: Blok biner terakhir; tidak ada lagi data debug |
cur_pay_load_sz |
2 octet | Ukuran blok biner dalam peristiwa saat ini |
Debug_Data |
Variabel | Men-debug data cur_payload_sz |
Subperistiwa Laporan Kualitas Bluetooth
Peristiwa ini menunjukkan salah satu hal berikut: peristiwa kualitas Bluetooth terjadi, pengontrol mengupload pelacakan pesan LMP/LL dan pelacakan penjadwalan Multi-link/Coex Bluetooth, atau pengontrol membuang data informasi debug.
Kode subperistiwa = 0x58 [Quality_Report_Id = 0x01 ~ 0x04, peristiwa terkait Kualitas Link]
Parameter Subperistiwa | Ukuran | Tujuan |
---|---|---|
Quality_Report_Id |
1 octet |
0x01: Pelaporan kualitas pada mode pemantauan. 0x02: Mendekati LSTO. 0x03: Audio A2DP Putus-Putus. 0x04: (e)SCO Voice Choppy. 0x05 ~ 0x06: Dicadangkan. 0x07: Audio LE terputus-putus. 0x08: Koneksi gagal. 0x09 ~ 0xFF: Dicadangkan. |
Packet_Types |
1 octet |
0x01: ID 0x02: NULL 0x03: POLL 0x04: FHS 0x05: HV1 0x06: HV2 0x07: HV3 0x08: DV 0x09: EV3 0x0A: EV4 0x0B: EV5 0x0C: 2-EV3 0x0D: 2-EV5 0x0E: 3-EV3 0x0F: 3-EV5 0x11: DH1 0x12: DM3 0x13: DH3 0x14: DM5 0x15: DH5 0x16: AUX1 0x17: 2-DH1 0x18: 2-DH3 0x19: 2-DH5 0x1A: 3-DH1 0x1B: 3-DH3 0x1C: 3-DH5 0x1D ~ 0x50: Reserved 0x51: ISO packet 0x52 ~ 0xFF: Reserved |
Connection_Handle |
2 octet | Handle koneksi ACL/(e)SCO/ISO. |
Connection_Role |
1 octet |
Peran yang Dilakukan untuk koneksi. 0x00: Pusat 0x01: Periferal 0x02 ~ 0xFF: Direservasi. |
TX_Power_Level |
1 octet |
Tingkat daya transmisi saat ini untuk Connection_Handle yang ditentukan.
Nilai ini harus sama dengan respons pengontrol terhadap perintah HCI HCI_Read_Transmit_Power_Level. |
RSSI |
1 octet |
[dalam dBm]
Nilai Received Signal Strength Indication (RSSI) untuk Connection_Handle yang ditentukan. |
SNR |
1 octet |
[dalam dB]
Nilai Rasio Sinyal terhadap Derau (SNR) untuk Connection_Handle yang ditentukan. |
Unused_AFH_Channel_Count |
1 octet |
Menunjukkan jumlah saluran yang tidak digunakan di AFH_channel_map. 0x4F ~ 0xFF: Dicadangkan. |
AFH_Select_Unideal_Channel_Count |
1 octet |
Menunjukkan jumlah saluran yang mengalami interferensi dan memiliki kualitas buruk, tetapi masih dipilih untuk AFH. Jumlah minimum saluran yang diizinkan oleh spesifikasi Bluetooth adalah 20, sehingga meskipun semua 79 saluran mengalami interferensi dan memiliki kualitas buruk, pengontrol masih perlu memilih setidaknya 20 saluran untuk AFH. |
LSTO |
2 octet |
Setelan Waktu Tunggu Pengawasan Link Saat Ini. Waktu = N * 0,625 md Rentang Waktu: 0,625 md hingga 40,9 s |
Connection_Piconet_Clock |
4 octet |
Piconet Clock untuk Connection_Handle yang ditentukan. Nilai ini harus sama dengan respons pengontrol terhadap perintah HCI HCI_Read_Clock dengan parameter "Which_Clock" dari 0x01 (Piconet Clock). Satuan: N * 0,3125 md (1 Bluetooth Clock) |
Retransmission_Count |
4 octet |
Jumlah transmisi ulang sejak peristiwa terakhir. Jumlah ini akan direset setelah melaporkan ke host. |
No_RX_Count |
4 octet |
Tidak ada jumlah RX sejak peristiwa terakhir. Jumlahnya bertambah jika tidak ada paket yang diterima pada slot waktu yang dijadwalkan atau paket yang diterima rusak. Jumlah ini akan direset setelah melaporkan ke host. |
NAK_Count |
4 octet |
Jumlah NAK (Negative Acknowledge) sejak peristiwa terakhir. Jumlah ini akan direset setelah melaporkan ke host. |
Last_TX_ACK_Timestamp |
4 octet |
Stempel waktu ACK TX terakhir. Ini didasarkan pada Bluetooth Clock dari
pusat piconet (CLK). Satuan: N * 0,3125 md (1 Bluetooth Clock) |
Flow_Off_Count |
4 octet |
Frekuensi pengontrol menerima Flow-off (STOP) sejak peristiwa terakhir. Jumlah ini akan direset setelah melaporkan ke host. |
Last_Flow_On_Timestamp |
4 octet |
Stempel waktu Flow-on (GO) terakhir. Ini didasarkan pada Bluetooth Clock dari
pusat piconet (CLK). Satuan: N * 0,3125 md (1 Bluetooth Clock) |
Buffer_Overflow_Bytes |
4 octet |
[dalam Byte]
Jumlah overflow buffering sejak peristiwa terakhir. |
Buffer_Underflow_Bytes |
4 octet |
[dalam Byte]
Jumlah underflow buffering sejak peristiwa terakhir. |
bdaddr |
6 octet | Alamat perangkat jarak jauh |
cal_failed_item_count |
1 octet | Jumlah item yang gagal kalibrasi |
TX_Total_Packets |
4 octet | Jumlah paket yang dikirim. |
TX_UnAcked_Packets |
4 octet |
Jumlah paket yang tidak menerima konfirmasi. Jumlah ini direset setelah melaporkan ke host. |
TX_Flushed_Packets |
4 octet |
Jumlah paket yang tidak dikirim oleh titik penghapusan. Jumlah ini direset setelah melaporkan ke host. |
TX_Last_Subevent_Packets |
4 octet |
Jumlah paket yang dikirimkan Link Layer PDU data CIS dalam subperistiwa terakhir peristiwa CIS. Jumlah ini direset setelah melaporkan ke host. Nilainya nol jika tidak ada nilai yang valid untuk link. |
CRC_Error_Packets |
4 octet |
Jumlah paket yang diterima dengan error CRC sejak peristiwa terakhir. Jumlah ini direset setelah melaporkan ke host. |
RX_Duplicate_Packets |
4 octet |
Jumlah paket duplikat (pengiriman ulang) yang diterima sejak peristiwa terakhir. Jumlah ini direset setelah melaporkan ke host. |
RX_Unreceived_Packets |
4 octet |
Jumlah paket yang tidak diterima sama dengan parameter perintah Kualitas Link
ISO LE READ (lihat Spesifikasi inti Bluetooth Versi 5.4). Aliran data terkait
adalah CIS dan BIS. Jika nilai ini bertambah, Lapisan Link tidak menerima payload tertentu berdasarkan titik flush-nya (di CIS) atau di akhir peristiwa yang terkait dengannya (di BIS; lihat Spesifikasi inti Bluetooth Versi 5.4 Vol 6 Bagian B, Bagian 4.4.6.6). |
Coex_Info_Mask |
2 octet |
Bit 0 - CoexInvolvement: Ditetapkan untuk menunjukkan aktivitas coex yang dicurigai terlibat
saat laporan ini dibuat (misalnya, A2DP Chops dan Approaching LSTO). Bit 1 - WL 2G Radio Active: Ditetapkan untuk menunjukkan bahwa Radio 2G WLAN aktif. Bit 2 - WL 2G Connected: Ditetapkan untuk menunjukkan bahwa Radio 2G WLAN aktif dan terhubung. Bit 3 - WL 5G/6G Radio Active: Ditetapkan untuk menunjukkan bahwa Radio WLAN 5G/6G aktif. Bit 4-15 - Dicadangkan |
Parameter Khusus Vendor | (total panjang parameter - TBD) * octet | Agar vendor pengontrol mendapatkan lebih banyak parameter khusus vendor. |
Kode subperistiwa = 0x58 [Quality_Report_Id = 0x05, peristiwa Root Inflammation]
Peristiwa ini menunjukkan bahwa HAL Bluetooth atau pengontrol mengalami error fatal dan memerlukan stack Bluetooth untuk mencatat 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/Pengontrol, 0 jika merupakan error khusus vendor chipset. Vendor_Specific_Error_Code berisi kode error khusus vendor chipset dari HAL/Pengontrol. Nilai ini harus ditetapkan sebagai 0 jika parameter Error_Code bukan 0. Parameter Error_Code dan Vendor_Specific_Error_Code tidak boleh sama-sama 0.
Parameter Subperistiwa | Ukuran | Tujuan |
---|---|---|
Quality_Report_Id |
1 octet |
0x00 ~ 0x04: Direservasi. 0x05: Peradangan akar. 0x06 ~ 0xFF: Dicadangkan. |
Error_Code |
1 octet |
0x00: Kode error khusus vendor chipset disertakan. 0x01 ~ 0xFF: Terjadi kegagalan pengontrol. Lihat Spesifikasi Bluetooth [Vol 2] Bagian D, Kode Error untuk mengetahui daftar kode error dan deskripsinya. |
Vendor_Specific_Error_Code |
1 octet |
0x00: Tidak ada kode error khusus vendor chipset yang disertakan. 0x01 ~ 0xFF: Kode error khusus vendor chipset. |
Parameter Khusus Vendor | (Parameter Total Length - 4) * octet | Agar vendor pengontrol mendapatkan lebih banyak parameter khusus vendor. |
Kode subperistiwa = 0x58 [Quality_Report_Id = 0x11 ~ 0x13, peristiwa terkait Log Dump]
Parameter Subperistiwa | Ukuran | Tujuan |
---|---|---|
Quality_Report_Id |
1 octet |
0x00 ~ 0x10: Direservasi. 0x11: Pelacakan pesan LMP/LL. 0x12: Pelacakan penjadwalan Multi-link/Coex Bluetooth. 0x13: Dump data Informasi Debug Pengontrol. 0x14 ~ 0xFF: Dicadangkan. |
Connection_Handle |
2 octet | Nama Sebutan Koneksi. |
Parameter Khusus Vendor | (Parameter Total Length - 4) * octet | Format Khusus Vendor dari pelacakan pesan LMP, pelacakan penjadwalan Multi-link/Coex Bluetooth, dan dump data Informasi Debug Pengontrol. |
Dukungan multi-pengiklan
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 dihubungkan
Agar spesifikasi ini tetap mendekati standar yang ada, perintah khusus vendor berikut disediakan. Spesifikasi ini berasal dari Spesifikasi Bluetooth Core 4.1.
LE_Multi_Advt_Command
OCF: 0x154
Parameter perintah | Ukuran | Tujuan |
---|---|---|
Multi_advt_opcode |
1 octet |
0x01 - Set_Advt_Param_Multi_Sub_Cmd 0x02 - Set_Advt_Data_Multi_Sub_Cmd 0x03 - Set_Scan_Resp_Data_Multi_Sub_Cmd 0x04 - Set_Random_Addr_Multi_Sub_Cmd 0x05 - Set_Advt_Enable_Multi_Sub_Cmd
|
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Multi_advt_opcode |
1 octet |
0x01 - Set_Advt_Param_Multi_Command 0x02 - Set_Advt_Data_Multi_Command 0x03 - Set_Scan_Resp_Data_Multi_Command 0x04 - Set_Random_Addr_Multi_Command 0x05 - Set_Advt_Enable_Multi_Command
|
LE_Multi_Advt_Command: Set_Advt_Param_Multi_Sub_Cmd
Referensi dasar: Spesifikasi Bluetooth Core 4.1, halaman 964 (Perintah Parameter Iklan Set LE)
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 octet | Menentukan penerapan parameter di atas ke instance |
Tx_power |
1 octet |
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 di-resolve pada saat
transmisi beacon pertama. Iklan di instance akan terus berjalan,
terlepas dari koneksi. Stack BT host dapat mengeluarkan perintah untuk
memulai iklan pada instance, setelah koneksi.
Peristiwa Command Complete akan dibuat untuk perintah ini seperti yang ditentukan
dalam Spesifikasi Bluetooth Core 4.1, sesuai dengan perintah di atas. Pengontrol
akan merespons dengan kode tidak berhasil (parameter tidak valid) jika
instance iklan atau parameter Tx_Power
tidak valid.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Multi_advt_opcode |
1 octet | 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 octet | Menentukan penerapan parameter di atas ke instance |
Peristiwa Command Complete akan dibuat untuk perintah ini seperti yang ditentukan
dalam Spesifikasi Bluetooth Core 4.1, sesuai dengan perintah di atas. Pengontrol
akan merespons dengan kode non-sukses jika instance
iklan atau parameter Tx_Power
tidak valid.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Multi_advt_opcode |
1 octet | 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 Respon 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 octet | Menentukan penerapan parameter di atas ke instance |
Peristiwa Command Complete akan dibuat untuk perintah ini seperti yang ditentukan
dalam Spesifikasi Bluetooth Core 4.1, sesuai dengan perintah di atas. Pengontrol
akan merespons dengan kode non-sukses (parameter tidak valid) jika
instance iklan atau parameter Tx_Power
tidak valid.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Multi_advt_opcode |
1 octet | 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 (Perintah Alamat Acak Set LE)
Sub OCF: 0x04
Parameter subperintah | Ukuran | Tujuan |
---|---|---|
Alamat Acak | Per spesifikasi | Per spesifikasi |
Advertising_Instance |
1 octet | Menentukan penerapan parameter di atas ke instance |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Multi_advt_opcode |
1 octet | 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 octet | Nilai 1 berarti mengaktifkan. Nilai lainnya berarti nonaktifkan. |
Advertising_Instance |
1 octet | Menentukan penerapan parameter di atas ke instance. Instance 0 berarti instance HCI standar. |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Multi_advt_opcode |
1 octet | 0x05 [Set_Advt_Enable_Multi_Sub_Cmd] |
Resolusi alamat pribadi yang di-offload
Fitur ini me-resolve alamat pribadi di firmware atau hardware pengontrol, yang memberikan manfaat berikut:
- Latensi yang terkait dengan host dalam me-resolve alamat pribadi
- Menghemat daya dengan tidak mengaktifkan host
LE_Set_RPA_Timeout
OCF: 0x15C
Parameter perintah | Ukuran | Tujuan |
---|---|---|
LE_local_IRK |
16 octet | IRK perangkat lokal yang digunakan untuk membuat alamat yang dapat di-resolve secara acak. |
tRPA_min |
2 octet |
Waktu tunggu pembuatan RPA minimum dalam detik. Pengontrol harus
membuat alamat baru yang dapat di-resolve untuk
peristiwa iklan/pemindaian/koneksi pada atau setelah waktu tunggu ini. Rentang yang valid: 300-1800 |
tRPA_max |
2 octet |
Waktu tunggu pembuatan RPA maksimum dalam detik. Pengontrol harus
membuat alamat baru yang dapat di-resolve untuk
peristiwa iklan/pemindaian/koneksi pada atau sebelum waktu tunggu ini. Rentang yang valid: tRPA_min -1800
|
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet |
Status perintah. Nilai status HCI yang disarankan: 0x00 Berhasil 0x01 Perintah tidak dikenal (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 octet |
0x1 - Mengaktifkan fitur khusus pelanggan 0x2 - Menambahkan IRK ke daftar 0x3 - Menghapus IRK dari daftar 0x4 - Menghapus daftar IRK 0x5 - Membaca entri daftar IRK |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Event_RPA_offload_opcode |
1 octet |
0x1 - Mengaktifkan fitur khusus pelanggan 0x2 - Menambahkan IRK ke daftar 0x3 - Menghapus IRK dari daftar 0x4 - Menghapus daftar IRK 0x5 - Membaca entri daftar IRK |
LE_RPA_offload: Enable_cust_specific_sub_Command
Sub OCF: 0x01
Parameter subperintah | Ukuran | Tujuan |
---|---|---|
enable_customer_specific_feature_set |
1 octet |
0x01 - Mengaktifkan fitur RPA yang di-offload 0x00 - Menonaktifkan fitur RPA yang di-offload |
Pengurangan beban RPA harus diaktifkan oleh host, berdasarkan kemampuan chip. Lihat LE_Get_Vendor_Capabilities_Command
.
Setiap chip dapat memiliki max_irk_list_sz
yang bervariasi dalam firmware.
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Event_cust_specific_feature_opcode |
1 octet | 0x01 [Aktifkan fitur khusus pelanggan] |
LE_RPA_offload: Add_IRK_to_list_sub_Command
Sub OCF: 0x02
Parameter subperintah | Ukuran | Tujuan |
---|---|---|
LE_IRK |
16 octet | LE IRK (LSB byte ke-1) |
Address_Type |
1 octet |
0: Alamat publik 1: Alamat acak |
LE_Device_Address |
6 octet | Alamat publik atau acak yang terkait dengan IRK (LSB byte ke-1) |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Event_cust_specific_feature_opcode |
1 octet | 0x02 [Menambahkan IRK ke daftar] |
LE_IrkList_AvailableSpaces |
1 octet | 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 octet |
0: Alamat publik 1: Alamat acak |
LE_Device_Address |
6 octet | Alamat publik atau acak yang dikaitkan dengan IRK |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Event_cust_specific_feature_opcode |
1 octet | 0x03 [Menghapus IRK dari daftar] |
LE_IrkList_AvailableSpaces |
1 octet | 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 Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Event_cust_specific_feature_opcode |
1 octet | 0x04 [Hapus Daftar IRK] |
LE_IrkList_AvailableSpaces |
1 octet |
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 octet | Indeks daftar IRK [0, max_irk_list_sz-1] |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter return | Ukuran | Tujuan |
---|---|---|
Status |
1 octet | Status Perintah Selesai |
Event_cust_specific_feature_opcode |
1 octet | 0x05 [Baca Entri Daftar IRK] |
LE_Read_IRK_List_entry |
1 octet | Indeks IRK yang ingin dibaca kembali oleh host (ukuran daftar IRK maksimum adalah 32) |
LE_IRK |
16 octet | Nilai IRK |
Address_Type |
1 octet |
0: Alamat publik 1: Alamat acak |
LE_Device_Address |
6 octet | Alamat publik atau acak yang terkait dengan IRK |
LE_Resolved_Private_Address |
6 octet | Alamat pribadi yang dapat di-resolve dan di-resolve saat ini dari IRK ini |