Persyaratan HCI

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_recordsScan_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:

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:

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:
  • Saat ini, jumlah karakter maksimal dalam string nama lokal adalah 29
  • Tidak berlaku jika tindakan "Hapus" (0x2)

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:
  • Saat ini, jumlah karakter maksimal dalam string nama lokal adalah 29
  • Tidak berlaku jika tindakan "Hapus" (0x2)
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:
  • Saat ini, jumlah karakter maksimal dalam string nama lokal adalah 29
  • Tidak berlaku jika tindakan "Hapus" (0x2)
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:

  • Bit 0: Mendukung filter Transport Discovery Service
  • Bit 1: Mendukung filter Jenis AD
  • Bit 2 ~ 15: Dicadangkan untuk penggunaan mendatang

Nilai bit

  • 0 = Tidak didukung
  • 1 = Didukung

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.
  • 0x00 - Header SCMS-T tidak termasuk.
  • 0x01 - Header SCMS-T disertakan.

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&hairsp;/&hairsp;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.
Oktet 0: Panjang blok | Subband | Metode Alokasi
Okt 1: Nilai Bitpool minimum
Okt 2: Nilai Bitpool Maksimum
Okt 3: Frekuensi Pengambilan Sampel | Mode Channel
4-31 Okt: dicadangkan

Codec AAC:

Lihat elemen informasi khusus Codec AAC di A2DP v1.3
Okt 0: Tipe Objek
Oktet 1; b7: VBR
Okt 2-31: reservasi

Codec LDAC:

0-3 Okt: ID Vendor
0x0000012D

Oktet 4-5: ID Codec
0x00AA - LDAC
Semua nilai lainnya sudah dicadangkan

Octet 6: Indeks Kecepatan Bit:
0x00 - Tinggi
0x01 - Sedang
0x02 - Rendah
0x03 - 0x7E - Dicadangkan
0x7F - ABR (Kecepatan Bit Adaptif)
0x80 - 0xFF - Direservasi

Oktet 7: Mode Saluran LDAC
0x01 - Stereo
0x02 - Dual
0x04 - Mono
Lainnya dicadangkan

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
0x01 - Menghapus
0x02 - Menghapus
0x03 - Kueri satu kali

Penghapusan akan menghapus pelaporan peristiwa berkualitas tertentu.
Hapus akan menghapus semua pelaporan peristiwa berkualitas (parameter BQR_Kualitas_Event_Mask dapat diabaikan).

BQR_Quality_Event_Mask 4 oktet Bit mask untuk pelaporan peristiwa kualitas yang dipilih.

Bit 0: Tetapkan untuk mengaktifkan mode pemantauan kualitas.
Bit 1: Tetapkan untuk mengaktifkan peristiwa Mendekati LSTO (untuk ACL/(e)SCO/ISO).
Bit 2: Disetel untuk mengaktifkan peristiwa Audio Choppy A2DP.
Bit 3: Tetapkan untuk mengaktifkan peristiwa (e)SCO Voice Choppy.
Bit 4: Tetapkan untuk mengaktifkan peristiwa peradangan root.
Bit 5: Tetapkan untuk mengaktifkan mode pemantauan energi.
Bit 6: Setel untuk mengaktifkan peristiwa putus-putus LE audio.
Bit 7: Ditetapkan untuk mengaktifkan peristiwa kegagalan koneksi.
Bit 8: Tetapkan untuk mengaktifkan pemicu peristiwa mode Statistik RF Lanjutan.
Bit 9: Tetapkan untuk mengaktifkan laporan berkala Statistik RF Lanjutan.
Bit 10 ~ 14: Dicadangkan.
Bit 15: Tetapkan untuk mengaktifkan peristiwa kualitas khusus vendor.
Bit 16: Tetapkan untuk mengaktifkan trace pesan LMP/LL.
Bit 17: Tetapkan untuk mengaktifkan rekaman aktivitas penjadwalan Multi-link/Coex Bluetooth.
Bit 18: Tetapkan untuk mengaktifkan mekanisme Informasi Debug Pengontrol.
Bit 19 ~ 30: Dicadangkan.
Bit 31: Tetapkan untuk mengaktifkan pelacakan khusus vendor.

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
Default: 0 (Tidak ada batasan untuk interval.)
Rentang: 0 ~ 65535 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
Default: 1
Rentang: 0 ~ 4294967295 (0: sama dengan ditetapkan dengan 1)

Catatan: jika setelan 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) ada
0x01: 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 oktet
RSSI[0]: 1 oktet
Timestamp[0]: 2 oktet
Adv packet_len[0]: 1 oktet
Adv_packet[0]: Adv_packet_len oktet
Scan_data_resp_len[0]: 1 oktet
Scan_data_resp[0]: Scan_data_resp oktet

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.

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.
Nilai ini harus berupa nilai kekuatan sinyal penerima mutlak.
Rentang: -127 hingga +20

SNR 1 oktet [dalam dB]

Nilai Signal-to-Noise Ratio (SNR) untuk Connection_Handle yang ditentukan.
Pengontrol harus memberikan SNR rata-rata dari semua saluran yang digunakan oleh link.

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.
Pengontrol menghitung jumlah byte data yang dihapus.
Jumlah ini akan direset setelah dilaporkan ke host.

Buffer_Underflow_Bytes 4 oktet [di Byte]

Jumlah underflow buffer sejak peristiwa terakhir.
Jumlah ini akan direset setelah dilaporkan ke host.

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.
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