Host Controller Interface (HCI) digunakan untuk berinteraksi dengan pengontrol Bluetooth.
Dokumen ini menyediakan daftar persyaratan Bluetooth (BT) dan Bluetooth Hemat Energi (BLE). Tujuannya adalah agar vendor stack Host BT dan vendor pengontrol BT sesuai dengan persyaratan platform ini untuk menggunakan set fitur yang dijelaskan di bawah.
Dokumen ini mengacu pada Spesifikasi Bluetooth Core 5.2 sebagai "spesifikasi". Spesifikasi Bluetooth Core 5.2 tersedia di situs Bluetooth SIG bersama dengan dokumen lain yang diadopsi.
Gambaran umum desain umum
Kemampuan dan konfigurasi chip
Sebagai platform terbuka, Android memiliki matriks rilis software, OEM, vendor, serta kemampuan platform dan chip.
Untuk mengelola berbagai lanskap dan mengelola migrasi, filosofi desain yang memungkinkan pengontrol BT mengekspos kemampuannya (di luar Spesifikasi Bluetooth Core 5.2 standar) dijelaskan dalam dokumen ini. Stack BT host kemudian dapat menggunakan kemampuan ini untuk menentukan fitur mana yang akan diaktifkan.
Mendukung standar terbuka
Salah satu tujuan Android adalah mendukung standar terbuka setelah ratifikasi dalam spesifikasi Bluetooth. Jika fitur yang dijelaskan di bawah ini tersedia dalam metode HCI standar di spesifikasi Bluetooth mendatang, kami akan 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 yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
max_advt_instances (Tidak digunakan lagi) |
1 oktet |
Jumlah instance iklan yang didukung. Dicadangkan setelah v0.98. Parameter ini tidak digunakan lagi dalam spesifikasi fitur Google v0.98 dan yang lebih tinggi dan digantikan oleh LE Extended Advertising yang tersedia dalam spesifikasi BT versi 5.0 dan yang lebih tinggi. |
offloaded_resolution_of_private-address (Tidak digunakan lagi) |
1 oktet |
Kemampuan chip BT dari RPA. Jika didukung oleh chip, chip tersebut memerlukan pengaktifan oleh host. 0 = Tidak mampu 1 = Mampu Dicadangkan setelah v0.98. Parameter ini tidak digunakan lagi dalam spesifikasi fitur Google v0.98 dan yang lebih tinggi serta diganti dengan Fitur privasi yang tersedia dalam spesifikasi BT versi 4.2 dan yang lebih tinggi. |
total_scan_results_storage |
2 oktet | Penyimpanan untuk hasil pemindaian dalam byte |
max_irk_list_sz |
1 oktet | Jumlah entri IRK yang didukung dalam firmware |
filtering_support |
1 oktet |
Dukungan untuk pemfilteran di pengontrol 0 = Tidak didukung 1 = Didukung |
max_filter |
1 oktet | Jumlah filter yang didukung |
activity_energy_info_support |
1 oktet |
Mendukung pelaporan informasi aktivitas dan energi 0 = Tidak mampu 1 = Mampu |
version_supported |
2 oktet |
Menentukan versi spesifikasi fitur Google yang didukung byte[0] = Angka utama byte[1] = Angka minor v1.04 byte[0] = 0x01 byte[1] = 0x04 |
total_num_of_advt_tracked |
2 oktet |
Total jumlah pengiklan yang dilacak untuk tujuan OnLost /OnFound
|
extended_scan_support |
1 oktet | Mendukung interval dan jendela pemindaian yang diperpanjang |
debug_logging_supported |
1 oktet | Mendukung logging informasi debug biner dari pengontrol |
LE_address_generation_offloading_support (Tidak digunakan lagi) |
1 oktet |
0 = Tidak didukung 1 = Didukung Dicadangkan setelah v0.98. Parameter ini tidak digunakan lagi dalam spesifikasi fitur Google v0.98 dan yang lebih tinggi serta diganti dengan Fitur privasi yang tersedia dalam spesifikasi BT versi 4.2 dan yang lebih tinggi. |
A2DP_source_offload_capability_mask |
4 Oktet |
Bit mask untuk jenis codec yang didukung Bit 0 - SBC Bit 1 - AAC Bit 2 - APTX Bit 3 - APTX HD Bit 4 - LDAC Bit 5-31 dicadangkan |
bluetooth_quality_report_support |
1 oktet |
Mendukung pelaporan peristiwa Kualitas Bluetooth 0 = Tidak dapat 1 = Dapat dilakukan |
dynamic_audio_buffer_support |
4 oktet |
Mendukung buffer audio dinamis di pengontrol Bluetooth Bit mask untuk jenis codec yang didukung Bit 0 - SBC Bit 1 - AAC Bit 2 - APTX Bit 3 - APTX HD Bit 4 - LDAC Bit 5-31 dicadangkan |
a2dp_offload_v2_support |
1 oktet |
Mendukung perintah A2dp Offload v2 di pengontrol Bluetooth (lihat
Memulai A2DP Offload,
Menghentikan A2DP Offload) 0 = Tidak didukung 1 = Didukung |
Pengelompokan hasil pemindaian
Tujuan desainnya adalah meningkatkan cara notifikasi peristiwa Bluetooth LE Scan Response dikirimkan ke host untuk menghemat daya di host.
Dengan mengurangi seberapa sering pengontrol memberi tahu prosesor aplikasi host untuk memindai hasil, prosesor aplikasi host dapat tetap tidak ada aktivitas/tidur lebih lama. Tindakan ini akan mengurangi konsumsi daya di host. Parameter
nilai yang ditampilkan total_scan_results_storage
dari
LE_Get_Vendor_Capabilities_Command
menunjukkan kemampuan
chip untuk menyimpan hasil pemindaian.
Fitur ini berfokus pada pengelolaan dan konfigurasi fasilitas penyimpanan Hasil LE Scan di pengontrol Bluetooth. Penyimpanan ini digunakan untuk mengelompokkan data iklan sementara waktu serta memindai data dan metadata yang diterima oleh pengontrol untuk dikirim nanti ke host.
Firmware harus mendukung dua jenis pengelompokan, yang dapat diaktifkan secara bersamaan:
- Terpotong. Berisi elemen informasi berikut: {MAC, TX Power, RSSI, Timestamp}
- Lengkap. 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 - 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 yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Batch_Scan_opcode |
1 oktet |
0x1 - Aktifkan fitur khusus pelanggan 0x2 - Menetapkan parameter Penyimpanan Pemindaian Batch 0x3 - Menetapkan parameter Pemindaian Batch 0x4 - Membaca parameter Hasil Pemindaian Batch |
LE_Batch_Scan_Command: Aktifkan fitur Khusus Pelanggan
Sub OCF: 0x01
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
enable_customer_specific_feature_set |
1 oktet |
0x01 - Aktifkan fitur Pemindaian Batch 0x00 - Nonaktifkan fitur Pemindaian Batch |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Batch_Scan_opcode |
1 oktet |
0x1 - Aktifkan 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 Batch Scan Storage Param
Sub OCF: 0x02
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
Batch_Scan_Full_Max |
1 oktet |
Ruang penyimpanan maksimum (dalam %) yang dialokasikan ke gaya penuh [Rentang: 0-100] |
Batch_Scan_Truncated_Max |
1 oktet |
Ruang penyimpanan maksimum (dalam %) yang dialokasikan ke gaya yang terpotong [Rentang: 0-100] |
Batch_Scan_Notify_Threshold |
1 oktet |
Tingkat notifikasi penyiapan (dalam %) untuk setiap penyimpanan gabungan
[Range: 0-100] Menyetel ke 0 akan menonaktifkan notifikasi. Peristiwa HCI khusus vendor dihasilkan (subperistiwa pelanggaran batas penyimpanan) |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Batch_scan_opcode |
1 oktet | 0x02 [Mengatur parameter Pemindaian Batch] |
LE_Batch_Scan_Command: Menetapkan subperintah Batch Scan Param
Sub OCF: 0x03
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
Batch_Scan_Mode |
1 oktet |
0x00 – Pemindaian batch dinonaktifkan 0x01 – Mode terpotong diaktifkan 0x02 – Mode penuh diaktifkan 0x03 – Terpotong dan Mode penuh diaktifkan |
Duty_cycle_scan_window |
4 oktet | Waktu pemindaian Batch Scan (# 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 - Hapus iklan terlama 1 - Hapus iklan dengan RSSI terlemah |
Sub-perintah ini akan memulai pemindaian batch, jika diaktifkan. Dalam Pemindaian terpotong, hasil disimpan dalam bentuk terpotong dengan kunci unik untuk Gaya terpotong = {BD_ADDR,
pemindaian_interval}. Artinya, hanya satu BD_ADDR will
yang direkam untuk setiap interval pemindaian. Data yang perlu disimpan untuk mode Terpotong adalah sebagai berikut: {BD_ADDR
, Tx Power, RSSI, Timestamp}
Jika Mode penuh diaktifkan, pemindaian aktif akan digunakan dan Respons Pemindaian akan direkam. Kunci unik Gaya penuh = {MAC, Paket iklan},
terlepas dari interval pemindaian. Data yang perlu disimpan untuk Mode lengkap adalah
{BD_ADDR
, Tx Power, RSSI, Stempel waktu, Paket iklan, Respons
Pemindaian}. Dalam Gaya penuh, paket AD yang sama, jika dilihat beberapa kali
pada interval pemindaian yang berbeda, hanya direkam sekali. Namun, dalam mode Terpotong, yang penting adalah visibilitas BA_ADDR
di berbagai interval pemindaian (sekali per interval pemindaian). RSSI adalah nilai rata-rata dari semua duplikat iklan unik dalam interval pemindaian.
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Batch_scan_opcode |
1 oktet | 0x03 [Setel Parameter Pemindaian Batch] |
LE_Batch_Scan_Command: Membaca sub-perintah Batch Scan Results
Sub OCF: 0x04
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
Batch_Scan_Data_read |
1 oktet |
0x01 – Data mode terpotong 0x02 – Data mode penuh |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini. Saat host mengeluarkan perintah ini, semua hasil pada pengontrol mungkin tidak muat dalam satu peristiwa Command Complete. Host akan melakukan iterasi penerbitan perintah ini hingga hasil yang sesuai dalam peristiwa Perintah Lengkap menunjukkan 0 dalam jumlah kumpulan data, yang menunjukkan bahwa pengontrol tidak memiliki kumpulan data lagi untuk dikomunikasikan dengan host. Setiap peristiwa Perintah Selesai dapat berisi beberapa kumpulan data hanya dari satu jenis data (Lengkap atau Terpotong).
Referensi waktu pengontrol dan host tidak disinkronkan. Satuan stempel waktu adalah 50 md. Nilai stempel waktu didasarkan pada waktu
Read_Batch_Scan_Results_Sub_cmd
diberikan oleh host. Jika waktu kedatangan perintah adalah
T_c
di firmware, waktu sebenarnya untuk stempel waktu
diambil di firmware adalah T_fw
. Waktu pelaporannya adalah:
(T_c
- T_fw
). T_c
dan
T_fw
berada dalam domain waktu firmware. Dengan begitu, host
dapat menghitung berapa lama peristiwa tersebut terjadi.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Batch_scan_opcode |
1 oktet | 0x03 [Mengatur 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 |
Format Truncat0_Adoct0: Alamat[0]: 6 octet0: 6 octet [0] Address_Type[0]: 1 octet Tx_Pwr[0]: 1 octet RSSI[0] : 1 octet Stempel waktu[0]: 2 octet [beberapa data ( num_of_records ) dengan format di atas]num_of_records Scan_data_resp
|
Filter Konten Paket Iklan
Gunakan ini untuk mengaktifkan/menonaktifkan/menyiapkan Filter Konten Paket Iklan (APCF) di pengontrol. APCF memfilter laporan iklan di pengontrol, tetapi tidak memfilter iklan berkala.
{i>LE_APCF_Command<i}
OCF: 0x157
Parameter perintah | Ukuran | Tujuan |
---|---|---|
APCF_opcode |
1 oktet |
0x0x0 - Penggunaan APCF 0x0 - APCF Aktifkan 0x01 - Parameter Pemfilteran Kumpulan APCF APCF 0x02 - Alamat Penyiar APCF CFF 0x03 - UUID Layanan APCF - APCF 0x04 - UUID Permintaan Layanan APCF CFF 0x06 - Nama Lokal Produsen APxCF |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status pengembalian |
APCF_opcode |
1 oktet |
0x0x0 - Penggunaan APCF 0x0 - APCF Aktifkan 0x01 - Parameter Pemfilteran Kumpulan APCF APCF 0x02 - Alamat Penyiar APCF CFF 0x03 - UUID Layanan APCF - APCF 0x04 - UUID Permintaan Layanan APCF CFF 0x06 - Nama Lokal Produsen APxCF |
LE_APCF_Command: Enable_sub_cmd
Sub OCF: 0x00
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
APCF_enable |
1 oktet |
0x01 - Aktifkan fitur APCF 0x00 - Nonaktifkan fitur APCF |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
APCF_opcode |
1 oktet | 0x0 - APCF Aktifkan |
APCF_Enable |
1 oktet | 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 pada chip.
Sub OCF: 0x01
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
APCF_Action |
1 oktet |
0x00 - Menambahkan 0x01 - Menghapus 0x02 - Hapus Delete akan menghapus filter tertentu beserta entri fitur terkait di tabel lain. Clear akan menghapus semua filter dan entri terkait dalam tabel lainnya. |
APCF_Filter_Index |
1 oktet | Indeks filter (0, max_filter-1 ) |
APCF_Feature_Selection |
2 oktet |
Bit mask untuk fitur yang dipilih: Bit 0: Disetel untuk mengaktifkan filter Alamat Siaran Bit 1: Setel untuk mengaktifkan filter Perubahan Data Layanan Bit 2: Setel untuk mengaktifkan pemeriksaan UUID Layanan Bit 3: Setel untuk mengaktifkan pemeriksaan UUID Permintaan Layanan Bit 4: Setel untuk mengaktifkan pemeriksaan Nama Lokal Bit 5: Setel untuk mengaktifkan Pemeriksaan Data Produsen Bit 6: Setel untuk mengaktifkan Pemeriksaan UUID Layanan transpor Bit 4: Setel untuk mengaktifkan pemeriksaan Nama Lokal Bit 5: Setel untuk mengaktifkan Pemeriksaan Data Produsen Bit 6: Setel untuk mengaktifkan Pemeriksaan Data Produsen 8 |
APCF_List_Logic_Type |
2 oktet |
Operasi logika untuk setiap pemilihan fitur (posisi per-bit)
yang ditentukan dalam APCF_Feature_Selection .
Hanya valid saat fitur diaktifkan. Nilai posisi bit: 0: OR 1: AND Jika logika "AND" dipilih, paket ADV akan meneruskan filter hanya jika berisi SEMUA entri dalam daftar. Jika logika "OR" dipilih, paket ADV akan meneruskan filter jika berisi salah satu entri dalam daftar. |
APCF_Filter_Logic_Type |
1 oktet |
0x00: OR 0x01: AND Catatan: Jenis logika adalah T/A untuk tiga kolom pertama dari APCF_Feature_Selection , yang selalu berupa logika "AND". Nilai tersebut
hanya berlaku untuk empat kolom (Bit 3 - Bit 6) dari
APCF_Feature_Selection .
|
rssi_high_thresh |
1 oktet |
[dalam dBm] Pengiklan dianggap terlihat hanya jika sinyalnya lebih tinggi daripada nilai minimum tinggi RSSI. Jika tidak, firmware harus 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] Waktunya firmware bertahan lama dan mengumpulkan iklan tambahan sebelum melaporkan. |
onfound_timeout_cnt |
1 oktet |
Hanya valid jika delivery_mode adalah on_found .[count] Jika iklan di onFound tetap ada di firmware selama
durasi onfound_timeout , iklan akan mengumpulkan beberapa
iklan dan jumlahnya diperiksa. Jika jumlahnya melebihi
onfound_timeout_cnt , penghitungan
segera dilaporkan OnFound setelahnya.
|
rssi_low_thresh |
1 oktet |
Hanya valid jika delivery_mode adalah on_found .[dalam dBm] Paket pengiklan dianggap tidak terlihat jika RSSI dari paket yang diterima tidak di atas nilai minimum RSSI. |
onlost_timeout |
2 oktet |
Hanya valid jika delivery_mode adalah on_found .[dalam milidetik] Jika iklan, setelah ditemukan, tidak terlihat secara berdekatan selama periode lost_timeout , iklan tersebut akan segera dilaporkan
hilang.
|
num_of_tracking_entries |
2 oktet |
Hanya valid jika delivery_mode adalah on_found .[count] Total jumlah pengiklan yang akan dilacak per filter. |
Nilai RSSI harus menggunakan pelengkap 2 untuk mewakili nilai negatif.
Host harus dapat mengonfigurasi beberapa filter dengan
APCF_Application_Address_type
yang disetel ke 0x02 (untuk semua
alamat penyiar) untuk mengelola berbagai kombinasi filter.
Pemfilteran, pengelompokan, dan pelaporan adalah konsep yang saling terkait. Setiap
iklan dan respons pemindaian terkait harus melalui semua
filter, satu per satu. Dengan demikian, tindakan yang dihasilkan
(delivery_mode
) terkait erat dengan pemfilteran. Mode pengiriman adalah: report_immediately
, batch
, dan onFound
. Nilai
OnLost
terkait dengan OnFound
dalam arti
akan muncul setelah OnFound
jika hilang.
Alur pemrosesan ini menggambarkan model konseptual:
![](https://source.android.com/static/docs/core/connect/bluetooth/images/bt_filter_batch_report.png?authuser=1&hl=id)
Saat frame iklan (atau pemindaian respons) diterima, frame tersebut diterapkan ke semua filter dalam urutan serial. Ada kemungkinan bahwa iklan dapat menyebabkan pelaporan langsung berdasarkan satu filter dan pengelompokan yang sama karena tindakan filter yang berbeda.
Batas level RSSI (tinggi dan rendah) memberikan kemampuan untuk mengontrol kapan frame terlihat untuk pemrosesan filter, bahkan saat paket yang valid diterima oleh pengontrol. Jika mode pengiriman ditetapkan ke langsung atau dikelompokkan, RSSI frame akan 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 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 menetapkan filter yang sesuai. Kemudian, saat aplikasi kedua mengeluarkan pemindaian reguler, pengelompokan sebelumnya akan berlanjut. Namun, karena pemindaian reguler, proses ini mirip dengan penambahan filter null (bersama semua filter yang ada) secara konseptual bersama dengan perintah pemindaian LE. Parameter perintah LE Scan lebih diprioritaskan saat aktif. Saat 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 untuk onLost
. Peristiwa yang sesuai adalah subperistiwa pelacakan LE Advt.
Transisi OnFound/OnLost
untuk filter (jika diaktifkan) akan
terlihat seperti berikut:
![](https://source.android.com/static/docs/core/connect/bluetooth/images/bt_onfound_onlost.png?authuser=1&hl=id)
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
APCF_opcode |
1 oktet | 0x01 - Parameter Pemfilteran Mengatur APCF |
APCF_Action |
1 oktet | APCF_Action perintah echo back |
APCF_AvailableSpaces |
1 oktet | Jumlah entri yang tersedia dalam tabel filter |
LE_APCF_Command: broadcast_address_sub_cmd
Subperintah ini digunakan untuk menambahkan atau menghapus alamat pengiklan atau menghapus daftar alamat pengiklan untuk pemfilteran pada-chip.
Sub OCF: 0x02
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
APCF_Action |
1 oktet |
0x00 - Add 0x01 - Delete 0x02 - Clear Delete akan menghapus alamat penyiar yang ditentukan dalam filter yang ditentukan. Hapus akan menghapus semua alamat penyiar dalam filter yang ditentukan. |
APCF_Filter_Index |
1 oktet | Indeks filter (0, max_filter-1 ) |
APCF_Broadcaster_Address |
6 oktet | Alamat perangkat 6 byte yang akan ditambahkan ke atau dihapus dari daftar alamat penyiar |
APCF_Application_Address_type |
1 oktet |
0x00: Publik 0x01: Acak 0x02: 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 yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
APCF_opcode |
1 oktet | 0x02 - Alamat Penyiar APCF |
APCF_Action |
1 oktet | APCF_Action perintah echo back |
APCF_AvailableSpaces |
1 oktet | Jumlah entri gratis yang masih tersedia di tabel Alamat Siaran |
LE_APCF_Command: service_uuid_sub_cmd
Subperintah ini digunakan untuk menambahkan atau menghapus UUID layanan, atau menghapus daftar UUID layanan untuk pemfilteran on-chip.
Sub OCF: 0x03
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
APCF_Action |
1 oktet |
0x00 - Add 0x01 - Delete 0x02 - Clear Delete 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 oktet | Indeks filter (0, max_filter -1) |
APCF_UUID |
2,4,16 oktet | UUID Layanan (16-bit, 32-bit, atau 128-bit) untuk menambahkan, 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.
|
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
APCF_opcode |
1 oktet | 0x03 - UUID Layanan APCF |
APCF_Action |
1 oktet | APCF_Action perintah echo back |
APCF_AvailableSpaces |
1 oktet | Jumlah entri gratis yang masih tersedia di tabel UUID Layanan |
LE_APCF_Command: requests_uuid_sub_cmd
Subperintah ini digunakan untuk menambahkan atau menghapus UUID permintaan atau menghapus daftar UUID permintaan untuk pemfilteran on-chip.
Sub OCF: 0x04
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
APCF_Action |
1 oktet |
0x00 - Add 0x01 - Delete 0x02 - Clear Delete akan menghapus alamat UUID permintaan dalam filter yang ditentukan. Hapus 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 Permintaan (16-bit, 32-bit, atau 128-bit) yang akan ditambahkan ke atau dihapus dari daftar. |
APCF_UUID_MASK |
2,4,16 oktet |
UUID Mask (16-bit, 32-bit, atau 128-bit) yang akan ditambahkan ke dalam
daftar. Panjangnya harus sama dengan APCF_UUID .
|
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
APCF_opcode |
1 oktet | 0x04 - UUID Permintaan APCF |
APCF_Action |
1 oktet | APCF_Action perintah echo back |
APCF_AvailableSpaces |
1 oktet | Jumlah entri gratis yang masih tersedia dalam tabel UUID Permintaan |
LE_APCF_Command: local_name_sub_cmd
Sub-perintah ini digunakan untuk menambahkan atau menghapus string nama lokal atau menghapus daftar string nama lokal untuk pemfilteran on-chip.
Sub OCF: 0x05
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
APCF_Action |
1 oktet |
0x00 - Add 0x01 - Delete 0x02 - Clear Delete akan menghapus string nama lokal yang ditentukan dalam filter yang ditentukan. Clear akan menghapus semua string nama lokal dalam filter yang ditentukan. |
APCF_Filter_Index |
1 oktet | Indeks filter (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData |
Ukuran variabel |
String karakter untuk nama lokal. Catatan:
|
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
APCF_opcode |
1 oktet | 0x05 - Nama Lokal APCF |
APCF_Action |
1 oktet | APCF_Action perintah echo back |
APCF_AvailableSpaces |
1 oktet | Jumlah entri gratis yang masih tersedia di tabel Nama lokal |
LE_APCF_Command: manf_data_sub_cmd
Subperintah ini digunakan untuk menambah atau menghapus string data produsen atau menghapus daftar string data produsen untuk pemfilteran on-chip.
Sub OCF: 0x06
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
APCF_Action |
1 oktet |
0x00 - Add 0x01 - Delete 0x02 - Clear Delete akan menghapus string data produsen yang ditentukan dalam filter yang ditentukan. Clear akan menghapus semua string data produsen dalam filter yang ditentukan. |
APCF_Filter_Index |
1 oktet | Indeks Filter (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData |
Ukuran variabel |
String karakter untuk data produsen. Catatan:
|
APCF_ManData_Mask |
Ukuran variabel |
Masker data produksi yang akan ditambahkan ke daftar. Panjangnya harus sama dengan APCF_LocName_or_ManData_or_SerData .
|
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
APCF_opcode |
1 oktet | 0x06 - Data Produsen APCF |
APCF_Action |
1 oktet | APCF_Action perintah echo back |
APCF_AvailableSpaces |
1 oktet | Jumlah entri gratis yang masih tersedia dalam tabel Data Manufacturer |
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 on-chip.
Sub OCF: 0x07
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
APCF_Action |
1 oktet |
0x00 - Add 0x01 - Delete 0x02 - Clear Delete 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 |
Data mask 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 yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
APCF_opcode |
1 oktet | 0x07 - Data Layanan APCF |
APCF_Action |
1 oktet | APCF_Action perintah echo back |
APCF_AvailableSpaces |
1 oktet | Jumlah entri gratis yang masih tersedia untuk tabel Data Layanan |
LE_APCF_Command: ad_type_sub_cmd
Subperintah ini digunakan untuk menambahkan atau menghapus jenis AD atau menghapus daftar jenis AD
untuk pemfilteran on-chip. Gunakan
read_extended_features_sub_cmd
untuk memeriksa apakah perintah ini
didukung atau tidak.
Jika APCF_AD_DATA_Length
adalah 0, filter APCF_AD_TYPE
tanpa
membandingkan Data AD dan AD Data Mask.
Jika panjang data paket ADV yang diterima melebihi AD_DATA_LENGTH
, hanya bandingkan
AD_DATA_LENGTH
byte pertama Data AD dan abaikan data yang tersisa.
Sub OCF: 0x09
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
APCF_Action |
1 oktet |
0x00 - Add 0x01 - Delete 0x02 - Clear Delete akan menghapus jenis AD yang ditentukan dalam filter yang ditentukan. Hapus akan menghapus semua jenis AD dalam filter yang ditentukan. |
APCF_Filter_Index |
1 oktet | Indeks Filter (0, max_filter -1) |
APCF_AD_TYPE |
1 oktet | Jenis AD untuk menambahkan ke, atau menghapus dari, daftar. Abaikan jika APCF_Action adalah 0x02 (Hapus) |
APCF_AD_DATA_Length |
1 oktet |
0x00 - berarti jangan memfilter konten data Abaikan jika APCF_Action adalah 0x02 (Hapus)
|
APCF_AD_DATA |
Ukuran variabel |
Berukuran variabel, berdasarkan APCF_AD_DATA_Length Abaikan jika APCF_Action adalah 0x02 (Hapus) |
APCF_AD_DATA_MASK |
Ukuran variabel |
Berukuran variabel, berdasarkan APCF_AD_DATA_Length Abaikan jika APCF_Action adalah 0x02 (Hapus)Panjangnya harus sama dengan APCF_AD_DATA .
|
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
APCF_opcode |
1 oktet | 0x09 - Jenis IKLAN APCF |
APCF_Action |
1 oktet | APCF_Action perintah echo back |
APCF_AvailableSpaces |
1 oktet | Jumlah entri gratis yang masih tersedia dalam tabel AD Type |
LE_APCF_Command: read_extended_features_sub_cmd
Subperintah ini digunakan untuk membaca fitur APCF yang diperluas.
Sub OCF: 0xFF
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
Tidak berlaku | Parameter perintah kosong. |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
APCF_opcode |
1 oktet | 0xFF - Fitur_Baca_Diperluas_APCF |
APCF_extended_features |
2 oktet |
Bit mask untuk fitur tambahan yang didukung:
Nilai bit
|
Perintah informasi aktivitas dan energi pengontrol
Tujuan 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 dalam 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 tumpukan host BT, seperti yang ditentukan di tingkat pengguna:
- Tidak ada aktivitas: [pemindaian halaman, LE advt, pemindaian pertanyaan, pemindaian LE]
- Pindai: [paging/question/mencoba menghubungkan]
- Aktif: [Link ACL aktif, link SCO sedang berlangsung, mode sniff]
Aktivitas yang dilacak oleh pengontrol selama masa pakainya adalah Tx, waktu Rx, waktu tidak ada aktivitas, dan total energi yang dikonsumsi. Data tersebut akan dihapus saat dibaca dari host.
{i>LE_Get_Controller_Activity_Energy_Info<i}
Ini adalah perintah khusus vendor.
OCF: 0x159
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
NA | Parameter perintah kosong |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
total_tx_time_ms |
4 oktet | Total waktu performa Tx |
total_rx_time_ms |
4 oktet | Total waktu menjalankan Rx |
total_idle_time_ms |
4 oktet | Total waktu dalam tidak ada aktivitas (status daya rendah saat tidak tidur) |
total_energy_used |
4 oktet | Total energi yang digunakan [produk dari arus (mA), tegangan (V), dan waktu (md)] |
Perintah parameter pemindaian set LE extended
Perintah ini dapat digunakan untuk mengaktifkan jendela pemindaian dan interval yang lebih besar di pengontrol. Sesuai Spesifikasi BT Core 5.2, jendela dan interval pemindaian memiliki batas batas atas 10,24 detik, yang menghambat interval pemindaian aplikasi yang lebih lama di atas 10,24 detik.
Referensi dasar: Spesifikasi BT Core 5.2, halaman 2493 (LE Set Scan Parameters Command)
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. SCAN_REQ paket mungkin dikirim.
|
LE_Ex_Scan_Interval |
4 oktet |
Ditetapkan sebagai interval waktu dari saat Pengontrol memulai pemindaian LE
terakhirnya hingga pemindaian LE berikutnya dimulai. Rentang: 0x0004 hingga 0x00FFFFFF Default: 0x0010 (10 md) Waktu = N * 0,625 md Rentang waktu: 2,5 md hingga 10.442,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 Default: 0x0010 (10 md) Waktu = N * 0,625 md Rentang Waktu: 2,5 md hingga 40,95 detik |
Own_Address_Type |
1 oktet |
0x00 - Alamat Perangkat Publik (default) 0x01 - Alamat Perangkat Acak |
LE_Ex_Scan_Filter_Policy |
0x00 - 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 Hanya Daftar Putih. Paket iklan terarah yang tidak ditujukan untuk perangkat ini akan diabaikan. |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Mendapatkan perintah info debug pengontrol
Tujuan elemen informasi ini adalah memperoleh informasi debug pengontrol dari host, dalam bentuk biner, untuk pascapemrosesan dan analisis. Hal ini membantu men-debug masalah di lapangan dan memberikan toolkit kepada engineer untuk mencatat informasi ke dalam log untuk analisis. Pengontrol dapat memberikan informasi saat diminta oleh host melalui peristiwa (sub-peristiwa Info Debug Pengontrol) atau secara mandiri jika diinginkan oleh pengontrol. Contoh penggunaannya adalah untuk melaporkan informasi status firmware, informasi file 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 yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Dukungan Offload Hardware A2DP
Fitur A2DP Offload mendukung pemindahan proses encoding audio A2DP ke prosesor audio yang terpasang pada Pengontrol BT. Aliran data audio yang dienkode akan diteruskan langsung dari pemroses Audio ke Pengontrol BT tanpa melibatkan host BT. Host BT masih bertanggung jawab atas konfigurasi dan kontrol sesi A2DP. Tersedia dua versi perintah. Perintah lama dengan Sub OCF 0x01-0x02 hanya mendukung codec open source. Versi dengan Sub-OCF 0x02-0x03 tidak bergantung pada codec yang dikonfigurasi.
OCF: 0x15D
Mulai Offload A2DP (lama)
Sub OCF: 0x01
Gunakan perintah ini untuk mengonfigurasi proses A2DP Offload dan memulai streaming A2DP.
Parameter perintah | Ukuran | Tujuan |
---|---|---|
Codec |
4 oktet |
Menentukan jenis Codec 0x01 - SBC 0x02 - AAC 0x04 - APTX 0x08 - APTX HD 0x10 - LDAC |
Max_Latency |
2 oktet | Latensi Maks yang Diizinkan (dalam md). Nilai nol menonaktifkan flush. |
SCMS-T_Enable |
2 oktet |
Octet 0: Tanda yang memungkinkan penambahan header SCMS-T.
Oktet 1: Nilai untuk header SCMS-T, jika diaktifkan. |
Sampling_Frequency |
4 oktet |
0x01 - 44.100 Hz 0x02 - 48.000 Hz 0x04 - 88.200 Hz 0x08 - 96.000 Hz |
Bits_Per_Sample |
1 oktet |
0x01 - 16 bit per sampel 0x02 - 24 bit per sampel 0x04 - 32 bit per sampel |
Channel_Mode |
1 oktet |
0x01 - Mono 0x02 - Stereo |
Encoded_Audio_Bitrate |
4 oktet |
Kecepatan bit audio yang dienkode dalam bit per detik. 0x00000000 - Kecepatan bit audio tidak ditentukan / unused. 0x00000001 - 0x00FFFFFF - Kecepatan bit audio yang dienkode dalam bit per detik. 0x01000000 - 0xFFFFFFFF - Dicadangkan. |
Connection_Handle |
2 oktet | Tuas Koneksi koneksi A2DP sedang dikonfigurasi |
L2CAP_Channel_ID |
2 oktet | ID Channel L2CAP yang akan digunakan untuk koneksi A2DP ini |
L2CAP_MTU_Size |
2 oktet | Ukuran maksimum L2CAP MTU yang berisi paket audio yang dienkode |
Codec_Information |
32 oktet |
Informasi khusus Codec.
Codec SBC:
Lihat elemen informasi khusus Codec SBC di A2DP v1.3. Codec AAC:
Lihat elemen informasi khusus Codec AAC di A2DP v1.3 Codec LDAC:
0-3 Okt: ID Vendor
Oktet 4-5: ID Codec
Octet 6: Indeks Kecepatan Bit:
Oktet 7: Mode Saluran LDAC 8-31 Okt: cadangan Semua codec lainnya: 0-31 Okt: cadangan |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Sub_Opcode |
1 oktet | 0x01 - Mulai Pemindahan A2DP |
Mulai Offload A2DP
Sub OCF: 0x03
Gunakan perintah ini untuk mengonfigurasi proses A2DP Offload dan memulai streaming A2DP.
Parameter perintah | Ukuran | Tujuan |
---|---|---|
Connection Handle |
2 oktet | Menangani koneksi HCI yang aktif |
L2CAP_Channel_ID |
2 oktet | ID Saluran L2CAP dibuka untuk streaming A2DP |
Data_Path_Direction |
1 oktet |
0x00 - Output (Sumber/Penggabungan AVDTP) 0x01 - Input (Sink/Pemisah AVDTP) |
Peer_MTU |
2 oktet | Ukuran maksimum paket L2CAP, dinegosiasikan dengan peer. |
CP_Enable_SCMS_T |
1 oktet |
0x00 - Nonaktifkan Header Perlindungan Konten SCMS-T 0x01 - Mengaktifkan Header Perlindungan Konten SCMS-T |
CP_Header_SCMS_T |
1 oktet |
Jika SCMS-T Content Protection Header diaktifkan (CP_SCMS_T_Enable
disetel ke 0x01), akan menentukan nilai header yang mendahului konten audio (lihat
A2DP, bagian 3.2.1-2) seperti yang ditetapkan oleh Nomor yang Ditetapkan Bluetooth, bagian
6.3.2.Diabaikan jika Perlindungan konten SCMS-T tidak diaktifkan. |
Vendor_Specific_Parameters_Length |
1 oktet |
Panjang Parameter Khusus Vendor, dalam rentang 0 hingga 128. Nilai 0 digunakan jika tidak ada parameter tambahan yang disediakan. |
Vendor_Specific_Parameters |
0-128 oktet |
Parameter Khusus Vendor yang disediakan oleh Bluetooth Audio HAL,
CodecParameters.vendorSpecificParameters[] .
|
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Sub_Opcode |
1 oktet | 0x03 - Mulai Pemindahan A2DP |
Hentikan 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 ditetapkan untuk perintah ini.
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Sub_Opcode |
1 oktet | 0x02 - Hentikan Offload A2DP |
Hentikan Offload A2DP
Sub OCF: 0x04
Perintah ini digunakan untuk menghentikan streaming Offload A2DP.
Parameter perintah | Ukuran | Tujuan |
---|---|---|
Connection Handle |
2 oktet | Menangani koneksi HCI yang aktif |
L2CAP_Channel_ID |
2 oktet | ID Saluran L2CAP dibuka untuk streaming A2DP |
Data_Path_Direction |
1 oktet |
0x00 - Output (Sumber/Penggabungan AVDTP) 0x01 - Input (Sink/Pemisah AVDTP) |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Sub_Opcode |
1 oktet | 0x04 - Hentikan Offload A2DP |
Perintah Laporan Kualitas Bluetooth
Fitur perintah BT Quality Report memulai mekanisme di pengontrol Bluetooth untuk melaporkan peristiwa Kualitas Bluetooth kepada host. Anda dapat mengaktifkan empat opsi:
- Mode Pemantauan Kualitas: Pengontrol secara berkala mengirimkan sub-peristiwa 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 Approaching LSTO ke host.
- Audio Putus-putus A2DP: Jika pengontrol mendeteksi faktor yang menyebabkan audio putus-putus, pengontrol akan melaporkan peristiwa Audio Choppy A2DP ke host.
- (e)SCO Voice Choppy: Jika pengontrol mendeteksi faktor yang menyebabkan suara putus-putus, pengontrol akan melaporkan peristiwa (e)SCO Voice Choppy ke host.
- Peradangan Root: Peristiwa ini dikirim oleh pengontrol ke stack saat HAL atau pengontrol mengalami error fatal dan harus memulai ulang Bluetooth.
- Trace 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 menangani beberapa profil Bluetooth dan koeksistensi nirkabel dalam band 2,4 Ghz ke host.
- Mekanisme Informasi Debug Pengontrol: Jika diaktifkan, pengontrol dapat secara mandiri melaporkan informasi logging debug melalui sub-peristiwa info debug Pengontrol ke host.
- LE Audio Choppy: Jika pengontrol mendeteksi faktor yang menyebabkan audio putus-putus, pengontrol akan melaporkan peristiwa LE Audio Choppy ke host.
-
Mode Statistik RF tingkat lanjut: Pengontrol melaporkan informasi terkait statistik RF-nya
kepada host, yang mendukung dua laporan kasus penggunaan:
- Laporan berkala
- Pemicu peristiwa (pemicu peristiwa mulai/berhenti streaming dan kualitas link).
- BQR_Report_Action dari Bluetooth Quality Report Command: Host dapat menggunakan perintah HCI ini untuk mendapatkan kueri satu kali untuk mode pemantauan kualitas, mode pemantauan energi, atau mode statistik RF lanjutan.
OKF: 0x15E
Parameter perintah | Ukuran | Tujuan |
---|---|---|
BQR_Report_Action |
1 oktet |
Tindakan untuk menambahkan / menghapus pelaporan peristiwa berkualitas yang ditetapkan di parameter BQR_Kualitas_Event_Mask, atau menghapus semua.
0x00 - Menambahkan
Penghapusan akan menghapus pelaporan peristiwa berkualitas tertentu. |
BQR_Quality_Event_Mask |
4 oktet |
Bit mask untuk pelaporan peristiwa kualitas yang dipilih.
Bit 0: Tetapkan untuk mengaktifkan mode pemantauan kualitas. |
BQR_Minimum_Report_Interval |
2 oktet |
Tentukan interval waktu minimum pelaporan peristiwa berkualitas untuk peristiwa kualitas yang dipilih. Firmware pengontrol tidak boleh melaporkan peristiwa berikutnya dalam interval waktu yang ditentukan. Setelan interval
harus masing-masing dan dikhususkan untuk peristiwa kualitas yang
ditambahkan.
Unit: md |
BQR_Vendor_Specific_Quality_Event_Mask |
4 oktet |
Bit mask untuk pelaporan peristiwa kualitas khusus vendor yang dipilih. Parameter ini hanya valid jika bit 15 dari BQR_Quality_Event_Mask ditetapkan.
Bit 0 ~ 31: Dicadangkan. |
BQR_Vendor_Specific_Trace_Mask |
4 oktet |
Bit mask untuk pelaporan pelacakan khusus vendor yang dipilih. Parameter ini hanya valid jika bit 31 dari BQR_Quality_Event_Mask ditetapkan.
Bit 0 ~ 31: Dicadangkan. |
Report_interval_multiple |
4 oktet |
Pengganda untuk BQR_Minimum_Report_Interval . Jika nilai ini >= 1,
Interval Laporan BQR akan mengikuti format BQR Report Interval = BQR_Minimum_Report_Interval x Report_interval_multiple. Firmware pengontrol tidak boleh melaporkan peristiwa berikutnya dalam interval waktu yang ditentukan. Setelan interval dikhususkan secara khusus untuk peristiwa kualitas tambahan.
Unit: md BQR_Report_Interval lebih besar dari kemampuan
pengontrol, pengontrol harus menampilkan waktu BQR_Report_Interval
maksimum setelah perintah selesai.
|
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Current_Quality_Event_Mask |
4 oktet |
Menunjukkan setelan bit mask saat ini. Bit 0: Mode pemantauan kualitas diaktifkan. Bit 1: Mendekati pelaporan peristiwa LSTO diaktifkan. Bit 2: Pelaporan peristiwa Audio Choppy A2DP diaktifkan. Bit 3: (e) Pelaporan peristiwa Voice Choppy SCO diaktifkan. Bit 4: Pelaporan peristiwa peradangan root diaktifkan. Bit 5: Mode pemantauan energi diaktifkan. Bit 6: Pelaporan peristiwa putus-putus LE audio diaktifkan. Bit 7: Peristiwa koneksi gagal. Bit 8: Tetapkan untuk mengaktifkan pemicu peristiwa mode Statistik RF Lanjutan. Bit 9: Tetapkan untuk mengaktifkan laporan Statistik RF Tingkat Lanjut secara berkala. Bit 10 ~ 14: Dicadangkan. Bit 15: Pelaporan peristiwa kualitas khusus vendor diaktifkan. Bit 16: Trace pesan LMP/LL diaktifkan. Bit 17: Trace 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 oktet | Menunjukkan setelan bit mask saat ini. |
Current_Vendor_Specific_Trace_Mask |
4 oktet | Menunjukkan setelan bit mask saat ini. |
BQR_Report_interval |
4 oktet | Menunjukkan setelan bit mask saat ini. |
Current_Vendor_Specific_Trace_Mask |
4 oktet |
Setelan BQR_Report_interval . Nilainya harus minimum antara
BQR_Minimum_Report_Interval * Report_interval_multiple atau interval dukungan maksimum
pengontrol. |
Perintah Buffer Audio Dinamis
Dynamic Audio Buffer mengurangi gangguan audio dengan mengubah ukuran buffer audio di pengontrol Bluetooth berdasarkan berbagai skenario.
OCF: 0x15F
Mendapatkan 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 |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Dynamic_Audio_Buffer_opcode |
1 oktet | 0x01 - Dapatkan waktu buffer audio |
Audio_Codec_Type_Supported |
4 oktet |
Bit mask untuk jenis codec yang didukung Bit 0 - SBC Bit 1 - AAC Bit 2 - APTX Bit 3 - APTX HD Bit 4 - LDAC Bit 5-31 dicadangkan |
Audio_Codec_Buffer_Default_Time_For_Bit_0 |
2 oktet |
Waktu buffer default dari 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_Maximum_Time_For_Bit_0 |
2 oktet |
Waktu buffer maksimum dari jenis codec Bit 0 yang ditentukan dalam Audio_Codec_Type_Supported. Nilai ini harus 0 jika jenis codec Bit 0 tidak didukung. Unit: md |
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 |
2 oktet |
Waktu buffer minimum dari jenis codec Bit 0 yang ditentukan dalam Audio_Codec_Type_Supported. Nilai ini harus 0 jika jenis codec Bit 0 tidak didukung. Unit: md |
Audio_Codec_Buffer_Default_Time_For_Bit_1 |
2 oktet |
Waktu buffer default dari jenis codec Bit 1 yang ditentukan dalam Audio_Codec_Type_Supported. Nilai ini harus 0 jika jenis codec Bit 1 tidak didukung. Unit: md |
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 |
2 oktet |
Waktu buffer maksimum dari jenis codec Bit 1 yang ditentukan dalam Audio_Codec_Type_Supported. Nilai ini harus 0 jika jenis codec Bit 1 tidak didukung. Unit: md |
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 |
2 oktet |
Waktu buffer minimum dari jenis codec Bit 1 yang ditentukan dalam Audio_Codec_Type_Supported. Nilai ini harus 0 jika jenis codec Bit 1 tidak didukung. Unit: md |
.... | .... | .... |
Audio_Codec_Buffer_Default_Time_For_Bit_31 |
2 oktet |
Waktu buffer default dari jenis codec Bit 31 yang ditentukan dalam Audio_Codec_Type_Supported. Nilai ini harus 0 jika jenis codec Bit 31 tidak didukung. Unit: md |
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 |
2 oktet |
Waktu buffer maksimum dari jenis codec Bit 31 yang ditentukan dalam Audio_Codec_Type_Supported. Nilai ini harus 0 jika jenis codec Bit 31 tidak didukung. Unit: md |
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 |
2 oktet |
Waktu buffer minimum dari jenis codec Bit 31 yang ditentukan dalam Audio_Codec_Type_Supported. Nilai ini harus 0 jika jenis codec Bit 31 tidak didukung. Unit: md |
Setel waktu buffering audio
Sub OCF: 0x02
Gunakan perintah ini untuk menyetel waktu buffer audio ke pengontrol Bluetooth.
Parameter perintah | Ukuran | Tujuan |
---|---|---|
Audio_Codec_Buffer_Time |
2 oktet |
Waktu buffer audio yang diminta untuk codec yang saat ini digunakan. Unit: md |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Dynamic_Audio_Buffer_opcode |
1 oktet | 0x02 - Menyetel waktu penyangga audio |
Audio_Codec_Buffer_Time |
2 oktet |
Waktu buffer audio saat ini di pengontrol Bluetooth. Unit: md |
Peristiwa HCI (khusus vendor)
Peristiwa HCI khusus vendor diperlukan dalam beberapa kasus. Lihat Gambar 5.4 di halaman 1897 Spesifikasi BT Core 5.2. Parameter peristiwa 0 akan selalu berisi kode sub-peristiwa pertama, yang berdasarkan pada dekode peristiwa HCI lainnya.
Parameter Peristiwa | Ukuran | Tujuan |
---|---|---|
HCI_vendor_specific_event_code |
1 oktet | 0xFF |
sub_event_code |
1 oktet | Kode sub-peristiwa akan berukuran 1 oktet, byte segera setelah Parameter Length dalam paket peristiwa HCI. |
Sub-peristiwa pelanggaran batas penyimpanan
Peristiwa ini menunjukkan bahwa nilai minimum penyimpanan telah dilanggar.
Kode sub-peristiwa = 0x54
Parameter Sub-peristiwa | Ukuran | Tujuan |
---|---|---|
Tidak ada |
Sub-peristiwa perubahan status multi-iklan LE
Peristiwa ini mengindikasikan bahwa instance iklan telah berubah statusnya. Saat ini, peristiwa ini hanya digunakan untuk menunjukkan instance iklan mana yang dihentikan karena koneksi.
Kode sub-peristiwa = 0x55
Parameter sub-peristiwa | Ukuran | Tujuan |
---|---|---|
Advertising_instance |
1 oktet |
Mengidentifikasi instance iklan tertentu Nilai yang valid adalah 0 sampai max_advt_instances -1
|
State_Change_Reason |
1 oktet | 0x00: Koneksi diterima |
Connection_handle |
2 oktet |
Mengidentifikasi koneksi yang menyebabkan instance advt
dinonaktifkan (0xFFFF jika tidak valid)
|
Sub-peristiwa pelacakan iklan LE
Peristiwa ini menunjukkan kapan pengiklan ditemukan atau hilang.
Kode sub-peristiwa = 0x56
Parameter Sub-peristiwa | 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 oktet |
0x00: Informasi pengiklan (Advt_Info ) ada0x01: Informasi pengiklan ( Advt_Info ) tidak ada
|
Advertiser_Address |
6 oktet | Alamat publik atau acak |
Advertiser_Address_Type |
1 oktet |
0x00: Alamat publik 0x01: Alamat acak |
Advt_Info |
Tx_Pwr[0] : 1 oktetRSSI[0] : 1 oktetTimestamp[0] : 2 oktetAdv packet_len[0] : 1 oktetAdv_packet[0] : Adv_packet_len oktetScan_data_resp_len[0] : 1 oktetScan_data_resp[0] : Scan_data_resp oktet
|
Sub-peristiwa info debug pengontrol
Peristiwa ini digunakan oleh Pengontrol untuk memberikan informasi debug biner ke host.
Kode sub-peristiwa = 0x57
Parameter Sub-peristiwa | Ukuran | Tujuan |
---|---|---|
debug_block_byte_offset_start |
2 oktet | Men-debug offset byte blok dari awal |
last_block |
1 oktet |
0x00: Terdapat lebih banyak data debug 0x01: Blok biner terakhir; tidak ada lagi data debug |
cur_pay_load_sz |
2 oktet | Ukuran blok biner dalam peristiwa saat ini |
Debug_Data |
Variabel | Men-debug data cur_payload_sz |
Sub-peristiwa Laporan Kualitas Bluetooth
Peristiwa ini menunjukkan salah satu hal berikut: terjadi peristiwa kualitas Bluetooth, pengontrol mengupload trace pesan LMP/LL dan trace penjadwalan Multi-link/Coex Bluetooth, atau pengontrol menghapus data informasi debug.
Kode sub-peristiwa = 0x58 [quality_Report_Id = 0x01 ~ 0x04, peristiwa terkait Kualitas Link]
Parameter Sub-peristiwa | Ukuran | Tujuan |
---|---|---|
Quality_Report_Id |
1 oktet |
0x01: Pelaporan kualitas tentang mode pemantauan. 0x02: Mendekati LSTO. 0x03: Audio Putus-putus A2DP. 0x04: (e) Suara SCO Putus-putus. 0x05 ~ 0x06: Direservasi. 0x07: LE audio putus-putus. 0x08: Koneksi gagal. 0x09 ~ 0xFF: Dicadangkan. |
Packet_Types |
1 oktet |
0x01: ID 0x02-H5-H5-1: NULL 0x03: POLL 0x04: FHS 0x05: HV1 0x06: HV2 0x07: HV3 0x08: DV 0x09: EV3 |
Connection_Handle |
2 oktet | Handle koneksi ACL/(e)SCO/ISO. |
Connection_Role |
1 oktet |
Menjalankan Peran untuk koneksi. 0x00: Tengah 0x01: Periferal 0x02 ~ 0xFF: Dicadangkan. |
TX_Power_Level |
1 oktet |
Tingkat daya transmisi saat ini untuk Connection_Handle yang ditentukan.
Nilai ini harus sama dengan respons pengontrol terhadap perintah HCI_Read_Transmit_Power_Level HCI. |
RSSI |
1 oktet |
[dalam dBm]
Nilai Indikasi Kekuatan Sinyal (RSSI) yang diterima untuk Connection_Handle yang ditentukan. |
SNR |
1 oktet |
[dalam dB]
Nilai Signal-to-Noise Ratio (SNR) untuk Connection_Handle
yang ditentukan. |
Unused_AFH_Channel_Count |
1 oktet |
Menunjukkan jumlah saluran yang tidak digunakan di AFH_channel_map. 0x4F ~ 0xFF: Dicadangkan. |
AFH_Select_Unideal_Channel_Count |
1 oktet |
Menunjukkan jumlah saluran yang terganggu dan memiliki kualitas
buruk, tetapi masih dipilih untuk AFH. Jumlah minimum saluran yang diizinkan oleh spesifikasi Bluetooth adalah 20. Jadi, meskipun ke-79 saluran tersebut terganggu dan memiliki kualitas yang buruk, pengontrol masih harus memilih minimal 20 saluran untuk AFH. |
LSTO |
2 oktet |
Setelan Waktu Tunggu Pengawasan Link Saat Ini. Waktu = N * 0,625 md Rentang Waktu: 0,625 md hingga 40,9 dtk |
Connection_Piconet_Clock |
4 oktet |
Piconet Clock untuk Connection_Handle yang ditentukan. Nilai ini harus sama dengan respons pengontrol terhadap perintah HCI HCI_Read_Clock dengan parameter "Which_Clock" 0x01 (Piconet Clock). Unit: N * 0,3125 md (1 Jam Bluetooth) |
Retransmission_Count |
4 oktet |
Jumlah transmisi ulang sejak peristiwa terakhir. Jumlah ini akan direset setelah dilaporkan kepada host. |
No_RX_Count |
4 oktet |
Tidak ada jumlah RX sejak peristiwa terakhir. Jumlahnya akan bertambah saat tidak ada paket yang diterima pada slot waktu terjadwal atau paket yang diterima rusak. Jumlah ini akan direset setelah dilaporkan kepada host. |
NAK_Count |
4 oktet |
Jumlah NAK (Konfirmasi Negatif) sejak peristiwa terakhir. Jumlah ini akan direset setelah dilaporkan kepada host. |
Last_TX_ACK_Timestamp |
4 oktet |
Stempel waktu TX ACK terakhir. Hal ini didasarkan pada Jam Bluetooth pusat piconet (CLK). Unit: N * 0,3125 md (1 Jam Bluetooth) |
Flow_Off_Count |
4 oktet |
Frekuensi pengontrol menerima Flow-off (STOP) sejak
peristiwa terakhir. Jumlah ini akan direset setelah dilaporkan kepada host. |
Last_Flow_On_Timestamp |
4 oktet |
Stempel waktu Flow-on (GO) terakhir. Hal ini didasarkan pada Jam Bluetooth pusat piconet (CLK). Unit: N * 0,3125 md (1 Jam Bluetooth) |
Buffer_Overflow_Bytes |
4 oktet |
[di Byte]
Jumlah buffer overflow sejak peristiwa terakhir. |
Buffer_Underflow_Bytes |
4 oktet |
[di Byte]
Jumlah underflow buffer sejak peristiwa terakhir. |
bdaddr |
6 oktet | Alamat perangkat jarak jauh |
cal_failed_item_count |
1 oktet | Jumlah item kalibrasi yang gagal |
TX_Total_Packets |
4 oktet | Jumlah paket yang dikirim. |
TX_UnAcked_Packets |
4 oktet |
Jumlah paket yang tidak menerima {i>acknowledgment<i}. Jumlah ini direset setelah dilaporkan kepada host. |
TX_Flushed_Packets |
4 oktet |
Jumlah paket yang tidak dikirim oleh titik flush-nya. Jumlah ini direset setelah dilaporkan kepada host. |
TX_Last_Subevent_Packets |
4 oktet |
Jumlah paket yang Link Layer mentransmisikan PDU data CIS di subperistiwa terakhir dari peristiwa CIS. Jumlah ini direset setelah dilaporkan kepada host. Nilainya adalah nol jika tidak ada nilai yang valid untuk link tersebut. |
CRC_Error_Packets |
4 oktet |
Jumlah paket yang diterima dengan error CRC sejak peristiwa terakhir. Jumlah ini direset setelah dilaporkan kepada host. |
RX_Duplicate_Packets |
4 oktet |
Jumlah paket duplikat (transmisi ulang) yang diterima sejak peristiwa terakhir. Jumlah ini direset setelah dilaporkan kepada host. |
RX_Unreceived_Packets |
4 oktet |
Jumlah paket yang belum diterima sama dengan parameter perintah LE READ ISO Link Quality (lihat Spesifikasi core Bluetooth Versi 5.4). Aliran data terkait adalah CIS dan BIS. Ketika nilai ini bertambah, Lapisan Link tidak menerima payload tertentu pada titik flush-nya (pada CIS) atau pada akhir peristiwa yang terkait dengannya (di BIS; lihat Spesifikasi core Bluetooth Versi 5.4 Vol 6 Bagian B, Bagian 4.4.6.6). |
Coex_Info_Mask |
2 oktet |
Bit 0 - CoexInvolvement: Ditetapkan untuk menunjukkan aktivitas coex diduga terlibat
saat laporan ini dibuat (misalnya, A2DP Chops dan Approaching LSTO). Bit 1 - WL 2G Radio Active: Disetel untuk menunjukkan WLAN 2G Radio aktif. Bit 2 - WL 2G Terhubung: Disetel untuk menunjukkan Radio WLAN 2G aktif dan terhubung. Bit 3 - Radio WL 5G/6G Active: Setel untuk menunjukkan Radio WLAN 5G/6G aktif. Bit 4-15 - Direservasi |
Parameter Khusus Vendor | (panjang total parameter - TBD) * oktet | Agar vendor pengontrol dapat memperoleh parameter khusus vendor yang lebih banyak. |
Kode sub-peristiwa = 0x58 [quality_Report_Id = 0x05, peristiwa Peradangan Akar]
Peristiwa ini menunjukkan bahwa Bluetooth HAL atau pengontrol mengalami error fatal dan memerlukan stack Bluetooth untuk merekam situasi ini, lalu memulai ulang. Dalam situasi apa pun, pengontrol harus mengirim Root_Inflammation_Event ke stack Bluetooth sebelum mengirim fragmen pertama peristiwa info debug.
Parameter Error_Code berisi kode error yang dilaporkan dari HAL/Controller, 0 jika error tersebut adalah error khusus vendor chipset. Vendor_Specific_Error_Code berisi kode error khusus vendor chipset dari HAL/Controller. Nilai ini harus ditetapkan sebagai 0 jika parameter Error_Code bukan 0. Parameter Error_Code dan Vendor_Specific_Error_Code tidak boleh keduanya bernilai 0.
Parameter Sub-peristiwa | Ukuran | Tujuan |
---|---|---|
Quality_Report_Id |
1 oktet |
0x00 ~ 0x04: Direservasi. 0x05: Peradangan root. 0x06 ~ 0xFF: Dicadangkan. |
Error_Code |
1 oktet |
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 dan deskripsi error. |
Vendor_Specific_Error_Code |
1 oktet |
0x00: Tidak ada kode error khusus vendor chipset yang disertakan. 0x01 ~ 0xFF: Kode error khusus vendor chipset. |
Parameter Khusus Vendor | (Panjang Total Parameter - 4) * oktet | Agar vendor pengontrol dapat memperoleh parameter khusus vendor yang lebih banyak. |
Kode sub-peristiwa = 0x58 [quality_Report_Id = 0x11 ~ 0x13, peristiwa terkait Dump Log]
Parameter Sub-peristiwa | Ukuran | Tujuan |
---|---|---|
Quality_Report_Id |
1 oktet |
0x00 ~ 0x10: Direservasi. 0x11: Trace pesan LMP/LL. 0x12: Rekaman aktivitas penjadwalan Multi-link/Coex Bluetooth. 0x13: Dump data Informasi Debug Pengontrol. 0x14 ~ 0xFF: Dicadangkan. |
Connection_Handle |
2 oktet | Tuas Koneksi. |
Parameter Khusus Vendor | (Panjang Total Parameter - 4) * oktet | Format Khusus Vendor dari trace pesan LMP, trace 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 pancar yang berbeda untuk rentang yang beragam
- Konten iklan yang berbeda
- Respons yang dipersonalisasi untuk setiap pengiklan
- Privasi (tidak dapat dilacak) untuk setiap pengiklan
- Terhubung
Agar spesifikasi ini tetap mendekati standar yang sudah ada, perintah khusus vendor berikut disediakan. Perangkat tersebut berasal dari Spesifikasi Bluetooth Core 4.1.
{i>LE_Multi_Advt_Command<i}
OCF: 0x154
Parameter perintah | Ukuran | Tujuan |
---|---|---|
Multi_advt_opcode |
1 oktet |
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 yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Multi_advt_opcode |
1 oktet |
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 (LE Set Advertising Parameter Command)
Sub OCF: 0x01
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
Advertising_Interval_Min |
Per spesifikasi | Per spesifikasi |
Advertising_Interval_Max |
Per spesifikasi | Per spesifikasi |
Advertising_Type |
Per spesifikasi | Per spesifikasi |
Own_Address_Type |
Per spesifikasi | Per spesifikasi |
Own_Address |
Per spesifikasi | Per spesifikasi |
Direct_Address_Type |
Per spesifikasi | Per spesifikasi |
Direct_Address |
Per spesifikasi | Per spesifikasi |
Advertising_Channel_Map |
Per spesifikasi | Per spesifikasi |
Adverstising_Filter_Policy |
Per spesifikasi | Per spesifikasi |
Advertising_Instance |
1 oktet | Menentukan keberlakuan parameter di atas pada instance |
Tx_power |
1 oktet |
Transmit_Power Unit - dalam dBm (bilangan bulat bertanda tangan) Rentang (-70 hingga +20) |
Parameter Own_Address
dapat berupa alamat yang dikonfigurasi host
pada saat menyiapkan instance multi-iklan ini. Hal ini memberikan
kemampuan memiliki alamat pribadi yang dapat diselesaikan pada saat
pengiriman beacon pertama. Iklan pada instance akan terus berjalan, terlepas dari koneksinya. Stack BT host dapat mengeluarkan perintah untuk
memulai iklan pada instance, setelah koneksi.
Peristiwa Command Selesai 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 yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Multi_advt_opcode |
1 oktet | 0x01 [Set_Advt_Param_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Advt_Data_Multi_Sub_Cmd
Referensi dasar: Spesifikasi Bluetooth Core 4.1, halaman 969 (LE Set Advertising Data Command)
Sub OCF: 0x02
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
Advertising_Data_Length |
Per spesifikasi | Per spesifikasi |
Advertising_Data |
Per spesifikasi | Per spesifikasi |
Advertising_Instance |
1 oktet | Menentukan keberlakuan parameter di atas pada instance |
Peristiwa Command Selesai 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 yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Multi_advt_opcode |
1 oktet | 0x02 [Set_Advt_Data_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Scan_Resp_Data_Multi_Sub_Cmd
Referensi dasar: Spesifikasi Bluetooth Core 4.1, halaman 970 (LE Set Scan Response Data Command)
Sub OCF: 0x03
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
Scan_Response_Data_Length |
Per spesifikasi | Per spesifikasi |
Scan_Response_Data |
Per spesifikasi | Per spesifikasi |
Advertising_Instance |
1 oktet | Menentukan keberlakuan parameter di atas pada instance |
Peristiwa Command Selesai 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-berhasil (parameter tidak valid) jika
instance iklan atau parameter Tx_Power
tidak valid.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Multi_advt_opcode |
1 oktet | 0x03 [Set_Scan_Resp_Data_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Random_Addr_Multi_Sub_Cmd
Referensi dasar: Spesifikasi Bluetooth Core 4.1, halaman 963 (LE Set Random Address Command)
Sub OCF: 0x04
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
Alamat Acak | Per spesifikasi | Per spesifikasi |
Advertising_Instance |
1 oktet | Menentukan keberlakuan parameter di atas pada instance |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Multi_advt_opcode |
1 oktet | 0x04 [Set_Random_Addr_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Advt_Enable_Multi_Sub_Cmd
Referensi dasar: Spesifikasi Bluetooth Core 4.1, halaman 971 (LE Set Beriklan Enable Command dalam spesifikasi inti tersebut)
OCF: 0x05
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
Advertising_Enable |
1 oktet | Nilai 1 berarti mengaktifkan. Jika nilai berupa nilai lainnya, artinya nonaktif. |
Advertising_Instance |
1 oktet | Menentukan pemberlakuan parameter di atas pada instance. Instance 0 berarti instance HCI standar. |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Multi_advt_opcode |
1 oktet | 0x05 [Set_Advt_Enable_Multi_Sub_Cmd] |
Resolusi alamat pribadi yang dipindahkan
Fitur ini me-resolve alamat pribadi di firmware atau hardware pengontrol, yang memberikan manfaat berikut:
- Latensi yang terlibat 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 oktet | IRK perangkat lokal yang digunakan untuk menghasilkan alamat acak yang dapat diselesaikan. |
tRPA_min |
2 oktet |
Waktu tunggu pembuatan RPA minimum dalam detik. Pengontrol harus
menghasilkan alamat baru yang dapat diselesaikan untuk setiap
peristiwa iklan/pemindaian/koneksi pada atau setelah waktu tunggu ini. Rentang yang valid: 300-1800 |
tRPA_max |
2 oktet |
Waktu tunggu pembuatan RPA maksimum dalam detik. Pengontrol harus
menghasilkan alamat baru yang dapat diselesaikan untuk setiap
peristiwa iklan/pemindaian/koneksi pada atau sebelum waktu tunggu ini. Rentang yang valid: tRPA_min -1800
|
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet |
Status perintah. Nilai status HCI yang disarankan: Berhasil 0x00 Perintah 0x01 Tidak diketahui (jika tidak didukung) 0x12 Parameter perintah tidak valid (jika ada parameter yang berada di luar rentang yang diberikan) |
{i>LE_RPA_offload_Command<i}
OCF: 0x155
Parameter perintah | Ukuran | Tujuan |
---|---|---|
RPA_offload_opcode |
1 oktet |
0x1 - Aktifkan fitur khusus pelanggan 0x2 - Tambahkan IRK ke daftar 0x3 - Hapus IRK dari daftar 0x4 - Hapus daftar IRK 0x5 - Baca entri daftar IRK |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Event_RPA_offload_opcode |
1 oktet |
0x1 - Aktifkan fitur khusus pelanggan 0x2 - Tambahkan IRK ke daftar 0x3 - Hapus IRK dari daftar 0x4 - Hapus daftar IRK 0x5 - Baca entri daftar IRK |
LE_RPA_offload: Enable_cust_specific_sub_Command
Sub OCF: 0x01
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
enable_customer_specific_feature_set |
1 oktet |
0x01 - Aktifkan fitur RPA yang dialihkan 0x00 - Nonaktifkan fitur RPA yang dialihkan |
Pelepasan 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 di firmware.
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Event_cust_specific_feature_opcode |
1 oktet | 0x01 [Aktifkan fitur khusus pelanggan] |
LE_RPA_offload: Add_IRK_to_list_sub_Command
Sub OCF: 0x02
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
LE_IRK |
16 oktet | LE IRK (LSB byte pertama) |
Address_Type |
1 oktet |
0: Alamat publik 1: Alamat acak |
LE_Device_Address |
6 oktet | Alamat publik atau acak yang terkait dengan IRK (LSB byte pertama) |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Event_cust_specific_feature_opcode |
1 oktet | 0x02 [Tambahkan IRK ke daftar] |
LE_IrkList_AvailableSpaces |
1 oktet | Entri daftar IRL yang tersedia setelah operasi saat ini |
LE_RPA_offload: Remove_IRK_to_list_sub_Command
Sub OCF: 0x03
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
Address_Type |
1 oktet |
0: Alamat publik 1: Alamat acak |
LE_Device_Address |
6 oktet | Alamat publik atau acak yang terkait dengan IRK |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Event_cust_specific_feature_opcode |
1 oktet | 0x03 [Hapus IRK dari daftar] |
LE_IrkList_AvailableSpaces |
1 oktet | Entri daftar IRL yang tersedia setelah operasi saat ini |
LE_RPA_offload: Clear_IRK_list_sub_Command
Sub OCF: 0x04
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
Tidak ada |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Event_cust_specific_feature_opcode |
1 oktet | 0x04 [Hapus Daftar IRK] |
LE_IrkList_AvailableSpaces |
1 oktet |
Entri daftar IRL yang tersedia setelah operasi saat ini [max_irk_list_sz]
|
LE_RPA_offload: Read_IRK_list_sub_Command
Sub OCF: 0x05
Parameter sub-perintah | Ukuran | Tujuan |
---|---|---|
LE_read_IRK_list_entry-index |
1 oktet | Indeks daftar IRK [0, max_irk_list_sz-1] |
Peristiwa Perintah Selesai akan dibuat untuk perintah ini.
Parameter yang ditampilkan | Ukuran | Tujuan |
---|---|---|
Status |
1 oktet | Status Perintah Selesai |
Event_cust_specific_feature_opcode |
1 oktet | 0x05 [Baca Entri Daftar IRK] |
LE_Read_IRK_List_entry |
1 oktet | Indeks IRK yang ingin dibaca kembali oleh host (ukuran daftar IRK maksimum adalah 32) |
LE_IRK |
16 oktet | Nilai IRK |
Address_Type |
1 oktet |
0: Alamat publik 1: Alamat acak |
LE_Device_Address |
6 oktet | Alamat publik atau acak yang terkait dengan IRK |
LE_Resolved_Private_Address |
6 oktet | Alamat pribadi yang saat ini dapat diselesaikan dari IRK ini |