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. Amaç, Host BT yığını satıcılarının ve BT denetleyici satıcılarının aşağıda açıklanan özellik setini kullanabilmeleri için bu platform gereksinimlerine uymalarıdır.
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.
Değişen ortamı yönetmek ve geçişleri yönetmek için, BT denetleyicilerinin yeteneklerini (standart Bluetooth Core 5.2 Spesifikasyonunun ötesinde) ortaya çıkarmasına izin veren bir tasarım felsefesi bu belgede açıklanmaktadır. 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. Aşağıda açıklanan bir özellik, gelecekteki bir Bluetooth spesifikasyonunda standart HCI yöntemlerinde kullanılabilir hale gelirse, bu yaklaşımı varsayılan hale getirmeye yöneleceğiz.
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. Bu parametre, Google özellik spesifikasyonu v0.98 ve üzeri sürümlerde kullanımdan kaldırılmış, bunun yerine BT spesifikasyonu sürüm 5.0 ve üzeri sürümlerde bulunan LE Genişletilmiş Reklamcılık tercih edilmiştir. |
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. 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. |
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.04 bayt[0] = 0x01 bayt[1] = 0x04 |
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 |
a2dp_offload_v2_support | 1 sekizli | Bluetooth denetleyicisindeki A2dp Boşaltma v2 komutlarını destekler (bkz. A2DP Boşaltma Başlat , A2DP Boşaltma Durdurma ) 0 = Desteklenmiyor 1 = Destekleniyor |
Tarama sonuçlarının gruplandırılması
Tasarım 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
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. Ana bilgisayar, Komut Tamamlama olayındaki karşılık gelen sonuçlar kayıt sayısında 0'ı gösterene kadar bu komutu vermeyi yineleyecektir; bu, denetleyicinin ana bilgisayarla iletişim kuracak başka kaydı olmadığını gösterir. 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 öğesinin 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 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 | Filtre dizini (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). 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 komutunun APCF_Action |
APCF_AvailableSpaces | 1 sekizli | Hizmet UUID tablosunda hâlâ mevcut olan ücretsiz girişlerin sayısı |
LE_APCF_Komut: talep_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 | Filtre dizini (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 Talep UUID'si |
APCF_Action | 1 sekizli | Echo back komutunun APCF_Action |
APCF_AvailableSpaces | 1 sekizli | Talep UUID tablosunda hâlâ mevcut olan ücretsiz girişlerin sayısı |
LE_APCF_Komut: yerel_adı_alt_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 - 48000 Hz 0x04 - 88200Hz 0x08 - 96000 Hz |
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'e Özel Bilgiler. 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: Sekizli 7: LDAC Kanal Modu 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 - A2DP Aktarımını Başlat |
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 | A2DP akışı için açılan L2CAP Kanalının tanımlayıcısı |
Data_Path_Direction | 1 sekizli | 0x00 - Çıkış (AVDTP Kaynağı/Birleştirme) 0x01 - Giriş (AVDTP Havuzu/Bölme) |
Peer_MTU | 2 sekizli | Eş ile anlaşılan maksimum L2CAP paketi boyutu. |
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 | SCMS-T İçerik Koruma Başlığı etkinleştirildiğinde ( CP_SCMS_T_Enable 0x01'e ayarlı), Bluetooth Atanmış Numaralar, bölüm 6.3.2 tarafından tanımlandığı gibi ses içeriğinden önce gelen başlık değerini tanımlar (bkz. A2DP, bölüm 3.2.1-2).SCMS-T İçerik koruması etkinleştirilmediğinde yoksayılır. |
Vendor_Specific_Parameters_Length | 1 sekizli | Satıcıya Özel Parametrelerin Uzunluğu, 0 ila 128 aralığında. Hiçbir ek parametre sağlanmadığında 0 değeri kullanılır. |
Vendor_Specific_Parameters | 0-128 sekizli | Bluetooth Audio HAL, CodecParameters.vendorSpecificParameters[] tarafından sağlanan Satıcıya Özel Parametreler. |
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 | 0x03 - A2DP Aktarımını Başlat |
A2DP Aktarımını Durdur (eski)
Alt OCF: 0x02
Bu komut A2DP Aktarımı akışını durdurmak için kullanılır.
Komut parametresi | Boyut | Amaç |
---|---|---|
Yok | Komut parametre listesini boşaltın. |
Bu komut için herhangi bir parametre tanımlanmamıştır.
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 | 0x02 - A2DP Aktarımını Durdur |
A2DP Aktarımını Durdurun
Alt OCF: 0x04
Bu komut A2DP Aktarımı akışını durdurmak için kullanılır.
Komut parametresi | Boyut | Amaç |
---|---|---|
Connection Handle | 2 sekizli | Aktif HCI bağlantısının kolu |
L2CAP_Channel_ID | 2 sekizli | A2DP akışı için açılan L2CAP Kanalının tanımlayıcısı |
Data_Path_Direction | 1 sekizli | 0x00 - Çıkış (AVDTP Kaynağı/Birleştirme) 0x01 - Giriş (AVDTP Havuzu/Bölme) |
Bu komut için bir komut tam olay oluşturulacaktır.
Dönüş parametresi | Boyut | Amaç |
---|---|---|
Status | 1 Octet | Komut Komple Durumu |
Sub_Opcode | 1 Octet | 0x04 - A2DP boşaltma |
Bluetooth Kalite Rapor Komutu
BT kalite raporu komut özelliği, Bluetooth kalite olaylarını ana bilgisayara bildirmek için Bluetooth denetleyicisindeki mekanizmayı başlatır. Dört seçeneği etkinleştirebilirsiniz:
- Kalite İzleme Modu: Denetleyici periyodik olarak ana bilgisayara bağlantı kalitesi ile ilgili bir BQR alt etkinliği gönderir.
- Yaklaşan LSTO: Bağlantılı BT cihazından bağlantı denetimi zaman aşımının (LSTO) değerinin yarısından daha uzun bir paket alınmazsa, denetleyici yaklaşan bir LSTO olayını ana bilgisayara bildirir.
- A2DP Audio Dalgası: Denetleyici dalgalı sese neden olan faktörleri algıladığında, kontrolör ana bilgisayara bir A2DP ses dalgalı olay bildirir.
- (E) SCO Voice Dalgası: Denetleyici dalgalı sese neden olan faktörleri algıladığında, denetleyici (e) SCO ses dalgalı olayını ana bilgisayara bildirir.
- Kök iltihabı: Bu olay, HAL veya kontrolör ölümcül bir hatayla karşılaştığında ve Bluetooth'u yeniden başlatması gerektiğinde kontrolör tarafından yığın olarak 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 Octet | 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 Octet | 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 Octet | Komut Komple Durumu |
Dynamic_Audio_Buffer_opcode | 1 Octet | 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 Octet | Komut Komple Durumu |
Dynamic_Audio_Buffer_opcode | 1 Octet | 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 Octet | 0xff |
sub_event_code | 1 Octet | 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 Octet | Belirli reklam örneğini tanımlar Geçerli değerler 0 max_advt_instances -1 |
State_Change_Reason | 1 Octet | 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 Octet | Filtre Dizin (0, max_filter -1) |
Advertiser_State | 1 Octet | 0x00: Reklamveren bulundu 0x01: Reklamveren Kayıp |
Advt_Info_Present | 1 Octet | 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 Octet | 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 Octet | 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 Octet | 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 Octet | 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 Octet | Bağlantı için rol oynama. 0x00: Merkez 0x01: Çevresel 0x02 ~ 0xff: Ayrılmış. |
TX_Power_Level | 1 Octet | 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 Octet | [DBM'de] Belirtilen Connection_handle için alınan sinyal mukavemeti göstergesi (RSSI) değeri. |
SNR | 1 Octet | [DB'de] Belirtilen Connection_handle için sinyal / gürültü oranı (SNR) değeri. |
Unused_AFH_Channel_Count | 1 Octet | AFH_CHANNEL_MAP'taki kullanılmayan kanalların sayısını gösterir. 0x4f ~ 0xff: Ayrılmış. |
AFH_Select_Unideal_Channel_Count | 1 Octet | Müdahale edilen ve kaliteli olan kanalların sayısını gösterir, ancak yine de AFH için seçilmiştir. Bluetooth spesifikasyonu tarafından izin verilen 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 Octet | 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 kontrolörün ö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 Octet | 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 Octet | 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 Octet | 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 |