Ana Bilgisayar Denetleyici Arayüzü (HCI), bir Bluetooth denetleyiciyle etkileşim kurmak için kullanılır.
Bu belge, Bluetooth (BT) ve Bluetooth Düşük Enerji (BLE) HCI gereksinimlerinin bir listesini sağlar. The aim is for Host BT stack vendors and BT controller vendors to conform to these platform requirements in order to use the feature set described below.
Bu belgede "özellik" olarak Bluetooth Core 5.2 Spesifikasyonuna atıfta bulunulmaktadır. Bluetooth Core 5.2 Spesifikasyonu, kabul edilen diğer belgelerle birlikte Bluetooth SIG web sitesinde mevcuttur.
Genel tasarıma genel bakış
Çip yetenekleri ve yapılandırması
Açık bir platform olarak Android, yazılım sürümleri, OEM'ler, satıcılar, platform ve çip yeteneklerinden oluşan bir matrise sahiptir.
To manage the varying landscape and to manage migrations, a design philosophy of allowing BT controllers to expose their capabilities (beyond the standard Bluetooth Core 5.2 Specification) is described in this document. Ana bilgisayar BT yığını daha sonra hangi özelliklerin etkinleştirileceğini belirlemek için bu yetenekleri kullanabilir.
Açık standartları desteklemek
Android'in hedeflerinden biri, Bluetooth spesifikasyonunun onaylanmasından sonra açık standartları desteklemektir. If a feature described below becomes available in standard HCI methods in a future Bluetooth specification, we will lean towards making that approach the default.
Satıcıya özel yetenekler
Satıcıya özel komut: LE_Get_Vendor_Capabilities_Command
OpCode Komut Alanı (OCF): 0x153
Komut parametresi | Boyut | Amaç |
---|---|---|
Yok | Komut parametre listesini boşalt |
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
max_advt_instances (Kullanımdan kaldırıldı) | 1 sekizli | Desteklenen reklam örneklerinin sayısı. V0.98'den sonra ayrılmıştır. This parameter is deprecated in the Google feature spec v0.98 and higher in favor of the LE Extended Advertising available in the BT spec version 5.0 and higher. |
offloaded_resolution_of_private-address (Kullanımdan kaldırıldı) | 1 sekizli | RPA'nın BT çip kapasitesi. Bir çip tarafından destekleniyorsa ana bilgisayar tarafından etkinleştirilmesi gerekir. 0 = Yetenekli değil 1 = Yetenekli V0.98'den sonra ayrılmıştır. This parameter is deprecated in the Google feature spec v0.98 and higher in favor of the Privacy feature available in the BT spec version 4.2 and higher. |
total_scan_results_storage | 2 sekizli | Bayt cinsinden tarama sonuçlarının saklanması |
max_irk_list_sz | 1 sekizli | Ürün yazılımında desteklenen IRK girişlerinin sayısı |
filtering_support | 1 sekizli | Denetleyicide filtreleme desteği 0 = Desteklenmiyor 1 = Destekleniyor |
max_filter | 1 sekizli | Desteklenen filtre sayısı |
activity_energy_info_support | 1 sekizli | Faaliyet ve enerji bilgilerinin raporlanmasını destekler 0 = Yetenekli değil 1 = Yetenekli |
version_supported | 2 sekizli | Desteklenen Google özellik spesifikasyonunun sürümünü belirtir bayt[0] = Ana sayı bayt[1] = Küçük sayı v1.03 bayt[0] = 0x01 bayt[1] = 0x03 |
total_num_of_advt_tracked | 2 sekizli | OnLost / OnFound amacıyla takip edilen reklamverenlerin toplam sayısı |
extended_scan_support | 1 sekizli | Genişletilmiş tarama penceresini ve aralığını destekler |
debug_logging_supported | 1 sekizli | Denetleyiciden ikili hata ayıklama bilgilerinin günlüğe kaydedilmesini destekler |
LE_address_generation_offloading_support (Kullanımdan kaldırıldı) | 1 sekizli | 0 = Desteklenmiyor 1 = Destekleniyor V0.98'den sonra ayrılmıştır. Bu parametre, Google özellik spesifikasyonu v0.98 ve üzeri sürümlerde kullanımdan kaldırılmış, bunun yerine BT spesifikasyonu sürüm 4.2 ve üzeri sürümlerde bulunan Gizlilik özelliği kullanılmaktadır. |
A2DP_source_offload_capability_mask | 4 sekizli | Desteklenen codec türleri için bit maskeleri Bit 0 - SBC Bit 1 - AAC Bit 2 - APTX Bit 3 - APTX HD Bit 4 - LDAC Bit 5-31 ayrılmıştır |
bluetooth_quality_report_support | 1 sekizli | Bluetooth Kalitesi olaylarının raporlanmasını destekler 0 = Yetenekli değil 1 = Yetenekli |
dynamic_audio_buffer_support | 4 sekizli | Bluetooth denetleyicisindeki dinamik ses arabelleğini destekler Desteklenen codec türleri için bit maskeleri Bit 0 - SBC Bit 1 - AAC Bit 2 - APTX Bit 3 - APTX HD Bit 4 - LDAC Bit 5-31 ayrılmıştır |
Tarama sonuçlarının gruplandırılması
Tasarımın hedeflerinden biri, ana bilgisayardaki güç tasarrufu amacıyla Bluetooth LE Tarama Yanıtı olay bildirimlerinin ana bilgisayara iletilme biçimini geliştirmektir.
Denetleyicinin, sonuçları taramak için ana bilgisayar uygulama işlemcisine bildirimde bulunma sıklığını azaltarak, ana bilgisayar uygulama işlemcisi daha uzun süre boşta/uykuda kalabilir. Bu, ana bilgisayardaki güç tüketimini azaltır. LE_Get_Vendor_Capabilities_Command
total_scan_results_storage
dönüş parametresi, tarama sonuçlarının depolanmasına yönelik çip yeteneğini gösterir.
Bu özellik, Bluetooth denetleyicisindeki LE Tarama Sonuçları depolama olanağının yönetimine ve yapılandırılmasına odaklanır. Depolama, reklam verilerini geçici olarak toplu olarak toplamak ve daha sonra ana bilgisayara teslim edilmek üzere denetleyici tarafından alınan verileri ve meta verileri taramak için kullanılır.
Firmware, aynı anda devreye alınabilecek iki tür gruplamayı destekleyecektir:
- Kesilmiş. Aşağıdaki bilgi öğelerini içerir: {MAC, TX Power, RSSI, Timestamp}
- Tam dolu. Aşağıdaki bilgi öğelerini içerir: {MAC, TX Gücü, RSSI, Timestamp, Adv Data, Scan Response}
LE_Batch_Scan_Command
OCF: 0x156
Komut parametresi | Boyut | Amaç |
---|---|---|
Batch_Scan_opcode | 1 sekizli | 0x1 - Müşteriye özel özelliği etkinleştirin 0x2 - Toplu Tarama Depolama parametrelerini ayarlayın 0x3 - Toplu Tarama parametrelerini ayarlayın 0x4 - Toplu Tarama Sonucu parametrelerini okuyun |
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır. Müşteriye özel özelliğin etkinleştirilmesi taramayı başlatmaz.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
Batch_Scan_opcode | 1 sekizli | 0x1 - Müşteriye özel özelliği etkinleştirin 0x2 - Toplu Tarama Depolama parametrelerini ayarlayın 0x3 - Toplu Tarama parametrelerini ayarlayın 0x4 - Toplu Tarama Sonucu parametrelerini okuyun |
LE_Batch_Scan_Command: Müşteriye Özel özelliği etkinleştirin
Alt OCF: 0x01
Alt komut parametresi | Boyut | Amaç |
---|---|---|
enable_customer_specific_feature_set | 1 sekizli | 0x01 - Toplu Tarama özelliğini etkinleştir 0x00 - Toplu Tarama özelliğini devre dışı bırakın |
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
Batch_Scan_opcode | 1 sekizli | 0x1 - Müşteriye özel özelliği etkinleştirin 0x2 - Toplu Tarama Depolama parametrelerini ayarlayın 0x3 - Toplu Tarama parametrelerini ayarlayın 0x4 - Toplu Tarama Sonucu parametrelerini okuyun |
LE_Batch_Scan_Command: Toplu Tarama Depolama Paramını Ayarla alt komutu
Alt OCF: 0x02
Alt komut parametresi | Boyut | Amaç |
---|---|---|
Batch_Scan_Full_Max | 1 sekizli | Tam stile tahsis edilen maksimum depolama alanı (% olarak) [Aralık: 0-100] |
Batch_Scan_Truncated_Max | 1 sekizli | Kesilmiş stile ayrılan maksimum depolama alanı (% olarak) [Aralık: 0-100] |
Batch_Scan_Notify_Threshold | 1 sekizli | Bireysel depolama havuzu için kurulum bildirim düzeyi (% olarak) [Aralık: 0-100] 0'a ayarlamak bildirimi devre dışı bırakacaktır. Satıcıya özel HCI olayı oluşturuldu (Depolama eşiği ihlali alt olayı) |
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
Batch_scan_opcode | 1 sekizli | 0x02 [Toplu Tarama parametrelerini ayarla] |
LE_Batch_Scan_Command: Toplu Tarama Parametresini Ayarla alt komutu
Alt OCF: 0x03
Alt komut parametresi | Boyut | Amaç |
---|---|---|
Batch_Scan_Mode | 1 sekizli | 0x00 – Toplu tarama devre dışı 0x01 – Kesilmiş mod etkinleştirildi 0x02 – Tam mod etkin 0x03 – Kesilmiş ve Tam mod etkinleştirildi |
Duty_cycle_scan_window | 4 sekizli | Toplu Tarama tarama süresi (yuva sayısı) |
Duty_cyle_scan_interval | 4 sekizli | Toplu Tarama aralığı süresi (yuva sayısı) |
own_address_type | 1 sekizli | 0x00 - Genel cihaz adresi 0x01 - Rastgele cihaz adresi |
Batch_scan_Discard_Rule | 1 sekizli | 0 - En eski reklamı sil 1 - En zayıf RSSI'ye sahip reklamları atın |
Bu alt komut, etkinleştirilirse toplu taramayı başlatacaktır. Kesilmiş taramada, sonuçlar Kesilmiş stil için benzersiz anahtarın = { BD_ADDR,
scan_interval} olduğu kesik biçimde saklanır. Bu, her tarama aralığı için yalnızca bir BD_ADDR will
kaydedileceği anlamına gelir. Kesilmiş mod için tutulacak kayıt şudur: { BD_ADDR
, Tx Power, RSSI, Timestamp}
Tam mod etkinleştirildiğinde aktif tarama kullanılacak ve Tarama Yanıtları kaydedilecektir. Tam stil benzersiz anahtarı = {MAC, Reklam paketi}, tarama aralığından bağımsız olarak. Tam mod için tutulacak kayıt: { BD_ADDR
, Tx Power, RSSI, Timestamp, Ad package, Scan Response}. Tam stilde, aynı AD paketi farklı tarama aralıklarında birden çok kez görüldüğünde yalnızca bir kez kaydedilir. Ancak Kesilmiş modda, BA_ADDR
farklı tarama aralıklarında görünürlüğü ilgi çekicidir (tarama aralığı başına bir kez). RSSI, bir tarama aralığı içindeki benzersiz bir reklamın tüm kopyalarının ortalama değeridir.
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
Batch_scan_opcode | 1 sekizli | 0x03 [Toplu Tarama Parametrelerini Ayarla] |
LE_Batch_Scan_Command: Toplu Tarama Sonuçlarını Oku alt komutu
Alt OCF: 0x04
Alt komut parametresi | Boyut | Amaç |
---|---|---|
Batch_Scan_Data_read | 1 sekizli | 0x01 – Kesilmiş mod verileri 0x02 – Tam mod verileri |
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır. Ana bilgisayar bu komutu verdiğinde denetleyicideki tüm sonuçlar tek bir Komut Tamamlama olayına sığmayabilir. The host will iterate issuing this command until the corresponding results in the Command Complete event indicate 0 in the number of records, which indicates the controller has no more records to communicate to the host. Her Komut Tamamlama olayı yalnızca tek bir veri türünden (Tam veya Kesilmiş) birden fazla kayıt içerebilir.
Denetleyici ve ana bilgisayar zaman referansları senkronize değil. Zaman damgasının birimi 50 ms'dir. Zaman damgasının değeri, ana bilgisayar tarafından Read_Batch_Scan_Results_Sub_cmd
verildiğinde temel alınır. Firmware'de bir komutun varış zamanı T_c
ise, firmware'de zaman damgasının alındığı gerçek zaman T_fw
olur. Raporlama süresi şöyle olacaktır: ( T_c
- T_fw
). T_c
ve T_fw
ürün yazılımı zaman alanındadır. Bu, toplantı sahibinin olayın ne kadar zaman önce gerçekleştiğini hesaplamasını sağlar.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
Batch_scan_opcode | 1 sekizli | 0x03 [Toplu Tarama parametrelerini ayarla] |
Batch_Scan_data_read | 1 sekizli | Formatı tanımlar (Kesilmiş veya Tam) |
num_of_records | 1 sekizli | Batch_Scan_data_read kayıtlarının sayısı |
format_of_data | Değişken | Kesilmiş Mod: Adres[0]: 6 sekizli Adres_Türü[0]: 1 sekizli Tx_Pwr[0]: 1 sekizli RSSI[0] : 1 sekizli Zaman damgası[0]: 2 sekizli [yukarıdaki formatta birden fazla kayıt ( num_of_records )]Tam Mod: Adres[0]: 6 sekizli Adres_Türü[0]: 1 sekizli Tx_Pwr[0]: 1 sekizli RSSI[0]: 1 sekizli Zaman damgası[0]: 2 sekizli Adv package_len[0]: 1 sekizli Adv_packet[0]: Adv_packet_len sekizli Scan_data_resp_len[0]: 1 sekizli Scan_data_resp[0]: Scan_data_resp sekizlileri[yukarıdaki formatta birden fazla kayıt ( num_of_records )] |
Reklam Paketi İçerik Filtresi
Denetleyicideki Reklam Paketi İçerik Filtresini (APCF) etkinleştirmek/devre dışı bırakmak/ayarlamak için bunu kullanın. APCF, denetleyicideki reklam raporlarını filtreler ancak periyodik reklamları filtrelemez.
LE_APCF_Komut
OCF: 0x157
Komut parametresi | Boyut | Amaç |
---|---|---|
APCF_opcode | 1 sekizli | 0x00 - APCF Etkinleştir 0x01 - APCF Filtreleme parametrelerini ayarla 0x02 - APCF Yayıncı Adresi 0x03 - APCF Hizmeti UUID'si 0x04 - APCF Hizmet Talebi UUID'si 0x05 - APCF Yerel Adı 0x06 - APCF Üretici Verileri 0x07 - APCF Hizmet Verileri 0x08 - APCF Taşıma Keşif Hizmeti 0x09 - APCF AD Tipi Filtre 0x10 ~ 0xAF - Gelecekte kullanılmak üzere ayrılmıştır 0xB0 ~ 0xDF - Satıcıya ayrılmıştır 0xE0 ~ 0xFE - Gelecekte kullanılmak üzere ayrılmıştır 0xFF - APCF Genişletilmiş Özellikleri Oku |
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | İade durumu |
APCF_opcode | 1 sekizli | 0x00 - APCF Etkinleştir 0x01 - APCF Filtreleme parametrelerini ayarla 0x02 - APCF Yayıncı Adresi 0x03 - APCF Hizmeti UUID'si 0x04 - APCF Hizmet Talebi UUID'si 0x05 - APCF Yerel Adı 0x06 - APCF Üretici Verileri 0x07 - APCF Hizmet Verileri 0x08 - APCF Taşıma Keşif Hizmeti 0x09 - APCF AD Tipi Filtre 0x10 ~ 0xAF - Gelecekte kullanılmak üzere ayrılmıştır 0xB0 ~ 0xDF - Satıcıya ayrılmıştır 0xE0 ~ 0xFE - Gelecekte kullanılmak üzere ayrılmıştır 0xFF - APCF Genişletilmiş Özellikleri Oku |
LE_APCF_Command: Enable_sub_cmd
Alt OCF: 0x00
Alt komut parametresi | Boyut | Amaç |
---|---|---|
APCF_enable | 1 sekizli | 0x01 - APCF özelliğini etkinleştir 0x00 - APCF özelliğini devre dışı bırakın |
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
APCF_opcode | 1 sekizli | 0x0 - APCF Etkinleştir |
APCF_Enable | 1 sekizli | Etkinleştirme/devre dışı bırakma APCF_enable aracılığıyla ayarlanır |
LE_APCF_Komut: set_filtering_parameters_sub_cmd
Bu alt komut, bir filtre spesifikasyonunu eklemek veya silmek veya çip üzerinde filtreleme için bir filtre listesini temizlemek için kullanılır.
Alt OCF: 0x01
Alt komut parametresi | Boyut | Amaç |
---|---|---|
APCF_Action | 1 sekizli | 0x00 - Ekle 0x01 - Sil 0x02 - Temizle Sil, diğer tablolardaki ilgili özellik girişleriyle birlikte belirli filtreyi de temizler. Temizle, diğer tablolardaki tüm filtreleri ve ilgili girişleri temizleyecektir. |
APCF_Filter_Index | 1 sekizli | Filtre dizini (0, max_filter-1 ) |
APCF_Feature_Selection | 2 sekizli | Seçilen özellikler için bit maskeleri: Bit 0: Yayın Adresi filtresini etkinleştirmek için ayarlayın Bit 1: Servis Veri Değişikliği filtresini etkinleştirmek için ayarlayın Bit 2: Hizmet UUID kontrolünü etkinleştirmek için ayarlayın Bit 3: Hizmet Talebi UUID kontrolünü etkinleştirmek için ayarlayın Bit 4: Yerel Ad kontrolünü etkinleştirmek için ayarlayın Bit 5: Üretici Veri Kontrolünü etkinleştirmek için ayarlayın Bit 6: Servis Veri Kontrolünü etkinleştirmek için ayarlayın Bit 7: Aktarım Keşif Hizmeti Denetimini etkinleştirmek için ayarlayın Bit 8: AD Tipi Kontrolünü etkinleştirmek için ayarlayın |
APCF_List_Logic_Type | 2 sekizli | APCF_Feature_Selection belirtilen her özellik seçimine (bit başına konum) yönelik mantıksal işlem.Yalnızca bir özellik etkinleştirildiğinde geçerlidir. Bit konum değeri: 0: VEYA 1: VE "VE" mantığı seçilirse, bir ADV paketi yalnızca listedeki girişlerin TÜMÜNÜ içeriyorsa filtreden geçecektir. "OR" mantığı seçilirse, bir ADV paketi listedeki girişlerden herhangi birini içeriyorsa filtreden geçecektir. |
APCF_Filter_Logic_Type | 1 sekizli | 0x00: VEYA 0x01: VE Not: APCF_Feature_Selection ilk üç alanı için mantık türü N/A'dır ve bu her zaman "VE" mantığıdır. Bunlar yalnızca APCF_Feature_Selection (Bit 3 - Bit 6) dört alanı için geçerlidir. |
rssi_high_thresh | 1 sekizli | [dBm cinsinden] Reklamverenin yalnızca sinyalin RSSI yüksek eşiğinden yüksek olması durumunda görüldüğü kabul edilir. Aksi takdirde, ürün yazılımının onu hiç görmemiş gibi davranması gerekir. |
delivery_mode | 1 sekizli | 0x00 - immediate 0x01 - on_found 0x02 - batched |
onfound_timeout | 2 sekizli | Yalnızca delivery_mode on_found ise geçerlidir.[milisaniye cinsinden] Firmware'in raporlamadan önce oyalanıp ek reklamlar toplamasının zamanı geldi. |
onfound_timeout_cnt | 1 sekizli | Yalnızca delivery_mode on_found ise geçerlidir.[saymak] onFound bir reklam, onfound_timeout süresi boyunca ürün yazılımında kalırsa, birkaç reklam toplayacak ve sayım kontrol edilecektir. Sayım onfound_timeout_cnt değerini aşarsa, hemen ardından OnFound olarak raporlanır. |
rssi_low_thresh | 1 sekizli | Yalnızca delivery_mode on_found ise geçerlidir.[dBm cinsinden] Alınan paketin RSSI'si RSSI düşük eşiğinin üzerinde değilse, reklamveren paketinin görülmediği kabul edilir. |
onlost_timeout | 2 sekizli | Yalnızca delivery_mode on_found ise geçerlidir.[milisaniye cinsinden] Bir ilan, bulunduktan sonra lost_timeout süresi boyunca sürekli olarak görülmezse, derhal kayıp olarak bildirilecektir. |
num_of_tracking_entries | 2 sekizli | Yalnızca delivery_mode on_found ise geçerlidir.[saymak] Filtre başına izlenecek reklamverenlerin toplam sayısı. |
RSSI değerleri, negatif değerleri temsil etmek için 2'nin tamamlayıcısını kullanmalıdır.
Ana bilgisayar, çeşitli filtre kombinasyonlarını yönetmek için APCF_Application_Address_type
0x02'ye (tüm yayıncı adresleri için) ayarlanmış olarak birden fazla filtre yapılandırabilecektir.
Filtreleme, toplu işlem ve raporlama birbiriyle ilişkili kavramlardır. Her reklam ve ilgili tarama yanıtının birbiri ardına tüm filtrelerden geçmesi gerekecektir. Bu nedenle, ortaya çıkan eylemler ( delivery_mode
) filtrelemeye yakından bağlıdır. Teslimat modları şunlardır: report_immediately
, batch
ve onFound
. OnLost
değeri, kaybolduğunda OnFound
sonra gelmesi anlamında OnFound
ile ilişkilidir.
Bu işlem akışı kavramsal modeli tasvir etmektedir:
Bir reklam (veya tarama yanıtı) çerçevesi alındığında, tüm filtrelere seri sırayla uygulanır. Bir reklamın, farklı bir filtre eylemi nedeniyle tek bir filtreye dayalı olarak anında raporlamaya ve aynı filtrenin gruplandırılmasına neden olması mümkündür.
RSSI seviyesi eşikleri (yüksek ve düşük), denetleyici tarafından geçerli bir paket alındığında bile, çerçevenin filtre işleme için ne zaman görünür olacağını kontrol etme yeteneği sağlar. Teslimat modunun anında veya toplu olarak ayarlanması durumunda, daha sonraki denetleyici işlemleri için bir çerçevenin RSSI'si dikkate alınır. Farklı uygulamaların farklı raporlama ve toplu işlem davranışlarına ihtiyacı vardır. Bu, birden fazla uygulamanın aynı anda doğrudan raporlamasına ve/veya sonuçların ürün yazılımında toplu olarak gruplanmasına olanak tanır. Bunun bir örneği, bir uygulamadan toplu taramanın etkin olduğu ve daha sonra başka bir uygulama tarafından düzenli bir LE taramasının yayınlandığı durumdur. Toplu tarama yapılmadan önce çerçeve/uygulama uygun filtreleri ayarlar. Daha sonra ikinci uygulama düzenli bir tarama yayınladığında önceki toplu işlem devam eder. Ancak, düzenli tarama nedeniyle, kavramsal olarak LE tarama komutuyla birlikte boş bir filtre (mevcut tüm filtrelerle birlikte) eklemeye benzer. LE tarama komutu parametreleri etkin olduğunda önceliklidir. Normal LE taraması devre dışı bırakıldığında, denetleyici, varsa önceki toplu taramaya geri döner.
OnFound
dağıtım modu yapılandırılmış filtrelere dayanır. Başarılı olması için bir filtre eylemini tetikleyen bir kombinasyon, onLost
için izlenecek varlık olarak kabul edilir. İlgili olay LE Advt izleme alt olayıdır.
Bir filtre için OnFound/OnLost
geçişi (etkinse) aşağıdaki gibi görünecektir:
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
APCF_opcode | 1 sekizli | 0x01 - APCF Filtreleme Parametrelerini Ayarla |
APCF_Action | 1 sekizli | Echo back komutunun APCF_Action |
APCF_AvailableSpaces | 1 sekizli | Filtreler tablosundaki mevcut girişlerin sayısı |
LE_APCF_Komut: yayın_adresi_alt_cmd
Bu alt komut, bir reklamveren adresini eklemek veya silmek ya da çip üzerinde filtreleme için reklamveren adres listesini temizlemek için kullanılır.
Alt OCF: 0x02
Alt komut parametresi | Boyut | Amaç |
---|---|---|
APCF_Action | 1 sekizli | 0x00 - Ekle 0x01 - Sil 0x02 - Temizle Sil, belirtilen filtredeki belirtilen yayıncı adresini silecektir. Temizle, belirtilen filtredeki tüm yayıncı adreslerini temizleyecektir. |
APCF_Filter_Index | 1 sekizli | Filtre dizini (0, max_filter-1 ) |
APCF_Broadcaster_Address | 6 sekizli | Yayıncı adres listesine eklenecek veya listeden silinecek 6 baytlık cihaz adresi |
APCF_Application_Address_type | 1 sekizli | 0x00: Genel 0x01: Rastgele 0x02: Yok (adres türü uygulanamaz) |
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
APCF_opcode | 1 sekizli | 0x02 - APCF Yayıncı Adresi |
APCF_Action | 1 sekizli | Echo back komutunun APCF_Action |
APCF_AvailableSpaces | 1 sekizli | Yayın Adresi tablosunda hâlâ mevcut olan ücretsiz girişlerin sayısı |
LE_APCF_Komut: service_uuid_sub_cmd
Bu alt komut, bir hizmet UUID'sini eklemek veya silmek ya da çip üzerinde filtreleme için bir hizmet UUID listesini temizlemek için kullanılır.
Alt OCF: 0x03
Alt komut parametresi | Boyut | Amaç |
---|---|---|
APCF_Action | 1 sekizli | 0x00 - Ekle 0x01 - Sil 0x02 - Temizle Sil, belirtilen filtrede belirtilen hizmet UUID adresini silecektir. Clear, belirtilen filtredeki tüm hizmet UUID'lerini temizleyecektir. |
APCF_Filter_Index | 1 sekizli | Filter index (0, max_filter -1) |
APCF_UUID | 2,4,16 sekizli | Listeye ekleme veya listeden silme için Hizmet UUID'si (16 bit, 32 bit veya 128 bit). |
APCF_UUID_MASK | 2,4,16 sekizli | Listeye eklenecek Hizmet UUID Maskesi (16 bit, 32 bit veya 128 bit). It should have the same length as APCF_UUID. |
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
APCF_opcode | 1 sekizli | 0x03 - APCF Hizmeti UUID'si |
APCF_Action | 1 sekizli | Echo back command's APCF_Action |
APCF_AvailableSpaces | 1 sekizli | Hizmet UUID tablosunda hâlâ mevcut olan ücretsiz girişlerin sayısı |
LE_APCF_Command: solicitation_uuid_sub_cmd
Bu alt komut, bir talep UUID'sini eklemek veya silmek ya da çip üzerinde filtreleme için bir talep UUID listesini temizlemek için kullanılır.
Alt OCF: 0x04
Alt komut parametresi | Boyut | Amaç |
---|---|---|
APCF_Action | 1 sekizli | 0x00 - Ekle 0x01 - Sil 0x02 - Temizle Sil, belirtilen filtredeki talep UUID adresini silecektir. Temizle, belirtilen filtredeki tüm talep UUID'lerini temizleyecektir. |
APCF_Filter_Index | 1 sekizli | Filter index (0, max_filter -1) |
APCF_UUID | 2,4,16 sekizli | Listeye eklenecek veya listeden silinecek Talep UUID'si (16 bit, 32 bit veya 128 bit). |
APCF_UUID_MASK | 2,4,16 sekizli | Listeye eklenecek Talep UUID Maskesi (16 bit, 32 bit veya 128 bit). APCF_UUID ile aynı uzunlukta olmalıdır. |
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
APCF_opcode | 1 sekizli | 0x04 - APCF Solicitation UUID |
APCF_Action | 1 sekizli | Echo back command's APCF_Action |
APCF_AvailableSpaces | 1 sekizli | Talep UUID tablosunda hâlâ mevcut olan ücretsiz girişlerin sayısı |
LE_APCF_Command: local_name_sub_cmd
Bu alt komut, yerel bir ad dizesi eklemek veya silmek ya da çip üzerinde filtreleme için yerel ad dizesi listesini temizlemek için kullanılır.
Alt OCF: 0x05
Alt komut parametresi | Boyut | Amaç |
---|---|---|
APCF_Action | 1 sekizli | 0x00 - Ekle 0x01 - Sil 0x02 - Temizle Sil, belirtilen filtredeki belirtilen yerel ad dizesini silecektir. Clear, belirtilen filtredeki tüm yerel ad dizelerini temizleyecektir. |
APCF_Filter_Index | 1 sekizli | Filtre dizini (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData | Değişken boyut | Yerel ad için bir karakter dizesi. Notlar:
|
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
APCF_opcode | 1 sekizli | 0x05 - APCF Yerel Adı |
APCF_Action | 1 sekizli | Echo back komutunun APCF_Action |
APCF_AvailableSpaces | 1 sekizli | Yerel ad tablosunda hâlâ mevcut olan ücretsiz girişlerin sayısı |
LE_APCF_Komut: manf_data_sub_cmd
Bu alt komut, bir üretici veri dizisi eklemek veya silmek ya da çip üzerinde filtreleme için üretici veri dizisi listesini temizlemek için kullanılır.
Alt OCF: 0x06
Alt komut parametresi | Boyut | Amaç |
---|---|---|
APCF_Action | 1 sekizli | 0x00 - Ekle 0x01 - Sil 0x02 - Temizle Sil, belirtilen filtredeki belirtilen üretici veri dizesini silecektir. Temizle, belirtilen filtredeki tüm üretici veri dizelerini temizleyecektir. |
APCF_Filter_Index | 1 sekizli | Filtre Dizini (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData | Değişken boyut | Üretici verileri için bir karakter dizisi. Notlar:
|
APCF_ManData_Mask | Değişken boyut | Listeye eklenecek üretim veri maskesi. APCF_LocName_or_ManData_or_SerData ile aynı uzunlukta olmalıdır. |
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
APCF_opcode | 1 sekizli | 0x06 - APCF Üretici Verileri |
APCF_Action | 1 sekizli | Echo back komutunun APCF_Action |
APCF_AvailableSpaces | 1 sekizli | Üretici Verileri tablosunda hâlâ mevcut olan ücretsiz girişlerin sayısı |
LE_APCF_Komut: service_data_sub_cmd
Bu alt komut, bir hizmet veri dizisi eklemek veya silmek ya da çip üzerinde filtreleme için hizmet veri dizisi listesini temizlemek için kullanılır.
Alt OCF: 0x07
Alt komut parametresi | Boyut | Amaç |
---|---|---|
APCF_Action | 1 sekizli | 0x00 - Ekle 0x01 - Sil 0x02 - Temizle Sil, belirtilen filtredeki belirtilen hizmet veri dizesini silecektir. Temizle, belirtilen filtredeki tüm hizmet veri dizelerini temizleyecektir. |
APCF_Filter_Index | 1 sekizli | Filtre Dizini (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData | Değişken boyut | Hizmet verileri için bir karakter dizisi. Notlar:
|
APCF_LocName_Mandata_or_SerData_Mask | Değişken boyut | Listeye eklenecek hizmet veri maskesi. APCF_LocName_or_ManData_or_SerData. |
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
APCF_opcode | 1 sekizli | 0x07 - APCF Hizmet Verileri |
APCF_Action | 1 sekizli | Echo back komutunun APCF_Action |
APCF_AvailableSpaces | 1 sekizli | Hizmet Verileri tablosu için hâlâ mevcut olan ücretsiz girişlerin sayısı |
LE_APCF_Komut: ad_type_sub_cmd
Bu alt komut, bir AD tipi eklemek veya silmek ya da çip üzerinde filtreleme için bir AD tipi listesini temizlemek için kullanılır. Bu komutun desteklenip desteklenmediğini kontrol etmek için read_extended_features_sub_cmd
kullanın.
Alt OCF: 0x09
Alt komut parametresi | Boyut | Amaç |
---|---|---|
APCF_Action | 1 sekizli | 0x00 - Ekle 0x01 - Sil 0x02 - Temizle Sil, belirtilen filtrede belirtilen AD tipini silecektir. Temizle, belirtilen filtredeki tüm AD türlerini temizleyecektir. |
APCF_Filter_Index | 1 sekizli | Filtre Dizini (0, max_filter -1) |
APCF_AD_TYPE | 1 sekizli | Listeye ekleme veya listeden silme için AD Türü. APCF_Action 0x02 olduğunda yoksay (Temizle) |
APCF_AD_DATA_Length | Değişken boyut | 0x00 - veri içeriğinin filtrelenmediği anlamına gelirAPCF_Action 0x02 olduğunda yoksay (Temizle) |
APCF_AD_DATA | Değişken boyut | APCF_Action 0x02 olduğunda yoksay (Temizle) |
APCF_AD_DATA_MASK | Değişken boyut | APCF_Action 0x02 olduğunda yoksay (Temizle)APCF_AD_DATA ile aynı uzunlukta olmalıdır. |
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
APCF_opcode | 1 sekizli | 0x09 - APCF AD Türü |
APCF_Action | 1 sekizli | Echo back komutunun APCF_Action |
APCF_AvailableSpaces | 1 sekizli | AD Türü tablosunda hâlâ mevcut olan ücretsiz girişlerin sayısı |
LE_APCF_Komut: read_extulated_features_sub_cmd
Bu alt komut genişletilmiş APCF özelliklerini okumak için kullanılır.
Alt OCF: 0xFF
Alt komut parametresi | Boyut | Amaç |
---|---|---|
Uygulanamaz | Boş komut parametresi. |
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
APCF_opcode | 1 sekizli | 0xFF - APCF_Read_Extished_Features |
APCF_extended_features | 2 sekizli | Desteklenen genişletilmiş özellikler için bit maskeleri:
Bit değeri
|
Denetleyici etkinliği ve enerji bilgisi komutu
Bu bilgilerin amacı, daha yüksek ana bilgisayar sistemi işlevlerinin, uygulamalarda ve çerçevede olup bitenlerle bağlantılı olarak BT denetleyicisi ve makro durumu da dahil olmak üzere tüm bileşenlerin toplam etkinliklerini analiz etmesini sağlamaktır. Bunu yapmak için BT yığınından ve denetleyiciden aşağıdaki bilgiler gereklidir:
- BT yığını: Denetleyicinin mevcut makro-işlemsel durumunu raporlama
- Firmware: Toplu aktivite ve enerji bilgilerinin raporlanması
BT ana bilgisayar yığını makro durumları, kullanıcı düzeyinde belirlendiği şekilde:
- Boşta: [sayfa taraması, LE reklamı, sorgulama taraması]
- Tarama: [çağrı arama/sorgulama/bağlanmaya çalışılıyor]
- Aktif: [ACL bağlantısı açık, SCO bağlantısı devam ediyor, koklama modu]
Kontrolörün ömrü boyunca takip ettiği faaliyetler Tx süresi, Rx süresi, boşta kalma süresi ve tüketilen toplam enerjidir. Ana bilgisayardan okunduğunda temizlenirler.
LE_Get_Controller_Activity_Energy_Info
Bu satıcıya özel bir komuttur.
OCF: 0x159
Alt komut parametresi | Boyut | Amaç |
---|---|---|
Yok | Komut parametrelerini boşalt |
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
total_tx_time_ms | 4 sekizli | Tx gerçekleştirmenin toplam süresi |
total_rx_time_ms | 4 sekizli | Rx gerçekleştirmenin toplam süresi |
total_idle_time_ms | 4 sekizli | Boşta kalan toplam süre (uyku dışı düşük güç durumları) |
total_energy_used | 4 sekizli | Kullanılan toplam enerji [akım (mA), voltaj (V) ve zamanın (ms) çarpımı] |
LE genişletilmiş tarama parametrelerini ayarlama komutu
Bu komut, denetleyicide daha büyük bir tarama penceresini ve aralığını etkinleştirmek için kullanılabilir. BT Core 5.2 Spesifikasyonu uyarınca, bir tarama penceresi ve aralığının 10,24 saniyelik bir üst sınır sınırı vardır; bu da uygulamaların 10,24 saniyenin üzerindeki daha uzun tarama aralıklarını engeller.
Temel referans: BT Core 5.2 Spesifikasyonu, sayfa 2493 (LE Tarama Parametrelerini Ayarla Komutu)
OCF: 0x15A
Komut Parametresi | Boyut | Amaç |
---|---|---|
LE_Ex_Scan_Type | 1 sekizli | 0x00 - Pasif tarama. Hiçbir SCAN_REQ paketi gönderilmeyecektir (varsayılan).0x01 - Etkin tarama. SCAN_REQ paketleri gönderilebilir. |
LE_Ex_Scan_Interval | 4 sekizli | Denetleyicinin son LE taramasına başlamasından sonraki LE taramasına başlamasına kadar geçen zaman aralığı olarak tanımlanır. Aralık: 0x0004 ila 0x00FFFFFF Varsayılan: 0x0010 (10 ms) Süre = N * 0,625 ms Zaman aralığı: 2,5 ms ila 10442,25 saniye |
LE_Ex_Scan_Window | 4 sekizli | LE taramasının süresi. LE_Scan_Window LE_Scan_Interval değerinden küçük veya ona eşit olacaktır.Aralık: 0x0004 ila 0xFFFF Varsayılan: 0x0010 (10 ms) Süre = N * 0,625 ms Zaman Aralığı: 2,5 ms ila 40,95 saniye |
Own_Address_Type | 1 sekizli | 0x00 - Genel Cihaz Adresi (varsayılan) 0x01 - Rastgele Cihaz Adresi |
LE_Ex_Scan_Filter_Policy | 0x00 - Tüm reklam paketlerini kabul edin (varsayılan). Bu cihaza yönelik olmayan yönlendirilmiş reklam paketleri dikkate alınmayacaktır. 0x01 - Yalnızca Beyaz Liste listesinde olmayan cihazlardan gelen reklam paketlerini yoksay. Bu cihaza yönelik olmayan yönlendirilmiş reklam paketleri dikkate alınmayacaktır. |
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
Denetleyici hata ayıklama bilgilerini al komutu
Bu bilgi öğesinin amacı, işlem sonrası ve analiz için bir ana bilgisayar tarafından ikili biçimde denetleyici hata ayıklama bilgilerini elde etmektir. Bu, sahadaki sorunların ayıklanmasına yardımcı olur ve mühendislere analiz için bilgileri günlüğe kaydedebilecekleri bir araç seti sağlar. Bir Denetleyici, bir ana bilgisayar tarafından talep edildiğinde bilgiyi olay (Denetleyici Hata Ayıklama Bilgisi alt olayı) aracılığıyla veya denetleyici tarafından istendiğinde bağımsız olarak sağlayabilir. Örnek kullanımlar, ürün yazılımı durumu bilgilerini, kilitlenme dökümü bilgilerini, günlük bilgilerini vb. raporlamak olabilir.
OCF: 0x15B
Komut parametresi | Boyut | Amaç |
---|---|---|
Yok | Komut parametre listesini boşalt |
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
A2DP Donanım Aktarımı Desteği
A2DP Aktarımı özelliği, A2DP ses kodlama işleminin BT Denetleyiciye bağlı bir ses işlemcisine aktarılmasını destekler. Kodlanmış ses veri akışı, BT ana bilgisayarının katılımı olmadan doğrudan Ses işlemcisinden BT Denetleyiciye geçer. BT Ana Bilgisayarı A2DP oturumunun yapılandırılmasından ve kontrolünden hâlâ sorumludur. Komutların iki versiyonu mevcuttur. Sub OCF 0x01-0x02'ye sahip eski komutlar yalnızca açık kaynaklı codec bileşenlerini destekler. Sub-OCF 0x02-0x03'e sahip sürümler, yapılandırılmış codec bileşeninden bağımsızdır.
OCF: 0x15D
A2DP Aktarımını Başlat (eski)
Alt OCF: 0x01
Bu komutu hem A2DP Boşaltma işlemini yapılandırmak hem de A2DP akışını başlatmak için kullanın.
Komut parametresi | Boyut | Amaç |
---|---|---|
Codec | 4 sekizli | Codec türünü belirtir 0x01 - SBC 0x02 - AAC 0x04 - APTX 0x08 - APTX HD 0x10 -LDAC |
Max_Latency | 2 sekizli | İzin Verilen Maksimum Gecikme (ms cinsinden). Sıfır değeri yıkamayı devre dışı bırakır. |
SCMS-T_Enable | 2 sekizli | Sekizli 0: SCMS-T başlığının eklenmesini sağlayan bayrak.
Sekizli 1: Etkinleştirildiğinde SCMS-T başlığının değeri. |
Sampling_Frequency | 4 sekizli | 0x01 - 44100Hz 0x02 - 48000Hz 0x04 - 88200Hz 0x08 - 96000Hz |
Bits_Per_Sample | 1 sekizli | 0x01 - örnek başına 16 bit 0x02 - örnek başına 24 bit 0x04 - örnek başına 32 bit |
Channel_Mode | 1 sekizli | 0x01 - Tek renkli 0x02 - Stereo |
Encoded_Audio_Bitrate | 4 sekizli | Kodlanmış ses bit hızı, saniye başına bit cinsinden. 0x00000000 - Ses bit hızı belirtilmedi/kullanılmadı. 0x00000001 - 0x00FFFFFF - Saniye başına bit cinsinden kodlanmış ses bit hızı. 0x01000000 - 0xFFFFFFFF - Ayrılmış. |
Connection_Handle | 2 sekizli | Yapılandırılan A2DP bağlantısının Bağlantı Kolu |
L2CAP_Channel_ID | 2 sekizli | Bu A2DP bağlantısı için kullanılacak L2CAP Kanal Kimliği |
L2CAP_MTU_Size | 2 sekizli | Kodlanmış ses paketlerini içeren maksimum L2CAP MTU boyutu |
Codec_Information | 32 sekizli | Codec-specific Information. SBC Codec'i: A2DP v1.3'teki SBC Codec'e özgü bilgi öğelerine bakın. AAC Codec'i: A2DP v1.3'teki AAC Codec'e özgü bilgi öğelerine bakın LDAC Codec'i: 0-3 Sekizli: Satıcı Kimliği 4-5 Ekim: Codec Kimliği 6. Octet: Bit Hızı Endeksi: Octet 7: LDAC Channel Mode 8-31 Ekim: ayrılmış Diğer tüm kodlayıcılar: 0-31 Ekim: ayrılmış |
Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
Sub_Opcode | 1 sekizli | 0x01 - Start A2DP Offload |
A2DP Aktarımını Başlat
Alt OCF: 0x03
Bu komutu hem A2DP Boşaltma işlemini yapılandırmak hem de A2DP akışını başlatmak için kullanın.
Komut parametresi | Boyut | Amaç |
---|---|---|
Connection Handle | 2 sekizli | Aktif HCI bağlantısının kolu |
L2CAP_Channel_ID | 2 sekizli | Identifier of the L2CAP Channel opened for A2DP streaming |
Data_Path_Direction | 1 sekizli | 0x00 - Çıkış (AVDTP Kaynağı/Birleştirme) 0x01 - Giriş (AVDTP Havuzu/Bölme) |
Peer_MTU | 2 sekizli | Maximum size of L2CAP packets, negotiated with the peer. |
CP_Enable_SCMS_T | 1 sekizli | 0x00 - SCMS-T İçerik Koruma Başlığını Devre Dışı Bırak 0x01 - SCMS-T İçerik Koruma Başlığını Etkinleştir |
CP_Header_SCMS_T | 1 sekizli | When SCMS-T Content Protection Header is enabled ( CP_SCMS_T_Enable set to 0x01), defines the header value that precedes the audio content (refer to A2DP, section 3.2.1-2) as defined by Bluetooth Assigned Numbers, section 6.3.2.Ignored when SCMS-T Content protection isn't enabled. |
Vendor_Specific_Parameters_Length | 1 sekizli | Length of Vendor Specific Parameters, in the range from 0 to 128. The value 0 is used when no additional parameters are provided. |
Vendor_Specific_Parameters | 0-128 sekizli | Vendor Specific Parameters provided by the Bluetooth Audio HAL, CodecParameters.vendorSpecificParameters[] |
A Command Complete event will be generated for this command.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
Sub_Opcode | 1 sekizli | 0x03 - A2DP Aktarımını Başlat |
A2DP Aktarımını Durdur (eski)
Alt OCF: 0x02
This command is used to stop the A2DP Offload stream.
Komut parametresi | Boyut | Amaç |
---|---|---|
Yok | Komut parametre listesini boşaltın. |
Bu komut için herhangi bir parametre tanımlanmamıştır.
A Command Complete event will be generated for this command.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
Sub_Opcode | 1 sekizli | 0x02 - A2DP Aktarımını Durdur |
A2DP Aktarımını Durdurun
Alt OCF: 0x04
This command is used to stop the A2DP Offload stream.
Komut parametresi | Boyut | Amaç |
---|---|---|
Connection Handle | 2 sekizli | Aktif HCI bağlantısının kolu |
L2CAP_Channel_ID | 2 sekizli | Identifier of the L2CAP Channel opened for A2DP streaming |
Data_Path_Direction | 1 sekizli | 0x00 - Çıkış (AVDTP Kaynağı/Birleştirme) 0x01 - Giriş (AVDTP Havuzu/Bölme) |
A Command Complete event will be generated for this command.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Tamamlandı durumu |
Sub_Opcode | 1 sekizli | 0x04 - A2DP Aktarımını Durdur |
Bluetooth Kalite Raporu komutu
The BT Quality Report command feature starts the mechanism in the Bluetooth controller to report Bluetooth Quality events to the host. Dört seçeneği etkinleştirebilirsiniz:
- Quality Monitoring Mode: The controller periodically sends a Link Quality related BQR sub-event to the host.
- Approaching LSTO: If no packets are received from the connected BT device for longer than half of the Link Supervision TimeOut (LSTO) value, the controller reports an Approaching LSTO event to the host.
- A2DP Audio Choppy: When the controller detects factors that cause choppy audio, the controller reports an A2DP Audio Choppy event to the host.
- (e)SCO Ses Dalgalı: Denetleyici sesin dalgalı olmasına neden olan faktörleri tespit ettiğinde, ana bilgisayara bir (e)SCO Ses Dalgalı olayı bildirir.
- Kök Enflamasyonu: Bu olay, HAL veya denetleyici önemli bir hatayla karşılaştığında ve Bluetooth'u yeniden başlatması gerektiğinde denetleyici tarafından yığına gönderilir.
- LMP/LL Mesaj İzleme: Denetleyici, uzak cihazla LMP/LL mesaj el sıkışmasını ana bilgisayara gönderir.
- Bluetooth Multi-Profile/Coex Zamanlama İzleme: Denetleyici, 2.4 GHz bandında birden fazla Bluetooth profilini ve kablosuz bir arada bulunma konusundaki planlama bilgilerini ana bilgisayara gönderir.
- Denetleyici Hata Ayıklama Bilgi Mekanizması: Etkinleştirildiğinde, denetleyici, KONTROL KAYDIRILIĞINDA BİLGİ Hata Ayıklama Bilgi Alt Event aracılığıyla Hata Ayıklama Günlüğü Bilgileri'ni özerk bir şekilde rapor edebilir.
OCF: 0x15E
Komut parametresi | Boyut | Amaç |
---|---|---|
BQR_Report_Action | 1 sekizli | BQR_QUALity_EVENT_MASK parametresinde ayarlanan kalite olaylarının raporlanmasını eklemek / silmek için eylem veya hepsini temizleyin. 0x00 - Ekle Sil, belirli kalite olay (lar) raporunu temizler. |
BQR_Quality_Event_Mask | 4 sekizli | Seçilen kaliteli olay raporlaması için bit maskeleri. Bit 0: Kalite İzleme Modunu etkinleştirecek şekilde ayarlayın. |
BQR_Minimum_Report_Interval | 2 sekiz | Seçilen kalite olay (lar) için kalite olay raporlamasının minimum zaman aralığını tanımlayın. Denetleyici ürün yazılımı, bir sonraki olayı tanımlanan zaman aralığında bildirmemelidir. Aralık ayarı, ilave edilen kalite olay (lar) için ilgili ve adanmış olmalıdır. Birim: MS |
BQR_Vendor_Specific_Quality_Event_Mask | 4 sekizli | Seçilen satıcıya özgü kalite olay raporlaması için bit maskeleri. Bu parametre yalnızca BQR_Quality_Event_Mask 15 biti ayarlandığında geçerlidir.Bit 0 ~ 31: Ayrılmış. |
BQR_Vendor_Specific_Trace_Mask | 4 sekizli | Seçilen satıcıya özgü iz raporlaması için bit maskeleri. Bu parametre yalnızca BQR_Quality_Event_Mask BIT 31'i ayarlandığında geçerlidir.Bit 0 ~ 31: Ayrılmış. |
Bu komut için bir komut tam olay oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Komple Durumu |
Current_Quality_Event_Mask | 4 sekizli | Geçerli bit maske ayarını gösterir. Bit 0: Kalite izleme modu etkinleştirildi. Bit 1: Yaklaşan LSTO olay raporlaması etkinleştirildi. Bit 2: A2DP Ses dalgalı olay raporlaması etkinleştirilir. Bit 3: (e) SCO sesli dalgalı olay raporlaması etkinleştirilir. Bit 4: Kök iltihabı olayı raporlaması etkinleştirilir. Bit 5: Enerji izleme modu etkinleştirildi. Bit 6: LE Audio Chippy olay raporlaması etkinleştirildi. Bit 7: Bağlan Fail olayını bağlayın. Bit 8 ~ 14: Ayrılmış. Bit 15: Tedarikçiye özgü kalite olay raporlaması etkinleştirildi. Bit 16: LMP/LL mesaj izi etkinleştirilir. Bit 17: Bluetooth Multi-Link/Coex Zamanlama İzleme etkinleştirilir. Bit 18: Denetleyici hata ayıklama bilgi mekanizması etkinleştirilir. Bit 19 ~ 30: Ayrılmış. Bit 31: Tedarikçiye özgü iz etkinleştirilir. |
Current_Vendor_Specific_Quality_Event_Mask | 4 sekizli | Geçerli bit maske ayarını gösterir. |
Current_Vendor_Specific_Trace_Mask | 4 sekizli | Geçerli bit maske ayarını gösterir. |
Dinamik ses arabelleği komutu
Dinamik ses arabelleği, çeşitli senaryolara göre Bluetooth denetleyicisindeki ses arabellek boyutunu değiştirerek ses aksaklığını azaltır.
OCF: 0x15f
Ses arabellek zaman özelliği alın
Alt OCF: 0x01
Bluetooth denetleyicisinden ses arabellek zaman kapasitesini almak için bu komutu kullanın.
Komut parametresi | Boyut | Amaç |
---|---|---|
Yok | Boş Komut Parametre Listesi |
Bu komut için bir komut tam olay oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Komple Durumu |
Dynamic_Audio_Buffer_opcode | 1 sekizli | 0x01 - Ses arabellek süresi alın |
Audio_Codec_Type_Supported | 4 sekizli | Desteklenen kodek türleri için bit maskeleri Bit 0 - SBC Bit 1 - AAC Bit 2 - Aptx Bit 3 - Aptx HD Bit 4 - LDAC Bit 5-31 ayrılmıştır |
Audio_Codec_Buffer_Default_Time_For_Bit_0 | 2 sekiz | Audio_codec_type_supported'de belirtilen bit 0 codec türünün varsayılan arabellek süresi. Bit 0 codec türü desteklenmezse bu değer 0 olacaktır. Birim: MS |
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 | 2 sekiz | Audio_codec_type_supported'de belirtilen bit 0 codec tipinin maksimum arabellek süresi. Bit 0 codec türü desteklenmezse bu değer 0 olacaktır. Birim: MS |
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 | 2 sekiz | Audio_codec_type_supported'de belirtilen bit 0 codec tipinin minimum arabellek süresi. Bit 0 codec türü desteklenmezse bu değer 0 olacaktır. Birim: MS |
Audio_Codec_Buffer_Default_Time_For_Bit_1 | 2 sekiz | Audio_codec_type_supported'de belirtilen bit 1 codec tipinin varsayılan arabellek süresi. Bit 1 codec türü desteklenmezse bu değer 0 olacaktır. Birim: MS |
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 | 2 sekiz | Audio_codec_type_supported'de belirtilen bit 1 codec tipinin maksimum tampon süresi. Bit 1 codec türü desteklenmezse bu değer 0 olacaktır. Birim: MS |
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 | 2 sekiz | Audio_codec_type_supported'de belirtilen bit 1 codec tipinin minimum tampon süresi. Bit 1 codec türü desteklenmezse bu değer 0 olacaktır. Birim: MS |
...... | ...... | ...... |
Audio_Codec_Buffer_Default_Time_For_Bit_31 | 2 sekiz | Audio_codec_type_supported'de belirtilen bit 31 kodek türünün varsayılan arabellek süresi. Bit 31 codec türü desteklenmezse bu değer 0 olacaktır. Birim: MS |
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 | 2 sekiz | Audio_codec_type_supported'de belirtilen bit 31 codec tipinin maksimum arabellek süresi. Bit 31 codec türü desteklenmezse bu değer 0 olacaktır. Birim: MS |
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 | 2 sekiz | Audio_codec_type_supported'de belirtilen bit 31 codec tipinin minimum tampon süresi. Bit 31 codec türü desteklenmezse bu değer 0 olacaktır. Birim: MS |
Ses arabellek süresini ayarlayın
Alt OCF: 0x02
Ses arabellek zamanını Bluetooth denetleyicisine ayarlamak için bu komutu kullanın.
Komut parametresi | Boyut | Amaç |
---|---|---|
Audio_Codec_Buffer_Time | 2 sekiz | Mevcut kullanılan codec için ses arabellek süresi talep etti. Birim: MS |
Bu komut için bir komut tam olay oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Komut Komple Durumu |
Dynamic_Audio_Buffer_opcode | 1 sekizli | 0x02 - Ses arabellek süresini ayarlayın |
Audio_Codec_Buffer_Time | 2 sekiz | Bluetooth denetleyicisinde geçerli ses tampon süresi. Birim: MS |
HCI Etkinliği (satıcıya özgü)
Bazı durumlarda satıcıya özgü HCI olayları gereklidir. BT Core 5.2 spesifikasyonunun 1897. sayfasında Şekil 5.4'e bakın. Olay parametresi 0, HCI olayının geri kalanının kod çözüldüğü her zaman ilk alt olay kodu içerecektir.
Olay parametresi | Boyut | Amaç |
---|---|---|
HCI_vendor_specific_event_code | 1 sekizli | 0xff |
sub_event_code | 1 sekizli | Bir alt etkinlik kodu 1 sekizlik boyutunda, bayt HCI olay paketindeki parametre uzunluğunu hemen takip edecektir. |
Depolama eşiği ihlali alt etkinliği
Bu olay, depolama eşiğinin ihlal edildiğini gösterir.
Alt etkinlik kodu = 0x54
Alt olay parametresi | Boyut | Amaç |
---|---|---|
Hiçbiri |
Le Multi-Advertising Durum Değişikliği Alt Event
Bu olay, bir reklam örneğinin durumunu değiştirdiğini gösterir. Şu anda, bu olay yalnızca bir bağlantı sonucunda hangi reklam örneğinin durdurulduğunu belirtmek için kullanılır.
Alt etkinlik kodu = 0x55
Alt olay parametresi | Boyut | Amaç |
---|---|---|
Advertising_instance | 1 sekizli | Belirli reklam örneğini tanımlar Geçerli değerler 0 max_advt_instances -1 |
State_Change_Reason | 1 sekizli | 0x00: Bağlantı Alındı |
Connection_handle | 2 sekiz | advt örneğinin devre dışı bırakılmasına neden olan bağlantıyı tanımlar (geçersizse 0xffff) |
Le reklam izleme alt etkinliği
Bu olay, bir reklamverenin ne zaman bulunduğunu veya kaybolduğunu gösterir.
Alt Olay Kodu = 0x56
Alt olay parametresi | Boyut | Amaç |
---|---|---|
APCF_Filter_Index | 1 sekizli | Filtre Dizin (0, max_filter -1) |
Advertiser_State | 1 sekizli | 0x00: Reklamveren bulundu 0x01: Reklamveren Kayıp |
Advt_Info_Present | 1 sekizli | 0x00: Reklamveren Bilgileri ( Advt_Info ) mevcut0x01: Reklamveren Bilgileri ( Advt_Info ) mevcut değil |
Advertiser_Address | 6 sekizli | Genel veya rastgele adres |
Advertiser_Address_Type | 1 sekizli | 0x00: genel adres 0x01: rastgele adres |
Advt_Info | Tx_Pwr[0] : 1 OctetRSSI[0] : 1 OctetTimestamp[0] : 2 sekizliAdv packet_len[0] : 1 OctetAdv_packet[0] : Adv_packet_len oktetleriScan_data_resp_len[0] : 1 OctetScan_data_resp[0] : Scan_data_resp OCTETS |
Denetleyici Hata Ayıklama Bilgisi Alt Event
Bu olay bir denetleyici tarafından bir ana bilgisayara ikili hata ayıklama bilgileri sağlamak için kullanılır.
Alt etkinlik kodu = 0x57
Alt olay parametresi | Boyut | Amaç |
---|---|---|
debug_block_byte_offset_start | 2 sekiz | Başlangıçtan itibaren blok bayt ofsetinde hata ayıklama |
last_block | 1 sekizli | 0x00: Daha fazla hata ayıklama verisi mevcut 0x01: Son ikili blok; Artık hata ayıklama verisi yok |
cur_pay_load_sz | 2 sekiz | Mevcut bir etkinlikte ikili blok boyutu |
Debug_Data | Değişken | cur_payload_sz verileri hata ayıklama |
Bluetooth Kalite Raporu Alt Eva
Bu olay aşağıdakilerden birini gösterir: Bluetooth kalite olayı meydana geldi, denetleyici LMP/LL mesaj izini ve Bluetooth Multi-Link/Coex zamanlama izini veya denetleyicinin atılan hata ayıklama bilgi verilerini yükledi.
Alt etkinlik kodu = 0x58 [kalite_report_id = 0x01 ~ 0x04, bağlantı kalitesi ile ilgili olay]
Alt olay parametresi | Boyut | Amaç |
---|---|---|
Quality_Report_Id | 1 sekizli | 0x01: İzleme modunda kalite raporlama. 0x02: LSTO'ya yaklaşıyor. 0x03: A2DP ses dalgalı. 0x04: (e) SCO ses dalgalı. 0x05 ~ 0x06: Ayrılmış. 0x07: Le Ses dalgalı. 0x08: Bağlan başarısızlık. 0x09 ~ 0xff: Ayrılmış. |
Packet_Types | 1 sekizli | 0x01: kimlik 0x02: null 0x03: anket 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: ayrılmış 0x51: ISO paketi 0x52 ~ 0xff: ayrılmış |
Connection_Handle | 2 sekiz | ACL/(E) SCO/ISO bağlantı kolu. |
Connection_Role | 1 sekizli | Bağlantı için rol oynama. 0x00: Merkez 0x01: Çevresel 0x02 ~ 0xff: Ayrılmış. |
TX_Power_Level | 1 sekizli | Belirtilen Connection_handle için geçerli iletim güç seviyesi. Bu değer, denetleyicinin hci_read_transmit_power_level hci komutuna yanıt vermesiyle aynı olacaktır. |
RSSI | 1 sekizli | [DBM'de] Belirtilen Connection_handle için alınan sinyal mukavemeti göstergesi (RSSI) değeri. |
SNR | 1 sekizli | [DB'de] Belirtilen Connection_handle için sinyal / gürültü oranı (SNR) değeri. |
Unused_AFH_Channel_Count | 1 sekizli | AFH_CHANNEL_MAP'taki kullanılmayan kanalların sayısını gösterir. 0x4f ~ 0xff: Ayrılmış. |
AFH_Select_Unideal_Channel_Count | 1 sekizli | Müdahale edilen ve kaliteli olan kanalların sayısını gösterir, ancak yine de AFH için seçilmiştir. Bluetooth spesifikasyonunun izin verdiği minimum kanal sayısı 20'dir, bu nedenle 79 kanalın tamamı müdahale edilmiş ve kötü kalitede olsa bile, kontrolörün hala AFH için en az 20 kanal seçmesi gerekir. |
LSTO | 2 sekiz | Geçerli bağlantı denetimi zaman aşımı ayarı. Zaman = n * 0.625 ms Zaman aralığı: 0.625 ms ila 40.9 s |
Connection_Piconet_Clock | 4 sekizli | Belirtilen bağlantı için Piconet Saati. Bu değer, denetleyicinin HCI_READ_CLOCK HCI komutuna 0x01 (Piconet Saat) parametresiyle yanıt verenle aynı olacaktır. Birim: N * 0.3125 ms (1 Bluetooth saati) |
Retransmission_Count | 4 sekizli | Son olaydan bu yana yeniden iletim sayısı. Bu sayı, ana bilgisayara rapor verildikten sonra sıfırlanacaktır. |
No_RX_Count | 4 sekizli | Son olaydan beri RX sayısı yok. Planlanan zaman diliminde veya alınan paketin bozulduğunda hiçbir paket alınmadığında sayım artar. Bu sayı, ana bilgisayara rapor verildikten sonra sıfırlanacaktır. |
NAK_Count | 4 sekizli | Son olaydan bu yana NAK (negatif onay) sayımı. Bu sayı, ana bilgisayara rapor verildikten sonra sıfırlanacaktır. |
Last_TX_ACK_Timestamp | 4 sekizli | Son TX ACK zaman damgası. Piconet Central'ın (CLK) Bluetooth saatine dayanır. Birim: N * 0.3125 ms (1 Bluetooth saati) |
Flow_Off_Count | 4 sekizli | Son olaydan bu yana denetleyicinin akışını (durdurma) kaç kez aldığı sayısı. Bu sayı, ana bilgisayara rapor verildikten sonra sıfırlanacaktır. |
Last_Flow_On_Timestamp | 4 sekizli | Son Flow-on (Go) zaman damgası. Piconet Central'ın (CLK) Bluetooth saatine dayanır. Birim: N * 0.3125 ms (1 Bluetooth saati) |
Buffer_Overflow_Bytes | 4 sekizli | [baytta] Son olaydan bu yana arabellek taşma sayısı. |
Buffer_Underflow_Bytes | 4 sekizli | [baytta] Son olaydan bu yana arabellek düşük akış sayısı. |
bdaddr | 6 sekizli | Uzak cihaz adresi |
cal_failed_item_count | 1 sekizli | Kalibrasyon sayısı başarısız kalemler |
TX_Total_Packets | 4 sekizli | Gönderilen paket sayısı. |
TX_UnAcked_Packets | 4 sekizli | Teşekkür almayan paket sayısı. Bu sayı, ana bilgisayara rapor verdikten sonra sıfırlanır. |
TX_Flushed_Packets | 4 sekizli | Floş noktasına göre gönderilmeyen paket sayısı. Bu sayı, ana bilgisayara rapor verdikten sonra sıfırlanır. |
TX_Last_Subevent_Packets | 4 sekizli | Katmanı bağlayan paketlerin sayısı, bir CIS olayının son alt evinde bir CIS veri PDU'yu iletir. Bu sayı, ana bilgisayara rapor verdikten sonra sıfırlanır. Bağlantı için geçerli bir değer yoksa değer sıfırdır. |
CRC_Error_Packets | 4 sekizli | Son olaydan bu yana CRC hatası olan alınan paketlerin sayısı. Bu sayı, ana bilgisayara rapor verdikten sonra sıfırlanır. |
RX_Duplicate_Packets | 4 sekizli | Son olaydan bu yana alınan yinelenen (yeniden iletim) paketlerinin sayısı. Bu sayı, ana bilgisayara rapor verdikten sonra sıfırlanır. |
Satıcıya özgü parametre | (Parametre Toplam Uzunluk - TBD) * Octets | Denetleyici satıcısının daha fazla tedarikçiye özgü parametre alması için. |
Alt etkinlik kodu = 0x58 [kalite_report_id = 0x05, kök iltihaplanma olayı]
Bu olay, Bluetooth Hal veya denetleyicinin ölümcül bir hatayla karşılaştığını ve bu durumu kaydetmek ve yeniden başlatmak için Bluetooth yığınına ihtiyaç duyduğunu gösterir. Her durumda hata ayıklama bilgi olaylarının ilk parçasını göndermeden önce denetleyici Bluetooth yığınına bir root_inflammation_event göndermelidir.
ERROR_CODE parametresi, HAL/Controller'dan bildirilen bir hata kodu içerir, eğer yonga seti satıcısına özgü bir hata ise 0. Vendor_specific_error_code, HAL/Controller'dan bir yonga seti satıcısına özgü hata kodu içerir. ERROR_CODE parametresi 0 değilse 0 olarak ayarlanmalıdır. ERROR_CODE ve Vendor_specific_error_code parametreleri her ikisi de 0 olmamalıdır.
Alt olay parametresi | Boyut | Amaç |
---|---|---|
Quality_Report_Id | 1 Octet | 0x00 ~ 0x04: Ayrılmış. 0x05: Kök iltihabı. 0x06 ~ 0xff: Ayrılmış. |
Error_Code | 1 sekizli | 0x00: Chipset satıcısına özgü hata kodu dahildir. 0x01 ~ 0xff: Kontrolör hatası meydana geldi. Bkz. Bluetooth Spec [Cilt 2] Bölüm D, hata kodları ve açıklamalarının bir listesi için hata kodları. |
Vendor_Specific_Error_Code | 1 Octet | 0x00: Yonga seti satıcısına özgü hata kodu yok. 0x01 ~ 0xff: yonga seti satıcısına özgü hata kodu. |
Satıcıya özgü parametre | (Parametre Toplam Uzunluk - 4) * Oktetler | Denetleyici satıcısının daha fazla tedarikçiye özgü parametre alması için. |
Alt etkinlik kodu = 0x58 [kalite_report_id = 0x11 ~ 0x13, günlük dökümü ile ilgili olay]
Alt olay parametresi | Boyut | Amaç |
---|---|---|
Quality_Report_Id | 1 Octet | 0x00 ~ 0x10: Ayrılmış. 0x11: LMP/LL mesaj izi. 0x12: Bluetooth çok bağlantılı/coex planlama izi. 0x13: Denetleyici hata ayıklama bilgileri veri dökümü. 0x14 ~ 0xff: Ayrılmış. |
Connection_Handle | 2 sekiz | Bağlantı kolu. |
Satıcıya özgü parametre | (Parametre Toplam Uzunluk - 4) * Oktetler | LMP mesaj izi, Bluetooth Multi-Link/Coex Zamanlama İzleme ve Denetleyici Hata Ayıklama Bilgileri Dökme. |
Çok Advertiser Desteği
Çoklu advertiser desteğinin amaçları şunlardır:
- Birden çok reklamı destekleme yeteneği (
max_advt_instances
) - Değişen bir aralığa izin vermek için farklı iletim güçleri
- Farklı reklam içeriği
- Her reklamveren için kişiselleştirilmiş bir yanıt
- Her reklamveren için gizlilik (takip edilemez)
- Bağlanabilir
Bu spesifikasyonu mevcut standartlara yakın tutmak için aşağıdaki satıcıya özgü komutlar verilmiştir. Bunlar Bluetooth Core 4.1 spesifikasyonundan türetilmiştir.
Le_multi_advt_command
OCF: 0x154
Komut parametresi | Boyut | Amaç |
---|---|---|
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 |
Bu komut için bir komut tam olay oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
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
Temel Referans: Bluetooth Core 4.1 Spesifikasyonu, sayfa 964 (LE Set Reklam Parametresi Komutu)
Alt OCF: 0x01
Alt-Komut parametresi | Boyut | Amaç |
---|---|---|
Advertising_Interval_Min | Spesifik | Spesifik |
Advertising_Interval_Max | Spesifik | Spesifik |
Advertising_Type | Spesifik | Spesifik |
Own_Address_Type | Spesifik | Spesifik |
Own_Address | Spesifik | Spesifik |
Direct_Address_Type | Spesifik | Spesifik |
Direct_Address | Spesifik | Spesifik |
Advertising_Channel_Map | Spesifik | Spesifik |
Adverstising_Filter_Policy | Spesifik | Spesifik |
Advertising_Instance | 1 Octet | Yukarıdaki parametrelerin bir örneğe uygulanabilirliğini belirtir |
Tx_power | 1 Octet | Tanıtım_power Birim - DBM'de (İmzalı Tamsayı) Aralık (-70 ila +20) |
Own_Address
parametresi, bu çoklu reklam örneği oluşturulurken ana bilgisayarla yapılandırılmış bir adres olabilir. Bu, ilk işaretin iletimi sırasında çözülebilir bir özel adrese sahip olma yeteneği sağlar. Bir örnekte reklam, bağlantıdan bağımsız olarak devam edecektir. Ana Bilgisayar BT yığını, bir örnek, bağlantı sonrası reklamı başlatmak için bir komut verebilir.
Bu komut için yukarıdaki komuta göre Bluetooth Core 4.1 spesifikasyonunda belirtildiği gibi bir komut tam olay oluşturulacaktır. Reklamcılık örneği veya Tx_Power
parametreleri geçersizse denetleyici, başarılı olmayan (geçersiz parametre) kodla yanıt verecektir.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
Multi_advt_opcode | 1 Octet | 0x01 [ Set_Advt_Param_Multi_Sub_Cmd] |
Le_multi_advt_command: set_advt_data_multi_sub_cmd
Temel Referans: Bluetooth Core 4.1 Spesifikasyonu, sayfa 969 (Le Set Reklam Veri Komutu)
Alt OCF: 0x02
Alt-Komut parametresi | Boyut | Amaç |
---|---|---|
Advertising_Data_Length | Spesifik | Spesifik |
Advertising_Data | Spesifik | Spesifik |
Advertising_Instance | 1 Octet | Yukarıdaki parametrelerin bir örneğe uygulanabilirliğini belirtir |
Bu komut için yukarıdaki komuta göre Bluetooth Core 4.1 spesifikasyonunda belirtildiği gibi bir komut tam olay oluşturulacaktır. Reklamcılık örneği veya Tx_Power
parametreleri geçersizse denetleyici, başarılı olmayan bir kodla yanıt verir.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
Multi_advt_opcode | 1 Octet | 0x02 [ Set_Advt_Data_Multi_Sub_Cmd] |
Le_multi_advt_command: set_scan_resp_data_multi_sub_cmd
Temel Referans: Bluetooth Core 4.1 Spesifikasyonu, sayfa 970 (Le Set Tepki Veri Komutu)
Alt OCF: 0x03
Alt-Komut parametresi | Boyut | Amaç |
---|---|---|
Scan_Response_Data_Length | Spesifik | Spesifik |
Scan_Response_Data | Spesifik | Spesifik |
Advertising_Instance | 1 Octet | Yukarıdaki parametrelerin bir örneğe uygulanabilirliğini belirtir |
Bu komut için yukarıdaki komuta göre Bluetooth Core 4.1 spesifikasyonunda belirtildiği gibi bir komut tam olay oluşturulacaktır. Reklamcılık örneği veya Tx_Power
parametreleri geçersizse denetleyici, başarılı olmayan bir kodla (geçersiz parametre) yanıt verir.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
Multi_advt_opcode | 1 Octet | 0x03 [ Set_Scan_Resp_Data_Multi_Sub_Cmd] |
Le_multi_advt_command: set_random_addr_multi_sub_cmd
Temel Referans: Bluetooth Core 4.1 Spesifikasyonu, sayfa 963 (Le rastgele adres komutunu ayarlayın)
Alt OCF: 0x04
Alt-Komut parametresi | Boyut | Amaç |
---|---|---|
Rastgele Adres | Spesifik | Spesifik |
Advertising_Instance | 1 sekizli | Yukarıdaki parametrelerin bir örneğe uygulanabilirliğini belirtir |
Bu komut için bir komut tam olay oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
Multi_advt_opcode | 1 Octet | 0x04 [ Set_Random_Addr_Multi_Sub_Cmd] |
Le_multi_advt_command: set_advt_enable_multi_sub_cmd
Temel Referans: Bluetooth Core 4.1 Spesifikasyonu, sayfa 971 (LE SET Reklamı Etkinleştirme Komutunu Bu Çekirdek Spesifikasyonunda)
OCF: 0x05
Alt-Komut parametresi | Boyut | Amaç |
---|---|---|
Advertising_Enable | 1 Octet | 1 değeri etkinlik anlamına gelir. Başka herhangi bir değer devre dışı bırakmak anlamına gelir. |
Advertising_Instance | 1 Octet | Yukarıdaki parametrelerin bir örneğe uygulanabilirliğini belirtir. Örnek 0, standart bir HCI örneği anlamına gelir. |
Bu komut için bir komut tam olay oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
Multi_advt_opcode | 1 Octet | 0x05 [ Set_Advt_Enable_Multi_Sub_Cmd] |
Özel adresin boşaltılmış çözümü
Bu özellik, aşağıdaki avantajları sağlayan denetleyici ürün yazılımında veya donanımında özel bir adresi çözer:
- Özel bir adresin çözülmesinde ana bilgisayarla ilgili gecikme
- Ev sahibini uyandırmaktan kaçınarak güç tasarrufu
Le_set_rpa_timeout
OCF: 0x15c
Komut parametresi | Boyut | Amaç |
---|---|---|
LE_local_IRK | 16 Octet | Yerel cihaz IRK, rastgele çözülebilir adres (ler) oluşturmak için kullanılır. |
tRPA_min | 2 sekiz | Saniyeler içinde minimum RPA üretim zaman aşımı. Denetleyici, bu zaman aşımında veya sonra herhangi bir reklam/tarama/bağlantı etkinliği için yeni çözülebilir adresler oluşturmalıdır. Geçerli Aralık: 300-1800 |
tRPA_max | 2 sekiz | Saniyeler içinde maksimum RPA üretim zaman aşımı. Denetleyici, bu zaman aşımında veya daha önce herhangi bir reklam/tarama/bağlantı etkinliği için yeni çözülebilir adresler oluşturmalıdır. Geçerli Aralık: tRPA_min -1800 |
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komutun durumu. Önerilen HCI Durum Değerleri: 0x00 Başarı 0x01 Bilinmeyen Komut (desteklenmiyorsa) 0x12 Geçersiz komut parametreleri (herhangi bir parametre verilen aralığın dışındaysa) |
Le_rpa_offload_command
OCF: 0x155
Komut parametresi | Boyut | Amaç |
---|---|---|
RPA_offload_opcode | 1 Octet | 0x1 - Müşteriye özgü özelliği etkinleştirin 0x2 - Listeye IRK ekle 0x3 - IRK'yı listeden kaldırın 0x4 - IRK listesini temizleyin 0x5 - IRK listesi girişini okuyun |
Bu komut için bir komut tam olay oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
Event_RPA_offload_opcode | 1 Octet | 0x1 - Müşteriye özgü özelliği etkinleştirin 0x2 - Listeye IRK ekle 0x3 - IRK'yı listeden kaldırın 0x4 - IRK listesini temizleyin 0x5 - IRK listesi girişini okuyun |
Le_rpa_offload: enable_cust_specific_sub_command
Alt OCF: 0x01
Alt-Komut parametresi | Boyut | Amaç |
---|---|---|
enable_customer_specific_feature_set | 1 Octet | 0x01 - Boşaltılmış RPA özelliğini etkinleştir 0x00 - Boşaltılmış RPA özelliğini devre dışı bırakın |
RPA boşaltma işleminin, çip özelliğine göre ana bilgisayar tarafından etkinleştirilmesi gerekir. LE_Get_Vendor_Capabilities_Command
bakın. Her çip, ürün yazılımında değişen bir max_irk_list_sz
olabilir.
Bu komut için bir komut tam olay oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
Event_cust_specific_feature_opcode | 1 Octet | 0x01 [Müşteriye özgü özelliği etkinleştir] |
Le_rpa_offload: add_irk_to_list_sub_command
Alt OCF: 0x02
Alt-Komut parametresi | Boyut | Amaç |
---|---|---|
LE_IRK | 16 sekiz | Le Irk (1. bayt LSB) |
Address_Type | 1 Octet | 0: Genel Adres 1: Rastgele adres |
LE_Device_Address | 6 sekizli | IRK ile ilişkili genel veya rastgele adres (1. bayt LSB) |
Bu komut için bir komut tam olay oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
Event_cust_specific_feature_opcode | 1 Octet | 0x02 [Listeye IRK ekle] |
LE_IrkList_AvailableSpaces | 1 Octet | Mevcut işlemden sonra mevcut IRL listesi girişleri |
Le_rpa_offload: remove_irk_to_list_sub_command
Alt OCF: 0x03
Alt-Komut parametresi | Boyut | Amaç |
---|---|---|
Address_Type | 1 sekizli | 0: Genel Adres 1: Rastgele adres |
LE_Device_Address | 6 sekizli | IRK ile ilişkilendiren halka açık veya rastgele adres |
Bu komut için bir komut tam olay oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
Event_cust_specific_feature_opcode | 1 Octet | 0x03 [IRK'yı listeden kaldır] |
LE_IrkList_AvailableSpaces | 1 Octet | Mevcut işlemden sonra mevcut IRL listesi girişleri |
Le_rpa_offload: clear_irk_list_sub_command
Alt OCF: 0x04
Alt-Komut parametresi | Boyut | Amaç |
---|---|---|
Hiçbiri |
Bu komut için bir komut tam olay oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
Event_cust_specific_feature_opcode | 1 Octet | 0x04 [IRK listesini temizleyin] |
LE_IrkList_AvailableSpaces | 1 Octet | Geçerli işlemden sonra mevcut IRL listesi girişleri [ max_irk_list_sz] |
Le_rpa_offload: Read_irk_list_sub_command
Alt OCF: 0x05
Alt-Komut parametresi | Boyut | Amaç |
---|---|---|
LE_read_IRK_list_entry-index | 1 Octet | IRK listesinin dizin [0, max_irk_list_sz-1] |
Bu komut için bir komut tam olay oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
Event_cust_specific_feature_opcode | 1 Octet | 0x05 [IRK listesi girişini okuyun] |
LE_Read_IRK_List_entry | 1 Octet | Ana bilgisayarın geri okumak istediği IRK dizinini (maksimum IRK listesi boyutu 32) |
LE_IRK | 16 sekiz | IRK değeri |
Address_Type | 1 Octet | 0: Genel Adres 1: Rastgele adres |
LE_Device_Address | 6 sekizli | IRK ile ilişkili genel veya rastgele adres |
LE_Resolved_Private_Address | 6 sekizli | Bu IRK'nın mevcut çözülmüş çözülebilir özel adresi |
Ana bilgisayar kontrolör arayüzü (HCI) bir Bluetooth denetleyicisi ile etkileşim kurmak için kullanılır.
Bu belge Bluetooth (BT) ve Bluetooth Düşük Enerji (BLE) HCI gereksinimlerinin bir listesini sunar. Amaç, aşağıda açıklanan özellik kümesini kullanmak için ana bilgisayar BT yığın satıcılarının ve BT denetleyici satıcılarının bu platform gereksinimlerine uymalarıdır.
Bu belge, "Spec." Bluetooth Core 5.2 spesifikasyonu, Bluetooth SIG web sitesinde ve kabul edilen diğer belgelerle birlikte mevcuttur.
Genel tasarıma genel bakış
Chip özellikleri ve yapılandırma
Açık bir platform olarak Android, bir yazılım sürümleri, OEM'ler, satıcılar, platform ve çip özellikleri matrisine sahiptir.
Değişen manzarayı yönetmek ve göçleri yönetmek için, BT kontrolörlerinin yeteneklerini ortaya çıkarmasına izin verme tasarım felsefesi (standart Bluetooth Core 5.2 spesifikasyonunun ötesinde) bu belgede açıklanmaktadır. Ana bilgisayar BT yığını, hangi özellikleri etkinleştireceğinizi belirlemek için bu özellikleri kullanabilir.
Açık Standartları Destekleme
Android'in bir amacı, bir Bluetooth spesifikasyonunda onaylandıktan sonra açık standartları desteklemektir. Aşağıda açıklanan bir özellik, gelecekteki bir Bluetooth spesifikasyonunda standart HCI yöntemlerinde kullanılabilirse, bu yaklaşımı varsayılan hale getirmeye eğilimliyiz.
Satıcıya özgü yetenekler
Satıcıya özgü komut: LE_Get_Vendor_Capabilities_Command
Opcode komut alanı (OCF): 0x153
Komut parametresi | Boyut | Amaç |
---|---|---|
Yok | Boş Komut Parametre Listesi |
Bu komut için bir komut tam olay oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
max_advt_instances (Kullanımdan kaldırıldı) | 1 Octet | Desteklenen reklam örneklerinin sayısı. V0.98'den sonra ayrılmıştır. Bu parametre, Google özelliğinde V0.98 ve daha yüksek olan BT SPEC sürüm 5.0 ve üstünde bulunan Le Genişletilmiş Reklamlar lehine kullanımdan kaldırılır. |
offloaded_resolution_of_private-address (Kullanımdan kaldırıldı) | 1 Octet | RPA'nın BT yonga yeteneği. Bir çip tarafından desteklenirse, ana bilgisayar tarafından etkinleştirilmesi gerekir. 0 = yetenekli değil 1 = Yetenekli V0.98'den sonra ayrılmıştır. Bu parametre, Google özelliğinde V0.98 ve daha yüksek olan BT SPEC sürüm 4.2 ve üstünde bulunan Gizlilik Özelliği lehine kullanımdan kaldırılır. |
total_scan_results_storage | 2 sekiz | Tarama Sonuçları için Depolama Bayt |
max_irk_list_sz | 1 Octet | Ürün yazılımında desteklenen IRK girişlerinin sayısı |
filtering_support | 1 Octet | Denetleyicide filtreleme desteği 0 = Desteklenmiyor 1 = Desteklendi |
max_filter | 1 Octet | Desteklenen filtre sayısı |
activity_energy_info_support | 1 Octet | Etkinlik ve enerji bilgilerinin raporlanmasını destekler 0 = yetenekli değil 1 = Yetenekli |
version_supported | 2 sekiz | Desteklenen Google özellik spesifikasyonunun sürümünü belirtir bayt [0] = ana sayı bayt [1] = küçük sayı v1.03 bayt [0] = 0x01 bayt [1] = 0x03 |
total_num_of_advt_tracked | 2 sekiz | OnLost / OnFound amaçlar için izlenen toplam reklamveren sayısı |
extended_scan_support | 1 Octet | Genişletilmiş tarama penceresini ve aralığı destekler |
debug_logging_supported | 1 Octet | Denetleyiciden ikili hata ayıklama bilgilerinin günlüğe kaydedilmesini destekler |
LE_address_generation_offloading_support (Kullanımdan kaldırıldı) | 1 Octet | 0 = Desteklenmiyor 1 = Desteklendi V0.98'den sonra ayrılmıştır. Bu parametre, Google özelliğinde V0.98 ve daha yüksek olan BT SPEC sürüm 4.2 ve üstünde bulunan Gizlilik Özelliği lehine kullanımdan kaldırılır. |
A2DP_source_offload_capability_mask | 4 sekizli | Desteklenen codec türleri için bit maskeleri Bit 0 - SBC Bit 1 - AAC Bit 2 - Aptx Bit 3 - Aptx HD Bit 4 - LDAC Bit 5-31 ayrılmıştır |
bluetooth_quality_report_support | 1 Octet | Bluetooth kaliteli olayların raporlanmasını destekler 0 = yetenekli değil 1 = Yetenekli |
dynamic_audio_buffer_support | 4 sekizli | Bluetooth denetleyicisindeki dinamik ses arabelleğini destekler Desteklenen codec türleri için bit maskeleri Bit 0 - SBC Bit 1 - AAC Bit 2 - Aptx Bit 3 - Aptx HD Bit 4 - LDAC Bit 5-31 ayrılmıştır |
Tarama sonuçlarının parti
Tasarım hedefi, ana bilgisayardaki güçten tasarruf etmek için Bluetooth LE Scan Yanıt Etkinlik Bildirimlerinin ana bilgisayara nasıl teslim edildiğini artırmaktır.
Ana bilgisayar uygulama işlemcisini sonuçları taramak için ana bilgisayar uygulama işlemcisini ne sıklıkta bilgilendirdiğini azaltarak, ana bilgisayar uygulama işlemcisi boşta kalabilir/daha uzun süre uyuyabilir. Bu, konaktaki güç tüketimini azaltır. total_scan_results_storage
of LE_Get_Vendor_Capabilities_Command
dönüş parametresi, tarama sonuçlarının depolanması için çip özelliğini gösterir.
Bu özellik, Bluetooth denetleyicisindeki LE SCAN sonuçları depolama tesisinin yönetimi ve yapılandırmasına odaklanmaktadır. Depolama, reklam verilerini geçici olarak toplu olarak toplamak ve daha sonra ana bilgisayara teslim edilmek üzere denetleyici tarafından alınan verileri ve meta verileri taramak için kullanılır.
Ürün yazılımı, eşzamanlı olarak ele alınabilen iki tür toplu işlemi destekleyecektir:
- Kesilmiş. Aşağıdaki bilgi öğelerini içerir: {Mac, TX Power, RSSI, Zaman Damgası}
- Tam dolu. Aşağıdaki bilgi öğelerini içerir: {Mac, TX Power, RSSI, Zaman Damgası, ADV Veri, Tarama Yanıtı}
Le_batch_scan_command
OCF: 0x156
Komut parametresi | Boyut | Amaç |
---|---|---|
Batch_Scan_opcode | 1 Octet | 0x1 - Müşteriye özgü özelliği etkinleştirin 0x2 - Toplu tarama tarama depolama parametrelerini ayarlayın 0x3 - Toplu tarama parametrelerini ayarlayın 0x4 - Toplu tarama sonuç parametrelerini okuyun |
Bu komut için bir komut tam olay oluşturulacaktır. Müşteriye özgü özelliğin etkinleştirilmesi taramayı başlatmaz.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
Batch_Scan_opcode | 1 sekizli | 0x1 - Müşteriye özgü özelliği etkinleştirin 0x2 - Toplu tarama tarama depolama parametrelerini ayarlayın 0x3 - Toplu tarama parametrelerini ayarlayın 0x4 - Toplu tarama sonuç parametrelerini okuyun |
LE_BATCH_SCAN_COMMAND: Müşteriye özgü özelliği etkinleştirin
Alt OCF: 0x01
Alt-Komut parametresi | Boyut | Amaç |
---|---|---|
enable_customer_specific_feature_set | 1 Octet | 0x01 - Toplu tarama özelliğini etkinleştir 0x00 - Toplu tarama özelliğini devre dışı bırak |
Bu komut için bir komut tam olay oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
Batch_Scan_opcode | 1 Octet | 0x1 - Müşteriye özgü özelliği etkinleştirin 0x2 - Toplu tarama tarama depolama parametrelerini ayarlayın 0x3 - Toplu tarama parametrelerini ayarlayın 0x4 - Toplu tarama sonuç parametrelerini okuyun |
Le_batch_scan_command: toplu tarama depolama param alt komutunu ayarlayın
Alt OCF: 0x02
Alt-Komut parametresi | Boyut | Amaç |
---|---|---|
Batch_Scan_Full_Max | 1 Octet | Maksimum depolama alanı ( %olarak) tam stile tahsis edildi [Aralık: 0-100] |
Batch_Scan_Truncated_Max | 1 Octet | Maksimum depolama alanı ( %olarak) kesik stile tahsis edildi [Aralık: 0-100] |
Batch_Scan_Notify_Threshold | 1 Octet | Bireysel depolama havuzu için kurulum bildirim seviyesi ( %) [Aralık: 0-100] 0 olarak ayarlama bildirimi devre dışı bırakır. Satıcıya özgü HCI olayı oluşturulur (Depolama Eşiği İhlali Alt) |
Bu komut için bir komut tam olay oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
Batch_scan_opcode | 1 Octet | 0x02 [Toplu tarama parametrelerini ayarlayın] |
Le_batch_scan_command: toplu tarama param alt komutunu ayarlayın
Alt OCF: 0x03
Alt-Komut parametresi | Boyut | Amaç |
---|---|---|
Batch_Scan_Mode | 1 Octet | 0x00 - Toplu tarama devre dışı bırakıldı 0x01 - Kesik mod etkinleştirildi 0x02 - Tam mod etkinleştirildi 0x03 - Kesik ve tam mod etkinleştirildi |
Duty_cycle_scan_window | 4 sekizli | Toplu tarama tarama süresi (yuva#) |
Duty_cyle_scan_interval | 4 sekizli | Toplu tarama aralığı süresi (yuva#) |
own_address_type | 1 Octet | 0x00 - Genel Cihaz Adresi 0x01 - Rastgele cihaz adresi |
Batch_scan_Discard_Rule | 1 Octet | 0 - en eski reklamı atın 1 - En zayıf RSSI ile reklamı atın |
Bu alt komut, etkinse toplu taramaya başlar. Kesik taramada, sonuçlar kesik stil = { BD_ADDR,
scan_interval} için benzersiz anahtarın kesilmiş formda saklanır. Bu, her tarama aralığı için yalnızca bir BD_ADDR will
kaydedileceği anlamına gelir. Kesik mod için saklanacak kayıt aşağıdadır: { BD_ADDR
, TX Power, RSSI, Zaman Damgası}
Tam mod etkinleştirildiğinde, etkin tarama kullanılacak ve tarama yanıtları kaydedilecektir. Tarama aralığına bakılmaksızın tam stil benzersiz anahtarı = {mac, reklam paketi}. Tam modda tutulması gereken kayıt { BD_ADDR
, TX Power, RSSI, Zaman Damgası, Reklam Paketi, Tarama Yanıtı}. Tam tarzda, aynı reklam paketi, farklı tarama aralıklarında birden çok kez görüldüğünde, yalnızca bir kez kaydedilir. Bununla birlikte, kesik modda, BA_ADDR
ilgi çekici olan farklı tarama aralıklarında (tarama aralığı başına bir kez) görünürlüğüdür. RSSI, bir tarama aralığı içinde benzersiz bir reklamın tüm kopyalarının ortalama değeridir.
Bu komut için bir komut tam olay oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
Batch_scan_opcode | 1 Octet | 0x03 [toplu tarama parametrelerini ayarlayın] |
Le_batch_scan_command: toplu tarama sonuçları alt komutu okuyun
Alt OCF: 0x04
Alt-Komut parametresi | Boyut | Amaç |
---|---|---|
Batch_Scan_Data_read | 1 Octet | 0x01 - Kesik mod verileri 0x02 - Tam mod verileri |
Bu komut için bir komut tam olay oluşturulacaktır. Ana bilgisayar bu komutu verdiğinde, denetleyicideki tüm sonuçlar bir komut tam etkinliğine uymayabilir. Ana bilgisayar, komut tam olayıyla ilgili sonuçlar, kayıt sayısında 0'ı gösterene kadar bu komutu yineleyecektir, bu da denetleyicinin ana bilgisayarla iletişim kuracak daha fazla kaydı olmadığını gösterir. Her komut tam olay, yalnızca bir tür veri türünün (tam veya kesik) birden çok kayıt içerebilir.
Denetleyici ve ana bilgisayar zaman referansları senkronize değildir. Zaman damgasının birimi 50ms'dir. Zaman damgasının değeri, Read_Batch_Scan_Results_Sub_cmd
ana bilgisayar tarafından verildiğinde kapalıdır. Ürün yazılımında bir komut varış süresi T_c
ise, zaman damgasının ürün yazılımında alındığı gerçek zaman T_fw
. Raporlama süresi şunlar olacaktır: ( T_c
- T_fw
). T_c
ve T_fw
ürün yazılımı zaman alanında bulunur. Bu, ev sahibinin etkinliğin ne kadar zaman önce olduğunu hesaplamasını sağlar.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
Batch_scan_opcode | 1 Octet | 0x03 [toplu tarama parametrelerini ayarlayın] |
Batch_Scan_data_read | 1 Octet | Biçimi tanımlar (kesik veya tam) |
num_of_records | 1 sekizli | Batch_Scan_data_read kayıt sayısı |
format_of_data | Değişken | Kesik mod: Adres [0]: 6 sekizli Adres_type [0]: 1 Octet TX_PWR [0]: 1 Octet RSSI [0]: 1 Octet Zaman Damgası [0]: 2 sekizli [Yukarıdaki formatta birden çok kayıt ( num_of_records )]Full Mode: Address[0]: 6 octets Address_Type[0]: 1 octet Tx_Pwr[0]: 1 octet RSSI[0]: 1 octet Timestamp[0]: 2 octets Adv packet_len[0]: 1 octet Adv_packet[0]: Adv_packet_len octets Scan_data_resp_len[0]: 1 octet Scan_data_resp[0]: Scan_data_resp octets[multiple records with above format ( num_of_records )] |
Advertising Packet Content Filter
Use this to enable/disable/setup the Advertising Packet Content Filter (APCF) in the controller. APCF filters advertising reports in the controller but doesn't filter periodic advertising.
LE_APCF_Command
OCF: 0x157
Command parameter | Boyut | Amaç |
---|---|---|
APCF_opcode | 1 octet | 0x00 - APCF Enable 0x01 - APCF Set Filtering parameters 0x02 - APCF Broadcaster Address 0x03 - APCF Service UUID 0x04 - APCF Service Solicitation UUID 0x05 - APCF Local Name 0x06 - APCF Manufacturer Data 0x07 - APCF Service Data 0x08 - APCF Transport Discovery Service 0x09 - APCF AD Type Filter 0x10 ~ 0xAF - Reserved for future use 0xB0 ~ 0xDF - Reserved for vendor 0xE0 ~ 0xFE - Reserved for future use 0xFF - APCF Read extended Features |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | İade durumu |
APCF_opcode | 1 octet | 0x00 - APCF Enable 0x01 - APCF Set Filtering parameters 0x02 - APCF Broadcaster Address 0x03 - APCF Service UUID 0x04 - APCF Service Solicitation UUID 0x05 - APCF Local Name 0x06 - APCF Manufacturer Data 0x07 - APCF Service Data 0x08 - APCF Transport Discovery Service 0x09 - APCF AD Type Filter 0x10 ~ 0xAF - Reserved for future use 0xB0 ~ 0xDF - Reserved for vendor 0xE0 ~ 0xFE - Reserved for future use 0xFF - APCF Read extended Features |
LE_APCF_Command: Enable_sub_cmd
Sub OCF: 0x00
Sub-command parameter | Boyut | Amaç |
---|---|---|
APCF_enable | 1 octet | 0x01 - Enable APCF feature 0x00 - Disable APCF feature |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
APCF_opcode | 1 octet | 0x0 - APCF Enable |
APCF_Enable | 1 octet | Enable/disable is set via APCF_enable |
LE_APCF_Command: set_filtering_parameters_sub_cmd
This subcommand is used to add or delete a filter specification or clear a filter list for on-chip filtering.
Sub OCF: 0x01
Sub-command parameter | Boyut | Amaç |
---|---|---|
APCF_Action | 1 octet | 0x00 - Add 0x01 - Delete 0x02 - Clear Delete will clear the specific filter along with associated feature entries in other tables. Clear will clear all the filters and associated entries in other tables. |
APCF_Filter_Index | 1 octet | Filter index (0, max_filter-1 ) |
APCF_Feature_Selection | 2 octets | Bit masks for the selected features: Bit 0: Set to enable Broadcast Address filter Bit 1: Set to enable Service Data Change filter Bit 2: Set to enable Service UUID check Bit 3: Set to enable Service Solicitation UUID check Bit 4: Set to enable Local Name check Bit 5: Set to enable Manufacturer Data Check Bit 6: Set to enable Service Data Check Bit 7: Set to enable Transport Discovery Service Check Bit 8: Set to enable AD Type Check |
APCF_List_Logic_Type | 2 octets | Logic operation for each feature selection (per-bit position) specified in APCF_Feature_Selection .Valid only when a feature is enabled. Bit position value: 0: OR 1: AND If "AND" logic is selected, an ADV packet will pass the filter only if it contains ALL of the entries in the list. If "OR" logic is selected, an ADV packet will pass the filter if it contains any of the entries in the list. |
APCF_Filter_Logic_Type | 1 octet | 0x00: OR 0x01: AND Note: The logic type is N/A for the first three fields of APCF_Feature_Selection , which is always "AND" logic. They are only applicable for (Bit 3 - Bit 6) four fields of APCF_Feature_Selection . |
rssi_high_thresh | 1 octet | [in dBm] The advertiser is considered seen only if the signal is higher than the RSSI high threshold. Otherwise, the firmware must behave as if it never saw it. |
delivery_mode | 1 octet | 0x00 - immediate 0x01 - on_found 0x02 - batched |
onfound_timeout | 2 octets | Valid only if delivery_mode is on_found .[in milliseconds] Time for firmware to linger and collect additional advertisements before reporting. |
onfound_timeout_cnt | 1 octet | Valid only if delivery_mode is on_found .[saymak] If an advertisement in onFound lingers in firmware for the onfound_timeout duration, it will collect a few advertisements and the count is checked. If the count exceeds onfound_timeout_cnt , it's reported OnFound immediately thereafter. |
rssi_low_thresh | 1 octet | Valid only if delivery_mode is on_found .[in dBm] The advertiser packet is considered as not seen if the RSSI of the received packet is not above the RSSI low threshold. |
onlost_timeout | 2 octets | Valid only if delivery_mode is on_found .[in milliseconds] If an advertisement, after being found, is not seen contiguously for the lost_timeout period, it will immediately be reported lost. |
num_of_tracking_entries | 2 octets | Valid only if delivery_mode is on_found .[saymak] Total number of advertisers to track per filter. |
RSSI values must use 2's complement to represent negative values.
Host shall be able to configure multiple filters with APCF_Application_Address_type
set to 0x02 (for all broadcaster addresses) to manage various filter combinations.
Filtering, batching and reporting are inter-related concepts. Every advertisement and related scan response will have to go through all the filters, one after the other. Thus, resulting actions ( delivery_mode
) are closely tied to filtering. The delivery modes are the following: report_immediately
, batch
, and onFound
. The OnLost
value is related to OnFound
in the sense that it will come after OnFound
when lost.
This processing flow depicts the conceptual model:
When an advertisement (or scan response) frame is received, it is applied to all the filters in serial order. It's possible that an advertisement can cause immediate reporting based on one filter and batching of the same due to a different filter action.
RSSI level thresholds (high and low) give the ability to control when the frame is visible for filter processing, even when a valid packet is received by the controller. In case of delivery mode being set to immediate or batched, the RSSI of a frame is considered for further controller processing. Different apps need different reporting and batching behavior. This allows multiple apps to have direct reporting and/or batching of results in firmware, concurrently. An example is a case when a batch scan is active from one app and later a regular LE scan is issued by another app. Before a batch scan is issued, the framework/app sets appropriate filters. Later, when the second app issues a regular scan, previous batching continues. However, due to the regular scan, it is akin to conceptually adding a null filter (along with all the existing filters) along with the LE scan command. The LE scan command parameters take precedence when active. When the regular LE scan is disabled, the controller will revert back to a previous batch scan, if it existed.
The OnFound
delivery mode is based on configured filters. A combination that triggers a filter's action to succeed is considered the entity to track for onLost
. The corresponding event is the LE Advt tracking subevent.
The OnFound/OnLost
transition for a filter (if enabled) will look like the following:
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
APCF_opcode | 1 octet | 0x01 - APCF Set Filtering Parameters |
APCF_Action | 1 octet | Echo back command's APCF_Action |
APCF_AvailableSpaces | 1 octet | Number of available entries in the filters table |
LE_APCF_Command: broadcast_address_sub_cmd
This subcommand is used to add or delete an advertiser address or to clear the advertiser address list for on-chip filtering.
Sub OCF: 0x02
Sub-command parameter | Boyut | Amaç |
---|---|---|
APCF_Action | 1 octet | 0x00 - Add 0x01 - Delete 0x02 - Clear Delete will delete the specified broadcaster address in the specified filter. Clear will clear all the broadcaster addresses in the specified filter. |
APCF_Filter_Index | 1 octet | Filter index (0, max_filter-1 ) |
APCF_Broadcaster_Address | 6 octet | 6-byte device address to add to or delete from the broadcaster address list |
APCF_Application_Address_type | 1 sekizli | 0x00: Public 0x01: Random 0x02: NA (addresses type not applicable) |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
APCF_opcode | 1 octet | 0x02 - APCF Broadcaster Address |
APCF_Action | 1 octet | Echo back command's APCF_Action |
APCF_AvailableSpaces | 1 octet | Number of free entries still available in the Broadcast Address table |
LE_APCF_Command: service_uuid_sub_cmd
This subcommand is used to add or delete a service UUID or to clear a service UUID list for on-chip filtering.
Sub OCF: 0x03
Sub-command parameter | Boyut | Amaç |
---|---|---|
APCF_Action | 1 octet | 0x00 - Add 0x01 - Delete 0x02 - Clear Delete will delete the specified service UUID address in the specified filter. Clear will clear all the service UUIDs in the specified filter. |
APCF_Filter_Index | 1 octet | Filter index (0, max_filter -1) |
APCF_UUID | 2,4,16 octet | The Service UUID (16-bit, 32-bit, or 128-bit) for adding to, or deleting from, the list. |
APCF_UUID_MASK | 2,4,16 octet | The Service UUID Mask (16-bit, 32-bit, or 128-bit) to add to the list. It should have the same length as APCF_UUID. |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
APCF_opcode | 1 octet | 0x03 - APCF Service UUID |
APCF_Action | 1 octet | Echo back command's APCF_Action |
APCF_AvailableSpaces | 1 octet | Number of free entries still available in the Service UUID table |
LE_APCF_Command: solicitation_uuid_sub_cmd
This subcommand is used to add or delete a solicitation UUID or to clear a solicitation UUID list for on-chip filtering.
Sub OCF: 0x04
Sub-command parameter | Boyut | Amaç |
---|---|---|
APCF_Action | 1 octet | 0x00 - Add 0x01 - Delete 0x02 - Clear Delete will delete the solicitation UUID address in the specified filter. Clear will clear all the solicitation UUIDs in the specified filter. |
APCF_Filter_Index | 1 octet | Filter index (0, max_filter -1) |
APCF_UUID | 2,4,16 octet | The Solicitation UUID (16-bit, 32-bit, or 128-bit) to add to or delete from the list. |
APCF_UUID_MASK | 2,4,16 octet | The Solicitation UUID Mask (16-bit, 32-bit, or 128-bit) to add to the list. It should have the same length as the APCF_UUID . |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
APCF_opcode | 1 octet | 0x04 - APCF Solicitation UUID |
APCF_Action | 1 octet | Echo back command's APCF_Action |
APCF_AvailableSpaces | 1 octet | Number of free entries still available in the Solicitation UUID table |
LE_APCF_Command: local_name_sub_cmd
This sub-command is used to add or delete a local name string or to clear the local name string list for on-chip filtering.
Sub OCF: 0x05
Sub-command parameter | Boyut | Amaç |
---|---|---|
APCF_Action | 1 octet | 0x00 - Add 0x01 - Delete 0x02 - Clear Delete will delete the specified local name string in the specified filter. Clear will clear all the local name strings in the specified filter. |
APCF_Filter_Index | 1 octet | Filter index (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData | Değişken boyut | A character string for local name. Notlar:
|
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
APCF_opcode | 1 octet | 0x05 - APCF Local Name |
APCF_Action | 1 octet | Echo back command's APCF_Action |
APCF_AvailableSpaces | 1 octet | Number of free entries still available in the Local name table |
LE_APCF_Command: manf_data_sub_cmd
This subcommand is used to add or delete a manufacturer data string or to clear the manufacturer data string list for on-chip filtering.
Sub OCF: 0x06
Sub-command parameter | Boyut | Amaç |
---|---|---|
APCF_Action | 1 octet | 0x00 - Add 0x01 - Delete 0x02 - Clear Delete will delete the specified manufacturer data string in the specified filter. Clear will clear all the manufacturer data strings in the specified filter. |
APCF_Filter_Index | 1 sekizli | Filter Index (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData | Değişken boyut | A character string for manufacturer data. Notlar:
|
APCF_ManData_Mask | Değişken boyut | The manufacture data mask to add to the list. It should have the same length as APCF_LocName_or_ManData_or_SerData . |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
APCF_opcode | 1 octet | 0x06 - APCF Manufacturer Data |
APCF_Action | 1 octet | Echo back command's APCF_Action |
APCF_AvailableSpaces | 1 octet | Number of free entries still available in the Manufacturer Data table |
LE_APCF_Command: service_data_sub_cmd
This subcommand is used to add or delete a service data string or to clear the service data string list for on-chip filtering.
Sub OCF: 0x07
Sub-command parameter | Boyut | Amaç |
---|---|---|
APCF_Action | 1 octet | 0x00 - Add 0x01 - Delete 0x02 - Clear Delete will delete the specified service data string in the specified filter. Clear will clear all the service data strings in the specified filter. |
APCF_Filter_Index | 1 octet | Filter Index (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData | Değişken boyut | A character string for service data. Notlar:
|
APCF_LocName_Mandata_or_SerData_Mask | Değişken boyut | The service data mask to add to the list. It should have the same length as APCF_LocName_or_ManData_or_SerData. |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
APCF_opcode | 1 octet | 0x07 - APCF Service Data |
APCF_Action | 1 octet | Echo back command's APCF_Action |
APCF_AvailableSpaces | 1 octet | Number of free entries still available for Service Data table |
LE_APCF_Command: ad_type_sub_cmd
This subcommand is used to add or delete an AD type or to clear an AD type list for on-chip filtering. Use read_extended_features_sub_cmd
to check if this command is supported or not.
Sub OCF: 0x09
Sub-command parameter | Boyut | Amaç |
---|---|---|
APCF_Action | 1 octet | 0x00 - Add 0x01 - Delete 0x02 - Clear Delete will delete the specified AD type in the specified filter. Clear will clear all the AD types in the specified filter. |
APCF_Filter_Index | 1 octet | Filter Index (0, max_filter -1) |
APCF_AD_TYPE | 1 octet | The AD Type for adding to, or deleting from, the list. Ignore when APCF_Action is 0x02 (Clear) |
APCF_AD_DATA_Length | Değişken boyut | 0x00 - means do not filter data content Ignore when APCF_Action is 0x02 (Clear) |
APCF_AD_DATA | Değişken boyut | Ignore when APCF_Action is 0x02 (Clear) |
APCF_AD_DATA_MASK | Değişken boyut | Ignore when APCF_Action is 0x02 (Clear) It should have the same length as APCF_AD_DATA . |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Command Complete status |
APCF_opcode | 1 octet | 0x09 - APCF AD Type |
APCF_Action | 1 octet | Echo back command's APCF_Action |
APCF_AvailableSpaces | 1 octet | Number of free entries still available in the AD Type table |
LE_APCF_Command: read_extended_features_sub_cmd
This subcommand is used to read extended APCF features.
Sub OCF: 0xFF
Sub-command parameter | Boyut | Amaç |
---|---|---|
Uygulanamaz | Empty command parameter. |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
APCF_opcode | 1 octet | 0xFF - APCF_Read_Extended_Features |
APCF_extended_features | 2 octet | Bit masks for extended features supported:
Value of bit
|
Controller activity and energy information command
The objective of this information is for higher host system functions to analyze the total activities of all components, including the BT controller and its macro state, in conjunction with what is happening in the apps and framework. To do this, the following information is required from the BT stack and the controller:
- BT stack: Reporting the current macro-operational state of the controller
- Firmware: Reporting aggregate activity and energy information
BT host stack macro states, as determined at the user level:
- Idle: [page scan, LE advt, inquiry scan]
- Scan: [paging/inquiry/trying to connect]
- Active: [ACL link on, SCO link ongoing, sniff mode]
The activities that the controller keeps track of over its life are Tx time, Rx time, idle time, and total energy consumed. They are cleared when read from the host.
LE_Get_Controller_Activity_Energy_Info
This is a vendor-specific command.
OCF: 0x159
Sub-command parameter | Boyut | Amaç |
---|---|---|
Yok | Empty command params |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
total_tx_time_ms | 4 sekizli | Total time performing Tx |
total_rx_time_ms | 4 sekizli | Total time performing Rx |
total_idle_time_ms | 4 sekizli | Total time in idle (non-sleep low power states) |
total_energy_used | 4 sekizli | Total energy used [product of current (mA), voltage (V) and time (ms)] |
LE extended set scan parameters command
This command can be used to enable a larger scan window and interval in the controller. Per the BT Core 5.2 Specification, a scan window and interval have an upper bound limit of 10.24 seconds, which hampers applications' longer scan intervals beyond 10.24 seconds.
Base reference: BT Core 5.2 Specification, page 2493 (LE Set Scan Parameters Command)
OCF: 0x15A
Command Parameter | Boyut | Amaç |
---|---|---|
LE_Ex_Scan_Type | 1 octet | 0x00 - Passive scanning. No SCAN_REQ packets shall be sent (default).0x01 - Active scanning. SCAN_REQ packets may be sent. |
LE_Ex_Scan_Interval | 4 sekizli | Defined as the time interval from when the Controller started its last LE scan until it began the subsequent LE scan. Range: 0x0004 to 0x00FFFFFF Default: 0x0010 (10 ms) Time = N * 0.625 ms Time range: 2.5 ms to 10442.25 seconds |
LE_Ex_Scan_Window | 4 sekizli | The duration of the LE scan. LE_Scan_Window shall be less than or equal to LE_Scan_Interval .Range: 0x0004 to 0xFFFF Default: 0x0010 (10 ms) Time = N * 0.625 ms Time Range: 2.5 ms to 40.95 seconds |
Own_Address_Type | 1 octet | 0x00 - Public Device Address (default) 0x01 - Random Device Address |
LE_Ex_Scan_Filter_Policy | 0x00 - Accept all advertisement packets (default). Directed advertising packets which are not addressed for this device shall be ignored. 0x01 - Ignore advertisement packets from devices not in the White List Only list. Directed advertising packets which are not addressed for this device shall be ignored. |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
Get controller debug info command
The objective of this information element is to acquire controller debug information by a host, in binary form, for post-processing and analysis. This helps debug on-field issues and provides engineers with a toolkit to log information for analysis. A Controller can provide the information when requested by a host via the event (Controller Debug Info sub-event) or autonomously when desired by the controller. Example uses could be to report firmware state information, crash dump information, logging information, etc.
OCF: 0x15B
Command parameter | Boyut | Amaç |
---|---|---|
Yok | Empty command parameter list |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
A2DP Hardware Offload Support
The A2DP Offload feature supports the offload of the A2DP audio encoding process to an audio processor attached to the BT Controller. The encoded audio data stream passes directly from the Audio processor to the BT Controller without the BT host's involvement. The BT Host is still responsible for the configuration and control of the A2DP session. Two versions of the commands are available. The legacy commands with Sub OCF 0x01-0x02 only support open-source codecs. The versions with Sub-OCF 0x02-0x03 are agnostic to the configured codec.
OCF: 0x15D
Start A2DP Offload (legacy)
Sub OCF: 0x01
Use this command both to configure the A2DP Offload process and to start the A2DP stream.
Command parameter | Boyut | Amaç |
---|---|---|
Codec | 4 sekizli | Specifies Codec type 0x01 - SBC 0x02 - AAC 0x04 - APTX 0x08 - APTX HD 0x10 - LDAC |
Max_Latency | 2 octets | Max Latency Allowed (in ms). A value of zero disables flush. |
SCMS-T_Enable | 2 octets | Octet 0: Flag that enables addition of SCMS-T header.
Octet 1: Value for the SCMS-T header, when it's enabled. |
Sampling_Frequency | 4 sekizli | 0x01 - 44100 Hz 0x02 - 48000 Hz 0x04 - 88200 Hz 0x08 - 96000 Hz |
Bits_Per_Sample | 1 octet | 0x01 - 16 bits per sample 0x02 - 24 bits per sample 0x04 - 32 bits per sample |
Channel_Mode | 1 octet | 0x01 - Mono 0x02 - Stereo |
Encoded_Audio_Bitrate | 4 sekizli | The encoded audio bitrate in bits per second second. 0x00000000 - The audio bitrate is not specified / unused. 0x00000001 - 0x00FFFFFF - Encoded audio bitrate in bits per second. 0x01000000 - 0xFFFFFFFF - Reserved. |
Connection_Handle | 2 octets | Connection Handle of A2DP connection being configured |
L2CAP_Channel_ID | 2 octets | L2CAP Channel ID to be used for this A2DP connection |
L2CAP_MTU_Size | 2 octets | Maximum size of L2CAP MTU containing encoded audio packets |
Codec_Information | 32 octets | Codec-specific Information. SBC Codec: Refer to SBC Codec specific information elements in A2DP v1.3. AAC Codec: Refer to AAC Codec specific information elements in A2DP v1.3 LDAC Codec: Octet 0-3: Vendor ID Octet 4-5: Codec ID Octet 6: Bitrate Index: Octet 7: LDAC Channel Mode Octet 8-31: reserved All other codecs: Octet 0-31: reserved |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
Sub_Opcode | 1 octet | 0x01 - Start A2DP Offload |
Start A2DP Offload
Sub OCF: 0x03
Use this command both to configure the A2DP Offload process and to start the A2DP stream.
Command parameter | Boyut | Amaç |
---|---|---|
Connection Handle | 2 octets | Handle of the active HCI connection |
L2CAP_Channel_ID | 2 octets | Identifier of the L2CAP Channel opened for A2DP streaming |
Data_Path_Direction | 1 octet | 0x00 - Output (AVDTP Source/Merge) 0x01 - Input (AVDTP Sink/Split) |
Peer_MTU | 2 octets | Maximum size of L2CAP packets, negotiated with the peer. |
CP_Enable_SCMS_T | 1 octet | 0x00 - Disable SCMS-T Content Protection Header 0x01 - Enable SCMS-T Content Protection Header |
CP_Header_SCMS_T | 1 octet | When SCMS-T Content Protection Header is enabled ( CP_SCMS_T_Enable set to 0x01), defines the header value that precedes the audio content (refer to A2DP, section 3.2.1-2) as defined by Bluetooth Assigned Numbers, section 6.3.2.Ignored when SCMS-T Content protection isn't enabled. |
Vendor_Specific_Parameters_Length | 1 octet | Length of Vendor Specific Parameters, in the range from 0 to 128. The value 0 is used when no additional parameters are provided. |
Vendor_Specific_Parameters | 0-128 octets | Vendor Specific Parameters provided by the Bluetooth Audio HAL, CodecParameters.vendorSpecificParameters[] |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
Sub_Opcode | 1 octet | 0x03 - Start A2DP Offload |
Stop A2DP Offload (legacy)
Sub OCF: 0x02
This command is used to stop the A2DP Offload stream.
Command parameter | Boyut | Amaç |
---|---|---|
Yok | Empty command parameter list. |
No parameters are defined for this command.
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 sekizli | Command Complete status |
Sub_Opcode | 1 octet | 0x02 - Stop A2DP Offload |
Stop A2DP Offload
Sub OCF: 0x04
This command is used to stop the A2DP Offload stream.
Command parameter | Boyut | Amaç |
---|---|---|
Connection Handle | 2 octets | Handle of the active HCI connection |
L2CAP_Channel_ID | 2 octets | Identifier of the L2CAP Channel opened for A2DP streaming |
Data_Path_Direction | 1 octet | 0x00 - Output (AVDTP Source/Merge) 0x01 - Input (AVDTP Sink/Split) |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
Sub_Opcode | 1 octet | 0x04 - Stop A2DP Offload |
Bluetooth Quality Report command
The BT Quality Report command feature starts the mechanism in the Bluetooth controller to report Bluetooth Quality events to the host. You can enable four options:
- Quality Monitoring Mode: The controller periodically sends a Link Quality related BQR sub-event to the host.
- Approaching LSTO: If no packets are received from the connected BT device for longer than half of the Link Supervision TimeOut (LSTO) value, the controller reports an Approaching LSTO event to the host.
- A2DP Audio Choppy: When the controller detects factors that cause choppy audio, the controller reports an A2DP Audio Choppy event to the host.
- (e)SCO Voice Choppy: When the controller detects factors that cause choppy voice, the controller reports an (e)SCO Voice Choppy event to the host.
- Root Inflammation: This event is sent by the controller to the stack when the HAL or the controller encounters a fatal error and needs to restart Bluetooth.
- LMP/LL message trace: The controller sends the LMP/LL message handshaking with the remote device to the host.
- Bluetooth Multi-profile/Coex scheduling trace: The controller sends its scheduling information on handling multiple Bluetooth profiles and wireless coexistence in the 2.4 Ghz band to the host.
- Controller Debug Information mechanism: When enabled, the controller can autonomously report debug logging information through the Controller debug info sub-event to the host.
OCF: 0x15E
Command parameter | Boyut | Amaç |
---|---|---|
BQR_Report_Action | 1 octet | Action to add / delete reporting of quality event(s) set in BQR_Quality_Event_Mask parameter, or clear all. 0x00 - Add Delete will clear specific quality event(s) reporting. |
BQR_Quality_Event_Mask | 4 sekizli | Bit masks for the selected quality event reporting. Bit 0: Set to enable quality monitoring mode. |
BQR_Minimum_Report_Interval | 2 octets | Define the minimum time interval of quality event reporting for the selected quality event(s). The controller Firmware should not report the next event within the defined time interval. The interval setting shall be respective and dedicated for the quality event(s) which are being added. Unit: ms |
BQR_Vendor_Specific_Quality_Event_Mask | 4 sekizli | Bit masks for the selected vendor-specific quality event reporting. This parameter is valid only when bit 15 of BQR_Quality_Event_Mask is set.Bit 0 ~ 31: Reserved. |
BQR_Vendor_Specific_Trace_Mask | 4 sekizli | Bit masks for the selected vendor-specific trace reporting. This parameter is valid only when bit 31 of BQR_Quality_Event_Mask is set.Bit 0 ~ 31: Reserved. |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
Current_Quality_Event_Mask | 4 sekizli | Indicates current bit mask setting. Bit 0: Quality monitoring mode is enabled. Bit 1: Approaching LSTO event reporting is enabled. Bit 2: A2DP Audio Choppy event reporting is enabled. Bit 3: (e)SCO Voice Choppy event reporting is enabled. Bit 4: Root inflammation event reporting is enabled. Bit 5: Energy monitoring mode is enabled. Bit 6: LE audio choppy event reporting is enabled. Bit 7: Connect fail event. Bit 8 ~ 14: Reserved. Bit 15: Vendor-specific quality event reporting is enabled. Bit 16: LMP/LL message trace is enabled. Bit 17: Bluetooth Multi-link/Coex scheduling trace is enabled. Bit 18: Controller Debug Information mechanism is enabled. Bit 19 ~ 30: Reserved. Bit 31: Vendor-specific trace is enabled. |
Current_Vendor_Specific_Quality_Event_Mask | 4 sekizli | Indicates current bit mask setting. |
Current_Vendor_Specific_Trace_Mask | 4 sekizli | Indicates current bit mask setting. |
Dynamic Audio Buffer command
The Dynamic Audio Buffer reduces audio glitching by changing the audio buffer size in the Bluetooth controller based on various scenarios.
OCF: 0x15F
Get audio buffer time capability
Sub OCF: 0x01
Use this command to get the audio buffer time capability from the Bluetooth controller.
Command parameter | Boyut | Amaç |
---|---|---|
Yok | Empty Command parameter list |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
Dynamic_Audio_Buffer_opcode | 1 octet | 0x01 - Get audio buffer time |
Audio_Codec_Type_Supported | 4 sekizli | Bit masks for the supported codec types Bit 0 - SBC Bit 1 - AAC Bit 2 - APTX Bit 3 - APTX HD Bit 4 - LDAC Bit 5-31 are reserved |
Audio_Codec_Buffer_Default_Time_For_Bit_0 | 2 octets | Default buffer time of the Bit 0 codec type specified in Audio_Codec_Type_Supported. This value shall be 0 if the Bit 0 codec type is not supported. Unit: ms |
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 | 2 octets | Maximum buffer time of the Bit 0 codec type specified in Audio_Codec_Type_Supported. This value shall be 0 if the Bit 0 codec type is not supported. Unit: ms |
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 | 2 octets | Minimum buffer time of the Bit 0 codec type specified in Audio_Codec_Type_Supported. This value shall be 0 if the Bit 0 codec type is not supported. Unit: ms |
Audio_Codec_Buffer_Default_Time_For_Bit_1 | 2 octets | Default buffer time of the Bit 1 codec type specified in Audio_Codec_Type_Supported. This value shall be 0 if the Bit 1 codec type is not supported. Unit: ms |
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 | 2 octets | Maximum buffer time of the Bit 1 codec type specified in Audio_Codec_Type_Supported. This value shall be 0 if the Bit 1 codec type is not supported. Unit: ms |
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 | 2 octets | Minimum buffer time of the Bit 1 codec type specified in Audio_Codec_Type_Supported. This value shall be 0 if the Bit 1 codec type is not supported. Unit: ms |
...... | ...... | ...... |
Audio_Codec_Buffer_Default_Time_For_Bit_31 | 2 octets | Default buffer time of the Bit 31 codec type specified in Audio_Codec_Type_Supported. This value shall be 0 if the Bit 31 codec type is not supported. Unit: ms |
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 | 2 octets | Maximum buffer time of the Bit 31 codec type specified in Audio_Codec_Type_Supported. This value shall be 0 if the Bit 31 codec type is not supported. Unit: ms |
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 | 2 octets | Minimum buffer time of the Bit 31 codec type specified in Audio_Codec_Type_Supported. This value shall be 0 if the Bit 31 codec type is not supported. Unit: ms |
Set audio buffer time
Sub OCF: 0x02
Use this command to set the audio buffer time to the Bluetooth controller.
Command parameter | Boyut | Amaç |
---|---|---|
Audio_Codec_Buffer_Time | 2 octets | Requested audio buffer time for the current used codec. Unit: ms |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
Dynamic_Audio_Buffer_opcode | 1 octet | 0x02 - Set audio buffer time |
Audio_Codec_Buffer_Time | 2 octets | Current audio buffer time in the Bluetooth controller. Unit: ms |
HCI event (vendor-specific)
Vendor-specific HCI events are required in some cases. Refer to Figure 5.4 on page 1897 of the BT Core 5.2 Specification. Event parameter 0 will always contain the first sub-event code, based on which the rest of the HCI event is decoded.
Event Parameter | Boyut | Amaç |
---|---|---|
HCI_vendor_specific_event_code | 1 octet | 0xFF |
sub_event_code | 1 sekizli | A sub-event code will be 1 octet in size, the byte immediately following Parameter Length in the HCI event packet. |
Storage threshold breach sub-event
This event indicates that the storage threshold has been breached.
Sub-event code = 0x54
Sub-event Parameter | Boyut | Amaç |
---|---|---|
Hiçbiri |
LE multi-advertising state change sub-event
This event indicates that an advertising instance has changed its state. At this time, this event is only used to indicate which advertising instance was stopped as a result of a connection.
Sub-event code = 0x55
Sub-event parameter | Boyut | Amaç |
---|---|---|
Advertising_instance | 1 octet | Identifies the specific advertising instance Valid values are 0 through max_advt_instances -1 |
State_Change_Reason | 1 octet | 0x00: Connection received |
Connection_handle | 2 octets | Identifies the connection that caused the advt instance to be disabled (0xFFFF if invalid) |
LE advertisement tracking sub-event
This event indicates when an advertiser is found or lost.
Sub event code = 0x56
Sub-event Parameter | Boyut | Amaç |
---|---|---|
APCF_Filter_Index | 1 octet | Filter Index (0, max_filter -1) |
Advertiser_State | 1 octet | 0x00: Advertiser found 0x01: Advertiser lost |
Advt_Info_Present | 1 octet | 0x00: Advertiser information ( Advt_Info ) present0x01: Advertiser information ( Advt_Info ) not present |
Advertiser_Address | 6 octets | Public or random address |
Advertiser_Address_Type | 1 octet | 0x00: Public address 0x01: Random address |
Advt_Info | Tx_Pwr[0] : 1 octetRSSI[0] : 1 octetTimestamp[0] : 2 octetsAdv packet_len[0] : 1 octetAdv_packet[0] : Adv_packet_len octetsScan_data_resp_len[0] : 1 octetScan_data_resp[0] : Scan_data_resp octets |
Controller debug info sub-event
This event is used by a Controller to provide binary debug information to a host.
Sub-event code = 0x57
Sub-event Parameter | Boyut | Amaç |
---|---|---|
debug_block_byte_offset_start | 2 octets | Debug block byte offset from the start |
last_block | 1 octet | 0x00: More debug data present 0x01: Last binary block; no more debug data |
cur_pay_load_sz | 2 octets | Binary block size in a current event |
Debug_Data | Değişken | Debug data of cur_payload_sz |
Bluetooth Quality Report sub-event
This event indicates one of the following: a Bluetooth quality event occurred, the controller uploaded the LMP/LL message trace and Bluetooth Multi-link/Coex scheduling trace, or the controller dumped debug information data.
Sub-event code = 0x58 [Quality_Report_Id = 0x01 ~ 0x04, Link Quality related event]
Sub-event Parameter | Boyut | Amaç |
---|---|---|
Quality_Report_Id | 1 octet | 0x01: Quality reporting on the monitoring mode. 0x02: Approaching LSTO. 0x03: A2DP Audio Choppy. 0x04: (e)SCO Voice Choppy. 0x05 ~ 0x06: Reserved. 0x07: LE audio choppy. 0x08: Connect fail. 0x09 ~ 0xFF: Reserved. |
Packet_Types | 1 octet | 0x01: ID 0x02: NULL 0x03: POLL 0x04: FHS 0x05: HV1 0x06: HV2 0x07: HV3 0x08: DV 0x09: EV3 0x0A: EV4 0x0B: EV5 0x0C: 2-EV3 0x0D: 2-EV5 0x0E: 3-EV3 0x0F: 3-EV5 0x11: DH1 0x12: DM3 0x13: DH3 0x14: DM5 0x15: DH5 0x16: AUX1 0x17: 2-DH1 0x18: 2-DH3 0x19: 2-DH5 0x1A: 3-DH1 0x1B: 3-DH3 0x1C: 3-DH5 0x1D ~ 0x50: Reserved 0x51: ISO packet 0x52 ~ 0xFF: Reserved |
Connection_Handle | 2 octets | ACL/(e)SCO/ISO connection handle. |
Connection_Role | 1 octet | Performing Role for the connection. 0x00: Central 0x01: Peripheral 0x02 ~ 0xFF: Reserved. |
TX_Power_Level | 1 octet | Current transmit power level for the specified Connection_Handle. This value shall be the same as the controller's responding to the HCI_Read_Transmit_Power_Level HCI command. |
RSSI | 1 sekizli | [in dBm] Received Signal Strength Indication (RSSI) value for the specified Connection_Handle. |
SNR | 1 octet | [in dB] Signal-to-Noise Ratio (SNR) value for the specified Connection_Handle. |
Unused_AFH_Channel_Count | 1 octet | Indicates the number of unused channels in AFH_channel_map. 0x4F ~ 0xFF: Reserved. |
AFH_Select_Unideal_Channel_Count | 1 octet | Indicates the number of the channels which are interfered and have bad quality, but they are still selected for AFH. The minimum number of channels allowed by the Bluetooth specification is 20, so even if all 79 channels are interfered and have bad quality, the controller still needs to choose at least 20 channels for AFH. |
LSTO | 2 octets | Current Link Supervision Timeout Setting. Time = N * 0.625 ms Time Range: 0.625 ms to 40.9 s |
Connection_Piconet_Clock | 4 sekizli | Piconet Clock for the specified Connection_Handle. This value shall be the same as the controller's responding to HCI_Read_Clock HCI command with parameter "Which_Clock" of 0x01 (Piconet Clock). Unit: N * 0.3125 ms (1 Bluetooth Clock) |
Retransmission_Count | 4 sekizli | The number of retransmissions since the last event. This count shall be reset after reporting to the host. |
No_RX_Count | 4 sekizli | No RX count since the last event. The count increases when no packet is received at the scheduled time slot or the received packet is corrupted. This count shall be reset after reporting to the host. |
NAK_Count | 4 sekizli | NAK (Negative Acknowledge) count since the last event. This count shall be reset after reporting to the host. |
Last_TX_ACK_Timestamp | 4 sekizli | Timestamp of last TX ACK. It is based on the Bluetooth Clock of the piconet central (CLK). Unit: N * 0.3125 ms (1 Bluetooth Clock) |
Flow_Off_Count | 4 sekizli | The number of times the controller receives Flow-off (STOP) since the last event. This count shall be reset after reporting to the host. |
Last_Flow_On_Timestamp | 4 sekizli | Timestamp of last Flow-on (GO). It is based on the Bluetooth Clock of the piconet central (CLK). Unit: N * 0.3125 ms (1 Bluetooth Clock) |
Buffer_Overflow_Bytes | 4 sekizli | [in Byte] Buffer overflow count since the last event. |
Buffer_Underflow_Bytes | 4 sekizli | [in Byte] Buffer underflow count since the last event. |
bdaddr | 6 octets | Remote device address |
cal_failed_item_count | 1 octet | The count of calibration failed items |
TX_Total_Packets | 4 sekizli | The number of packets that are sent out. |
TX_UnAcked_Packets | 4 sekizli | The number of packets that don't receive an acknowledgment. This count is reset after reporting to the host. |
TX_Flushed_Packets | 4 sekizli | The number of packets that aren't sent out by its flush point. This count is reset after reporting to the host. |
TX_Last_Subevent_Packets | 4 sekizli | The number of packets that Link Layer transmits a CIS data PDU in the last subevent of a CIS event. This count is reset after reporting to the host. The value is zero if there's no valid value for the link. |
CRC_Error_Packets | 4 sekizli | The number of received packages with CRC error since the last event. This count is reset after reporting to the host. |
RX_Duplicate_Packets | 4 sekizli | The number of duplicate (retransmission) packages received since the last event. This count is reset after reporting to the host. |
Vendor Specific Parameter | (parameter total length - TBD) * octets | For the controller vendor to obtain more vendor specific parameters. |
Sub-event code = 0x58 [Quality_Report_Id = 0x05, Root Inflammation event]
This event indicates that Bluetooth HAL or the controller encountered a fatal error and needs Bluetooth stack to record this situation and restart. The controller must send a Root_Inflammation_Event to Bluetooth stack before sending the first fragment of the debug info events in any case.
The Error_Code parameter contains an error code reported from HAL/Controller, 0 if it is a chipset vendor specific error. The Vendor_Specific_Error_Code contains a chipset vendor specific error code from HAL/Controller. It should set as 0 if the parameter Error_Code is not 0. The parameters Error_Code and Vendor_Specific_Error_Code should not both be 0.
Sub-event Parameter | Boyut | Amaç |
---|---|---|
Quality_Report_Id | 1 octet | 0x00 ~ 0x04: Reserved. 0x05: Root inflammation. 0x06 ~ 0xFF: Reserved. |
Error_Code | 1 octet | 0x00: Chipset vendor specific error code is included. 0x01 ~ 0xFF: Controller failure occurred. See Bluetooth Spec [Vol 2] Part D, Error Codes for a list of error codes and descriptions. |
Vendor_Specific_Error_Code | 1 octet | 0x00: No chipset vendor specific error code is included. 0x01 ~ 0xFF: Chipset vendor specific error code. |
Vendor Specific Parameter | (Parameter Total Length - 4) * octets | For the controller vendor to obtain more vendor specific parameters. |
Sub-event code = 0x58 [Quality_Report_Id = 0x11 ~ 0x13, Log Dump related event]
Sub-event Parameter | Boyut | Amaç |
---|---|---|
Quality_Report_Id | 1 octet | 0x00 ~ 0x10: Reserved. 0x11: LMP/LL message trace. 0x12: Bluetooth Multi-link/Coex scheduling trace. 0x13: Controller Debug Information data dump. 0x14 ~ 0xFF: Reserved. |
Connection_Handle | 2 octets | Connection Handle. |
Vendor Specific Parameter | (Parameter Total Length - 4) * octets | Vendor Specific format of LMP message trace, Bluetooth Multi-link/Coex scheduling trace and Controller Debug Information data dump. |
Multi-advertiser support
The objectives of multi-advertiser support are the following:
- Ability to support multiple advertisements (
max_advt_instances
) - Different transmit powers to allow for a varying range
- Different advertising content
- An individualized response for each advertiser
- Privacy (non-trackable) for each advertiser
- Bağlanabilir
To keep this specification close to existing standards, the following vendor-specific commands are provided. They are derived from the Bluetooth Core 4.1 Specification.
LE_Multi_Advt_Command
OCF: 0x154
Command parameter | Boyut | Amaç |
---|---|---|
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 |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
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
Base reference: Bluetooth Core 4.1 Specification, page 964 (LE Set Advertising Parameter Command)
Sub OCF: 0x01
Sub-command parameter | Boyut | Amaç |
---|---|---|
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 | Specifies the applicability of the above parameters to an instance |
Tx_power | 1 octet | Transmit_Power Unit - in dBm (signed integer) Range (-70 to +20) |
The Own_Address
parameter could be a host-configured address at the time of setting up this multi-advertisement instance. This provides the ability to have a resolvable private address at the time of the transmit of the first beacon. Advertisement on an instance will continue irrespective of the connection. The host BT stack could issue a command to start advertisement on an instance, post connection.
A Command Complete event will be generated for this command as specified in the Bluetooth Core 4.1 Specification, per the above command. The controller will respond with a non-success (invalid parameter) code if the advertising instance or Tx_Power
parameters are invalid.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
Multi_advt_opcode | 1 octet | 0x01 [ Set_Advt_Param_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Advt_Data_Multi_Sub_Cmd
Base reference: Bluetooth Core 4.1 Specification, page 969 (LE Set Advertising Data Command)
Sub OCF: 0x02
Sub-command parameter | Boyut | Amaç |
---|---|---|
Advertising_Data_Length | Per spec | Per spec |
Advertising_Data | Per spec | Per spec |
Advertising_Instance | 1 octet | Specifies the applicability of the above parameters to an instance |
A Command Complete event will be generated for this command as specified in the Bluetooth Core 4.1 Specification, per the above command. The controller will respond with a non-success code if the advertising instance or Tx_Power
parameters are invalid.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
Multi_advt_opcode | 1 octet | 0x02 [ Set_Advt_Data_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Scan_Resp_Data_Multi_Sub_Cmd
Base reference: Bluetooth Core 4.1 Specification, page 970 (LE Set Scan Response Data Command)
Sub OCF: 0x03
Sub-command parameter | Boyut | Amaç |
---|---|---|
Scan_Response_Data_Length | Per spec | Per spec |
Scan_Response_Data | Per spec | Per spec |
Advertising_Instance | 1 sekizli | Specifies the applicability of the above parameters to an instance |
A Command Complete event will be generated for this command as specified in the Bluetooth Core 4.1 Specification, per the above command. The controller will respond with a non-success code (invalid parameter) if the advertising instance or Tx_Power
parameters are invalid.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
Multi_advt_opcode | 1 octet | 0x03 [ Set_Scan_Resp_Data_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Random_Addr_Multi_Sub_Cmd
Base reference: Bluetooth Core 4.1 Specification, page 963 (LE Set Random Address Command)
Sub OCF: 0x04
Sub-command parameter | Boyut | Amaç |
---|---|---|
Rastgele Adres | Per spec | Per spec |
Advertising_Instance | 1 octet | Specifies the applicability of the above parameters to an instance |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
Multi_advt_opcode | 1 octet | 0x04 [ Set_Random_Addr_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Advt_Enable_Multi_Sub_Cmd
Base reference: Bluetooth Core 4.1 Specification, page 971 (LE Set Advertise Enable Command in that core specification)
OCF: 0x05
Sub-command parameter | Boyut | Amaç |
---|---|---|
Advertising_Enable | 1 octet | A value of 1 means enable. Any other value means disable. |
Advertising_Instance | 1 octet | Specifies the applicability of the above parameters to an instance. Instance 0 means a standard HCI instance. |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
Multi_advt_opcode | 1 octet | 0x05 [ Set_Advt_Enable_Multi_Sub_Cmd] |
Offloaded resolution of private address
This feature resolves a private address in the controller firmware or hardware, which provides the following benefits:
- Latency involved with the host in resolving a private address
- Saving power by refraining from waking up the host
LE_Set_RPA_Timeout
OCF: 0x15C
Command parameter | Boyut | Amaç |
---|---|---|
LE_local_IRK | 16 octet | The local device IRK used to generate the random resolvable address(es). |
tRPA_min | 2 octets | The minimum RPA generation timeout in seconds. The controller must generate new resolvable addresses for any advertising/scanning/connection events on or after this timeout. Valid range: 300-1800 |
tRPA_max | 2 octets | The maximum RPA generation timeout in seconds. The controller must generate new resolvable addresses for any advertising/scanning/connection events on or before this timeout. Valid range: tRPA_min -1800 |
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | The status of the command. Suggested HCI status values: 0x00 Success 0x01 Unknown command (if not supported) 0x12 Invalid command parameters (if any parameters are outside the given range) |
LE_RPA_offload_Command
OCF: 0x155
Command parameter | Boyut | Amaç |
---|---|---|
RPA_offload_opcode | 1 octet | 0x1 - Enable customer specific feature 0x2 - Add IRK to the list 0x3 - Remove IRK from the list 0x4 - Clear IRK list 0x5 - Read IRK list entry |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
Event_RPA_offload_opcode | 1 octet | 0x1 - Enable customer specific feature 0x2 - Add IRK to the list 0x3 - Remove IRK from the list 0x4 - Clear IRK list 0x5 - Read IRK list entry |
LE_RPA_offload: Enable_cust_specific_sub_Command
Sub OCF: 0x01
Sub-command parameter | Boyut | Amaç |
---|---|---|
enable_customer_specific_feature_set | 1 octet | 0x01 - Enable offloaded RPA feature 0x00 - Disable offloaded RPA feature |
RPA offload is required to be enabled by the host, based on the chip capability. Refer to the LE_Get_Vendor_Capabilities_Command
. Each chip can have a varying max_irk_list_sz
in the firmware.
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
Event_cust_specific_feature_opcode | 1 octet | 0x01 [Enable customer-specific feature] |
LE_RPA_offload: Add_IRK_to_list_sub_Command
Sub OCF: 0x02
Sub-command parameter | Boyut | Amaç |
---|---|---|
LE_IRK | 16 octets | LE IRK (1st byte LSB) |
Address_Type | 1 octet | 0: Public address 1: Random address |
LE_Device_Address | 6 octets | Public or random address associated to the IRK (1st byte LSB) |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
Event_cust_specific_feature_opcode | 1 octet | 0x02 [Add IRK to the list] |
LE_IrkList_AvailableSpaces | 1 octet | Available IRL list entries after current operation |
LE_RPA_offload: Remove_IRK_to_list_sub_Command
Sub OCF: 0x03
Sub-command parameter | Boyut | Amaç |
---|---|---|
Address_Type | 1 octet | 0: Public address 1: Random address |
LE_Device_Address | 6 octets | Public or random address that associates to the IRK |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
Event_cust_specific_feature_opcode | 1 sekizli | 0x03 [Remove IRK from the list] |
LE_IrkList_AvailableSpaces | 1 octet | Available IRL list entries after current operation |
LE_RPA_offload: Clear_IRK_list_sub_Command
Sub OCF: 0x04
Sub-command parameter | Boyut | Amaç |
---|---|---|
Hiçbiri |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
Event_cust_specific_feature_opcode | 1 octet | 0x04 [Clear IRK List] |
LE_IrkList_AvailableSpaces | 1 octet | Available IRL list entries after current operation [ max_irk_list_sz] |
LE_RPA_offload: Read_IRK_list_sub_Command
Sub OCF: 0x05
Sub-command parameter | Boyut | Amaç |
---|---|---|
LE_read_IRK_list_entry-index | 1 octet | Index of the IRK list [0, max_irk_list_sz-1] |
A Command Complete event will be generated for this command.
Return parameter | Boyut | Amaç |
---|---|---|
Status | 1 octet | Command Complete status |
Event_cust_specific_feature_opcode | 1 octet | 0x05 [Read IRK List Entry] |
LE_Read_IRK_List_entry | 1 octet | Index of the IRK that the host wants to read back (maximum IRK list size is 32) |
LE_IRK | 16 octets | IRK value |
Address_Type | 1 octet | 0: Public address 1: Random address |
LE_Device_Address | 6 octets | Public or random address associated to the IRK |
LE_Resolved_Private_Address | 6 octets | Current resolved resolvable private address of this IRK |