Antarmuka Pengontrol Host (HCI) digunakan untuk berinteraksi dengan pengontrol Bluetooth.
Dokumen ini berisi daftar persyaratan HCI Bluetooth (BT) dan Bluetooth Low Energy (BLE). Tujuannya adalah agar vendor tumpukan Host BT dan vendor pengontrol BT mematuhi persyaratan platform ini untuk menggunakan rangkaian fitur yang dijelaskan di bawah.
Dokumen ini mengacu pada Spesifikasi Bluetooth Core 5.2 sebagai "spesifikasi". Spesifikasi Bluetooth Core 5.2 tersedia di situs web Bluetooth SIG bersama dengan dokumen lain yang diadopsi.
Ikhtisar desain umum
Kemampuan dan konfigurasi chip
Sebagai platform terbuka, Android memiliki matriks rilis perangkat lunak, 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. Tumpukan 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 spesifikasi Bluetooth. Jika fitur yang dijelaskan di bawah ini tersedia dalam metode HCI standar pada spesifikasi Bluetooth di masa mendatang, kami akan cenderung menjadikan pendekatan tersebut sebagai default.
Kemampuan khusus vendor
Perintah khusus vendor: LE_Get_Vendor_Capabilities_Command
Bidang Perintah OpCode (OCF): 0x153
Parameter perintah | Ukuran | Tujuan |
---|---|---|
TIDAK | Daftar parameter Perintah kosong |
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
max_advt_instances (Tidak digunakan lagi) | 1 oktet | Jumlah contoh iklan yang didukung. Dicadangkan setelah v0.98. Parameter ini tidak digunakan lagi dalam spesifikasi fitur Google v0.98 dan lebih tinggi dan digantikan oleh LE Extended Advertising yang tersedia dalam spesifikasi BT versi 5.0 dan lebih tinggi. |
offloaded_resolution_of_private-address (Tidak digunakan lagi) | 1 oktet | Kemampuan chip BT RPA. Jika didukung oleh sebuah chip, maka perlu diaktifkan oleh host. 0 = Tidak mampu 1 = Mampu Dicadangkan setelah v0.98. Parameter ini tidak digunakan lagi dalam spesifikasi fitur Google v0.98 dan lebih tinggi dan mendukung fitur Privasi yang tersedia dalam spesifikasi BT versi 4.2 dan 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 memfilter 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] = Angka kecil v1.04 byte[0] = 0x01 byte[1] = 0x04 |
total_num_of_advt_tracked | 2 oktet | Jumlah total pengiklan yang dilacak untuk tujuan OnLost / OnFound |
extended_scan_support | 1 oktet | Mendukung jendela dan interval pemindaian yang diperluas |
debug_logging_supported | 1 oktet | Mendukung pencatatan 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 dalam spesifikasi fitur Google v0.98 dan lebih tinggi dan mendukung fitur Privasi yang tersedia dalam spesifikasi BT versi 4.2 dan lebih tinggi. |
A2DP_source_offload_capability_mask | 4 Oktet | Masker bit untuk jenis codec didukung Sedikit 0 - SBC Bagian 1 - AAC Bagian 2 - APTX Bagian 3 - APTX HD Bagian 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 didukung Sedikit 0 - SBC Bagian 1 - AAC Bagian 2 - APTX Bagian 3 - APTX HD Bagian 4 - LDAC Bit 5-31 dicadangkan |
a2dp_offload_v2_support | 1 oktet | Mendukung perintah A2dp Offload v2 di pengontrol Bluetooth (lihat Mulai A2DP Offload , Hentikan A2DP Offload ) 0 = Tidak didukung 1 = Didukung |
Kumpulan hasil pemindaian
Tujuan desainnya adalah untuk menyempurnakan cara notifikasi acara Bluetooth LE Scan Response dikirimkan ke host, guna menghemat daya di host.
Dengan mengurangi frekuensi pengontrol memberi tahu pemroses aplikasi host untuk memindai hasil, pemroses aplikasi host dapat berada dalam kondisi idle/tidur lebih lama. Hal ini mengurangi konsumsi daya di host. Parameter pengembalian 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 pada pengontrol Bluetooth. Penyimpanan tersebut digunakan untuk mengumpulkan sementara data iklan dan memindai data serta metadata yang diterima oleh pengontrol untuk kemudian dikirimkan ke host.
Firmware harus mendukung dua jenis batching, yang dapat dilakukan secara bersamaan:
- terpotong. Berisi elemen informasi berikut: {MAC, TX Power, RSSI, Timestamp}
- 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 oktet | 0x1 - Aktifkan fitur khusus pelanggan 0x2 - Tetapkan parameter Penyimpanan Pemindaian Batch 0x3 - Tetapkan parameter Pemindaian Batch 0x4 - Baca parameter Hasil Pemindaian Batch |
Acara Command Complete akan dihasilkan untuk perintah ini. Mengaktifkan fitur khusus pelanggan tidak memulai pemindaian.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
Batch_Scan_opcode | 1 oktet | 0x1 - Aktifkan fitur khusus pelanggan 0x2 - Tetapkan parameter Penyimpanan Pemindaian Batch 0x3 - Tetapkan parameter Pemindaian Batch 0x4 - Baca parameter Hasil Pemindaian Batch |
LE_Batch_Scan_Command: Mengaktifkan fitur Khusus Pelanggan
SubOCF: 0x01
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
enable_customer_specific_feature_set | 1 oktet | 0x01 - Aktifkan fitur Pemindaian Batch 0x00 - Nonaktifkan fitur Pemindaian Batch |
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
Batch_Scan_opcode | 1 oktet | 0x1 - Aktifkan fitur khusus pelanggan 0x2 - Tetapkan parameter Penyimpanan Pemindaian Batch 0x3 - Tetapkan parameter Pemindaian Batch 0x4 - Baca parameter Hasil Pemindaian Batch |
LE_Batch_Scan_Command: Setel subperintah Param Penyimpanan Pemindaian Batch
SubOCF: 0x02
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
Batch_Scan_Full_Max | 1 oktet | Ruang penyimpanan maksimal (dalam%) dialokasikan untuk gaya penuh [Rentang: 0-100] |
Batch_Scan_Truncated_Max | 1 oktet | Ruang penyimpanan maksimal (dalam %) dialokasikan untuk gaya terpotong [Rentang: 0-100] |
Batch_Scan_Notify_Threshold | 1 oktet | Atur tingkat pemberitahuan (dalam %) untuk kumpulan penyimpanan individual [Rentang: 0-100] Menyetel ke 0 akan menonaktifkan notifikasi. Peristiwa HCI khusus vendor dihasilkan (Subperistiwa pelanggaran ambang batas penyimpanan) |
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
Batch_scan_opcode | 1 oktet | 0x02 [Atur parameter Pemindaian Batch] |
LE_Batch_Scan_Command: Setel subperintah Batch Scan Param
SubOCF: 0x03
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
Batch_Scan_Mode | 1 oktet | 0x00 – Pemindaian batch dinonaktifkan 0x01 – Mode terpotong diaktifkan 0x02 – Mode penuh diaktifkan 0x03 – Mode terpotong dan Penuh diaktifkan |
Duty_cycle_scan_window | 4 oktet | Waktu pemindaian Pemindaian Batch (# slot) |
Duty_cyle_scan_interval | 4 oktet | Periode interval Pemindaian Batch (# slot) |
own_address_type | 1 oktet | 0x00 - Alamat perangkat publik 0x01 - Alamat perangkat acak |
Batch_scan_Discard_Rule | 1 oktet | 0 - Buang iklan terlama 1 - Buang iklan dengan RSSI terlemah |
Sub-perintah ini akan memulai pemindaian batch, jika diaktifkan. Pada pemindaian terpotong, hasil disimpan dalam bentuk terpotong dengan kunci unik untuk gaya terpotong = { BD_ADDR,
scan_interval}. Ini berarti hanya satu BD_ADDR will
direkam untuk setiap interval pemindaian. Catatan yang harus disimpan untuk mode Terpotong adalah sebagai berikut: { BD_ADDR
, Tx Power, RSSI, Timestamp}
Ketika mode Penuh diaktifkan, pemindaian aktif akan digunakan dan Respons Pemindaian akan direkam. Kunci unik gaya lengkap = {MAC, Paket iklan}, terlepas dari interval pemindaian. Catatan yang disimpan untuk mode Penuh adalah { BD_ADDR
, Tx Power, RSSI, Timestamp, Ad packet, Scan Response}. Dalam gaya Penuh, paket AD yang sama, ketika dilihat beberapa kali pada interval pemindaian yang berbeda, hanya direkam satu kali. Namun, dalam mode Terpotong, yang menarik adalah visibilitas BA_ADDR
pada interval pemindaian yang berbeda (sekali per interval pemindaian). RSSI adalah nilai rata-rata dari semua duplikat iklan unik dalam interval pemindaian.
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
Batch_scan_opcode | 1 oktet | 0x03 [Atur Parameter Pemindaian Batch] |
LE_Batch_Scan_Command: Baca sub-perintah Hasil Pemindaian Batch
SubOCF: 0x04
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
Batch_Scan_Data_read | 1 oktet | 0x01 – Data mode terpotong 0x02 – Data mode penuh |
Acara Command Complete akan dihasilkan untuk perintah ini. Saat host mengeluarkan perintah ini, semua hasil di pengontrol mungkin tidak muat dalam satu peristiwa Command Complete. Host akan mengulangi mengeluarkan perintah ini sampai hasil yang sesuai dalam acara Command Complete menunjukkan 0 dalam jumlah catatan, yang menunjukkan bahwa pengontrol tidak memiliki catatan lagi untuk dikomunikasikan ke host. Setiap peristiwa Command Complete dapat berisi beberapa rekaman dari satu jenis data saja (Penuh atau Terpotong).
Referensi waktu pengontrol dan host tidak disinkronkan. Satuan stempel waktu adalah 50 ms. Nilai stempel waktu didasarkan pada kapan Read_Batch_Scan_Results_Sub_cmd
diberikan oleh host. Jika waktu kedatangan perintah adalah T_c
di firmware, maka waktu aktual pengambilan stempel waktu 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 tuan rumah menghitung berapa lama peristiwa tersebut terjadi.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
Batch_scan_opcode | 1 oktet | 0x03 [Atur parameter Pemindaian Batch] |
Batch_Scan_data_read | 1 oktet | Mengidentifikasi format (Terpotong atau Penuh) |
num_of_records | 1 oktet | Jumlah catatan Batch_Scan_data_read |
format_of_data | Variabel | Mode Terpotong: Alamat[0]: 6 oktet Address_Type[0]: 1 oktet Tx_Pwr[0]: 1 oktet RSSI[0] : 1 oktet Stempel waktu[0]: 2 oktet [beberapa catatan ( num_of_records ) dengan format di atas]Modus Penuh: Alamat[0]: 6 oktet Address_Type[0]: 1 oktet Tx_Pwr[0]: 1 oktet RSSI[0]: 1 oktet Stempel waktu[0]: 2 oktet Adv packet_len[0]: 1 oktet Adv_packet[0]: oktet Adv_packet_len Scan_data_resp_len[0]: 1 oktet Scan_data_resp[0]: Scan_data_resp oktet[beberapa catatan dengan format di atas ( num_of_records )] |
Filter Konten Paket Iklan
Gunakan ini untuk mengaktifkan/menonaktifkan/mengatur Filter Konten Paket Iklan (APCF) di pengontrol. APCF memfilter laporan iklan di pengontrol tetapi tidak memfilter iklan berkala.
LE_APCF_Perintah
OCF: 0x157
Parameter perintah | Ukuran | Tujuan |
---|---|---|
APCF_opcode | 1 oktet | 0x00 - APCF Aktif 0x01 - Parameter Penyaringan Setel APCF 0x02 - Alamat Penyiar APCF 0x03 - UUID Layanan APCF 0x04 - UUID Permintaan Layanan APCF 0x05 - Nama Lokal APCF 0x06 - Data Produsen APCF 0x07 - Data Layanan APCF 0x08 - Layanan Penemuan Transportasi APCF 0x09 - Filter Jenis IKLAN APCF 0x10 ~ 0xAF - Dicadangkan untuk penggunaan di masa mendatang 0xB0 ~ 0xDF - Dicadangkan untuk vendor 0xE0 ~ 0xFE - Dicadangkan untuk penggunaan di masa mendatang 0xFF - APCF Baca Fitur tambahan |
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status pengembalian |
APCF_opcode | 1 oktet | 0x00 - APCF Aktif 0x01 - Parameter Penyaringan Setel APCF 0x02 - Alamat Penyiar APCF 0x03 - UUID Layanan APCF 0x04 - UUID Permintaan Layanan APCF 0x05 - Nama Lokal APCF 0x06 - Data Produsen APCF 0x07 - Data Layanan APCF 0x08 - Layanan Penemuan Transportasi APCF 0x09 - Filter Jenis IKLAN APCF 0x10 ~ 0xAF - Dicadangkan untuk penggunaan di masa mendatang 0xB0 ~ 0xDF - Dicadangkan untuk vendor 0xE0 ~ 0xFE - Dicadangkan untuk penggunaan di masa mendatang 0xFF - APCF Baca Fitur tambahan |
LE_APCF_Perintah: Aktifkan_sub_cmd
SubOCF: 0x00
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
APCF_enable | 1 oktet | 0x01 - Aktifkan fitur APCF 0x00 - Nonaktifkan fitur APCF |
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
APCF_opcode | 1 oktet | 0x0 - APCF Aktif |
APCF_Enable | 1 oktet | Aktifkan/nonaktifkan diatur melalui APCF_enable |
LE_APCF_Perintah: set_filtering_parameters_sub_cmd
Subperintah ini digunakan untuk menambah atau menghapus spesifikasi filter atau menghapus daftar filter untuk pemfilteran pada chip.
SubOCF: 0x01
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
APCF_Action | 1 oktet | 0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Hapus akan menghapus filter tertentu bersama dengan entri fitur terkait di tabel lain. Hapus akan menghapus semua filter dan entri terkait di tabel lain. |
APCF_Filter_Index | 1 oktet | Indeks filter (0, max_filter-1 ) |
APCF_Feature_Selection | 2 oktet | Masker bit untuk fitur yang dipilih: Bit 0: Atur untuk mengaktifkan filter Alamat Siaran Bit 1: Atur untuk mengaktifkan filter Perubahan Data Layanan Bit 2: Atur untuk mengaktifkan pemeriksaan UUID Layanan Bit 3: Atur untuk mengaktifkan pemeriksaan UUID Permintaan Layanan Bagian 4: Atur untuk mengaktifkan pemeriksaan Nama Lokal Bit 5: Atur untuk mengaktifkan Pemeriksaan Data Produsen Bit 6: Atur untuk mengaktifkan Pemeriksaan Data Layanan Bit 7: Atur untuk mengaktifkan Pemeriksaan Layanan Penemuan Transportasi Bit 8: Atur untuk mengaktifkan Pemeriksaan Tipe Iklan |
APCF_List_Logic_Type | 2 oktet | Operasi logika untuk setiap pemilihan fitur (posisi per bit) yang ditentukan dalam APCF_Feature_Selection .Hanya valid jika fitur diaktifkan. Nilai posisi bit: 0: ATAU 1: DAN Jika logika "DAN" dipilih, paket ADV akan lolos filter hanya jika berisi SEMUA entri dalam daftar. Jika logika "OR" dipilih, paket ADV akan lolos filter jika berisi salah satu entri dalam daftar. |
APCF_Filter_Logic_Type | 1 oktet | 0x00: ATAU 0x01: DAN Catatan: Tipe logikanya adalah N/A untuk tiga kolom pertama APCF_Feature_Selection , yang selalu berupa logika "DAN". Mereka hanya berlaku untuk (Bit 3 - Bit 6) empat bidang APCF_Feature_Selection . |
rssi_high_thresh | 1 oktet | [dalam dBm] Pengiklan dianggap terlihat hanya jika sinyalnya lebih tinggi dari ambang batas tinggi RSSI. Jika tidak, firmware akan berperilaku seolah-olah tidak pernah melihatnya. |
delivery_mode | 1 oktet | 0x00 - immediate 0x01 - on_found 0x02 - batched |
onfound_timeout | 2 oktet | Hanya valid jika delivery_mode adalah on_found .[dalam milidetik] Saatnya firmware berlama-lama dan mengumpulkan iklan tambahan sebelum melaporkan. |
onfound_timeout_cnt | 1 oktet | Hanya valid jika delivery_mode adalah on_found .[menghitung] Jika iklan di onFound tetap ada di firmware selama durasi onfound_timeout , iklan tersebut akan mengumpulkan beberapa iklan dan hitungannya diperiksa. Jika hitungan melebihi onfound_timeout_cnt , OnFound akan segera dilaporkan 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 melebihi ambang batas rendah RSSI. |
onlost_timeout | 2 oktet | Hanya valid jika delivery_mode adalah on_found .[dalam milidetik] Jika suatu iklan, setelah ditemukan, tidak terlihat secara berturut-turut selama periode lost_timeout , iklan tersebut akan segera dilaporkan hilang. |
num_of_tracking_entries | 2 oktet | Hanya valid jika delivery_mode adalah on_found .[menghitung] 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
diatur 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 demi satu. Jadi, 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 akan muncul setelah OnFound
ketika hilang.
Alur pemrosesan ini menggambarkan model konseptual:
Ketika frame iklan (atau respons pemindaian) diterima, frame tersebut diterapkan ke semua filter secara berurutan. Ada kemungkinan bahwa sebuah iklan dapat menyebabkan pelaporan langsung berdasarkan satu filter dan pengelompokan iklan yang sama karena tindakan filter yang berbeda.
Ambang batas level RSSI (tinggi dan rendah) memberikan kemampuan untuk mengontrol kapan frame terlihat untuk pemrosesan filter, bahkan ketika paket yang valid diterima oleh pengontrol. Jika mode pengiriman diatur ke segera atau batch, RSSI frame dipertimbangkan untuk pemrosesan pengontrol lebih lanjut. Aplikasi yang berbeda memerlukan pelaporan dan perilaku pengelompokan 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, kerangka kerja/aplikasi menetapkan filter yang sesuai. Nanti, saat aplikasi kedua mengeluarkan pemindaian reguler, pengelompokan sebelumnya akan dilanjutkan. Namun, karena pemindaian reguler, ini mirip dengan menambahkan filter null (bersama dengan semua filter yang ada) secara konseptual bersama dengan perintah LE scan. Parameter perintah pemindaian LE diutamakan saat aktif. Ketika 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 entitas yang akan dilacak onLost
. Peristiwa terkait adalah subperistiwa pelacakan LE Advt.
Transisi OnFound/OnLost
untuk filter (jika diaktifkan) akan terlihat seperti berikut:
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
APCF_opcode | 1 oktet | 0x01 - Parameter Pemfilteran Setel APCF |
APCF_Action | 1 oktet | Gema kembali perintah APCF_Action |
APCF_AvailableSpaces | 1 oktet | Jumlah entri yang tersedia di tabel filter |
LE_APCF_Perintah: siaran_alamat_sub_cmd
Subperintah ini digunakan untuk menambah atau menghapus alamat pengiklan atau menghapus daftar alamat pengiklan untuk pemfilteran pada chip.
SubOCF: 0x02
Parameter sub-perintah | 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 di filter yang ditentukan. |
APCF_Filter_Index | 1 oktet | Indeks filter (0, max_filter-1 ) |
APCF_Broadcaster_Address | 6 oktet | Alamat perangkat 6-byte untuk ditambahkan atau dihapus dari daftar alamat penyiar |
APCF_Application_Address_type | 1 oktet | 0x00: Publik 0x01: Acak 0x02: NA (jenis alamat tidak berlaku) |
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
APCF_opcode | 1 oktet | 0x02 - Alamat Penyiar APCF |
APCF_Action | 1 oktet | Gema kembali perintah APCF_Action |
APCF_AvailableSpaces | 1 oktet | Jumlah entri gratis yang masih tersedia di tabel Alamat Siaran |
LE_APCF_Perintah: service_uuid_sub_cmd
Subperintah ini digunakan untuk menambah atau menghapus UUID layanan atau untuk menghapus daftar UUID layanan untuk pemfilteran pada chip.
SubOCF: 0x03
Parameter sub-perintah | 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 menambah, atau menghapus dari, daftar. |
APCF_UUID_MASK | 2,4,16 oktet | Layanan UUID Mask (16-bit, 32-bit, atau 128-bit) untuk ditambahkan ke daftar. Panjangnya harus sama dengan APCF_UUID. |
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
APCF_opcode | 1 oktet | 0x03 - UUID Layanan APCF |
APCF_Action | 1 oktet | Gema kembali perintah APCF_Action |
APCF_AvailableSpaces | 1 oktet | Jumlah entri gratis yang masih tersedia di tabel UUID Layanan |
LE_APCF_Perintah: permintaan_uuid_sub_cmd
Subperintah ini digunakan untuk menambah atau menghapus UUID permintaan atau untuk menghapus daftar UUID permintaan untuk pemfilteran pada chip.
SubOCF: 0x04
Parameter sub-perintah | 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 dalam filter yang ditentukan. |
APCF_Filter_Index | 1 oktet | Indeks filter (0, max_filter -1) |
APCF_UUID | 2,4,16 oktet | UUID Permohonan (16-bit, 32-bit, atau 128-bit) untuk ditambahkan atau dihapus dari daftar. |
APCF_UUID_MASK | 2,4,16 oktet | Masker UUID Permohonan (16-bit, 32-bit, atau 128-bit) untuk ditambahkan ke daftar. Panjangnya harus sama dengan APCF_UUID . |
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
APCF_opcode | 1 oktet | 0x04 - UUID Permintaan APCF |
APCF_Action | 1 oktet | Gema kembali perintah APCF_Action |
APCF_AvailableSpaces | 1 oktet | Jumlah entri gratis yang masih tersedia di tabel UUID Permohonan |
LE_APCF_Perintah: nama_lokal_sub_cmd
Sub-perintah ini digunakan untuk menambah atau menghapus string nama lokal atau untuk menghapus daftar string nama lokal untuk pemfilteran pada chip.
SubOCF: 0x05
Parameter sub-perintah | 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 di 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:
|
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
APCF_opcode | 1 oktet | 0x05 - Nama Lokal APCF |
APCF_Action | 1 oktet | Gema kembali perintah APCF_Action |
APCF_AvailableSpaces | 1 oktet | Jumlah entri gratis yang masih tersedia di tabel Nama lokal |
LE_APCF_Perintah: manf_data_sub_cmd
Subperintah ini digunakan untuk menambah atau menghapus string data pabrikan atau untuk menghapus daftar string data pabrikan untuk pemfilteran pada chip.
SubOCF: 0x06
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
APCF_Action | 1 oktet | 0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Hapus akan menghapus string data pabrikan yang ditentukan dalam filter yang ditentukan. Clear akan menghapus semua string data pabrikan di 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 pabrikan. Catatan:
|
APCF_ManData_Mask | Ukuran variabel | Masker data pembuatan untuk ditambahkan ke daftar. Panjangnya harus sama dengan APCF_LocName_or_ManData_or_SerData . |
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
APCF_opcode | 1 oktet | 0x06 - Data Produsen APCF |
APCF_Action | 1 oktet | Gema kembali perintah APCF_Action |
APCF_AvailableSpaces | 1 oktet | Jumlah entri gratis yang masih tersedia di tabel Data Produsen |
LE_APCF_Perintah: service_data_sub_cmd
Subperintah ini digunakan untuk menambah atau menghapus string data layanan atau untuk menghapus daftar string data layanan untuk pemfilteran pada chip.
SubOCF: 0x07
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
APCF_Action | 1 oktet | 0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Hapus akan menghapus string data layanan yang ditentukan dalam filter yang ditentukan. Hapus 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 untuk ditambahkan ke daftar. Panjangnya harus sama dengan APCF_LocName_or_ManData_or_SerData. |
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
APCF_opcode | 1 oktet | 0x07 - Data Layanan APCF |
APCF_Action | 1 oktet | Gema kembali perintah APCF_Action |
APCF_AvailableSpaces | 1 oktet | Jumlah entri gratis yang masih tersedia untuk tabel Data Layanan |
LE_APCF_Perintah: ad_type_sub_cmd
Subperintah ini digunakan untuk menambah atau menghapus tipe AD atau untuk menghapus daftar tipe AD untuk pemfilteran pada chip. Gunakan read_extended_features_sub_cmd
untuk memeriksa apakah perintah ini didukung atau tidak.
SubOCF: 0x09
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
APCF_Action | 1 oktet | 0x00 - Tambahkan 0x01 - Hapus 0x02 - Hapus Hapus akan menghapus jenis AD yang ditentukan dalam filter yang ditentukan. Clear 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 | Tipe AD untuk menambah, atau menghapus dari, daftar. Abaikan ketika APCF_Action adalah 0x02 (Hapus) |
APCF_AD_DATA_Length | Ukuran variabel | 0x00 - artinya tidak memfilter konten data Abaikan ketika APCF_Action adalah 0x02 (Hapus) |
APCF_AD_DATA | Ukuran variabel | Abaikan ketika APCF_Action adalah 0x02 (Hapus) |
APCF_AD_DATA_MASK | Ukuran variabel | Abaikan ketika APCF_Action adalah 0x02 (Hapus) Panjangnya harus sama dengan APCF_AD_DATA . |
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
APCF_opcode | 1 oktet | 0x09 - Tipe IKLAN APCF |
APCF_Action | 1 oktet | Gema kembali perintah APCF_Action |
APCF_AvailableSpaces | 1 oktet | Jumlah entri gratis yang masih tersedia di tabel Tipe AD |
LE_APCF_Perintah: read_exended_features_sub_cmd
Subperintah ini digunakan untuk membaca fitur APCF yang diperluas.
Sub OCF: 0xFF
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
Tak dapat diterapkan | Parameter perintah kosong. |
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
APCF_opcode | 1 oktet | 0xFF - APCF_Read_Exended_Features |
APCF_extended_features | 2 oktet | Masker bit untuk fitur tambahan yang didukung:
Nilai sedikit
|
Pengendali aktivitas dan perintah informasi energi
Tujuan dari informasi ini adalah agar fungsi sistem host yang lebih tinggi dapat menganalisis aktivitas total semua komponen, termasuk pengontrol BT dan status makronya, sehubungan dengan apa yang terjadi di aplikasi dan kerangka kerja. Untuk melakukan hal ini, informasi berikut diperlukan dari tumpukan BT dan pengontrol:
- Tumpukan BT: Melaporkan status operasional makro pengontrol saat ini
- Firmware: Melaporkan aktivitas agregat dan informasi energi
Status makro tumpukan host BT, sebagaimana ditentukan di tingkat pengguna:
- Idle: [pemindaian halaman, LE advt, pemindaian pertanyaan]
- Pindai: [paging/pertanyaan/mencoba menyambung]
- Aktif: [Tautan ACL aktif, tautan SCO aktif, mode sniff]
Aktivitas yang dipantau oleh pengontrol selama masa pakainya adalah waktu Tx, waktu Rx, waktu idle, dan total energi yang dikonsumsi. Mereka dihapus ketika dibaca dari host.
LE_Get_Controller_Activity_Energy_Info
Ini adalah perintah khusus vendor.
OCF: 0x159
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
TIDAK | Parameter perintah kosong |
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
total_tx_time_ms | 4 oktet | Total waktu tampil Tx |
total_rx_time_ms | 4 oktet | Total waktu melakukan Rx |
total_idle_time_ms | 4 oktet | Total waktu dalam keadaan idle (status daya rendah non-tidur) |
total_energy_used | 4 oktet | Total energi yang digunakan [hasil kali arus (mA), tegangan (V) dan waktu (ms)] |
Perintah parameter pemindaian set LE yang diperluas
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 aplikasi yang lebih lama melebihi 10,24 detik.
Referensi dasar: Spesifikasi BT Core 5.2, halaman 2493 (Perintah LE Set Scan Parameters)
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 | Didefinisikan sebagai interval waktu sejak Pengontrol memulai pemindaian LE terakhirnya hingga memulai pemindaian LE berikutnya. Rentang: 0x0004 hingga 0x00FFFFFF Bawaan: 0x0010 (10 mdtk) Waktu = N * 0,625 ms Rentang waktu: 2,5 ms hingga 10442,25 detik |
LE_Ex_Scan_Window | 4 oktet | Durasi pemindaian LE. LE_Scan_Window harus kurang dari atau sama dengan LE_Scan_Interval .Rentang: 0x0004 hingga 0xFFFF Bawaan: 0x0010 (10 mdtk) Waktu = N * 0,625 ms Rentang Waktu: 2,5 ms hingga 40,95 detik |
Own_Address_Type | 1 oktet | 0x00 - Alamat Perangkat Publik (default) 0x01 - Alamat Perangkat Acak |
LE_Ex_Scan_Filter_Policy | 0x00 - Terima 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 White List Only. Paket iklan terarah yang tidak ditujukan untuk perangkat ini akan diabaikan. |
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
Dapatkan perintah info debug pengontrol
Tujuan dari elemen informasi ini adalah untuk memperoleh informasi debug pengontrol oleh sebuah host, dalam bentuk biner, untuk pasca-pemrosesan dan analisis. Hal ini membantu men-debug permasalahan di lapangan dan menyediakan perangkat bagi para insinyur untuk mencatat informasi guna dianalisis. Pengontrol dapat memberikan informasi ketika diminta oleh host melalui peristiwa (sub-peristiwa Info Debug Pengendali) atau secara mandiri bila diinginkan oleh pengontrol. Contoh penggunaannya bisa untuk melaporkan informasi status firmware, informasi crash dump, informasi logging, dll.
OCF: 0x15B
Parameter perintah | Ukuran | Tujuan |
---|---|---|
T/A | Daftar parameter perintah kosong |
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
Dukungan Pembongkaran Perangkat Keras A2DP
Fitur A2DP Offload mendukung offload proses pengkodean audio A2DP ke prosesor audio yang terpasang pada BT Controller. Aliran data audio yang dikodekan diteruskan langsung dari prosesor Audio ke Pengontrol BT tanpa keterlibatan host BT. BT Host masih bertanggung jawab atas konfigurasi dan kontrol sesi A2DP. Tersedia dua versi perintah. Perintah lama dengan Sub OCF 0x01-0x02 hanya mendukung codec sumber terbuka. Versi dengan Sub-OCF 0x02-0x03 tidak sesuai dengan codec yang dikonfigurasi.
OCF: 0x15D
Mulai Pembongkaran A2DP (warisan)
SubOCF: 0x01
Gunakan perintah ini untuk mengonfigurasi proses Pembongkaran A2DP dan memulai aliran 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 Maks Diizinkan (dalam ms). Nilai nol menonaktifkan flush. |
SCMS-T_Enable | 2 oktet | Oktet 0: Bendera yang memungkinkan penambahan header SCMS-T.
Oktet 1: Nilai untuk header SCMS-T, saat diaktifkan. |
Sampling_Frequency | 4 oktet | 0x01 - 44100Hz 0x02 - 48000Hz 0x04 - 88200Hz 0x08 - 96000Hz |
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 | Bitrate audio yang dikodekan dalam bit per detik detik. 0x00000000 - Bitrate audio tidak ditentukan / tidak digunakan. 0x00000001 - 0x00FFFFFF - Kecepatan bit audio yang dikodekan dalam bit per detik. 0x01000000 - 0xFFFFFFFF - Dicadangkan. |
Connection_Handle | 2 oktet | Koneksi Menangani koneksi A2DP yang sedang dikonfigurasi |
L2CAP_Channel_ID | 2 oktet | ID Saluran L2CAP yang akan digunakan untuk koneksi A2DP ini |
L2CAP_MTU_Size | 2 oktet | Ukuran maksimum L2CAP MTU yang berisi paket audio yang disandikan |
Codec_Information | 32 oktet | Informasi Khusus Codec. Kodek SBC: Lihat elemen informasi spesifik SBC Codec di A2DP v1.3. Kodek AAC: Lihat elemen informasi spesifik AAC Codec di A2DP v1.3 Kodek LDAC: Oktet 0-3: ID Vendor Oktet 4-5: ID Codec Oktet 6: Indeks Bitrate: Oktet 7: Mode Saluran LDAC 8-31 Oktober: dipesan Semua codec lainnya: 0-31 Oktober: dipesan |
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
Sub_Opcode | 1 oktet | 0x01 - Mulai Pembongkaran A2DP |
Mulai Pembongkaran A2DP
SubOCF: 0x03
Gunakan perintah ini untuk mengonfigurasi proses Pembongkaran A2DP dan memulai aliran A2DP.
Parameter perintah | Ukuran | Tujuan |
---|---|---|
Connection Handle | 2 oktet | Menangani koneksi HCI yang aktif |
L2CAP_Channel_ID | 2 oktet | Pengidentifikasi Saluran L2CAP dibuka untuk streaming A2DP |
Data_Path_Direction | 1 oktet | 0x00 - Output (Sumber/Gabungan AVDTP) 0x01 - Masukan (AVDTP Tenggelam/Terpisah) |
Peer_MTU | 2 oktet | Ukuran maksimum paket L2CAP, dinegosiasikan dengan rekannya. |
CP_Enable_SCMS_T | 1 oktet | 0x00 - Nonaktifkan Header Perlindungan Konten SCMS-T 0x01 - Aktifkan Header Perlindungan Konten SCMS-T |
CP_Header_SCMS_T | 1 oktet | Ketika Header Perlindungan Konten SCMS-T diaktifkan ( CP_SCMS_T_Enable diatur 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 ketika perlindungan Konten SCMS-T tidak diaktifkan. |
Vendor_Specific_Parameters_Length | 1 oktet | Panjang Parameter Spesifik Vendor, dalam rentang dari 0 hingga 128. Nilai 0 digunakan bila tidak ada parameter tambahan yang disediakan. |
Vendor_Specific_Parameters | 0-128 oktet | Parameter Khusus Vendor yang disediakan oleh Bluetooth Audio HAL, CodecParameters.vendorSpecificParameters[] . |
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
Sub_Opcode | 1 oktet | 0x03 - Mulai Pembongkaran A2DP |
Hentikan Pembongkaran A2DP (warisan)
SubOCF: 0x02
Perintah ini digunakan untuk menghentikan aliran A2DP Offload.
Parameter perintah | Ukuran | Tujuan |
---|---|---|
T/A | Daftar parameter perintah kosong. |
Tidak ada parameter yang ditentukan untuk perintah ini.
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
Sub_Opcode | 1 oktet | 0x02 - Hentikan Pembongkaran A2DP |
Hentikan Pembongkaran A2DP
SubOCF: 0x04
Perintah ini digunakan untuk menghentikan aliran A2DP Offload.
Parameter perintah | Ukuran | Tujuan |
---|---|---|
Connection Handle | 2 oktet | Menangani koneksi HCI yang aktif |
L2CAP_Channel_ID | 2 oktet | Pengidentifikasi Saluran L2CAP dibuka untuk streaming A2DP |
Data_Path_Direction | 1 oktet | 0x00 - Output (Sumber/Gabungan AVDTP) 0x01 - Masukan (AVDTP Tenggelam/Terpisah) |
Acara Command Complete akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Perintah Selesai |
Sub_Opcode | 1 oktet | 0x04 - Hentikan Pembongkaran 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-peristiwa BQR terkait Kualitas Tautan 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 melaporkan peristiwa Mendekati LSTO ke host.
- A2DP Audio Choppy: Saat pengontrol mendeteksi faktor yang menyebabkan audio terputus-putus, pengontrol melaporkan peristiwa A2DP Audio Choppy ke host.
- (e)SCO Voice Choppy: Ketika pengontrol mendeteksi faktor-faktor yang menyebabkan suara terputus-putus, pengontrol melaporkan kejadian (e)SCO Voice Choppy kepada host.
- Peradangan Root: Peristiwa ini dikirim oleh pengontrol ke tumpukan ketika HAL atau pengontrol mengalami kesalahan fatal dan perlu memulai ulang Bluetooth.
- Jejak pesan LMP/LL: Pengontrol mengirimkan pesan LMP/LL secara jabat tangan dengan perangkat jarak jauh ke host.
- Bluetooth Multi-Profile/Coex Sceduling Trace: Pengontrol mengirimkan informasi penjadwalannya tentang menangani beberapa profil Bluetooth dan koeksistensi nirkabel dalam pita 2,4 GHz ke host.
- Mekanisme Informasi Debug Controller: Saat diaktifkan, pengontrol dapat secara mandiri melaporkan informasi logging debug melalui sub-even debug controller ke host.
OCF: 0x15e
Parameter perintah | Ukuran | Tujuan |
---|---|---|
BQR_Report_Action | 1 oktet | Tindakan untuk menambah / menghapus pelaporan peristiwa berkualitas yang ditetapkan dalam parameter bqr_quality_event_mask, atau bersihkan semua. 0x00 - Tambah Hapus akan menghapus pelaporan acara kualitas spesifik. |
BQR_Quality_Event_Mask | 4 oktet | Bit topeng untuk pelaporan acara kualitas yang dipilih. Bit 0: Setel untuk mengaktifkan mode pemantauan kualitas. |
BQR_Minimum_Report_Interval | 2 oktet | Tentukan interval waktu minimum pelaporan acara kualitas untuk acara kualitas yang dipilih. Firmware pengontrol tidak boleh melaporkan acara berikutnya dalam interval waktu yang ditentukan. Pengaturan interval harus masing -masing dan didedikasikan untuk peristiwa kualitas yang ditambahkan. Unit: MS |
BQR_Vendor_Specific_Quality_Event_Mask | 4 oktet | Bit topeng untuk pelaporan acara kualitas khusus vendor yang dipilih. Parameter ini hanya valid ketika bit 15 dari BQR_Quality_Event_Mask diatur.Bit 0 ~ 31: Dicadangkan. |
BQR_Vendor_Specific_Trace_Mask | 4 oktet | Bit topeng untuk pelaporan jejak khusus vendor yang dipilih. Parameter ini hanya valid ketika bit 31 dari BQR_Quality_Event_Mask diatur.Bit 0 ~ 31: Dicadangkan. |
Acara lengkap perintah akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Lengkap Perintah |
Current_Quality_Event_Mask | 4 oktet | Menunjukkan pengaturan mask bit saat ini. Bit 0: Mode pemantauan kualitas diaktifkan. Bit 1: Mendekati pelaporan acara LSTO diaktifkan. Bit 2: Pelaporan Audio Audio Audio Audio diaktifkan. Bit 3: (e) Pelaporan acara berombak SCO diaktifkan. Bit 4: Pelaporan acara peradangan root diaktifkan. Bit 5: Mode pemantauan energi diaktifkan. Bit 6: LE Audio Choppy Event Reporting diaktifkan. Bit 7: Connect Fail Event. Bit 8 ~ 14: Dicadangkan. Bit 15: Pelaporan acara kualitas khusus vendor diaktifkan. Bit 16: LMP/LL Jejak pesan diaktifkan. Bit 17: Bluetooth Multi-Link/Coex Sceduling Trace diaktifkan. Bit 18: Mekanisme Informasi Debug Controller diaktifkan. Bit 19 ~ 30: Dicadangkan. Bit 31: Jejak khusus vendor diaktifkan. |
Current_Vendor_Specific_Quality_Event_Mask | 4 oktet | Menunjukkan pengaturan mask bit saat ini. |
Current_Vendor_Specific_Trace_Mask | 4 oktet | Menunjukkan pengaturan mask bit saat ini. |
Perintah buffer audio dinamis
Buffer audio dinamis mengurangi glitching audio dengan mengubah ukuran buffer audio di pengontrol Bluetooth berdasarkan berbagai skenario.
OCF: 0x15f
Dapatkan kemampuan waktu buffer 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 |
Acara lengkap perintah akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Lengkap Perintah |
Dynamic_Audio_Buffer_opcode | 1 oktet | 0x01 - Dapatkan waktu buffer audio |
Audio_Codec_Type_Supported | 4 oktet | Masker bit untuk tipe 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 dari tipe bit 0 codec yang ditentukan dalam audio_codec_type_supported. Nilai ini harus 0 jika tipe bit 0 codec tidak didukung. Unit: MS |
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 | 2 oktet | Waktu buffer maksimum dari tipe bit 0 codec yang ditentukan dalam audio_codec_type_supported. Nilai ini harus 0 jika tipe bit 0 codec tidak didukung. Unit: MS |
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 | 2 oktet | Waktu buffer minimum dari tipe bit 0 codec yang ditentukan dalam audio_codec_type_supported. Nilai ini harus 0 jika tipe bit 0 codec tidak didukung. Unit: MS |
Audio_Codec_Buffer_Default_Time_For_Bit_1 | 2 oktet | Waktu buffer default dari tipe bit 1 codec yang ditentukan dalam audio_codec_type_supported. Nilai ini harus 0 jika jenis bit 1 codec tidak didukung. Unit: MS |
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 | 2 oktet | Waktu buffer maksimum dari tipe codec bit 1 yang ditentukan dalam audio_codec_type_supported. Nilai ini harus 0 jika jenis bit 1 codec tidak didukung. Unit: MS |
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 | 2 oktet | Waktu buffer minimum dari tipe codec bit 1 yang ditentukan dalam audio_codec_type_supported. Nilai ini harus 0 jika jenis bit 1 codec tidak didukung. Unit: MS |
...... | ...... | ...... |
Audio_Codec_Buffer_Default_Time_For_Bit_31 | 2 oktet | Waktu buffer default dari tipe codec bit 31 yang ditentukan dalam audio_codec_type_supported. Nilai ini harus 0 jika tipe codec bit 31 tidak didukung. Unit: MS |
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 | 2 oktet | Waktu buffer maksimum tipe codec bit 31 yang ditentukan dalam audio_codec_type_supported. Nilai ini harus 0 jika tipe codec bit 31 tidak didukung. Unit: MS |
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 | 2 oktet | Waktu buffer minimum dari tipe codec bit 31 yang ditentukan dalam audio_codec_type_supported. Nilai ini harus 0 jika tipe codec bit 31 tidak didukung. Unit: MS |
Atur waktu buffer audio
Sub OCF: 0x02
Gunakan perintah ini untuk mengatur waktu buffer audio ke pengontrol Bluetooth.
Parameter perintah | Ukuran | Tujuan |
---|---|---|
Audio_Codec_Buffer_Time | 2 oktet | Waktu buffer audio yang diminta untuk codec yang digunakan saat ini. Unit: MS |
Acara lengkap perintah akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Lengkap Perintah |
Dynamic_Audio_Buffer_opcode | 1 oktet | 0x02 - Atur waktu buffer audio |
Audio_Codec_Buffer_Time | 2 oktet | Waktu buffer audio saat ini di bluetooth controller. Unit: MS |
Acara HCI (khusus vendor)
Peristiwa HCI khusus vendor diperlukan dalam beberapa kasus. Lihat Gambar 5.4 di halaman 1897 dari spesifikasi BT Core 5.2. Parameter acara 0 akan selalu berisi kode sub-event pertama, berdasarkan di mana sisa acara HCI diterjemahkan.
Parameter Peristiwa | Ukuran | Tujuan |
---|---|---|
HCI_vendor_specific_event_code | 1 oktet | 0xFF |
sub_event_code | 1 oktet | Kode sub-event akan berukuran 1 oktet, byte segera mengikuti panjang parameter dalam paket acara HCI. |
Sub-Event Pelanggaran Ambang Penyimpanan
Acara ini menunjukkan bahwa ambang penyimpanan telah dilanggar.
Kode sub-event = 0x54
Parameter sub-event | Ukuran | Tujuan |
---|---|---|
Tidak ada |
Sub-Event Perubahan Negara Multi-Advertising
Acara ini menunjukkan bahwa instance iklan telah mengubah keadaannya. Pada saat ini, acara ini hanya digunakan untuk menunjukkan instance iklan mana yang dihentikan sebagai hasil dari koneksi.
Kode sub-event = 0x55
Parameter sub-event | Ukuran | Tujuan |
---|---|---|
Advertising_instance | 1 oktet | Mengidentifikasi contoh iklan tertentu Nilai yang valid adalah 0 hingga max_advt_instances -1 |
State_Change_Reason | 1 Octet | 0x00: Koneksi diterima |
Connection_handle | 2 oktet | Mengidentifikasi koneksi yang menyebabkan instance advt dinonaktifkan (0xffff jika tidak valid) |
Sub-acara pelacakan iklan le
Acara ini menunjukkan kapan pengiklan ditemukan atau hilang.
Sub Event Code = 0x56
Parameter sub-event | Ukuran | Tujuan |
---|---|---|
APCF_Filter_Index | 1 oktet | Indeks filter (0, max_filter -1) |
Advertiser_State | 1 oktet | 0x00: Pengiklan Ditemukan 0x01: Pengiklan Hilang |
Advt_Info_Present | 1 Octet | 0x00: Informasi Pengiklan ( Advt_Info ) Hadir0x01: Informasi Pengiklan ( Advt_Info ) Tidak ada |
Advertiser_Address | 6 oktet | Alamat publik atau acak |
Advertiser_Address_Type | 1 Octet | 0x00: Alamat publik 0x01: Alamat acak |
Advt_Info | Tx_Pwr[0] : 1 OctetRSSI[0] : 1 oktetTimestamp[0] : 2 oktetAdv packet_len[0] : 1 oktetAdv_packet[0] : Adv_packet_len OctetsScan_data_resp_len[0] : 1 OctetScan_data_resp[0] : Scan_data_resp octets |
Sub-acara info debug pengontrol
Acara ini digunakan oleh pengontrol untuk memberikan informasi debug biner kepada host.
Kode sub-event = 0x57
Parameter sub-event | Ukuran | Tujuan |
---|---|---|
debug_block_byte_offset_start | 2 oktet | Debug block byte offset dari awal |
last_block | 1 Octet | 0x00: lebih banyak data debug hadir 0x01: blok biner terakhir; No More Debug Data |
cur_pay_load_sz | 2 oktet | Ukuran blok biner dalam acara saat ini |
Debug_Data | Variabel | Debug Data cur_payload_sz |
Sub-acara Laporan Kualitas Bluetooth
Peristiwa ini menunjukkan salah satu dari yang berikut ini: terjadi peristiwa kualitas Bluetooth, pengontrol mengunggah jejak pesan LMP/LL dan jejak penjadwalan multi-link/coex Bluetooth, atau data pengontrol yang dibuang sebagai data informasi debug.
Sub-event Code = 0x58 [Quality_Report_ID = 0x01 ~ 0x04, Acara Terkait Kualitas Tautan]
Parameter sub-event | Ukuran | Tujuan |
---|---|---|
Quality_Report_Id | 1 Octet | 0x01: Pelaporan kualitas pada mode pemantauan. 0x02: Mendekati LSTO. 0x03: A2DP audio berombak. 0x04: (e) SCO Voice Choppy. 0x05 ~ 0x06: Dicadangkan. 0x07: LE Audio Choppy. 0x08: Connect Fail. 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 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: dicadangkan 0x51: Paket ISO 0x52 ~ 0xff: dicadangkan |
Connection_Handle | 2 oktet | ACL/(E) Pegangan Koneksi SCO/ISO. |
Connection_Role | 1 Octet | Melakukan peran untuk koneksi. 0x00: Central 0x01: Perifheral 0x02 ~ 0xff: Dicadangkan. |
TX_Power_Level | 1 Octet | Level daya transmisi saat ini untuk koneksi_handle yang ditentukan. Nilai ini harus sama dengan pengontrol yang menanggapi perintah HCI HCI_READ_TRANSMIT_POWER_LEVEL. |
RSSI | 1 Octet | [Dalam DBM] Nilai Indikasi Kekuatan Sinyal (RSSI) yang diterima untuk koneksi_handle yang ditentukan. |
SNR | 1 Octet | [Dalam DB] Nilai Rasio Signal-to-Noise (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 diganggu dan memiliki kualitas yang buruk, tetapi mereka masih dipilih untuk AFH. Jumlah minimum saluran yang diizinkan oleh spesifikasi Bluetooth adalah 20, jadi bahkan jika semua 79 saluran terganggu dan memiliki kualitas yang buruk, pengontrol masih perlu memilih setidaknya 20 saluran untuk AFH. |
LSTO | 2 oktet | Pengaturan batas waktu pengawasan tautan saat ini. Waktu = n * 0,625 ms Kisaran waktu: 0,625 ms hingga 40,9 detik |
Connection_Piconet_Clock | 4 oktet | Jam piconet untuk koneksi_handle yang ditentukan. Nilai ini harus sama dengan pengontrol yang menanggapi perintah HCI_READ_CLOCK HCI dengan parameter "yang_clock" dari 0x01 (jam piconet). Unit: N * 0,3125 ms (1 jam Bluetooth) |
Retransmission_Count | 4 oktet | Jumlah transmisi sejak acara terakhir. Hitungan ini harus diatur ulang setelah melaporkan ke tuan rumah. |
No_RX_Count | 4 oktet | Tidak ada hitungan RX sejak acara terakhir. Hitungan meningkat ketika tidak ada paket yang diterima pada slot waktu yang dijadwalkan atau paket yang diterima rusak. Hitungan ini harus diatur ulang setelah melaporkan ke tuan rumah. |
NAK_Count | 4 oktet | NAK (Pengakuan Negatif) Hitung sejak acara terakhir. Hitungan ini harus diatur ulang setelah melaporkan ke tuan rumah. |
Last_TX_ACK_Timestamp | 4 oktet | Cap waktu TX Ack terakhir. Ini didasarkan pada jam Bluetooth dari Piconet Central (CLK). Unit: N * 0,3125 ms (1 jam Bluetooth) |
Flow_Off_Count | 4 oktet | Berapa kali pengontrol menerima flow-off (berhenti) sejak acara terakhir. Hitungan ini harus diatur ulang setelah melaporkan ke tuan rumah. |
Last_Flow_On_Timestamp | 4 oktet | Timestamp dari Flow-On Terakhir (GO). Ini didasarkan pada jam Bluetooth dari Piconet Central (CLK). Unit: N * 0,3125 ms (1 jam Bluetooth) |
Buffer_Overflow_Bytes | 4 oktet | [Dalam byte] Buffer overflow menghitung sejak acara terakhir. |
Buffer_Underflow_Bytes | 4 oktet | [Dalam byte] Buffer Underflow Count sejak acara terakhir. |
bdaddr | 6 oktet | Alamat perangkat jarak jauh |
cal_failed_item_count | 1 Octet | Hitungan Kalibrasi Gagal Item |
TX_Total_Packets | 4 oktet | Jumlah paket yang dikirim. |
TX_UnAcked_Packets | 4 oktet | Jumlah paket yang tidak menerima pengakuan. Hitungan ini diatur ulang setelah melaporkan ke tuan rumah. |
TX_Flushed_Packets | 4 oktet | Jumlah paket yang tidak dikirim oleh titik flush -nya. Hitungan ini diatur ulang setelah melaporkan ke tuan rumah. |
TX_Last_Subevent_Packets | 4 oktet | Jumlah paket yang menghubungkan lapisan mentransmisikan PDU data CIS di subevent terakhir dari acara CIS. Hitungan ini diatur ulang setelah melaporkan ke tuan rumah. Nilai nol jika tidak ada nilai yang valid untuk tautan. |
CRC_Error_Packets | 4 oktet | Jumlah paket yang diterima dengan kesalahan CRC sejak acara terakhir. Hitungan ini diatur ulang setelah melaporkan ke tuan rumah. |
RX_Duplicate_Packets | 4 oktet | Jumlah paket duplikat (transmisi ulang) yang diterima sejak acara terakhir. Hitungan ini diatur ulang setelah melaporkan ke tuan rumah. |
Parameter spesifik vendor | (parameter total panjang - TBD) * oktet | Untuk vendor pengontrol untuk mendapatkan lebih banyak parameter spesifik vendor. |
Sub-event Code = 0x58 [Quality_Report_ID = 0x05, acara peradangan root]
Peristiwa ini menunjukkan bahwa Bluetooth HAL atau pengontrol mengalami kesalahan fatal dan membutuhkan tumpukan Bluetooth untuk merekam situasi ini dan memulai kembali. Pengontrol harus mengirim root_inflammation_event ke Bluetooth Stack sebelum mengirim fragmen pertama dari acara info debug dalam hal apa pun.
Parameter error_code berisi kode kesalahan yang dilaporkan dari HAL/controller, 0 jika itu adalah kesalahan spesifik vendor chipset. Vendor_specific_error_code berisi kode kesalahan spesifik vendor chipset dari HAL/controller. Itu harus ditetapkan sebagai 0 jika parameter error_code bukan 0. parameter error_code dan vendor_specific_error_code seharusnya tidak keduanya 0.
Parameter sub-event | Ukuran | Tujuan |
---|---|---|
Quality_Report_Id | 1 Octet | 0x00 ~ 0x04: Dicadangkan. 0x05: Peradangan root. 0x06 ~ 0xff: Dicadangkan. |
Error_Code | 1 Octet | 0x00: Kode kesalahan spesifik vendor chipset disertakan. 0x01 ~ 0xff: Kegagalan pengontrol terjadi. Lihat Bluetooth Spec [Vol 2] Bagian D, kode kesalahan untuk daftar kode kesalahan dan deskripsi. |
Vendor_Specific_Error_Code | 1 Octet | 0x00: Tidak ada kode kesalahan spesifik vendor chipset. 0x01 ~ 0xff: Kode kesalahan spesifik vendor chipset. |
Parameter spesifik vendor | (Panjang total parameter - 4) * oktet | Untuk vendor pengontrol untuk mendapatkan lebih banyak parameter spesifik vendor. |
Sub-event code = 0x58 [Quality_Report_ID = 0x11 ~ 0x13, acara terkait Dump Log]
Parameter sub-event | Ukuran | Tujuan |
---|---|---|
Quality_Report_Id | 1 Octet | 0x00 ~ 0x10: Dicadangkan. 0x11: Trace pesan LMP/LL. 0x12: Trace penjadwalan multi-link/coex Bluetooth. 0x13: Pengontrol Informasi Debug Data Data. 0x14 ~ 0xff: Dicadangkan. |
Connection_Handle | 2 oktet | Pegangan koneksi. |
Parameter spesifik vendor | (Panjang total parameter - 4) * oktet | Format spesifik vendor jejak pesan LMP, Bluetooth multi-link/coex penjadwalan jejak dan pengontrol informasi debug data dump. |
Dukungan Multi-Advertiser
Tujuan dukungan multi-penasihat adalah sebagai berikut:
- Kemampuan untuk mendukung banyak iklan (
max_advt_instances
) - Kekuatan 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 dekat dengan standar yang ada, perintah khusus vendor berikut disediakan. Mereka 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 |
Acara lengkap perintah akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 Octet | Status Lengkap Perintah |
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 Basis: Spesifikasi Bluetooth Core 4.1, halaman 964 (Perintah Parameter Periklanan LE Set)
Sub OCF: 0x01
Parameter Sub-Komandan | Ukuran | Tujuan |
---|---|---|
Advertising_Interval_Min | Per spec | Per spec |
Advertising_Interval_Max | Per spec | Per spec |
Advertising_Type | Per spec | Per spec |
Own_Address_Type | Per spec | Per spec |
Own_Address | Per spec | Per spec |
Direct_Address_Type | Per spec | Per spec |
Direct_Address | Per spec | Per spec |
Advertising_Channel_Map | Per spec | Per spec |
Adverstising_Filter_Policy | Per spec | Per spec |
Advertising_Instance | 1 Octet | Menentukan penerapan parameter di atas untuk suatu instance |
Tx_power | 1 Octet | Transmit_power Unit - Dalam DBM (integer yang ditandatangani) Rentang (-70 hingga +20) |
Parameter Own_Address
dapat menjadi alamat yang dikonfigurasi host pada saat menyiapkan instance multi-penyelekalan ini. Ini memberikan kemampuan untuk memiliki alamat pribadi yang dapat diselesaikan pada saat transmisi suar pertama. Iklan pada contoh akan terus berlanjut terlepas dari koneksi. Host BT Stack dapat mengeluarkan perintah untuk memulai iklan pada contoh, memposting koneksi.
Acara lengkap perintah akan dihasilkan untuk perintah ini sebagaimana ditentukan dalam spesifikasi Bluetooth Core 4.1, per perintah di atas. Pengontrol akan merespons dengan kode non-success (parameter tidak valid) jika instance iklan atau parameter Tx_Power
tidak valid.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 Octet | Status Lengkap Perintah |
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 Periklanan LE Set)
Sub OCF: 0x02
Parameter Sub-Komandan | Ukuran | Tujuan |
---|---|---|
Advertising_Data_Length | Per spec | Per spec |
Advertising_Data | Per spec | Per spec |
Advertising_Instance | 1 Octet | Menentukan penerapan parameter di atas untuk suatu instance |
Acara lengkap perintah akan dihasilkan untuk perintah ini sebagaimana ditentukan dalam spesifikasi Bluetooth Core 4.1, per perintah di atas. Pengontrol akan merespons dengan kode non-kesedihan jika instance iklan atau parameter Tx_Power
tidak valid.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 Octet | Status Lengkap Perintah |
Multi_advt_opcode | 1 Octet | 0x02 [ Set_Advt_Data_Multi_Sub_Cmd] |
Le_multi_advt_command: set_scan_respes_data_multi_sub_cmd
Referensi Basis: Spesifikasi Bluetooth Core 4.1, halaman 970 (Perintah Data Respons Pemindaian LE Set)
Sub OCF: 0x03
Parameter Sub-Komandan | Ukuran | Tujuan |
---|---|---|
Scan_Response_Data_Length | Per spec | Per spec |
Scan_Response_Data | Per spec | Per spec |
Advertising_Instance | 1 Octet | Menentukan penerapan parameter di atas untuk suatu instance |
Acara lengkap perintah akan dihasilkan untuk perintah ini sebagaimana ditentukan dalam spesifikasi Bluetooth Core 4.1, per perintah di atas. Pengontrol akan merespons dengan kode non-kesederhanaan (parameter tidak valid) jika instance iklan atau parameter Tx_Power
tidak valid.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 Octet | Status Lengkap Perintah |
Multi_advt_opcode | 1 Octet | 0x03 [ Set_Scan_Resp_Data_Multi_Sub_Cmd] |
Le_multi_advt_command: set_random_addr_multi_sub_cmd
Referensi Basis: Spesifikasi Bluetooth Core 4.1, halaman 963 (Perintah Alamat Random LE Set)
Sub OCF: 0x04
Parameter Sub-Komandan | Ukuran | Tujuan |
---|---|---|
Alamat Acak | Per spec | Per spec |
Advertising_Instance | 1 Octet | Menentukan penerapan parameter di atas untuk suatu instance |
Acara lengkap perintah akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 Octet | Status Lengkap Perintah |
Multi_advt_opcode | 1 Octet | 0x04 [ Set_Random_Addr_Multi_Sub_Cmd] |
Le_multi_advt_command: set_advt_enable_multi_sub_cmd
Referensi Basis: Spesifikasi Bluetooth Core 4.1, halaman 971 (LE Set Advertise Enable Command dalam spesifikasi inti itu)
OCF: 0x05
Parameter Sub-Komandan | Ukuran | Tujuan |
---|---|---|
Advertising_Enable | 1 Octet | Nilai 1 berarti mengaktifkan. Nilai lain berarti nonaktifkan. |
Advertising_Instance | 1 Octet | Menentukan penerapan parameter di atas untuk suatu instance. Instance 0 berarti instance HCI standar. |
Acara lengkap perintah akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 Octet | Status Lengkap Perintah |
Multi_advt_opcode | 1 Octet | 0x05 [ Set_Advt_Enable_Multi_Sub_Cmd] |
Resolusi alamat pribadi yang dibongkar
Fitur ini menyelesaikan alamat pribadi di firmware atau perangkat keras pengontrol, yang memberikan manfaat berikut:
- Latensi yang terlibat dengan tuan rumah dalam menyelesaikan alamat pribadi
- Menghemat daya dengan menahan diri untuk tidak membangunkan tuan rumah
Le_set_rpa_timeout
OCF: 0x15c
Parameter Perintah | Ukuran | Tujuan |
---|---|---|
LE_local_IRK | 16 oktet | Perangkat lokal IRK digunakan untuk menghasilkan alamat yang dapat diselesaikan secara acak (ES). |
tRPA_min | 2 oktet | Batas waktu generasi RPA minimum dalam hitungan detik. Pengontrol harus menghasilkan alamat yang dapat diselesaikan baru untuk setiap acara iklan/pemindaian/koneksi pada atau setelah timeout ini. Rentang yang valid: 300-1800 |
tRPA_max | 2 oktet | Batas waktu generasi RPA maksimum dalam hitungan detik. Pengontrol harus menghasilkan alamat yang dapat diselesaikan baru untuk setiap acara iklan/pemindaian/koneksi pada atau sebelum batas waktu ini. Rentang yang valid: tRPA_min -1800 |
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 Octet | Status perintah. Nilai status HCI yang disarankan: 0x00 Sukses 0x01 Perintah Tidak Diketahui (jika tidak didukung) 0x12 Parameter Perintah Tidak Valid (Jika ada parameter yang ada di luar kisaran yang diberikan) |
Le_rpa_offload_command
OCF: 0x155
Parameter Perintah | Ukuran | Tujuan |
---|---|---|
RPA_offload_opcode | 1 Octet | 0x1 - Aktifkan fitur spesifik pelanggan 0x2 - Tambahkan irk ke daftar 0x3 - Hapus irk dari daftar 0x4 - Daftar Bersihkan IRK 0x5 - Baca entri daftar irk |
Acara lengkap perintah akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 oktet | Status Lengkap Perintah |
Event_RPA_offload_opcode | 1 Octet | 0x1 - Aktifkan fitur spesifik pelanggan 0x2 - Tambahkan irk ke daftar 0x3 - Hapus irk dari daftar 0x4 - Daftar Bersihkan IRK 0x5 - Baca entri daftar irk |
Le_rpa_offload: enable_cust_specific_sub_command
Sub OCF: 0x01
Parameter Sub-Komandan | Ukuran | Tujuan |
---|---|---|
enable_customer_specific_feature_set | 1 Octet | 0x01 - Aktifkan fitur RPA yang dilepas 0x00 - Nonaktifkan fitur RPA yang dilepas |
Offload RPA harus diaktifkan oleh host, berdasarkan kemampuan chip. Lihat LE_Get_Vendor_Capabilities_Command
. Setiap chip dapat memiliki max_irk_list_sz
yang bervariasi di firmware.
Acara lengkap perintah akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 Octet | Status Lengkap Perintah |
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 Sub-Komandan | Ukuran | Tujuan |
---|---|---|
LE_IRK | 16 oktet | Le Irk (1st Byte LSB) |
Address_Type | 1 Octet | 0: Alamat Publik 1: Alamat acak |
LE_Device_Address | 6 oktet | Alamat publik atau acak yang terkait dengan IRK (LSB byte 1) |
Acara lengkap perintah akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 Octet | Status Lengkap Perintah |
Event_cust_specific_feature_opcode | 1 Octet | 0x02 [Tambahkan 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 Sub-Komandan | Ukuran | Tujuan |
---|---|---|
Address_Type | 1 Octet | 0: Alamat Publik 1: Alamat acak |
LE_Device_Address | 6 oktet | Alamat publik atau acak yang mengaitkan irk |
Acara lengkap perintah akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 Octet | Status Lengkap Perintah |
Event_cust_specific_feature_opcode | 1 Octet | 0x03 [Hapus 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 Sub-Komandan | Ukuran | Tujuan |
---|---|---|
Tidak ada |
Acara lengkap perintah akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 Octet | Status Lengkap Perintah |
Event_cust_specific_feature_opcode | 1 Octet | 0x04 [Daftar IST 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 Sub-Komandan | Ukuran | Tujuan |
---|---|---|
LE_read_IRK_list_entry-index | 1 Octet | Indeks Daftar IRK [0, max_irk_list_sz-1] |
Acara lengkap perintah akan dihasilkan untuk perintah ini.
Parameter pengembalian | Ukuran | Tujuan |
---|---|---|
Status | 1 Octet | Status Lengkap Perintah |
Event_cust_specific_feature_opcode | 1 Octet | 0x05 [Baca entri daftar irk] |
LE_Read_IRK_List_entry | 1 Octet | Indeks irk yang ingin dibaca oleh host (ukuran daftar irk maksimum adalah 32) |
LE_IRK | 16 oktet | Nilai irk |
Address_Type | 1 Octet | 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 saat ini dari irk ini |