Persyaratan HCI

Antarmuka Pengontrol Host (HCI) digunakan untuk berinteraksi dengan pengontrol Bluetooth.

Dokumen ini berisi daftar persyaratan HCI Bluetooth (BT) dan Bluetooth Low Energy (BLE). Tujuannya adalah agar vendor tumpukan Host BT dan vendor pengontrol BT mematuhi persyaratan platform ini untuk menggunakan rangkaian fitur yang dijelaskan di bawah.

Dokumen ini mengacu pada Spesifikasi Bluetooth Core 5.2 sebagai "spesifikasi". Spesifikasi Bluetooth Core 5.2 tersedia di situs web Bluetooth SIG bersama dengan dokumen lain yang diadopsi.

Ikhtisar desain umum

Kemampuan dan konfigurasi chip

Sebagai platform terbuka, Android memiliki matriks rilis perangkat lunak, OEM, vendor, serta kemampuan platform dan chip.

Untuk mengelola lanskap yang bervariasi dan mengelola migrasi, filosofi desain yang memungkinkan pengontrol BT mengekspos kemampuannya (di luar Spesifikasi Bluetooth Core 5.2 standar) dijelaskan dalam dokumen ini. Tumpukan BT host kemudian dapat menggunakan kemampuan ini untuk menentukan fitur mana yang akan diaktifkan.

Mendukung standar terbuka

Salah satu tujuan Android adalah mendukung standar terbuka setelah ratifikasi spesifikasi Bluetooth. Jika fitur yang dijelaskan di bawah ini tersedia dalam metode HCI standar pada spesifikasi Bluetooth di masa mendatang, kami akan cenderung menjadikan pendekatan tersebut sebagai default.

Kemampuan khusus vendor

Perintah khusus vendor: LE_Get_Vendor_Capabilities_Command

Bidang Perintah OpCode (OCF): 0x153

Parameter perintah Ukuran Tujuan
TIDAK Daftar parameter Perintah kosong

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
max_advt_instances
(Tidak digunakan lagi)
1 oktet Jumlah contoh iklan yang didukung.

Dicadangkan setelah v0.98.
Parameter ini tidak digunakan lagi dalam spesifikasi fitur Google v0.98 dan lebih tinggi dan digantikan oleh LE Extended Advertising yang tersedia dalam spesifikasi BT versi 5.0 dan lebih tinggi.
offloaded_resolution_of_private-address
(Tidak digunakan lagi)
1 oktet Kemampuan chip BT RPA.
Jika didukung oleh sebuah chip, maka perlu diaktifkan oleh host.
0 = Tidak mampu
1 = Mampu

Dicadangkan setelah v0.98.
Parameter ini tidak digunakan lagi dalam spesifikasi fitur Google v0.98 dan lebih tinggi dan mendukung fitur Privasi yang tersedia dalam spesifikasi BT versi 4.2 dan lebih tinggi.
total_scan_results_storage 2 oktet Penyimpanan untuk hasil pemindaian dalam byte
max_irk_list_sz 1 oktet Jumlah entri IRK yang didukung di firmware
filtering_support 1 oktet Dukungan untuk memfilter di pengontrol
0 = Tidak didukung
1 = Didukung
max_filter 1 oktet Jumlah filter yang didukung
activity_energy_info_support 1 oktet Mendukung pelaporan informasi aktivitas dan energi
0 = Tidak mampu
1 = Mampu
version_supported 2 oktet Menentukan versi spesifikasi fitur Google yang didukung
byte[0] = Nomor utama
byte[1] = Angka kecil

v1.04
byte[0] = 0x01
byte[1] = 0x04
total_num_of_advt_tracked 2 oktet Jumlah total pengiklan yang dilacak untuk tujuan OnLost / OnFound
extended_scan_support 1 oktet Mendukung jendela dan interval pemindaian yang diperluas
debug_logging_supported 1 oktet Mendukung pencatatan informasi debug biner dari pengontrol
LE_address_generation_offloading_support
(Tidak digunakan lagi)
1 oktet 0 = Tidak didukung
1 = Didukung

Dicadangkan setelah v0.98.
Parameter ini tidak digunakan lagi dalam spesifikasi fitur Google v0.98 dan lebih tinggi dan mendukung fitur Privasi yang tersedia dalam spesifikasi BT versi 4.2 dan lebih tinggi.
A2DP_source_offload_capability_mask 4 Oktet Masker bit untuk jenis codec didukung
Sedikit 0 - SBC
Bagian 1 - AAC
Bagian 2 - APTX
Bagian 3 - APTX HD
Bagian 4 - LDAC
Bit 5-31 dicadangkan
bluetooth_quality_report_support 1 oktet Mendukung pelaporan peristiwa Kualitas Bluetooth
0 = Tidak mampu
1 = Mampu
dynamic_audio_buffer_support 4 oktet Mendukung buffer audio dinamis di pengontrol Bluetooth
Masker bit untuk jenis codec didukung
Sedikit 0 - SBC
Bagian 1 - AAC
Bagian 2 - APTX
Bagian 3 - APTX HD
Bagian 4 - LDAC
Bit 5-31 dicadangkan
a2dp_offload_v2_support 1 oktet Mendukung perintah A2dp Offload v2 di pengontrol Bluetooth (lihat Mulai A2DP Offload , Hentikan A2DP Offload )
0 = Tidak didukung
1 = Didukung

Kumpulan hasil pemindaian

Tujuan desainnya adalah untuk menyempurnakan cara notifikasi acara Bluetooth LE Scan Response dikirimkan ke host, guna menghemat daya di host.

Dengan mengurangi frekuensi pengontrol memberi tahu pemroses aplikasi host untuk memindai hasil, pemroses aplikasi host dapat berada dalam kondisi idle/tidur lebih lama. Hal ini mengurangi konsumsi daya di host. Parameter pengembalian total_scan_results_storage dari LE_Get_Vendor_Capabilities_Command menunjukkan kemampuan chip untuk penyimpanan hasil pemindaian.

Fitur ini berfokus pada pengelolaan dan konfigurasi fasilitas penyimpanan Hasil Pemindaian LE pada pengontrol Bluetooth. Penyimpanan tersebut digunakan untuk mengumpulkan sementara data iklan dan memindai data serta metadata yang diterima oleh pengontrol untuk kemudian dikirimkan ke host.

Firmware harus mendukung dua jenis batching, yang dapat dilakukan secara bersamaan:

  • terpotong. Berisi elemen informasi berikut: {MAC, TX Power, RSSI, Timestamp}
  • Penuh. Berisi elemen informasi berikut: {MAC, TX Power, RSSI, Timestamp, Adv Data, Scan Response}

LE_Batch_Scan_Command

OCF: 0x156

Parameter perintah Ukuran Tujuan
Batch_Scan_opcode 1 oktet 0x1 - Aktifkan fitur khusus pelanggan
0x2 - Tetapkan parameter Penyimpanan Pemindaian Batch
0x3 - Tetapkan parameter Pemindaian Batch
0x4 - Baca parameter Hasil Pemindaian Batch

Acara Command Complete akan dihasilkan untuk perintah ini. Mengaktifkan fitur khusus pelanggan tidak memulai pemindaian.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
Batch_Scan_opcode 1 oktet 0x1 - Aktifkan fitur khusus pelanggan
0x2 - Tetapkan parameter Penyimpanan Pemindaian Batch
0x3 - Tetapkan parameter Pemindaian Batch
0x4 - Baca parameter Hasil Pemindaian Batch

LE_Batch_Scan_Command: Mengaktifkan fitur Khusus Pelanggan

SubOCF: 0x01

Parameter sub-perintah Ukuran Tujuan
enable_customer_specific_feature_set 1 oktet 0x01 - Aktifkan fitur Pemindaian Batch
0x00 - Nonaktifkan fitur Pemindaian Batch

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
Batch_Scan_opcode 1 oktet 0x1 - Aktifkan fitur khusus pelanggan
0x2 - Tetapkan parameter Penyimpanan Pemindaian Batch
0x3 - Tetapkan parameter Pemindaian Batch
0x4 - Baca parameter Hasil Pemindaian Batch

LE_Batch_Scan_Command: Setel subperintah Param Penyimpanan Pemindaian Batch

SubOCF: 0x02

Parameter sub-perintah Ukuran Tujuan
Batch_Scan_Full_Max 1 oktet Ruang penyimpanan maksimal (dalam%) dialokasikan untuk gaya penuh
[Rentang: 0-100]
Batch_Scan_Truncated_Max 1 oktet Ruang penyimpanan maksimal (dalam %) dialokasikan untuk gaya terpotong
[Rentang: 0-100]
Batch_Scan_Notify_Threshold 1 oktet Atur tingkat pemberitahuan (dalam %) untuk kumpulan penyimpanan individual
[Rentang: 0-100]
Menyetel ke 0 akan menonaktifkan notifikasi. Peristiwa HCI khusus vendor dihasilkan (Subperistiwa pelanggaran ambang batas penyimpanan)

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
Batch_scan_opcode 1 oktet 0x02 [Atur parameter Pemindaian Batch]

LE_Batch_Scan_Command: Setel subperintah Batch Scan Param

SubOCF: 0x03

Parameter sub-perintah Ukuran Tujuan
Batch_Scan_Mode 1 oktet 0x00 – Pemindaian batch dinonaktifkan
0x01 – Mode terpotong diaktifkan
0x02 – Mode penuh diaktifkan
0x03 – Mode terpotong dan Penuh diaktifkan
Duty_cycle_scan_window 4 oktet Waktu pemindaian Pemindaian Batch (# slot)
Duty_cyle_scan_interval 4 oktet Periode interval Pemindaian Batch (# slot)
own_address_type 1 oktet 0x00 - Alamat perangkat publik
0x01 - Alamat perangkat acak
Batch_scan_Discard_Rule 1 oktet 0 - Buang iklan terlama
1 - Buang iklan dengan RSSI terlemah

Sub-perintah ini akan memulai pemindaian batch, jika diaktifkan. Pada pemindaian terpotong, hasil disimpan dalam bentuk terpotong dengan kunci unik untuk gaya terpotong = { BD_ADDR, scan_interval}. Ini berarti hanya satu BD_ADDR will direkam untuk setiap interval pemindaian. Catatan yang harus disimpan untuk mode Terpotong adalah sebagai berikut: { BD_ADDR , Tx Power, RSSI, Timestamp}

Ketika mode Penuh diaktifkan, pemindaian aktif akan digunakan dan Respons Pemindaian akan direkam. Kunci unik gaya lengkap = {MAC, Paket iklan}, terlepas dari interval pemindaian. Catatan yang disimpan untuk mode Penuh adalah { BD_ADDR , Tx Power, RSSI, Timestamp, Ad packet, Scan Response}. Dalam gaya Penuh, paket AD yang sama, ketika dilihat beberapa kali pada interval pemindaian yang berbeda, hanya direkam satu kali. Namun, dalam mode Terpotong, yang menarik adalah visibilitas BA_ADDR pada interval pemindaian yang berbeda (sekali per interval pemindaian). RSSI adalah nilai rata-rata dari semua duplikat iklan unik dalam interval pemindaian.

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
Batch_scan_opcode 1 oktet 0x03 [Atur Parameter Pemindaian Batch]

LE_Batch_Scan_Command: Baca sub-perintah Hasil Pemindaian Batch

SubOCF: 0x04

Parameter sub-perintah Ukuran Tujuan
Batch_Scan_Data_read 1 oktet 0x01 – Data mode terpotong
0x02 – Data mode penuh

Acara Command Complete akan dihasilkan untuk perintah ini. Saat host mengeluarkan perintah ini, semua hasil di pengontrol mungkin tidak muat dalam satu peristiwa Command Complete. Host akan mengulangi mengeluarkan perintah ini sampai hasil yang sesuai dalam acara Command Complete menunjukkan 0 dalam jumlah catatan, yang menunjukkan bahwa pengontrol tidak memiliki catatan lagi untuk dikomunikasikan ke host. Setiap peristiwa Command Complete dapat berisi beberapa rekaman dari satu jenis data saja (Penuh atau Terpotong).

Referensi waktu pengontrol dan host tidak disinkronkan. Satuan stempel waktu adalah 50 ms. Nilai stempel waktu didasarkan pada kapan Read_Batch_Scan_Results_Sub_cmd diberikan oleh host. Jika waktu kedatangan perintah adalah T_c di firmware, maka waktu aktual pengambilan stempel waktu di firmware adalah T_fw . Waktu pelaporan adalah: ( T_c - T_fw ). T_c dan T_fw berada dalam domain waktu firmware. Hal ini memungkinkan tuan rumah menghitung berapa lama peristiwa tersebut terjadi.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
Batch_scan_opcode 1 oktet 0x03 [Atur parameter Pemindaian Batch]
Batch_Scan_data_read 1 oktet Mengidentifikasi format (Terpotong atau Penuh)
num_of_records 1 oktet Jumlah catatan Batch_Scan_data_read
format_of_data Variabel Mode Terpotong:
Alamat[0]: 6 oktet
Address_Type[0]: 1 oktet
Tx_Pwr[0]: 1 oktet
RSSI[0] : 1 oktet
Stempel waktu[0]: 2 oktet
[beberapa catatan ( num_of_records ) dengan format di atas]

Modus Penuh:
Alamat[0]: 6 oktet
Address_Type[0]: 1 oktet
Tx_Pwr[0]: 1 oktet
RSSI[0]: 1 oktet
Stempel waktu[0]: 2 oktet
Adv packet_len[0]: 1 oktet
Adv_packet[0]: oktet Adv_packet_len
Scan_data_resp_len[0]: 1 oktet
Scan_data_resp[0]: Scan_data_resp oktet
[beberapa catatan dengan format di atas ( num_of_records )]

Filter Konten Paket Iklan

Gunakan ini untuk mengaktifkan/menonaktifkan/mengatur Filter Konten Paket Iklan (APCF) di pengontrol. APCF memfilter laporan iklan di pengontrol tetapi tidak memfilter iklan berkala.

LE_APCF_Perintah

OCF: 0x157

Parameter perintah Ukuran Tujuan
APCF_opcode 1 oktet 0x00 - APCF Aktif
0x01 - Parameter Penyaringan Setel APCF
0x02 - Alamat Penyiar APCF
0x03 - UUID Layanan APCF
0x04 - UUID Permintaan Layanan APCF
0x05 - Nama Lokal APCF
0x06 - Data Produsen APCF
0x07 - Data Layanan APCF
0x08 - Layanan Penemuan Transportasi APCF
0x09 - Filter Jenis IKLAN APCF
0x10 ~ 0xAF - Dicadangkan untuk penggunaan di masa mendatang
0xB0 ~ 0xDF - Dicadangkan untuk vendor
0xE0 ~ 0xFE - Dicadangkan untuk penggunaan di masa mendatang
0xFF - APCF Baca Fitur tambahan

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status pengembalian
APCF_opcode 1 oktet 0x00 - APCF Aktif
0x01 - Parameter Penyaringan Setel APCF
0x02 - Alamat Penyiar APCF
0x03 - UUID Layanan APCF
0x04 - UUID Permintaan Layanan APCF
0x05 - Nama Lokal APCF
0x06 - Data Produsen APCF
0x07 - Data Layanan APCF
0x08 - Layanan Penemuan Transportasi APCF
0x09 - Filter Jenis IKLAN APCF
0x10 ~ 0xAF - Dicadangkan untuk penggunaan di masa mendatang
0xB0 ~ 0xDF - Dicadangkan untuk vendor
0xE0 ~ 0xFE - Dicadangkan untuk penggunaan di masa mendatang
0xFF - APCF Baca Fitur tambahan

LE_APCF_Perintah: Aktifkan_sub_cmd

SubOCF: 0x00

Parameter sub-perintah Ukuran Tujuan
APCF_enable 1 oktet 0x01 - Aktifkan fitur APCF
0x00 - Nonaktifkan fitur APCF

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
APCF_opcode 1 oktet 0x0 - APCF Aktif
APCF_Enable 1 oktet Aktifkan/nonaktifkan diatur melalui APCF_enable

LE_APCF_Perintah: set_filtering_parameters_sub_cmd

Subperintah ini digunakan untuk menambah atau menghapus spesifikasi filter atau menghapus daftar filter untuk pemfilteran pada chip.

SubOCF: 0x01

Parameter sub-perintah Ukuran Tujuan
APCF_Action 1 oktet 0x00 - Tambahkan
0x01 - Hapus
0x02 - Hapus
Hapus akan menghapus filter tertentu bersama dengan entri fitur terkait di tabel lain.
Hapus akan menghapus semua filter dan entri terkait di tabel lain.
APCF_Filter_Index 1 oktet Indeks filter (0, max_filter-1 )
APCF_Feature_Selection 2 oktet Masker bit untuk fitur yang dipilih:
Bit 0: Atur untuk mengaktifkan filter Alamat Siaran
Bit 1: Atur untuk mengaktifkan filter Perubahan Data Layanan
Bit 2: Atur untuk mengaktifkan pemeriksaan UUID Layanan
Bit 3: Atur untuk mengaktifkan pemeriksaan UUID Permintaan Layanan
Bagian 4: Atur untuk mengaktifkan pemeriksaan Nama Lokal
Bit 5: Atur untuk mengaktifkan Pemeriksaan Data Produsen
Bit 6: Atur untuk mengaktifkan Pemeriksaan Data Layanan
Bit 7: Atur untuk mengaktifkan Pemeriksaan Layanan Penemuan Transportasi
Bit 8: Atur untuk mengaktifkan Pemeriksaan Tipe Iklan
APCF_List_Logic_Type 2 oktet Operasi logika untuk setiap pemilihan fitur (posisi per bit) yang ditentukan dalam APCF_Feature_Selection .
Hanya valid jika fitur diaktifkan.
Nilai posisi bit:
0: ATAU
1: DAN
Jika logika "DAN" dipilih, paket ADV akan lolos filter hanya jika berisi SEMUA entri dalam daftar.
Jika logika "OR" dipilih, paket ADV akan lolos filter jika berisi salah satu entri dalam daftar.
APCF_Filter_Logic_Type 1 oktet 0x00: ATAU
0x01: DAN
Catatan: Tipe logikanya adalah N/A untuk tiga kolom pertama APCF_Feature_Selection , yang selalu berupa logika "DAN". Mereka hanya berlaku untuk (Bit 3 - Bit 6) empat bidang APCF_Feature_Selection .
rssi_high_thresh 1 oktet [dalam dBm]
Pengiklan dianggap terlihat hanya jika sinyalnya lebih tinggi dari ambang batas tinggi RSSI. Jika tidak, firmware akan berperilaku seolah-olah tidak pernah melihatnya.
delivery_mode 1 oktet 0x00 - immediate
0x01 - on_found
0x02 - batched
onfound_timeout 2 oktet Hanya valid jika delivery_mode adalah on_found .
[dalam milidetik]
Saatnya firmware berlama-lama dan mengumpulkan iklan tambahan sebelum melaporkan.
onfound_timeout_cnt 1 oktet Hanya valid jika delivery_mode adalah on_found .
[menghitung]
Jika iklan di onFound tetap ada di firmware selama durasi onfound_timeout , iklan tersebut akan mengumpulkan beberapa iklan dan hitungannya diperiksa. Jika hitungan melebihi onfound_timeout_cnt , OnFound akan segera dilaporkan setelahnya.
rssi_low_thresh 1 oktet Hanya valid jika delivery_mode adalah on_found .
[dalam dBm]
Paket pengiklan dianggap tidak terlihat jika RSSI paket yang diterima tidak melebihi ambang batas rendah RSSI.
onlost_timeout 2 oktet Hanya valid jika delivery_mode adalah on_found .
[dalam milidetik]
Jika suatu iklan, setelah ditemukan, tidak terlihat secara berturut-turut selama periode lost_timeout , iklan tersebut akan segera dilaporkan hilang.
num_of_tracking_entries 2 oktet Hanya valid jika delivery_mode adalah on_found .
[menghitung]
Jumlah total pengiklan yang akan dilacak per filter.

Nilai RSSI harus menggunakan komplemen 2 untuk mewakili nilai negatif.

Host harus dapat mengonfigurasi beberapa filter dengan APCF_Application_Address_type diatur ke 0x02 (untuk semua alamat penyiar) untuk mengelola berbagai kombinasi filter.

Pemfilteran, pengelompokan, dan pelaporan adalah konsep yang saling terkait. Setiap iklan dan respons pemindaian terkait harus melalui semua filter, satu demi satu. Jadi, tindakan yang dihasilkan ( delivery_mode ) terkait erat dengan pemfilteran. Mode pengirimannya adalah sebagai berikut: report_immediately , batch , dan onFound . Nilai OnLost terkait dengan OnFound dalam arti akan muncul setelah OnFound ketika hilang.

Alur pemrosesan ini menggambarkan model konseptual:

Ketika frame iklan (atau respons pemindaian) diterima, frame tersebut diterapkan ke semua filter secara berurutan. Ada kemungkinan bahwa sebuah iklan dapat menyebabkan pelaporan langsung berdasarkan satu filter dan pengelompokan iklan yang sama karena tindakan filter yang berbeda.

Ambang batas level RSSI (tinggi dan rendah) memberikan kemampuan untuk mengontrol kapan frame terlihat untuk pemrosesan filter, bahkan ketika paket yang valid diterima oleh pengontrol. Jika mode pengiriman diatur ke segera atau batch, RSSI frame dipertimbangkan untuk pemrosesan pengontrol lebih lanjut. Aplikasi yang berbeda memerlukan pelaporan dan perilaku pengelompokan yang berbeda. Hal ini memungkinkan beberapa aplikasi memiliki pelaporan langsung dan/atau pengelompokan hasil dalam firmware, secara bersamaan. Contohnya adalah kasus ketika pemindaian batch aktif dari satu aplikasi dan kemudian pemindaian LE reguler dikeluarkan oleh aplikasi lain. Sebelum pemindaian batch dikeluarkan, kerangka kerja/aplikasi menetapkan filter yang sesuai. Nanti, saat aplikasi kedua mengeluarkan pemindaian reguler, pengelompokan sebelumnya akan dilanjutkan. Namun, karena pemindaian reguler, ini mirip dengan menambahkan filter null (bersama dengan semua filter yang ada) secara konseptual bersama dengan perintah LE scan. Parameter perintah pemindaian LE diutamakan saat aktif. Ketika pemindaian LE reguler dinonaktifkan, pengontrol akan kembali ke pemindaian batch sebelumnya, jika ada.

Mode pengiriman OnFound didasarkan pada filter yang dikonfigurasi. Kombinasi yang memicu tindakan filter agar berhasil dianggap sebagai entitas yang akan dilacak onLost . Peristiwa terkait adalah subperistiwa pelacakan LE Advt.

Transisi OnFound/OnLost untuk filter (jika diaktifkan) akan terlihat seperti berikut:

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
APCF_opcode 1 oktet 0x01 - Parameter Pemfilteran Setel APCF
APCF_Action 1 oktet Gema kembali perintah APCF_Action
APCF_AvailableSpaces 1 oktet Jumlah entri yang tersedia di tabel filter

LE_APCF_Perintah: siaran_alamat_sub_cmd

Subperintah ini digunakan untuk menambah atau menghapus alamat pengiklan atau menghapus daftar alamat pengiklan untuk pemfilteran pada chip.

SubOCF: 0x02

Parameter sub-perintah Ukuran Tujuan
APCF_Action 1 oktet 0x00 - Tambahkan
0x01 - Hapus
0x02 - Hapus
Hapus akan menghapus alamat penyiar yang ditentukan dalam filter yang ditentukan.
Clear akan menghapus semua alamat penyiar di filter yang ditentukan.
APCF_Filter_Index 1 oktet Indeks filter (0, max_filter-1 )
APCF_Broadcaster_Address 6 oktet Alamat perangkat 6-byte untuk ditambahkan atau dihapus dari daftar alamat penyiar
APCF_Application_Address_type 1 oktet 0x00: Publik
0x01: Acak
0x02: NA (jenis alamat tidak berlaku)

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
APCF_opcode 1 oktet 0x02 - Alamat Penyiar APCF
APCF_Action 1 oktet Gema kembali perintah APCF_Action
APCF_AvailableSpaces 1 oktet Jumlah entri gratis yang masih tersedia di tabel Alamat Siaran

LE_APCF_Perintah: service_uuid_sub_cmd

Subperintah ini digunakan untuk menambah atau menghapus UUID layanan atau untuk menghapus daftar UUID layanan untuk pemfilteran pada chip.

SubOCF: 0x03

Parameter sub-perintah Ukuran Tujuan
APCF_Action 1 oktet 0x00 - Tambahkan
0x01 - Hapus
0x02 - Hapus
Hapus akan menghapus alamat UUID layanan yang ditentukan dalam filter yang ditentukan.
Clear akan menghapus semua UUID layanan dalam filter yang ditentukan.
APCF_Filter_Index 1 oktet Indeks filter (0, max_filter -1)
APCF_UUID 2,4,16 oktet UUID Layanan (16-bit, 32-bit, atau 128-bit) untuk menambah, atau menghapus dari, daftar.
APCF_UUID_MASK 2,4,16 oktet Layanan UUID Mask (16-bit, 32-bit, atau 128-bit) untuk ditambahkan ke daftar. Panjangnya harus sama dengan APCF_UUID.

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
APCF_opcode 1 oktet 0x03 - UUID Layanan APCF
APCF_Action 1 oktet Gema kembali perintah APCF_Action
APCF_AvailableSpaces 1 oktet Jumlah entri gratis yang masih tersedia di tabel UUID Layanan

LE_APCF_Perintah: permintaan_uuid_sub_cmd

Subperintah ini digunakan untuk menambah atau menghapus UUID permintaan atau untuk menghapus daftar UUID permintaan untuk pemfilteran pada chip.

SubOCF: 0x04

Parameter sub-perintah Ukuran Tujuan
APCF_Action 1 oktet 0x00 - Tambahkan
0x01 - Hapus
0x02 - Hapus
Hapus akan menghapus alamat UUID permintaan dalam filter yang ditentukan.
Clear akan menghapus semua UUID permintaan dalam filter yang ditentukan.
APCF_Filter_Index 1 oktet Indeks filter (0, max_filter -1)
APCF_UUID 2,4,16 oktet UUID Permohonan (16-bit, 32-bit, atau 128-bit) untuk ditambahkan atau dihapus dari daftar.
APCF_UUID_MASK 2,4,16 oktet Masker UUID Permohonan (16-bit, 32-bit, atau 128-bit) untuk ditambahkan ke daftar. Panjangnya harus sama dengan APCF_UUID .

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
APCF_opcode 1 oktet 0x04 - UUID Permintaan APCF
APCF_Action 1 oktet Gema kembali perintah APCF_Action
APCF_AvailableSpaces 1 oktet Jumlah entri gratis yang masih tersedia di tabel UUID Permohonan

LE_APCF_Perintah: nama_lokal_sub_cmd

Sub-perintah ini digunakan untuk menambah atau menghapus string nama lokal atau untuk menghapus daftar string nama lokal untuk pemfilteran pada chip.

SubOCF: 0x05

Parameter sub-perintah Ukuran Tujuan
APCF_Action 1 oktet 0x00 - Tambahkan
0x01 - Hapus
0x02 - Hapus
Hapus akan menghapus string nama lokal yang ditentukan dalam filter yang ditentukan.
Clear akan menghapus semua string nama lokal di filter yang ditentukan.
APCF_Filter_Index 1 oktet Indeks filter (0, max_filter -1)
APCF_LocName_Mandata_or_SerData Ukuran variabel String karakter untuk nama lokal.

Catatan:
  • Saat ini jumlah maksimal karakter dalam string nama lokal adalah 29
  • Tidak berlaku bila tindakan "Hapus" (0x2)

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
APCF_opcode 1 oktet 0x05 - Nama Lokal APCF
APCF_Action 1 oktet Gema kembali perintah APCF_Action
APCF_AvailableSpaces 1 oktet Jumlah entri gratis yang masih tersedia di tabel Nama lokal

LE_APCF_Perintah: manf_data_sub_cmd

Subperintah ini digunakan untuk menambah atau menghapus string data pabrikan atau untuk menghapus daftar string data pabrikan untuk pemfilteran pada chip.

SubOCF: 0x06

Parameter sub-perintah Ukuran Tujuan
APCF_Action 1 oktet 0x00 - Tambahkan
0x01 - Hapus
0x02 - Hapus
Hapus akan menghapus string data pabrikan yang ditentukan dalam filter yang ditentukan.
Clear akan menghapus semua string data pabrikan di filter yang ditentukan.
APCF_Filter_Index 1 oktet Indeks Filter (0, max_filter -1)
APCF_LocName_Mandata_or_SerData Ukuran variabel String karakter untuk data pabrikan.

Catatan:
  • Saat ini jumlah maksimal karakter dalam string nama lokal adalah 29
  • Tidak berlaku bila tindakan "Hapus" (0x2)
APCF_ManData_Mask Ukuran variabel Masker data pembuatan untuk ditambahkan ke daftar. Panjangnya harus sama dengan APCF_LocName_or_ManData_or_SerData .

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
APCF_opcode 1 oktet 0x06 - Data Produsen APCF
APCF_Action 1 oktet Gema kembali perintah APCF_Action
APCF_AvailableSpaces 1 oktet Jumlah entri gratis yang masih tersedia di tabel Data Produsen

LE_APCF_Perintah: service_data_sub_cmd

Subperintah ini digunakan untuk menambah atau menghapus string data layanan atau untuk menghapus daftar string data layanan untuk pemfilteran pada chip.

SubOCF: 0x07

Parameter sub-perintah Ukuran Tujuan
APCF_Action 1 oktet 0x00 - Tambahkan
0x01 - Hapus
0x02 - Hapus
Hapus akan menghapus string data layanan yang ditentukan dalam filter yang ditentukan.
Hapus akan menghapus semua string data layanan dalam filter yang ditentukan.
APCF_Filter_Index 1 oktet Indeks Filter (0, max_filter -1)
APCF_LocName_Mandata_or_SerData Ukuran variabel String karakter untuk data layanan.

Catatan:
  • Saat ini jumlah maksimal karakter dalam string nama lokal adalah 29
  • Tidak berlaku bila tindakan "Hapus" (0x2)
APCF_LocName_Mandata_or_SerData_Mask Ukuran variabel Masker data layanan untuk ditambahkan ke daftar. Panjangnya harus sama dengan APCF_LocName_or_ManData_or_SerData.

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
APCF_opcode 1 oktet 0x07 - Data Layanan APCF
APCF_Action 1 oktet Gema kembali perintah APCF_Action
APCF_AvailableSpaces 1 oktet Jumlah entri gratis yang masih tersedia untuk tabel Data Layanan

LE_APCF_Perintah: ad_type_sub_cmd

Subperintah ini digunakan untuk menambah atau menghapus tipe AD atau untuk menghapus daftar tipe AD untuk pemfilteran pada chip. Gunakan read_extended_features_sub_cmd untuk memeriksa apakah perintah ini didukung atau tidak.

SubOCF: 0x09

Parameter sub-perintah Ukuran Tujuan
APCF_Action 1 oktet 0x00 - Tambahkan
0x01 - Hapus
0x02 - Hapus
Hapus akan menghapus jenis AD yang ditentukan dalam filter yang ditentukan.
Clear akan menghapus semua jenis AD dalam filter yang ditentukan.
APCF_Filter_Index 1 oktet Indeks Filter (0, max_filter -1)
APCF_AD_TYPE 1 oktet Tipe AD untuk menambah, atau menghapus dari, daftar. Abaikan ketika APCF_Action adalah 0x02 (Hapus)
APCF_AD_DATA_Length Ukuran variabel 0x00 - artinya tidak memfilter konten data
Abaikan ketika APCF_Action adalah 0x02 (Hapus)
APCF_AD_DATA Ukuran variabel Abaikan ketika APCF_Action adalah 0x02 (Hapus)
APCF_AD_DATA_MASK Ukuran variabel Abaikan ketika APCF_Action adalah 0x02 (Hapus)
Panjangnya harus sama dengan APCF_AD_DATA .

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
APCF_opcode 1 oktet 0x09 - Tipe IKLAN APCF
APCF_Action 1 oktet Gema kembali perintah APCF_Action
APCF_AvailableSpaces 1 oktet Jumlah entri gratis yang masih tersedia di tabel Tipe AD

LE_APCF_Perintah: read_exended_features_sub_cmd

Subperintah ini digunakan untuk membaca fitur APCF yang diperluas.

Sub OCF: 0xFF

Parameter sub-perintah Ukuran Tujuan
Tak dapat diterapkan Parameter perintah kosong.

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
APCF_opcode 1 oktet 0xFF - APCF_Read_Exended_Features
APCF_extended_features 2 oktet

Masker bit untuk fitur tambahan yang didukung:

  • Bit 0: Mendukung filter Layanan Penemuan Transportasi
  • Bit 1: Mendukung filter Tipe IKLAN
  • Bit 2 ~15: Dicadangkan untuk penggunaan di masa mendatang

Nilai sedikit

  • 0 = Tidak didukung
  • 1 = Didukung

Pengendali aktivitas dan perintah informasi energi

Tujuan dari informasi ini adalah agar fungsi sistem host yang lebih tinggi dapat menganalisis aktivitas total semua komponen, termasuk pengontrol BT dan status makronya, sehubungan dengan apa yang terjadi di aplikasi dan kerangka kerja. Untuk melakukan hal ini, informasi berikut diperlukan dari tumpukan BT dan pengontrol:

  • Tumpukan BT: Melaporkan status operasional makro pengontrol saat ini
  • Firmware: Melaporkan aktivitas agregat dan informasi energi

Status makro tumpukan host BT, sebagaimana ditentukan di tingkat pengguna:

  • Idle: [pemindaian halaman, LE advt, pemindaian pertanyaan]
  • Pindai: [paging/pertanyaan/mencoba menyambung]
  • Aktif: [Tautan ACL aktif, tautan SCO aktif, mode sniff]

Aktivitas yang dipantau oleh pengontrol selama masa pakainya adalah waktu Tx, waktu Rx, waktu idle, dan total energi yang dikonsumsi. Mereka dihapus ketika dibaca dari host.

LE_Get_Controller_Activity_Energy_Info

Ini adalah perintah khusus vendor.

OCF: 0x159

Parameter sub-perintah Ukuran Tujuan
TIDAK Parameter perintah kosong

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
total_tx_time_ms 4 oktet Total waktu tampil Tx
total_rx_time_ms 4 oktet Total waktu melakukan Rx
total_idle_time_ms 4 oktet Total waktu dalam keadaan idle (status daya rendah non-tidur)
total_energy_used 4 oktet Total energi yang digunakan [hasil kali arus (mA), tegangan (V) dan waktu (ms)]

Perintah parameter pemindaian set LE yang diperluas

Perintah ini dapat digunakan untuk mengaktifkan jendela dan interval pemindaian yang lebih besar di pengontrol. Sesuai dengan Spesifikasi BT Core 5.2, jendela dan interval pemindaian memiliki batas atas 10,24 detik, yang menghambat interval pemindaian aplikasi yang lebih lama melebihi 10,24 detik.

Referensi dasar: Spesifikasi BT Core 5.2, halaman 2493 (Perintah LE Set Scan Parameters)

OCF: 0x15A

Parameter Perintah Ukuran Tujuan
LE_Ex_Scan_Type 1 oktet 0x00 - Pemindaian pasif. Tidak ada paket SCAN_REQ yang akan dikirim (default).
0x01 - Pemindaian aktif. Paket SCAN_REQ dapat dikirim.
LE_Ex_Scan_Interval 4 oktet Didefinisikan sebagai interval waktu sejak Pengontrol memulai pemindaian LE terakhirnya hingga memulai pemindaian LE berikutnya.
Rentang: 0x0004 hingga 0x00FFFFFF
Bawaan: 0x0010 (10 mdtk)
Waktu = N * 0,625 ms
Rentang waktu: 2,5 ms hingga 10442,25 detik
LE_Ex_Scan_Window 4 oktet Durasi pemindaian LE. LE_Scan_Window harus kurang dari atau sama dengan LE_Scan_Interval .
Rentang: 0x0004 hingga 0xFFFF
Bawaan: 0x0010 (10 mdtk)
Waktu = N * 0,625 ms
Rentang Waktu: 2,5 ms hingga 40,95 detik
Own_Address_Type 1 oktet 0x00 - Alamat Perangkat Publik (default)
0x01 - Alamat Perangkat Acak
LE_Ex_Scan_Filter_Policy 0x00 - Terima semua paket iklan (default). Paket iklan terarah yang tidak ditujukan untuk perangkat ini akan diabaikan.
0x01 - Abaikan paket iklan dari perangkat yang tidak ada dalam daftar White List Only. Paket iklan terarah yang tidak ditujukan untuk perangkat ini akan diabaikan.

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai

Dapatkan perintah info debug pengontrol

Tujuan dari elemen informasi ini adalah untuk memperoleh informasi debug pengontrol oleh sebuah host, dalam bentuk biner, untuk pasca-pemrosesan dan analisis. Hal ini membantu men-debug permasalahan di lapangan dan menyediakan perangkat bagi para insinyur untuk mencatat informasi guna dianalisis. Pengontrol dapat memberikan informasi ketika diminta oleh host melalui peristiwa (sub-peristiwa Info Debug Pengendali) atau secara mandiri bila diinginkan oleh pengontrol. Contoh penggunaannya bisa untuk melaporkan informasi status firmware, informasi crash dump, informasi logging, dll.

OCF: 0x15B

Parameter perintah Ukuran Tujuan
T/A Daftar parameter perintah kosong

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai

Dukungan Pembongkaran Perangkat Keras A2DP

Fitur A2DP Offload mendukung offload proses pengkodean audio A2DP ke prosesor audio yang terpasang pada BT Controller. Aliran data audio yang dikodekan diteruskan langsung dari prosesor Audio ke Pengontrol BT tanpa keterlibatan host BT. BT Host masih bertanggung jawab atas konfigurasi dan kontrol sesi A2DP. Tersedia dua versi perintah. Perintah lama dengan Sub OCF 0x01-0x02 hanya mendukung codec sumber terbuka. Versi dengan Sub-OCF 0x02-0x03 tidak sesuai dengan codec yang dikonfigurasi.

OCF: 0x15D

Mulai Pembongkaran A2DP (warisan)

SubOCF: 0x01

Gunakan perintah ini untuk mengonfigurasi proses Pembongkaran A2DP dan memulai aliran A2DP.

Parameter perintah Ukuran Tujuan
Codec 4 oktet Menentukan jenis Codec
0x01 - SBC
0x02 - AAC
0x04 - APTX
0x08 - APTX HD
0x10 - LDAC
Max_Latency 2 oktet Latensi Maks Diizinkan (dalam ms). Nilai nol menonaktifkan flush.
SCMS-T_Enable 2 oktet Oktet 0: Bendera yang memungkinkan penambahan header SCMS-T.
  • 0x00 - Header SCMS-T tidak disertakan.
  • 0x01 - Header SCMS-T disertakan.

Oktet 1: Nilai untuk header SCMS-T, saat diaktifkan.

Sampling_Frequency 4 oktet 0x01 - 44100Hz
0x02 - 48000Hz
0x04 - 88200Hz
0x08 - 96000Hz
Bits_Per_Sample 1 oktet 0x01 - 16 bit per sampel
0x02 - 24 bit per sampel
0x04 - 32 bit per sampel
Channel_Mode 1 oktet 0x01 - Mono
0x02 - Stereo
Encoded_Audio_Bitrate 4 oktet Bitrate audio yang dikodekan dalam bit per detik detik.
0x00000000 - Bitrate audio tidak ditentukan / tidak digunakan.
0x00000001 - 0x00FFFFFF - Kecepatan bit audio yang dikodekan dalam bit per detik.
0x01000000 - 0xFFFFFFFF - Dicadangkan.
Connection_Handle 2 oktet Koneksi Menangani koneksi A2DP yang sedang dikonfigurasi
L2CAP_Channel_ID 2 oktet ID Saluran L2CAP yang akan digunakan untuk koneksi A2DP ini
L2CAP_MTU_Size 2 oktet Ukuran maksimum L2CAP MTU yang berisi paket audio yang disandikan
Codec_Information 32 oktet Informasi Khusus Codec.

Kodek SBC:

Lihat elemen informasi spesifik SBC Codec di A2DP v1.3.
Oktet 0: Panjang blok | Subband | Metode Alokasi
Oktet 1: Nilai Bitpool minimum
Oktet 2: Nilai Bitpool maksimum
Oktet 3: Frekuensi Pengambilan Sampel | Modus Saluran
4-31 Oktober: dipesan

Kodek AAC:

Lihat elemen informasi spesifik AAC Codec di A2DP v1.3
Oktet 0: Tipe Objek
Oktet 1; b7: VBR
2-31 Oktober: dipesan

Kodek LDAC:

Oktet 0-3: ID Vendor
0x0000012D

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

Oktet 6: Indeks Bitrate:
0x00 - Tinggi
0x01 - Pertengahan
0x02 - Rendah
0x03 - 0x7E - Dicadangkan
0x7F - ABR (Kecepatan Bit Adaptif)
0x80 - 0xFF - Dicadangkan

Oktet 7: Mode Saluran LDAC
0x01 - Stereo
0x02 - Ganda
0x04 - Mono
Yang lain sudah dipesan

8-31 Oktober: dipesan

Semua codec lainnya:

0-31 Oktober: dipesan

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
Sub_Opcode 1 oktet 0x01 - Mulai Pembongkaran A2DP

Mulai Pembongkaran A2DP

SubOCF: 0x03

Gunakan perintah ini untuk mengonfigurasi proses Pembongkaran A2DP dan memulai aliran A2DP.

Parameter perintah Ukuran Tujuan
Connection Handle 2 oktet Menangani koneksi HCI yang aktif
L2CAP_Channel_ID 2 oktet Pengidentifikasi Saluran L2CAP dibuka untuk streaming A2DP
Data_Path_Direction 1 oktet 0x00 - Output (Sumber/Gabungan AVDTP)
0x01 - Masukan (AVDTP Tenggelam/Terpisah)
Peer_MTU 2 oktet Ukuran maksimum paket L2CAP, dinegosiasikan dengan rekannya.
CP_Enable_SCMS_T 1 oktet 0x00 - Nonaktifkan Header Perlindungan Konten SCMS-T
0x01 - Aktifkan Header Perlindungan Konten SCMS-T
CP_Header_SCMS_T 1 oktet Ketika Header Perlindungan Konten SCMS-T diaktifkan ( CP_SCMS_T_Enable diatur ke 0x01), menentukan nilai header yang mendahului konten audio (lihat A2DP, bagian 3.2.1-2) seperti yang ditentukan oleh Bluetooth Assigned Numbers, bagian 6.3.2.
Diabaikan ketika perlindungan Konten SCMS-T tidak diaktifkan.
Vendor_Specific_Parameters_Length 1 oktet Panjang Parameter Spesifik Vendor, dalam rentang dari 0 hingga 128.
Nilai 0 digunakan bila tidak ada parameter tambahan yang disediakan.
Vendor_Specific_Parameters 0-128 oktet Parameter Khusus Vendor yang disediakan oleh Bluetooth Audio HAL, CodecParameters.vendorSpecificParameters[] .

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
Sub_Opcode 1 oktet 0x03 - Mulai Pembongkaran A2DP

Hentikan Pembongkaran A2DP (warisan)

SubOCF: 0x02

Perintah ini digunakan untuk menghentikan aliran A2DP Offload.

Parameter perintah Ukuran Tujuan
T/A Daftar parameter perintah kosong.

Tidak ada parameter yang ditentukan untuk perintah ini.

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
Sub_Opcode 1 oktet 0x02 - Hentikan Pembongkaran A2DP

Hentikan Pembongkaran A2DP

SubOCF: 0x04

Perintah ini digunakan untuk menghentikan aliran A2DP Offload.

Parameter perintah Ukuran Tujuan
Connection Handle 2 oktet Menangani koneksi HCI yang aktif
L2CAP_Channel_ID 2 oktet Pengidentifikasi Saluran L2CAP dibuka untuk streaming A2DP
Data_Path_Direction 1 oktet 0x00 - Output (Sumber/Gabungan AVDTP)
0x01 - Masukan (AVDTP Tenggelam/Terpisah)

Acara Command Complete akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Perintah Selesai
Sub_Opcode 1 oktet 0x04 - Hentikan Pembongkaran A2DP

Perintah Laporan Kualitas Bluetooth

Fitur perintah Laporan Kualitas BT memulai mekanisme di pengontrol Bluetooth untuk melaporkan peristiwa Kualitas Bluetooth ke host. Anda dapat mengaktifkan empat opsi:

  • Mode Pemantauan Kualitas: Pengontrol secara berkala mengirimkan sub-peristiwa BQR terkait Kualitas Tautan ke host.
  • Mendekati LSTO: Jika tidak ada paket yang diterima dari perangkat BT yang terhubung selama lebih dari setengah nilai Link Supervision TimeOut (LSTO), pengontrol melaporkan peristiwa Mendekati LSTO ke host.
  • A2DP Audio Choppy: Saat pengontrol mendeteksi faktor yang menyebabkan audio terputus-putus, pengontrol melaporkan peristiwa A2DP Audio Choppy ke host.
  • (e)SCO Voice Choppy: Ketika pengontrol mendeteksi faktor-faktor yang menyebabkan suara terputus-putus, pengontrol melaporkan kejadian (e)SCO Voice Choppy kepada host.
  • Peradangan Root: Peristiwa ini dikirim oleh pengontrol ke tumpukan ketika HAL atau pengontrol mengalami kesalahan fatal dan perlu memulai ulang Bluetooth.
  • Jejak pesan LMP/LL: Pengontrol mengirimkan pesan LMP/LL secara jabat tangan dengan perangkat jarak jauh ke host.
  • Bluetooth Multi-Profile/Coex Sceduling Trace: Pengontrol mengirimkan informasi penjadwalannya tentang menangani beberapa profil Bluetooth dan koeksistensi nirkabel dalam pita 2,4 GHz ke host.
  • Mekanisme Informasi Debug Controller: Saat diaktifkan, pengontrol dapat secara mandiri melaporkan informasi logging debug melalui sub-even debug controller ke host.

OCF: 0x15e

Parameter perintah Ukuran Tujuan
BQR_Report_Action 1 oktet Tindakan untuk menambah / menghapus pelaporan peristiwa berkualitas yang ditetapkan dalam parameter bqr_quality_event_mask, atau bersihkan semua.

0x00 - Tambah
0x01 - Hapus
0x02 - Hapus

Hapus akan menghapus pelaporan acara kualitas spesifik.
CLEAR akan menghapus semua pelaporan acara kualitas (parameter BQR_QUALTY_EVENT_MASK dapat diabaikan).

BQR_Quality_Event_Mask 4 oktet Bit topeng untuk pelaporan acara kualitas yang dipilih.

Bit 0: Setel untuk mengaktifkan mode pemantauan kualitas.
Bit 1: Set untuk mengaktifkan Event mendekati LSTO (untuk ACL/(E) SCO/ISO).
Bit 2: Set untuk mengaktifkan acara Audio Audio Choppy A2DP.
Bit 3: Setel untuk mengaktifkan (e) SCO Voice Choppy Event.
Bit 4: Diatur untuk mengaktifkan peristiwa peradangan root.
Bit 5: Setel untuk mengaktifkan mode pemantauan energi.
Bit 6: Set untuk mengaktifkan acara LE Audio Choppy.
Bit 7: Set untuk mengaktifkan acara Fail Connect.
Bit 8 ~ 14: Dicadangkan.
Bit 15: Diatur untuk mengaktifkan acara kualitas khusus vendor.
Bit 16: Setel untuk mengaktifkan jejak pesan LMP/LL.
Bit 17: Setel untuk mengaktifkan Bluetooth Multi-Link/Coex Sceduling Trace.
Bit 18: Diatur untuk mengaktifkan mekanisme informasi debug pengontrol.
Bit 19 ~ 30: Dicadangkan.
Bit 31: Diatur untuk mengaktifkan jejak khusus vendor.

BQR_Minimum_Report_Interval 2 oktet Tentukan interval waktu minimum pelaporan acara kualitas untuk acara kualitas yang dipilih. Firmware pengontrol tidak boleh melaporkan acara berikutnya dalam interval waktu yang ditentukan. Pengaturan interval harus masing -masing dan didedikasikan untuk peristiwa kualitas yang ditambahkan.

Unit: MS
Default: 0 (tidak ada batasan untuk interval.)
Kisaran: 0 ~ 65535 ms

BQR_Vendor_Specific_Quality_Event_Mask 4 oktet Bit topeng untuk pelaporan acara kualitas khusus vendor yang dipilih.
Parameter ini hanya valid ketika bit 15 dari BQR_Quality_Event_Mask diatur.

Bit 0 ~ 31: Dicadangkan.

BQR_Vendor_Specific_Trace_Mask 4 oktet Bit topeng untuk pelaporan jejak khusus vendor yang dipilih.
Parameter ini hanya valid ketika bit 31 dari BQR_Quality_Event_Mask diatur.

Bit 0 ~ 31: Dicadangkan.

Acara lengkap perintah akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Lengkap Perintah
Current_Quality_Event_Mask 4 oktet Menunjukkan pengaturan mask bit saat ini.
Bit 0: Mode pemantauan kualitas diaktifkan.
Bit 1: Mendekati pelaporan acara LSTO diaktifkan.
Bit 2: Pelaporan Audio Audio Audio Audio diaktifkan.
Bit 3: (e) Pelaporan acara berombak SCO diaktifkan.
Bit 4: Pelaporan acara peradangan root diaktifkan.
Bit 5: Mode pemantauan energi diaktifkan.
Bit 6: LE Audio Choppy Event Reporting diaktifkan.
Bit 7: Connect Fail Event.
Bit 8 ~ 14: Dicadangkan.
Bit 15: Pelaporan acara kualitas khusus vendor diaktifkan.
Bit 16: LMP/LL Jejak pesan diaktifkan.
Bit 17: Bluetooth Multi-Link/Coex Sceduling Trace diaktifkan.
Bit 18: Mekanisme Informasi Debug Controller diaktifkan.
Bit 19 ~ 30: Dicadangkan.
Bit 31: Jejak khusus vendor diaktifkan.
Current_Vendor_Specific_Quality_Event_Mask 4 oktet Menunjukkan pengaturan mask bit saat ini.
Current_Vendor_Specific_Trace_Mask 4 oktet Menunjukkan pengaturan mask bit saat ini.

Perintah buffer audio dinamis

Buffer audio dinamis mengurangi glitching audio dengan mengubah ukuran buffer audio di pengontrol Bluetooth berdasarkan berbagai skenario.

OCF: 0x15f

Dapatkan kemampuan waktu buffer audio

Sub OCF: 0x01

Gunakan perintah ini untuk mendapatkan kemampuan waktu buffer audio dari pengontrol Bluetooth.

Parameter perintah Ukuran Tujuan
T/A Daftar Parameter Perintah Kosong

Acara lengkap perintah akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Lengkap Perintah
Dynamic_Audio_Buffer_opcode 1 oktet 0x01 - Dapatkan waktu buffer audio
Audio_Codec_Type_Supported 4 oktet Masker bit untuk tipe codec yang didukung
Bit 0 - SBC
Bit 1 - AAC
Bit 2 - aptx
Bit 3 - APTX HD
Bit 4 - LDAC
Bit 5-31 dicadangkan
Audio_Codec_Buffer_Default_Time_For_Bit_0 2 oktet Waktu buffer default dari tipe bit 0 codec yang ditentukan dalam audio_codec_type_supported.
Nilai ini harus 0 jika tipe bit 0 codec tidak didukung.
Unit: MS
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 2 oktet Waktu buffer maksimum dari tipe bit 0 codec yang ditentukan dalam audio_codec_type_supported.
Nilai ini harus 0 jika tipe bit 0 codec tidak didukung.
Unit: MS
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 2 oktet Waktu buffer minimum dari tipe bit 0 codec yang ditentukan dalam audio_codec_type_supported.
Nilai ini harus 0 jika tipe bit 0 codec tidak didukung.
Unit: MS
Audio_Codec_Buffer_Default_Time_For_Bit_1 2 oktet Waktu buffer default dari tipe bit 1 codec yang ditentukan dalam audio_codec_type_supported.
Nilai ini harus 0 jika jenis bit 1 codec tidak didukung.
Unit: MS
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 2 oktet Waktu buffer maksimum dari tipe codec bit 1 yang ditentukan dalam audio_codec_type_supported.
Nilai ini harus 0 jika jenis bit 1 codec tidak didukung.
Unit: MS
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 2 oktet Waktu buffer minimum dari tipe codec bit 1 yang ditentukan dalam audio_codec_type_supported.
Nilai ini harus 0 jika jenis bit 1 codec tidak didukung.
Unit: MS
...... ...... ......
Audio_Codec_Buffer_Default_Time_For_Bit_31 2 oktet Waktu buffer default dari tipe codec bit 31 yang ditentukan dalam audio_codec_type_supported.
Nilai ini harus 0 jika tipe codec bit 31 tidak didukung.
Unit: MS
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 2 oktet Waktu buffer maksimum tipe codec bit 31 yang ditentukan dalam audio_codec_type_supported.
Nilai ini harus 0 jika tipe codec bit 31 tidak didukung.
Unit: MS
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 2 oktet Waktu buffer minimum dari tipe codec bit 31 yang ditentukan dalam audio_codec_type_supported.
Nilai ini harus 0 jika tipe codec bit 31 tidak didukung.
Unit: MS

Atur waktu buffer audio

Sub OCF: 0x02

Gunakan perintah ini untuk mengatur waktu buffer audio ke pengontrol Bluetooth.

Parameter perintah Ukuran Tujuan
Audio_Codec_Buffer_Time 2 oktet Waktu buffer audio yang diminta untuk codec yang digunakan saat ini.
Unit: MS

Acara lengkap perintah akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Lengkap Perintah
Dynamic_Audio_Buffer_opcode 1 oktet 0x02 - Atur waktu buffer audio
Audio_Codec_Buffer_Time 2 oktet Waktu buffer audio saat ini di bluetooth controller.
Unit: MS

Acara HCI (khusus vendor)

Peristiwa HCI khusus vendor diperlukan dalam beberapa kasus. Lihat Gambar 5.4 di halaman 1897 dari spesifikasi BT Core 5.2. Parameter acara 0 akan selalu berisi kode sub-event pertama, berdasarkan di mana sisa acara HCI diterjemahkan.

Parameter Peristiwa Ukuran Tujuan
HCI_vendor_specific_event_code 1 oktet 0xFF
sub_event_code 1 oktet Kode sub-event akan berukuran 1 oktet, byte segera mengikuti panjang parameter dalam paket acara HCI.

Sub-Event Pelanggaran Ambang Penyimpanan

Acara ini menunjukkan bahwa ambang penyimpanan telah dilanggar.

Kode sub-event = 0x54

Parameter sub-event Ukuran Tujuan
Tidak ada

Sub-Event Perubahan Negara Multi-Advertising

Acara ini menunjukkan bahwa instance iklan telah mengubah keadaannya. Pada saat ini, acara ini hanya digunakan untuk menunjukkan instance iklan mana yang dihentikan sebagai hasil dari koneksi.

Kode sub-event = 0x55

Parameter sub-event Ukuran Tujuan
Advertising_instance 1 oktet Mengidentifikasi contoh iklan tertentu
Nilai yang valid adalah 0 hingga max_advt_instances -1
State_Change_Reason 1 Octet 0x00: Koneksi diterima
Connection_handle 2 oktet Mengidentifikasi koneksi yang menyebabkan instance advt dinonaktifkan (0xffff jika tidak valid)

Sub-acara pelacakan iklan le

Acara ini menunjukkan kapan pengiklan ditemukan atau hilang.

Sub Event Code = 0x56

Parameter sub-event Ukuran Tujuan
APCF_Filter_Index 1 oktet Indeks filter (0, max_filter -1)
Advertiser_State 1 oktet 0x00: Pengiklan Ditemukan
0x01: Pengiklan Hilang
Advt_Info_Present 1 Octet 0x00: Informasi Pengiklan ( Advt_Info ) Hadir
0x01: Informasi Pengiklan ( Advt_Info ) Tidak ada
Advertiser_Address 6 oktet Alamat publik atau acak
Advertiser_Address_Type 1 Octet 0x00: Alamat publik
0x01: Alamat acak
Advt_Info Tx_Pwr[0] : 1 Octet
RSSI[0] : 1 oktet
Timestamp[0] : 2 oktet
Adv packet_len[0] : 1 oktet
Adv_packet[0] : Adv_packet_len Octets
Scan_data_resp_len[0] : 1 Octet
Scan_data_resp[0] : Scan_data_resp octets

Sub-acara info debug pengontrol

Acara ini digunakan oleh pengontrol untuk memberikan informasi debug biner kepada host.

Kode sub-event = 0x57

Parameter sub-event Ukuran Tujuan
debug_block_byte_offset_start 2 oktet Debug block byte offset dari awal
last_block 1 Octet 0x00: lebih banyak data debug hadir
0x01: blok biner terakhir; No More Debug Data
cur_pay_load_sz 2 oktet Ukuran blok biner dalam acara saat ini
Debug_Data Variabel Debug Data cur_payload_sz

Sub-acara Laporan Kualitas Bluetooth

Peristiwa ini menunjukkan salah satu dari yang berikut ini: terjadi peristiwa kualitas Bluetooth, pengontrol mengunggah jejak pesan LMP/LL dan jejak penjadwalan multi-link/coex Bluetooth, atau data pengontrol yang dibuang sebagai data informasi debug.

Parameter sub-event Ukuran Tujuan
Quality_Report_Id 1 Octet 0x01: Pelaporan kualitas pada mode pemantauan.
0x02: Mendekati LSTO.
0x03: A2DP audio berombak.
0x04: (e) SCO Voice Choppy.
0x05 ~ 0x06: Dicadangkan.
0x07: LE Audio Choppy.
0x08: Connect Fail.
0x09 ~ 0xff: Dicadangkan.
Packet_Types 1 oktet 0x01: ID
0x02: NULL
0x03: Poll
0x04: FHS
0x05: HV1
0x06: HV2
0x07: HV3
0x08: DV
0x09: EV3
0x0a: EV4
0x0b: EV5
0x0c: 2-EV3
0x0D: 2-EV5
0x0e: 3-EV3
0x0f: 3-EV5
0x11: DH1
0x12: DM3
0x13: DH3
0x14: DM5
0x15: DH5
0x16: aux1
0x17: 2-DH1
0x18: 2-DH3
0x19: 2-DH5
0x1a: 3-DH1
0x1b: 3-DH3
0x1c: 3-DH5
0x1d ~ 0x50: dicadangkan
0x51: Paket ISO
0x52 ~ 0xff: dicadangkan
Connection_Handle 2 oktet ACL/(E) Pegangan Koneksi SCO/ISO.
Connection_Role 1 Octet Melakukan peran untuk koneksi.
0x00: Central
0x01: Perifheral
0x02 ~ 0xff: Dicadangkan.
TX_Power_Level 1 Octet Level daya transmisi saat ini untuk koneksi_handle yang ditentukan.

Nilai ini harus sama dengan pengontrol yang menanggapi perintah HCI HCI_READ_TRANSMIT_POWER_LEVEL.

RSSI 1 Octet [Dalam DBM]

Nilai Indikasi Kekuatan Sinyal (RSSI) yang diterima untuk koneksi_handle yang ditentukan.
Nilai ini harus menjadi nilai kekuatan sinyal penerima absolut.
Rentang: -127 hingga +20

SNR 1 Octet [Dalam DB]

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

Unused_AFH_Channel_Count 1 Octet Menunjukkan jumlah saluran yang tidak digunakan di AFH_Channel_map.
0x4f ~ 0xff: Dicadangkan.
AFH_Select_Unideal_Channel_Count 1 Octet Menunjukkan jumlah saluran yang diganggu dan memiliki kualitas yang buruk, tetapi mereka masih dipilih untuk AFH.
Jumlah minimum saluran yang diizinkan oleh spesifikasi Bluetooth adalah 20, jadi bahkan jika semua 79 saluran terganggu dan memiliki kualitas yang buruk, pengontrol masih perlu memilih setidaknya 20 saluran untuk AFH.
LSTO 2 oktet Pengaturan batas waktu pengawasan tautan saat ini.
Waktu = n * 0,625 ms
Kisaran waktu: 0,625 ms hingga 40,9 detik
Connection_Piconet_Clock 4 oktet Jam piconet untuk koneksi_handle yang ditentukan.
Nilai ini harus sama dengan pengontrol yang menanggapi perintah HCI_READ_CLOCK HCI dengan parameter "yang_clock" dari 0x01 (jam piconet).
Unit: N * 0,3125 ms (1 jam Bluetooth)
Retransmission_Count 4 oktet Jumlah transmisi sejak acara terakhir.
Hitungan ini harus diatur ulang setelah melaporkan ke tuan rumah.
No_RX_Count 4 oktet Tidak ada hitungan RX sejak acara terakhir.
Hitungan meningkat ketika tidak ada paket yang diterima pada slot waktu yang dijadwalkan atau paket yang diterima rusak.
Hitungan ini harus diatur ulang setelah melaporkan ke tuan rumah.
NAK_Count 4 oktet NAK (Pengakuan Negatif) Hitung sejak acara terakhir.
Hitungan ini harus diatur ulang setelah melaporkan ke tuan rumah.
Last_TX_ACK_Timestamp 4 oktet Cap waktu TX Ack terakhir. Ini didasarkan pada jam Bluetooth dari Piconet Central (CLK).
Unit: N * 0,3125 ms (1 jam Bluetooth)
Flow_Off_Count 4 oktet Berapa kali pengontrol menerima flow-off (berhenti) sejak acara terakhir.
Hitungan ini harus diatur ulang setelah melaporkan ke tuan rumah.
Last_Flow_On_Timestamp 4 oktet Timestamp dari Flow-On Terakhir (GO). Ini didasarkan pada jam Bluetooth dari Piconet Central (CLK).
Unit: N * 0,3125 ms (1 jam Bluetooth)
Buffer_Overflow_Bytes 4 oktet [Dalam byte]

Buffer overflow menghitung sejak acara terakhir.
Pengontrol menghitung berapa banyak byte data yang dijatuhkan.
Hitungan ini harus diatur ulang setelah dilaporkan ke host.

Buffer_Underflow_Bytes 4 oktet [Dalam byte]

Buffer Underflow Count sejak acara terakhir.
Hitungan ini harus diatur ulang setelah dilaporkan ke host.

bdaddr 6 oktet Alamat perangkat jarak jauh
cal_failed_item_count 1 Octet Hitungan Kalibrasi Gagal Item
TX_Total_Packets 4 oktet Jumlah paket yang dikirim.
TX_UnAcked_Packets 4 oktet Jumlah paket yang tidak menerima pengakuan.
Hitungan ini diatur ulang setelah melaporkan ke tuan rumah.
TX_Flushed_Packets 4 oktet Jumlah paket yang tidak dikirim oleh titik flush -nya.
Hitungan ini diatur ulang setelah melaporkan ke tuan rumah.
TX_Last_Subevent_Packets 4 oktet Jumlah paket yang menghubungkan lapisan mentransmisikan PDU data CIS di subevent terakhir dari acara CIS.
Hitungan ini diatur ulang setelah melaporkan ke tuan rumah.
Nilai nol jika tidak ada nilai yang valid untuk tautan.
CRC_Error_Packets 4 oktet Jumlah paket yang diterima dengan kesalahan CRC sejak acara terakhir.
Hitungan ini diatur ulang setelah melaporkan ke tuan rumah.
RX_Duplicate_Packets 4 oktet Jumlah paket duplikat (transmisi ulang) yang diterima sejak acara terakhir.
Hitungan ini diatur ulang setelah melaporkan ke tuan rumah.
Parameter spesifik vendor (parameter total panjang - TBD) * oktet Untuk vendor pengontrol untuk mendapatkan lebih banyak parameter spesifik vendor.

Sub-event Code = 0x58 [Quality_Report_ID = 0x05, acara peradangan root]

Peristiwa ini menunjukkan bahwa Bluetooth HAL atau pengontrol mengalami kesalahan fatal dan membutuhkan tumpukan Bluetooth untuk merekam situasi ini dan memulai kembali. Pengontrol harus mengirim root_inflammation_event ke Bluetooth Stack sebelum mengirim fragmen pertama dari acara info debug dalam hal apa pun.

Parameter error_code berisi kode kesalahan yang dilaporkan dari HAL/controller, 0 jika itu adalah kesalahan spesifik vendor chipset. Vendor_specific_error_code berisi kode kesalahan spesifik vendor chipset dari HAL/controller. Itu harus ditetapkan sebagai 0 jika parameter error_code bukan 0. parameter error_code dan vendor_specific_error_code seharusnya tidak keduanya 0.

Parameter sub-event Ukuran Tujuan
Quality_Report_Id 1 Octet 0x00 ~ 0x04: Dicadangkan.
0x05: Peradangan root.
0x06 ~ 0xff: Dicadangkan.
Error_Code 1 Octet 0x00: Kode kesalahan spesifik vendor chipset disertakan.
0x01 ~ 0xff: Kegagalan pengontrol terjadi. Lihat Bluetooth Spec [Vol 2] Bagian D, kode kesalahan untuk daftar kode kesalahan dan deskripsi.
Vendor_Specific_Error_Code 1 Octet 0x00: Tidak ada kode kesalahan spesifik vendor chipset.
0x01 ~ 0xff: Kode kesalahan spesifik vendor chipset.
Parameter spesifik vendor (Panjang total parameter - 4) * oktet Untuk vendor pengontrol untuk mendapatkan lebih banyak parameter spesifik vendor.
Parameter sub-event Ukuran Tujuan
Quality_Report_Id 1 Octet 0x00 ~ 0x10: Dicadangkan.
0x11: Trace pesan LMP/LL.
0x12: Trace penjadwalan multi-link/coex Bluetooth.
0x13: Pengontrol Informasi Debug Data Data.
0x14 ~ 0xff: Dicadangkan.
Connection_Handle 2 oktet Pegangan koneksi.
Parameter spesifik vendor (Panjang total parameter - 4) * oktet Format spesifik vendor jejak pesan LMP, Bluetooth multi-link/coex penjadwalan jejak dan pengontrol informasi debug data dump.

Dukungan Multi-Advertiser

Tujuan dukungan multi-penasihat adalah sebagai berikut:

  • Kemampuan untuk mendukung banyak iklan ( max_advt_instances )
  • Kekuatan transmisi yang berbeda untuk memungkinkan rentang yang bervariasi
  • Konten iklan yang berbeda
  • Respons individual untuk setiap pengiklan
  • Privasi (tidak dapat dilacak) untuk setiap pengiklan
  • Dapat dihubungkan

Agar spesifikasi ini dekat dengan standar yang ada, perintah khusus vendor berikut disediakan. Mereka berasal dari spesifikasi Bluetooth Core 4.1.

Le_multi_advt_command

OCF: 0x154

Parameter Perintah Ukuran Tujuan
Multi_advt_opcode 1 Octet 0x01 - Set_Advt_Param_Multi_Sub_Cmd
0x02 - Set_Advt_Data_Multi_Sub_Cmd
0x03 - Set_Scan_Resp_Data_Multi_Sub_Cmd
0x04 - Set_Random_Addr_Multi_Sub_Cmd
0x05 - Set_Advt_Enable_Multi_Sub_Cmd

Acara lengkap perintah akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 Octet Status Lengkap Perintah
Multi_advt_opcode 1 Octet 0x01 - Set_Advt_Param_Multi_Command
0x02 - Set_Advt_Data_Multi_Command
0x03 - Set_Scan_Resp_Data_Multi_Command
0x04 - Set_Random_Addr_Multi_Command
0x05 - Set_Advt_Enable_Multi_Command

Le_multi_advt_command: set_advt_param_multi_sub_cmd

Referensi Basis: Spesifikasi Bluetooth Core 4.1, halaman 964 (Perintah Parameter Periklanan LE Set)

Sub OCF: 0x01

Parameter Sub-Komandan Ukuran Tujuan
Advertising_Interval_Min Per spec Per spec
Advertising_Interval_Max Per spec Per spec
Advertising_Type Per spec Per spec
Own_Address_Type Per spec Per spec
Own_Address Per spec Per spec
Direct_Address_Type Per spec Per spec
Direct_Address Per spec Per spec
Advertising_Channel_Map Per spec Per spec
Adverstising_Filter_Policy Per spec Per spec
Advertising_Instance 1 Octet Menentukan penerapan parameter di atas untuk suatu instance
Tx_power 1 Octet Transmit_power
Unit - Dalam DBM (integer yang ditandatangani)
Rentang (-70 hingga +20)

Parameter Own_Address dapat menjadi alamat yang dikonfigurasi host pada saat menyiapkan instance multi-penyelekalan ini. Ini memberikan kemampuan untuk memiliki alamat pribadi yang dapat diselesaikan pada saat transmisi suar pertama. Iklan pada contoh akan terus berlanjut terlepas dari koneksi. Host BT Stack dapat mengeluarkan perintah untuk memulai iklan pada contoh, memposting koneksi.

Acara lengkap perintah akan dihasilkan untuk perintah ini sebagaimana ditentukan dalam spesifikasi Bluetooth Core 4.1, per perintah di atas. Pengontrol akan merespons dengan kode non-success (parameter tidak valid) jika instance iklan atau parameter Tx_Power tidak valid.

Parameter pengembalian Ukuran Tujuan
Status 1 Octet Status Lengkap Perintah
Multi_advt_opcode 1 Octet 0x01 [ Set_Advt_Param_Multi_Sub_Cmd]

Le_multi_advt_command: set_advt_data_multi_sub_cmd

Referensi dasar: Spesifikasi Bluetooth Core 4.1, halaman 969 (Perintah Data Periklanan LE Set)

Sub OCF: 0x02

Parameter Sub-Komandan Ukuran Tujuan
Advertising_Data_Length Per spec Per spec
Advertising_Data Per spec Per spec
Advertising_Instance 1 Octet Menentukan penerapan parameter di atas untuk suatu instance

Acara lengkap perintah akan dihasilkan untuk perintah ini sebagaimana ditentukan dalam spesifikasi Bluetooth Core 4.1, per perintah di atas. Pengontrol akan merespons dengan kode non-kesedihan jika instance iklan atau parameter Tx_Power tidak valid.

Parameter pengembalian Ukuran Tujuan
Status 1 Octet Status Lengkap Perintah
Multi_advt_opcode 1 Octet 0x02 [ Set_Advt_Data_Multi_Sub_Cmd]

Le_multi_advt_command: set_scan_respes_data_multi_sub_cmd

Referensi Basis: Spesifikasi Bluetooth Core 4.1, halaman 970 (Perintah Data Respons Pemindaian LE Set)

Sub OCF: 0x03

Parameter Sub-Komandan Ukuran Tujuan
Scan_Response_Data_Length Per spec Per spec
Scan_Response_Data Per spec Per spec
Advertising_Instance 1 Octet Menentukan penerapan parameter di atas untuk suatu instance

Acara lengkap perintah akan dihasilkan untuk perintah ini sebagaimana ditentukan dalam spesifikasi Bluetooth Core 4.1, per perintah di atas. Pengontrol akan merespons dengan kode non-kesederhanaan (parameter tidak valid) jika instance iklan atau parameter Tx_Power tidak valid.

Parameter pengembalian Ukuran Tujuan
Status 1 Octet Status Lengkap Perintah
Multi_advt_opcode 1 Octet 0x03 [ Set_Scan_Resp_Data_Multi_Sub_Cmd]

Le_multi_advt_command: set_random_addr_multi_sub_cmd

Referensi Basis: Spesifikasi Bluetooth Core 4.1, halaman 963 (Perintah Alamat Random LE Set)

Sub OCF: 0x04

Parameter Sub-Komandan Ukuran Tujuan
Alamat Acak Per spec Per spec
Advertising_Instance 1 Octet Menentukan penerapan parameter di atas untuk suatu instance

Acara lengkap perintah akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 Octet Status Lengkap Perintah
Multi_advt_opcode 1 Octet 0x04 [ Set_Random_Addr_Multi_Sub_Cmd]

Le_multi_advt_command: set_advt_enable_multi_sub_cmd

Referensi Basis: Spesifikasi Bluetooth Core 4.1, halaman 971 (LE Set Advertise Enable Command dalam spesifikasi inti itu)

OCF: 0x05

Parameter Sub-Komandan Ukuran Tujuan
Advertising_Enable 1 Octet Nilai 1 berarti mengaktifkan. Nilai lain berarti nonaktifkan.
Advertising_Instance 1 Octet Menentukan penerapan parameter di atas untuk suatu instance. Instance 0 berarti instance HCI standar.

Acara lengkap perintah akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 Octet Status Lengkap Perintah
Multi_advt_opcode 1 Octet 0x05 [ Set_Advt_Enable_Multi_Sub_Cmd]

Resolusi alamat pribadi yang dibongkar

Fitur ini menyelesaikan alamat pribadi di firmware atau perangkat keras pengontrol, yang memberikan manfaat berikut:

  • Latensi yang terlibat dengan tuan rumah dalam menyelesaikan alamat pribadi
  • Menghemat daya dengan menahan diri untuk tidak membangunkan tuan rumah

Le_set_rpa_timeout

OCF: 0x15c

Parameter Perintah Ukuran Tujuan
LE_local_IRK 16 oktet Perangkat lokal IRK digunakan untuk menghasilkan alamat yang dapat diselesaikan secara acak (ES).
tRPA_min 2 oktet Batas waktu generasi RPA minimum dalam hitungan detik. Pengontrol harus menghasilkan alamat yang dapat diselesaikan baru untuk setiap acara iklan/pemindaian/koneksi pada atau setelah timeout ini.
Rentang yang valid: 300-1800
tRPA_max 2 oktet Batas waktu generasi RPA maksimum dalam hitungan detik. Pengontrol harus menghasilkan alamat yang dapat diselesaikan baru untuk setiap acara iklan/pemindaian/koneksi pada atau sebelum batas waktu ini.
Rentang yang valid: tRPA_min -1800
Parameter pengembalian Ukuran Tujuan
Status 1 Octet Status perintah.

Nilai status HCI yang disarankan:
0x00 Sukses
0x01 Perintah Tidak Diketahui (jika tidak didukung)
0x12 Parameter Perintah Tidak Valid (Jika ada parameter yang ada di luar kisaran yang diberikan)

Le_rpa_offload_command

OCF: 0x155

Parameter Perintah Ukuran Tujuan
RPA_offload_opcode 1 Octet 0x1 - Aktifkan fitur spesifik pelanggan
0x2 - Tambahkan irk ke daftar
0x3 - Hapus irk dari daftar
0x4 - Daftar Bersihkan IRK
0x5 - Baca entri daftar irk

Acara lengkap perintah akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 oktet Status Lengkap Perintah
Event_RPA_offload_opcode 1 Octet 0x1 - Aktifkan fitur spesifik pelanggan
0x2 - Tambahkan irk ke daftar
0x3 - Hapus irk dari daftar
0x4 - Daftar Bersihkan IRK
0x5 - Baca entri daftar irk

Le_rpa_offload: enable_cust_specific_sub_command

Sub OCF: 0x01

Parameter Sub-Komandan Ukuran Tujuan
enable_customer_specific_feature_set 1 Octet 0x01 - Aktifkan fitur RPA yang dilepas
0x00 - Nonaktifkan fitur RPA yang dilepas

Offload RPA harus diaktifkan oleh host, berdasarkan kemampuan chip. Lihat LE_Get_Vendor_Capabilities_Command . Setiap chip dapat memiliki max_irk_list_sz yang bervariasi di firmware.

Acara lengkap perintah akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 Octet Status Lengkap Perintah
Event_cust_specific_feature_opcode 1 Octet 0x01 [Aktifkan fitur khusus pelanggan]

Le_rpa_offload: add_irk_to_list_sub_command

Sub OCF: 0x02

Parameter Sub-Komandan Ukuran Tujuan
LE_IRK 16 oktet Le Irk (1st Byte LSB)
Address_Type 1 Octet 0: Alamat Publik
1: Alamat acak
LE_Device_Address 6 oktet Alamat publik atau acak yang terkait dengan IRK (LSB byte 1)

Acara lengkap perintah akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 Octet Status Lengkap Perintah
Event_cust_specific_feature_opcode 1 Octet 0x02 [Tambahkan irk ke daftar]
LE_IrkList_AvailableSpaces 1 Octet Entri daftar IRL yang tersedia setelah operasi saat ini

Le_rpa_offload: Remove_irk_to_list_sub_command

Sub OCF: 0x03

Parameter Sub-Komandan Ukuran Tujuan
Address_Type 1 Octet 0: Alamat Publik
1: Alamat acak
LE_Device_Address 6 oktet Alamat publik atau acak yang mengaitkan irk

Acara lengkap perintah akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 Octet Status Lengkap Perintah
Event_cust_specific_feature_opcode 1 Octet 0x03 [Hapus irk dari daftar]
LE_IrkList_AvailableSpaces 1 Octet Entri daftar IRL yang tersedia setelah operasi saat ini

Le_rpa_offload: clear_irk_list_sub_command

Sub OCF: 0x04

Parameter Sub-Komandan Ukuran Tujuan
Tidak ada

Acara lengkap perintah akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 Octet Status Lengkap Perintah
Event_cust_specific_feature_opcode 1 Octet 0x04 [Daftar IST IRK]
LE_IrkList_AvailableSpaces 1 Octet Entri daftar IRL yang tersedia setelah operasi saat ini [ max_irk_list_sz]

Le_rpa_offload: read_irk_list_sub_command

Sub OCF: 0x05

Parameter Sub-Komandan Ukuran Tujuan
LE_read_IRK_list_entry-index 1 Octet Indeks Daftar IRK [0, max_irk_list_sz-1]

Acara lengkap perintah akan dihasilkan untuk perintah ini.

Parameter pengembalian Ukuran Tujuan
Status 1 Octet Status Lengkap Perintah
Event_cust_specific_feature_opcode 1 Octet 0x05 [Baca entri daftar irk]
LE_Read_IRK_List_entry 1 Octet Indeks irk yang ingin dibaca oleh host (ukuran daftar irk maksimum adalah 32)
LE_IRK 16 oktet Nilai irk
Address_Type 1 Octet 0: Alamat Publik
1: Alamat acak
LE_Device_Address 6 oktet Alamat publik atau acak yang terkait dengan irk
LE_Resolved_Private_Address 6 oktet Alamat pribadi yang dapat diselesaikan saat ini dari irk ini