Bluetooth kumandayla etkileşim kurmak için Host Controller Interface (HCI) kullanılır.
Bu belgede, Bluetooth (BT) ve Bluetooth Düşük Enerji (BLE) HCI koşullarının listesi verilmektedir. Amaç, aşağıdaki özellik setini kullanmak için Host BT yığını tedarikçilerinin ve BT denetleyici tedarikçilerinin bu platform koşullarına uymasını sağlamaktır.
Bu belgede, Bluetooth Core 5.2 Spesifikasyonu "spec" olarak adlandırılır. Bluetooth Core 5.2 Spesifikasyonu ve diğer kabul edilen belgeler Bluetooth SIG web sitesinde bulunabilir.
Genel tasarımına genel bakış
Çip özellikleri ve yapılandırması
Açık bir platform olan Android; yazılım sürümleri, OEM'ler, satıcılar, platform ve çip özelliklerinden oluşan bir matrise sahiptir.
Değişen ortamı ve geçişleri yönetmek için bu belgede, BT denetleyicilerinin özelliklerini (standart Bluetooth Core 5.2 Spesifikasyonu'nun ötesinde) kullanıma sunmasına izin veren bir tasarım felsefesi açıklanmaktadır. Ana makine BT yığını daha sonra hangi özelliklerin etkinleştirileceğini belirlemek için bu özellikleri kullanabilir.
Açık standartları destekleme
Android'in hedeflerinden biri, 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ıma sunulursa bu yaklaşımı varsayılan hale getirmeyi tercih ederiz.
Tedarikçiye özgü özellikler
Tedarikçiye özel komut: LE_Get_Vendor_Capabilities_Command
OpCode Command Field (OCF): 0x153
| Komut parametresi | Boyut | Amaç |
|---|---|---|
| NA | Boş komut parametresi listesi |
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
max_advt_instances(Kullanımdan kaldırıldı) |
1 sekizlik |
Desteklenen reklam örneği sayısı. v0.98'den sonra ayrılmıştır. Bu parametre, BT spesifikasyonunun 5.0 ve sonraki sürümlerinde kullanılabilen LE Extended Advertising lehine Google özellik spesifikasyonunun v0.98 ve sonraki sürümlerinde kullanımdan kaldırılmıştır. |
offloaded_resolution_of_private-address(Kullanımdan kaldırıldı) |
1 sekizlik |
RPA'nın BT çip özelliği. Çip tarafından destekleniyorsa barındırıcı tarafından etkinleştirilmesi gerekir. 0 = Yetenekli değil 1 = Yetenekli v0.98'den sonra ayrılmıştır. Bu parametre, BT spesifikasyonunun 4.2 ve sonraki sürümlerinde kullanılabilen Gizlilik özelliği lehine Google özelliği spesifikasyonunun 0.98 ve sonraki sürümlerinde kullanımdan kaldırılmıştır. |
total_scan_results_storage |
2 sekizlik | Tarama sonuçları için depolama alanı (bayt) |
max_irk_list_sz |
1 sekizlik | Donanım yazılımında desteklenen IRK girişlerinin sayısı |
filtering_support |
1 sekizlik |
Denetleyicide filtreleme desteği 0 = Desteklenmiyor 1 = Destekleniyor |
max_filter |
1 sekizlik | Desteklenen filtre sayısı |
activity_energy_info_support |
1 sekizlik |
Etkinlik ve enerji bilgilerinin raporlanmasını destekler 0 = Desteklemiyor 1 = Destekliyor |
version_supported |
2 sekizlik |
Desteklenen Google özelliği spesifikasyonunun sürümünü belirtir byte[0] = Ana numara byte[1] = Alt numara v1.05 byte[0] = 0x01 byte[1] = 0x05 Aşağıdaki sürümlerde eklenen özellikler: v1.05:
|
total_num_of_advt_tracked |
2 sekizlik |
OnLost/OnFound amaçları için izlenen toplam reklamveren sayısı
|
extended_scan_support |
1 sekizlik | Genişletilmiş tarama penceresini ve aralığını destekler |
debug_logging_supported |
1 sekizlik | Denetleyiciden ikili hata ayıklama bilgilerinin günlüğe kaydedilmesini destekler. |
LE_address_generation_offloading_support(Kullanımdan kaldırıldı) |
1 sekizlik |
0 = Desteklenmiyor 1 = Destekleniyor v0.98'den sonra ayrılmıştır. Bu parametre, BT spesifikasyonunun 4.2 ve sonraki sürümlerinde kullanılabilen Gizlilik özelliği lehine Google özelliği spesifikasyonunun 0.98 ve sonraki sürümlerinde kullanımdan kaldırılmıştı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 sekizlik |
Bluetooth kalitesi etkinliklerinin raporlanmasını destekler 0 = Desteklemiyor 1 = Destekliyor |
dynamic_audio_buffer_support |
4 sekizlik |
Bluetooth denetleyicisinde 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 sekizlik |
Bluetooth denetleyicisinde A2DP yükü v2 komutlarını destekler (bkz.
A2DP yükünü başlatma,
A2DP yükünü durdurma) 0 = Desteklenmiyor 1 = Destekleniyor |
iso_link_feedback_support |
1 sekizlik |
ISO Link Feedback etkinliğini destekler 0 = Desteklenmiyor 1 = Destekleniyor |
sniff_offload_support |
1 sekizlik |
Bluetooth kumandada Sniff Offload komutlarını destekler 0 = Desteklenmiyor 1 = Destekleniyor |
Toplu tarama sonuçları
Bluetooth LE Scan Response etkinlik bildirimlerinin ana makineye iletilme şeklini iyileştirmek, ana makinede güç tasarrufu sağlamak için bir tasarım hedefidir.
Denetleyicinin ana makine uygulaması işlemcisine tarama sonuçlarını bildirme sıklığını azaltarak ana makine uygulaması işlemcisinin daha uzun süre boşta/uykuda kalmasını sağlayabilirsiniz. Bu, ana makinedeki güç tüketimini azaltır. total_scan_results_storage dönüş parametresi LE_Get_Vendor_Capabilities_Command, tarama sonuçlarının depolanması için çip özelliğini gösterir.
Bu özellik, Bluetooth denetleyicisindeki LE tarama sonuçları depolama tesisinin yönetimine ve yapılandırmasına odaklanır. Depolama alanı, reklam verilerini ve denetleyici tarafından alınan tarama verileri ile meta verileri geçici olarak gruplandırmak ve daha sonra barındırıcıya teslim etmek için kullanılır.
Donanım yazılımı, aynı anda etkinleştirilebilen iki tür toplu işleme özelliğini desteklemelidir:
- Kısaltılmış. Aşağıdaki bilgi öğelerini içerir: {MAC, TX Power, RSSI, Timestamp}
- Tam. Aşağıdaki bilgi öğelerini içerir: {MAC, TX Power, RSSI, Timestamp, Adv Data, Scan Response}
LE_Batch_Scan_Command
OCF: 0x156
| Komut parametresi | Boyut | Amaç |
|---|---|---|
Batch_Scan_opcode |
1 sekizlik |
0x1 - Müşteriye özel özelliği etkinleştirme 0x2 - Toplu tarama depolama parametrelerini ayarlama 0x3 - Toplu tarama parametrelerini ayarlama 0x4 - Toplu tarama sonucu parametrelerini okuma |
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur. Müşteriye özel özelliği etkinleştirmek taramayı başlatmaz.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Batch_Scan_opcode |
1 sekizlik |
0x1 - Müşteriye özel özelliği etkinleştirme 0x2 - Toplu tarama depolama parametrelerini ayarlama 0x3 - Toplu tarama parametrelerini ayarlama 0x4 - Toplu tarama sonucu parametrelerini okuma |
LE_Batch_Scan_Command: Müşteriye özel özelliği etkinleştirme
Alt OCF: 0x01
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
enable_customer_specific_feature_set |
1 sekizlik |
0x01 - Toplu Tarama özelliğini etkinleştirme 0x00 - Toplu Tarama özelliğini devre dışı bırakma |
Bu komut için bir Command Complete etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Batch_Scan_opcode |
1 sekizlik |
0x1 - Müşteriye özel özelliği etkinleştirme 0x2 - Toplu tarama depolama parametrelerini ayarlama 0x3 - Toplu tarama parametrelerini ayarlama 0x4 - Toplu tarama sonucu parametrelerini okuma |
LE_Batch_Scan_Command: Toplu tarama depolama parametresi alt komutunu ayarlama
Alt OCF: 0x02
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
Batch_Scan_Full_Max |
1 sekizlik |
Tam stile ayrılan maksimum depolama alanı (yüzde olarak) [Aralık: 0-100] |
Batch_Scan_Truncated_Max |
1 sekizlik |
Kısaltılmış stile ayrılan maksimum depolama alanı (yüzde olarak) [Aralık: 0-100] |
Batch_Scan_Notify_Threshold |
1 sekizlik |
Her depolama havuzu için bildirim düzeyini (%) ayarlayın.
[Aralık: 0-100] 0 olarak ayarlarsanız bildirim devre dışı bırakılır. Tedarikçiye özel HCI etkinliği oluşturulur (Depolama eşiği ihlali alt etkinliği) |
Bu komut için bir Command Complete etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Batch_scan_opcode |
1 sekizlik | 0x02 [Toplu tarama parametrelerini ayarlama] |
LE_Batch_Scan_Command: Toplu tarama parametresi alt komutunu ayarlayın
Sub OCF: 0x03
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
Batch_Scan_Mode |
1 sekizlik |
0x00 – Toplu tarama devre dışı 0x01 – Kısaltılmış mod etkin 0x02 – Tam mod etkin 0x03 – Kısaltılmış ve tam mod etkin |
Duty_cycle_scan_window |
4 sekizlik | Toplu Tarama tarama süresi (yuva sayısı) |
Duty_cyle_scan_interval |
4 sekizlik | Toplu tarama aralığı dönemi (yuva sayısı) |
own_address_type |
1 sekizlik |
0x00 - Genel cihaz adresi 0x01 - Rastgele cihaz adresi |
Batch_scan_Discard_Rule |
1 sekizlik |
0: En eski reklamı silin 1: En zayıf RSSI'ye sahip reklamı silin |
Bu alt komut, etkinleştirilmişse toplu taramayı başlatır. Kısaltılmış taramada sonuçlar, Kısaltılmış stil için benzersiz anahtarın = {BD_ADDR, scan_interval} olduğu kısaltılmış biçimde depolanır. Bu nedenle, her tarama aralığı için yalnızca bir BD_ADDR will kaydedilir. Kısaltılmış modda tutulacak kayıt şudur: {BD_ADDR,
Tx Power, RSSI, Timestamp}
Tam mod etkinleştirildiğinde aktif tarama kullanılır ve tarama yanıtları kaydedilir. Tarama aralığından bağımsız olarak tam stil benzersiz anahtarı = {MAC, reklam paketi}. Tam mod için tutulacak kayıt şudur:
{BD_ADDR, Tx Power, RSSI, Timestamp, Ad packet, Scan
Response}. Tam stilinde, farklı tarama aralıklarında birden çok kez görülen aynı AD paketi yalnızca bir kez kaydedilir. Ancak, Kısaltılmış modda, farklı tarama aralıklarındaki BA_ADDR görünürlüğü önemlidir (tarama aralığı başına bir kez). RSSI, tarama aralığı içindeki benzersiz bir reklamın tüm kopyalarının ortalama değeridir.
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Batch_scan_opcode |
1 sekizlik | 0x03 [Set Batch Scan Parameters] (Toplu Tarama Parametrelerini Ayarla) |
LE_Batch_Scan_Command: Toplu tarama sonuçlarını okuma alt komutu
Alt OCF: 0x04
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
Batch_Scan_Data_read |
1 sekizlik |
0x01 - Kısaltılmış mod verileri 0x02 - Tam mod verileri |
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur. Düzenleyen bu komutu verdiğinde, denetleyicideki tüm sonuçlar tek bir Command Complete (Komut Tamamlandı) etkinliğine sığmayabilir. Ana makine, bu komutu, Komut Tamamlandı etkinliğindeki ilgili sonuçlar kayıt sayısında 0'ı gösterene kadar tekrar tekrar yayınlar. Bu, denetleyicinin ana makineye iletecek başka kaydı olmadığını gösterir. Her Command Complete etkinliği, yalnızca bir tür verinin (Tam veya Kısaltılmış) birden fazla kaydını içerebilir.
Denetleyici ve ana makine zaman referansları senkronize edilmez. Zaman damgasının birimi 50 ms'dir. Zaman damgasının değeri, Read_Batch_Scan_Results_Sub_cmd
değerinin ana makine tarafından verildiği zamana göre belirlenir. Bir komutun varış zamanı donanım yazılımında T_c ise zaman damgasının donanım yazılımında alındığı gerçek zaman T_fw olur. Raporlama süresi:
(T_c - T_fw). T_c ve
T_fw , donanım yazılımı zaman alanındadır. Bu sayede düzenleyen, etkinliğin ne kadar zaman önce gerçekleştiğini hesaplayabilir.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Batch_scan_opcode |
1 sekizlik | 0x03 [Toplu tarama parametrelerini ayarlama] |
Batch_Scan_data_read |
1 sekizlik | Biçimi (Kısaltılmış veya Tam) tanımlar. |
num_of_records |
1 sekizlik | Batch_Scan_data_read kayıt sayısı |
format_of_data |
Değişken |
Kısaltılmış Mod: Address[0]: 6 octets Address_Type[0]: 1 octet Tx_Pwr[0]: 1 octet RSSI[0] : 1 octet Timestamp[0]: 2 octets [multiple records ( num_of_records) with above format]Tam Mod: 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)]
|
Reklam Paketi İçerik Filtresi
Denetleyicide Reklam Paketi İçerik Filtresi'ni (APCF) etkinleştirmek/devre dışı bırakmak/kurmak için kullanılır. APCF, reklamcılık raporlarını denetleyicide filtreler ancak düzenli reklamcılığı filtrelemez.
LE_APCF_Command
OCF: 0x157
| Komut parametresi | Boyut | Amaç |
|---|---|---|
APCF_opcode |
1 sekizlik |
0x00 - APCF Etkinleştirme 0x01 - APCF Filtreleme parametrelerini ayarlama 0x02 - APCF Yayıncı Adresi 0x03 - APCF Hizmet UUID'si 0x04 - APCF Hizmet İsteği UUID'si 0x05 - APCF Yerel Adı 0x06 - APCF Üretici Verileri 0x07 - APCF Hizmet Verileri 0x08 - APCF Aktarım Keşif Hizmeti 0x09 - APCF AD Türü Filtresi 0x10 ~ 0xAF - Gelecekteki kullanım için ayrılmıştır 0xB0 ~ 0xDF - Satıcı için ayrılmıştır 0xE0 ~ 0xFE - Gelecekteki kullanım için ayrılmıştır 0xFF - APCF Genişletilmiş Özellikleri Okuma |
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | İade durumu |
APCF_opcode |
1 sekizlik |
0x00 - APCF Etkinleştirme 0x01 - APCF Filtreleme parametrelerini ayarlama 0x02 - APCF Yayıncı Adresi 0x03 - APCF Hizmet UUID'si 0x04 - APCF Hizmet İsteği UUID'si 0x05 - APCF Yerel Adı 0x06 - APCF Üretici Verileri 0x07 - APCF Hizmet Verileri 0x08 - APCF Aktarım Keşif Hizmeti 0x09 - APCF AD Türü Filtresi 0x10 ~ 0xAF - Gelecekteki kullanım için ayrılmıştır 0xB0 ~ 0xDF - Satıcı için ayrılmıştır 0xE0 ~ 0xFE - Gelecekteki kullanım için ayrılmıştır 0xFF - APCF Genişletilmiş Özellikleri Okuma |
LE_APCF_Command: Enable_sub_cmd
Alt OCF: 0x00
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
APCF_enable |
1 sekizlik |
0x01 - APCF özelliğini etkinleştirme 0x00 - APCF özelliğini devre dışı bırakma |
Bu komut için bir Command Complete etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
APCF_opcode |
1 sekizlik | 0x0 - APCF'yi Etkinleştirme |
APCF_Enable |
1 sekizlik | Etkinleştirme/devre dışı bırakma işlemi APCF_enable üzerinden ayarlanır. |
LE_APCF_Command: set_filtering_parameters_sub_cmd
Bu alt komut, bir filtre belirtimi eklemek veya silmek ya da çip üzerinde filtreleme için bir filtre listesini temizlemek amacıyla kullanılır.
Alt OCF: 0x01
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
APCF_Action |
1 sekizlik |
0x00 - Ekle 0x01 - Sil 0x02 - Temizle Silme işlemi, diğer tablolardaki ilişkili özellik girişleriyle birlikte belirli filtreyi temizler. Temizle, tüm filtreleri ve diğer tablolardaki ilişkili girişleri temizler. |
APCF_Filter_Index |
1 sekizlik | Filtre dizini (0, max_filter-1) |
APCF_Feature_Selection |
2 sekizlik |
Seçilen özelliklerin bit maskeleri: Bit 0: Yayın adresi filtresini etkinleştirmek için ayarlanır Bit 1: Hizmet verisi değişikliği filtresini etkinleştirmek için ayarlanır Bit 2: Hizmet UUID kontrolünü etkinleştirmek için ayarlanır Bit 3: Hizmet isteği UUID kontrolünü etkinleştirmek için ayarlanır Bit 4: Yerel ad kontrolünü etkinleştirmek için ayarlanır Bit 5: Üretici verisi kontrolünü etkinleştirmek için ayarlanır Bit 6: Hizmet verisi kontrolünü etkinleştirmek için ayarlanır Bit 7: Aktarım keşif hizmeti kontrolünü etkinleştirmek için ayarlanır Bit 8: AD türü kontrolünü etkinleştirmek için ayarlanır |
APCF_List_Logic_Type |
2 sekizlik |
Her özellik seçimi için mantıksal işlem (bit konumuna göre)
APCF_Feature_Selection içinde belirtilir.
Yalnızca bir özellik etkinleştirildiğinde geçerlidir. Bit konumu değeri: 0: VEYA 1: VE "VE" mantığı seçilirse bir ADV paketi yalnızca listedeki TÜM girişleri içeriyorsa filtreden geçer. "VEYA" mantığı seçiliyse bir ADV paketi, listedeki girişlerden herhangi birini içeriyorsa filtreden geçer. |
APCF_Filter_Logic_Type |
1 sekizlik |
0x00: VEYA 0x01: VE Not: Mantık türü, her zaman "VE" mantığı olan APCF_Feature_Selection'nın ilk üç alanı için geçerli değildir. Yalnızca APCF_Feature_Selection'nın (Bit 3 - Bit 6) dört alanı için geçerlidir.
|
rssi_high_thresh |
1 sekizlik |
[dBm cinsinden] Reklamverenin görülmüş sayılması için sinyalin RSSI yüksek eşiğinden yüksek olması gerekir. Aksi takdirde, donanım yazılımı bu sertifikayı hiç görmemiş gibi davranmalıdır. |
delivery_mode |
1 sekizlik |
0x00 - immediate0x01 - on_found0x02 - batched
|
onfound_timeout |
2 sekizlik |
Yalnızca delivery_mode on_found ise geçerlidir.[milisaniye cinsinden] Rapor oluşturulmadan önce donanımın ek reklamları toplamak için bekleme süresi. |
onfound_timeout_cnt |
1 sekizlik |
Yalnızca delivery_mode on_found ise geçerlidir.[count] onFound içinde bir reklam onfound_timeout süresi boyunca
cihaz yazılımında kalırsa birkaç reklam toplar ve sayı kontrol edilir. Sayı onfound_timeout_cnt değerini aşarsa OnFound hemen bildirilir.
|
rssi_low_thresh |
1 sekizlik |
Yalnızca delivery_mode on_found ise geçerlidir.[dBm cinsinden] Alınan paketin RSSI'si düşük RSSI eşiğinin üzerinde değilse reklamveren paketi görülmemiş olarak kabul edilir. |
onlost_timeout |
2 sekizlik |
Yalnızca delivery_mode on_found ise geçerlidir.[milisaniye cinsinden] Bir reklam bulunduktan sonra lost_timeout süresi boyunca kesintisiz olarak gösterilmezse
hemen kayıp olarak bildirilir.
|
num_of_tracking_entries |
2 sekizlik |
Yalnızca delivery_mode on_found ise geçerlidir.[count] Filtre başına izlenecek toplam reklamveren sayısı. |
RSSI değerleri, negatif değerleri temsil etmek için 2'ye tamamlayanı kullanmalıdır.
Ana makine, çeşitli filtre kombinasyonlarını yönetmek için APCF_Application_Address_type değerini 0x02 olarak ayarlayarak (tüm yayıncı adresleri için) birden fazla filtre yapılandırabilmelidir.
Filtreleme, gruplandırma ve raporlama birbiriyle ilişkili kavramlardır. Her reklam ve ilgili tarama yanıtı, tüm filtrelerden sırayla geçmelidir. Bu nedenle, sonuçta ortaya çıkan işlemler
(delivery_mode) filtrelemeyle yakından ilişkilidir. İletim modları şunlardır: report_immediately, batch ve onFound. OnLost değeri, kaybolduğunda OnFound değerinden sonra geleceği için OnFound ile ilişkilidir.
Bu işleme akışı, kavramsal modeli gösterir:
Bir reklam (veya tarama yanıtı) çerçevesi alındığında, seri sırayla tüm filtrelere uygulanır. Bir reklam, bir filtreye göre anında raporlamaya ve farklı bir filtre işlemi nedeniyle aynı reklamın gruplandırılmasına neden olabilir.
RSSI seviyesi eşikleri (yüksek ve düşük), denetleyici tarafından geçerli bir paket alındığında bile filtrelenerek işlenmek üzere çerçevenin ne zaman görünür olacağını kontrol etme olanağı sağlar. Yayın modu anında veya toplu olarak ayarlanmışsa bir çerçevenin RSSI'si daha fazla denetleyici işleme için dikkate alınır. Farklı uygulamalar için farklı raporlama ve gruplandırma davranışları gerekir. Bu sayede birden fazla uygulama, aynı anda doğrudan raporlama ve/veya sonuçları toplu olarak işleme özelliğine sahip olabilir. Örneğin, bir uygulamadan toplu tarama etkinleştirildikten sonra başka bir uygulama tarafından normal LE taraması başlatıldığında bu durum ortaya çıkar. Toplu tarama başlatılmadan önce çerçeve/uygulama uygun filtreleri ayarlar. Daha sonra, ikinci uygulama normal bir tarama yaptığında önceki gruplama işlemi devam eder. Ancak düzenli tarama nedeniyle, LE tarama komutuyla birlikte kavramsal olarak bir boş filtre (mevcut tüm filtrelerle birlikte) eklemeye benzer. Etkin olduğunda LE tarama komutu parametreleri öncelikli olur. Normal LE taraması devre dışı bırakıldığında, varsa kumanda önceki toplu taramaya geri döner.
OnFound Teslim modu, yapılandırılan filtrelere bağlıdır. Bir filtrenin işleminin başarılı olmasını tetikleyen birleşim, onLost için izlenecek öğe olarak kabul edilir. İlgili etkinlik, LE
Advt izleme alt etkinliğidir.
Bir filtre için OnFound/OnLost geçişi (etkinse) aşağıdaki gibi görünür:
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
APCF_opcode |
1 sekizlik | 0x01 - APCF Set Filtering Parameters |
APCF_Action |
1 sekizlik | Komutu tekrar etme APCF_Action |
APCF_AvailableSpaces |
1 sekizlik | Filtreler tablosundaki kullanılabilir girişlerin sayısı |
LE_APCF_Command: broadcast_address_sub_cmd
Bu alt komut, bir reklamveren adresi eklemek veya silmek ya da çip üzerinde filtreleme için reklamveren adresi listesini temizlemek amacıyla kullanılır.
Alt OCF: 0x02
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
APCF_Action |
1 sekizlik |
0x00 - Ekle 0x01 - Sil 0x02 - Temizle Silme işlemi, belirtilen filtredeki belirtilen yayıncı adresini siler. Temizle, belirtilen filtrenin tüm yayıncı adreslerini temizler. |
APCF_Filter_Index |
1 sekizlik | Filtre dizini (0, max_filter-1) |
APCF_Broadcaster_Address |
6 sekizlik | Yayıncı adresi listesine eklenecek veya listeden silinecek 6 baytlık cihaz adresi |
APCF_Application_Address_type |
1 sekizlik |
0x00: Genel 0x01: Rastgele 0x02: Yok (adres türünü yoksay) Kimlik adresi türlerine (0x02, 0x03) göre reklam raporlarını filtrelemek için. Adres türleri 0x02 ve 0x03 olan reklamcılık raporları almak için bu alanı 0x02: NA (adresi türünü yoksay) olarak ayarlayın. |
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
APCF_opcode |
1 sekizlik | 0x02 - APCF Yayın Adresi |
APCF_Action |
1 sekizlik | Komutu tekrar etme APCF_Action |
APCF_AvailableSpaces |
1 sekizlik | Yayın adresi tablosunda hâlâ kullanılabilen ücretsiz giriş sayısı |
LE_APCF_Command: service_uuid_sub_cmd
Bu alt komut, hizmet UUID'si eklemek veya silmek ya da çip üzerinde filtreleme için hizmet UUID'si listesini temizlemek amacıyla kullanılır.
Sub OCF: 0x03
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
APCF_Action |
1 sekizlik |
0x00 - Ekle 0x01 - Sil 0x02 - Temizle Silme işlemi, belirtilen filtrede belirtilen hizmet UUID adresini siler. Temizle, belirtilen filtrenin tüm hizmet UUID'lerini temizler. |
APCF_Filter_Index |
1 sekizlik | Filtre dizini (0, max_filter-1) |
APCF_UUID |
2,4,16 sekizlik | Listeye eklemek veya listeden silmek için hizmet UUID'si (16 bit, 32 bit veya 128 bit). |
APCF_UUID_MASK |
2,4,16 sekizlik |
Listeye eklenecek hizmet UUID maskesi (16 bit, 32 bit veya 128 bit).
APCF_UUID. ile aynı uzunlukta olmalıdır.
|
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
APCF_opcode |
1 sekizlik | 0x03 - APCF Hizmeti UUID'si |
APCF_Action |
1 sekizlik | Komutu tekrar etme APCF_Action |
APCF_AvailableSpaces |
1 sekizlik | Hizmet UUID tablosunda hâlâ kullanılabilen ücretsiz giriş sayısı |
LE_APCF_Command: solicitation_uuid_sub_cmd
Bu alt komut, bir istem UUID'si eklemek veya silmek ya da çip üzerinde filtreleme için bir istem UUID'si listesini temizlemek amacıyla kullanılır.
Alt OCF: 0x04
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
APCF_Action |
1 sekizlik |
0x00 - Ekle 0x01 - Sil 0x02 - Temizle Silme işlemi, belirtilen filtredeki talep UUID adresini siler. Temizle, belirtilen filtredeki tüm istek UUID'lerini temizler. |
APCF_Filter_Index |
1 sekizlik | Filtre dizini (0, max_filter-1) |
APCF_UUID |
2,4,16 sekizlik | Listeye eklenecek veya listeden silinecek İstek UUID'si (16 bit, 32 bit veya 128 bit). |
APCF_UUID_MASK |
2,4,16 sekizlik |
Listeye eklenecek İstem UUID Maskesi (16 bit, 32 bit veya 128 bit). APCF_UUID ile aynı uzunlukta olmalıdır.
|
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
APCF_opcode |
1 sekizlik | 0x04 - APCF İsteği UUID'si |
APCF_Action |
1 sekizlik | Komutu tekrar etme APCF_Action |
APCF_AvailableSpaces |
1 sekizlik | Teklif isteği UUID tablosunda hâlâ kullanılabilir olan ücretsiz girişlerin sayısı |
LE_APCF_Command: local_name_sub_cmd
Bu alt komut, yerel ad dizesi eklemek veya silmek ya da çip üzerinde filtreleme için yerel ad dizesi listesini temizlemek üzere kullanılır.
Alt OCF: 0x05
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
APCF_Action |
1 sekizlik |
0x00 - Ekle 0x01 - Sil 0x02 - Temizle Silme işlemi, belirtilen filtrede belirtilen yerel ad dizesini siler. Temizle, belirtilen filtrenin yerel ad dizelerini temizler. |
APCF_Filter_Index |
1 sekizlik | Filtre dizini (0, max_filter-1) |
APCF_LocName_Mandata_or_SerData |
Değişken boyutu |
Yerel ad için karakter dizesi. Notlar:
|
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
APCF_opcode |
1 sekizlik | 0x05 - APCF Yerel Adı |
APCF_Action |
1 sekizlik | Komutu tekrar etme APCF_Action |
APCF_AvailableSpaces |
1 sekizlik | Yerel ad tablosunda hâlâ kullanılabilen ücretsiz giriş sayısı |
LE_APCF_Command: manf_data_sub_cmd
Bu alt komut, üretici verileri dizesi eklemek veya silmek ya da çip üzerinde filtreleme için üretici verileri dizesi listesini temizlemek amacıyla kullanılır.
Alt OCF: 0x06
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
APCF_Action |
1 sekizlik |
0x00 - Ekle 0x01 - Sil 0x02 - Temizle Silme işlemi, belirtilen filtredeki belirtilen üretici verileri dizesini siler. Temizle, belirtilen filtredeki tüm üretici verileri dizelerini temizler. |
APCF_Filter_Index |
1 sekizlik | Filtre dizini (0, max_filter-1) |
APCF_LocName_Mandata_or_SerData |
Değişken boyutu |
Üretici verileri için bir karakter dizesi. Notlar:
|
APCF_ManData_Mask |
Değişken boyutu |
Listeye eklenecek üretim tarihi maskesi. APCF_LocName_or_ManData_or_SerData ile aynı uzunlukta olmalıdır.
|
Bu komut için bir Command Complete etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
APCF_opcode |
1 sekizlik | 0x06 - APCF Üretici Verileri |
APCF_Action |
1 sekizlik | Komutu tekrar etme APCF_Action |
APCF_AvailableSpaces |
1 sekizlik | Üretici verileri tablosunda hâlâ kullanılabilir olan ücretsiz giriş sayısı |
LE_APCF_Command: service_data_sub_cmd
Bu alt komut, bir hizmet verileri dizesi eklemek veya silmek ya da çip üzerinde filtreleme için hizmet verileri dizesi listesini temizlemek amacıyla kullanılır.
Alt OCF: 0x07
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
APCF_Action |
1 sekizlik |
0x00 - Ekle 0x01 - Sil 0x02 - Temizle Silme işlemi, belirtilen filtredeki belirtilen hizmet verileri dizesini siler. Temizle, belirtilen filtredeki tüm hizmet verisi dizelerini temizler. |
APCF_Filter_Index |
1 sekizlik | Filtre dizini (0, max_filter-1) |
APCF_LocName_Mandata_or_SerData |
Değişken boyutu |
Hizmet verileri için bir karakter dizesi. Notlar:
|
APCF_LocName_Mandata_or_SerData_Mask |
Değişken boyutu |
Listeye eklenecek hizmet verisi maskesi. APCF_LocName_or_ManData_or_SerData. ile aynı uzunlukta olmalıdır.
|
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
APCF_opcode |
1 sekizlik | 0x07 - APCF Hizmet Verileri |
APCF_Action |
1 sekizlik | Komutu tekrar etme APCF_Action |
APCF_AvailableSpaces |
1 sekizlik | Hizmet verileri tablosu için hâlâ kullanılabilen ücretsiz girişlerin sayısı |
LE_APCF_Command: ad_type_sub_cmd
Bu alt komut, bir AD türü eklemek veya silmek ya da çip üzerinde filtreleme için bir AD türü listesini temizlemek amacıyla kullanılır. Bu komutun desteklenip desteklenmediğini kontrol etmek için read_extended_features_sub_cmd kullanın.
APCF_AD_DATA_Length 0 olduğunda, APCF_AD_TYPE öğesini reklam verileri ve reklam verileri maskesi karşılaştırılmadan filtreleyin.
Alınan ADV paketinin veri uzunluğu AD_DATA_LENGTH değerini aşıyorsa yalnızca AD verilerinin ilk AD_DATA_LENGTH baytını karşılaştırın ve kalan verileri yoksayın.
Alt OCF: 0x09
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
APCF_Action |
1 sekizlik |
0x00 - Ekle 0x01 - Sil 0x02 - Temizle Sil, belirtilen filtredeki belirtilen reklam türünü siler. Temizle, belirtilen filtredeki tüm reklam türlerini temizler. |
APCF_Filter_Index |
1 sekizlik | Filtre dizini (0, max_filter-1) |
APCF_AD_TYPE |
1 sekizlik | Listeye ekleme veya listeden silme için reklam türü. APCF_Action 0x02 (Temizle) olduğunda yoksay |
APCF_AD_DATA_Length |
1 sekizlik |
0x00: Veri içeriğini filtreleme anlamına gelirAPCF_Action değeri 0x02 (Temizle) olduğunda yoksayılır.
|
APCF_AD_DATA |
Değişken boyutu |
Değişken boyutlu, APCF_AD_DATA_Lengthdeğerine göre APCF_Action değeri 0x02 (Temiz) olduğunda yoksayılır. |
APCF_AD_DATA_MASK |
Değişken boyutu |
APCF_AD_DATA_Lengthtemel alınarak değişken boyutlu APCF_Action 0x02 (Temizle) olduğunda yoksayılırAPCF_AD_DATA ile aynı uzunlukta olmalıdır.
|
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
APCF_opcode |
1 sekizlik | 0x09 - APCF Reklam Türü |
APCF_Action |
1 sekizlik | Komutu tekrar etme APCF_Action |
APCF_AvailableSpaces |
1 sekizlik | Reklam türü tablosunda hâlâ kullanılabilen ücretsiz girişlerin sayısı |
LE_APCF_Command: read_extended_features_sub_cmd
Bu alt komut, genişletilmiş APCF özelliklerini okumak için kullanılır.
Alt OCF: 0xFF
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
| Geçerli değil | Boş komut parametresi. |
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
APCF_opcode |
1 sekizlik | 0xFF - APCF_Read_Extended_Features |
APCF_extended_features |
2 sekizlik |
Desteklenen genişletilmiş özellikler için bit maskeleri:
Bit değeri
|
Denetleyici etkinliği ve enerji bilgileri komutu
Bu bilgilerin amacı, ana sistem işlevlerinin BT denetleyici ve makro durumu da dahil olmak üzere tüm bileşenlerin toplam etkinliklerini uygulamalarda ve çerçevede olanlarla birlikte analiz etmesidir. Bunu yapmak için BT yığınından ve denetleyiciden aşağıdaki bilgiler gerekir:
- BT yığını: Kumandanın mevcut makro operasyonel durumunu raporlama
- Donanım yazılımı: Toplu etkinlik ve enerji bilgilerini raporlama
Kullanıcı düzeyinde belirlendiği şekilde BT ana makine yığını makro durumları:
- Boşta: [page scan, LE advt, inquiry scan, LE scan]
- Tarama: [sayfalama/sorgu/bağlanmaya çalışılıyor]
- Etkin: [EKL bağlantısı açık, SCO bağlantısı devam ediyor, sniff modu]
Denetleyicinin ömrü boyunca takip ettiği etkinlikler Tx süresi, Rx süresi, boşta kalma süresi ve toplam enerji tüketimidir. Bu bilgiler, ana makineden okunduğunda temizlenir.
LE_Get_Controller_Activity_Energy_Info
Bu, satıcıya özgü bir komuttur.
OCF: 0x159
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
| NA | Boş komut parametreleri |
Bu komut için bir Command Complete etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
total_tx_time_ms |
4 sekizlik | Toplam Tx gerçekleştirme süresi |
total_rx_time_ms |
4 sekizlik | Toplam Rx gerçekleştirme süresi |
total_idle_time_ms |
4 sekizlik | Boşta geçen toplam süre (uyku dışındaki düşük güç durumları) |
total_energy_used |
4 sekizlik | Kullanılan toplam enerji [akım (mA), voltaj (V) ve süre (ms) çarpımı] |
LE extended set scan parameters command
Bu komut, denetleyicide daha büyük bir tarama penceresi ve aralığı etkinleştirmek için kullanılabilir. BT Core 5.2 Spesifikasyonu'na göre, tarama penceresi ve aralığı 10,24 saniyelik bir üst sınır limitine sahiptir. Bu da uygulamalarda 10,24 saniyeden uzun tarama aralıklarını engeller.
Temel referans: BT Core 5.2 Specification, sayfa 2493 (LE Set Scan Parameters Command)
OCF: 0x15A
| Komut Parametresi | Boyut | Amaç |
|---|---|---|
LE_Ex_Scan_Type |
1 sekizlik |
0x00 - Pasif tarama. SCAN_REQ paket gönderilmez (varsayılan).0x01: Etkin tarama. SCAN_REQ paket gönderilebilir.
|
LE_Ex_Scan_Interval |
4 sekizlik |
Kumandanın son LE taramasını başlattığı andan sonraki LE taramasını başlattığı ana kadar geçen süre olarak tanımlanır. Aralık: 0x0004 - 0x00FFFFFF Varsayılan: 0x0010 (10 ms) Süre = N * 0,625 ms Süre aralığı: 2,5 ms - 10.442,25 saniye |
LE_Ex_Scan_Window |
4 sekizlik |
LE taramasının süresi. LE_Scan_Window, LE_Scan_Interval değerinden küçük veya bu değere eşit olmalıdır.
Aralık: 0x0004 - 0xFFFF Varsayılan: 0x0010 (10 ms) Süre = N * 0,625 ms Süre Aralığı: 2,5 ms - 40,95 saniye |
Own_Address_Type |
1 sekizlik |
0x00 - Genel Cihaz Adresi (varsayılan) 0x01 - Rastgele Cihaz Adresi |
LE_Ex_Scan_Filter_Policy |
0x00: Tüm reklam paketlerini kabul eder (varsayılan). Bu cihaz için adreslenmemiş yönlendirilmiş reklam paketleri yok sayılır. 0x01 - Beyaz listede olmayan cihazlardan gelen reklam paketlerini yoksay Yalnızca listele. Bu cihaz için adreslenmemiş yönlendirilmiş reklam paketleri yok sayılır. |
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Denetleyici hata ayıklama bilgileri komutunu alma
Bu bilgi öğesinin amacı, denetleyici hata ayıklama bilgilerini ana makine tarafından ikili biçimde elde ederek sonradan işleme ve analiz için kullanmaktır. Bu sayede, sahada karşılaşılan sorunların hata ayıklaması yapılabilir ve mühendisler, analiz için bilgileri kaydetmelerine yardımcı olacak bir araç kitine sahip olur. Bir Denetleyici, bilgileri bir düzenleyen tarafından etkinlik (Denetleyici Hata Ayıklama Bilgileri alt etkinliği) aracılığıyla istendiğinde veya denetleyici istediğinde bağımsız olarak sağlayabilir. Örnek kullanım alanları arasında; donanım yazılımı durumu bilgileri, kilitlenme dökümü bilgileri, günlük kaydı bilgileri vb. raporlama yer alabilir.
OCF: 0x15B
| Komut parametresi | Boyut | Amaç |
|---|---|---|
| Yok | Boş komut parametresi listesi |
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
A2DP donanım yükü desteği
A2DP boşaltma özelliği, A2DP ses kodlama işleminin BT denetleyicisine bağlı bir ses işlemcisine boşaltılmasını destekler. Kodlanmış ses verileri akışı, BT ana makinesinin müdahalesi olmadan doğrudan Ses işlemcisinden BT denetleyicisine geçer. BT ana makinesi, A2DP oturumunun yapılandırılması ve kontrolünden hâlâ sorumludur. Komutların iki sürümü vardır. Sub OCF 0x01-0x02 ile eski komutlar yalnızca açık kaynaklı codec'leri destekler. Alt-OCF 0x03-0x04 olan sürümler, yapılandırılan codec'ten bağımsızdır.
OCF: 0x15D
A2DP yükünü başlatma (eski)
Alt OCF: 0x01
Bu komutu hem A2DP boşaltma sürecini yapılandırmak hem de A2DP akışını başlatmak için kullanın.
| Komut parametresi | Boyut | Amaç |
|---|---|---|
Codec |
4 sekizlik |
Codec türünü belirtir 0x01 - SBC 0x02 - AAC 0x04 - APTX 0x08 - APTX HD 0x10 - LDAC |
Max_Latency |
2 sekizlik | İzin Verilen Maksimum Gecikme (ms cinsinden). Sıfır değeri, temizlemeyi devre dışı bırakır. |
SCMS-T_Enable |
2 sekizlik |
Sekizli 0: SCMS-T üstbilgisinin eklenmesini sağlayan işaret.
Sekizli 1: Etkinleştirildiğinde SCMS-T başlığı için değer. |
Sampling_Frequency |
4 sekizlik |
0x01 - 44100 Hz 0x02 - 48000 Hz 0x04 - 88200 Hz 0x08 - 96000 Hz |
Bits_Per_Sample |
1 sekizlik |
0x01 - Örnek başına 16 bit 0x02 - Örnek başına 24 bit 0x04 - Örnek başına 32 bit |
Channel_Mode |
1 sekizlik |
0x01 - Mono 0x02 - Stereo |
Encoded_Audio_Bitrate |
4 sekizlik |
Saniye başına bit cinsinden kodlanmış ses bit hızı. 0x00000000: Ses bit hızı belirtilmemiş / kullanılmıyor. 0x00000001 - 0x00FFFFFF: Saniye başına bit cinsinden kodlanmış ses bit hızı. 0x01000000 - 0xFFFFFFFF - Ayrılmış. |
Connection_Handle |
2 sekizlik | Yapılandırılan A2DP bağlantısının bağlantı tutma noktası |
L2CAP_Channel_ID |
2 sekizlik | Bu A2DP bağlantısı için kullanılacak L2CAP kanal kimliği |
L2CAP_MTU_Size |
2 sekizlik | Kodlanmış ses paketlerini içeren L2CAP MTU'nun maksimum boyutu |
Codec_Information |
32 sekizli |
Codec'e özgü bilgiler.
SBC Codec:
A2DP v1.3'teki SBC Codec'e özgü bilgi öğelerine bakın. AAC Codec:
A2DP v1.3'teki AAC Codec'e özgü bilgi öğelerine bakın LDAC Codec'i:
Sekizli 0-3: Tedarikçi kimliği
Sekizli 4-5: Codec kimliği
Sekizli 6: Bit Hızı Dizini:
7. sekizli: LDAC Kanal Modu Octet 8-31: ayrılmış Diğer tüm codec'ler: Octet 0-31: ayrılmış |
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Sub_Opcode |
1 sekizlik | 0x01 - A2DP yükünü başlat |
A2DP yükünü başlatma
Sub OCF: 0x03
Bu komutu hem A2DP boşaltma sürecini yapılandırmak hem de A2DP akışını başlatmak için kullanın.
| Komut parametresi | Boyut | Amaç |
|---|---|---|
Connection Handle |
2 sekizlik | Etkin HCI bağlantısının tutma yeri |
L2CAP_Channel_ID |
2 sekizlik | A2DP akışı için açılan L2CAP kanalının tanımlayıcısı |
Data_Path_Direction |
1 sekizlik |
0x00 - Çıkış (AVDTP Kaynağı/Birleştirme) 0x01 - Giriş (AVDTP Alıcısı/Bölme) |
Peer_MTU |
2 sekizlik | Eşle anlaşmaya varılan L2CAP paketlerinin maksimum boyutu. |
CP_Enable_SCMS_T |
1 sekizlik |
0x00 - SCMS-T İçerik Koruma Başlığını Devre Dışı Bırakma 0x01 - SCMS-T İçerik Koruma Başlığını Etkinleştirme |
CP_Header_SCMS_T |
1 sekizlik |
SCMS-T İçerik Koruma Başlığı etkinleştirildiğinde (CP_SCMS_T_Enable 0x01 olarak ayarlandığında), Bluetooth Assigned Numbers, bölüm 6.3.2'de tanımlandığı gibi, ses içeriğinden önce gelen başlık değerini (A2DP, bölüm 3.2.1-2'ye bakın) tanımlar.SCMS-T içerik koruması etkin değilken yoksayılır. |
Vendor_Specific_Parameters_Length |
1 sekizlik |
Tedarikçiye Özgü Parametrelerin uzunluğu (0-128 arasında). Ek parametre sağlanmadığında 0 değeri kullanılır. |
Vendor_Specific_Parameters |
0-128 sekizli |
Bluetooth Audio HAL tarafından sağlanan satıcıya özel parametreler,
CodecParameters.vendorSpecificParameters[].
|
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Sub_Opcode |
1 sekizlik | 0x03 - A2DP yükünü başlat |
A2DP yükünü durdurma (eski)
Alt OCF: 0x02
Bu komut, A2DP boşaltma akışını durdurmak için kullanılır.
| Komut parametresi | Boyut | Amaç |
|---|---|---|
| Yok | Boş komut parametresi listesi. |
Bu komut için parametre tanımlanmamış.
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Sub_Opcode |
1 sekizlik | 0x02 - A2DP yükünü durdur |
A2DP yükünü durdur
Alt OCF: 0x04
Bu komut, A2DP boşaltma akışını durdurmak için kullanılır.
| Komut parametresi | Boyut | Amaç |
|---|---|---|
Connection Handle |
2 sekizlik | Etkin HCI bağlantısının tutma yeri |
L2CAP_Channel_ID |
2 sekizlik | A2DP akışı için açılan L2CAP kanalının tanımlayıcısı |
Data_Path_Direction |
1 sekizlik |
0x00 - Çıkış (AVDTP Kaynağı/Birleştirme) 0x01 - Giriş (AVDTP Alıcısı/Bölme) |
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Sub_Opcode |
1 sekizlik | 0x04 - A2DP yükünü durdur |
Bluetooth Kalite Raporu komutu
BT Quality Report komut özelliği, Bluetooth Kalitesi etkinliklerini ana makineye bildirmek için Bluetooth denetleyicisindeki mekanizmayı başlatır. Dört seçeneği etkinleştirebilirsiniz:
- Kalite İzleme Modu: Denetleyici, ana makineye düzenli olarak bağlantı kalitesiyle ilgili bir BQR alt etkinliği gönderir.
- LSTO yaklaşıyor: Bağlı BT cihazından Bağlantı Gözetimi Zaman Aşımı (LSTO) değerinin yarısından daha uzun süre paket alınmazsa kumanda, ana makineye LSTO yaklaşıyor etkinliğini bildirir.
- A2DP Sesinde Atlama Oluyor: Kumanda, seste atlamaya neden olan faktörleri algıladığında ana cihaza A2DP Sesinde Atlama Oluyor etkinliğini bildirir.
- (e)SCO Ses Kesintisi: Kontrol cihazı, ses kesintisine neden olan faktörleri algıladığında ana cihaza (e)SCO Ses Kesintisi etkinliği bildirir.
- Kök iltihabı: Bu etkinlik, HAL veya denetleyici ölümcül bir hatayla karşılaştığında ve Bluetooth'u yeniden başlatması gerektiğinde denetleyici tarafından yığına gönderilir.
- LMP/LL mesaj izleme: Denetleyici, uzak cihazla LMP/LL mesajı el sıkışmasını ana makineye gönderir.
- Bluetooth çoklu profil/birlikte var olma planlama izi: Denetleyici, birden fazla Bluetooth profilini işleme ve 2,4 GHz bandında kablosuz birlikte var olma ile ilgili planlama bilgilerini ana makineye gönderir.
- Denetleyici hata ayıklama bilgileri mekanizması: Etkinleştirildiğinde denetleyici, hata ayıklama günlüğü bilgilerini Denetleyici hata ayıklama bilgisi alt etkinliği aracılığıyla ana bilgisayara bağımsız olarak bildirebilir.
- LE Audio'da atlama: Kumanda, seste atlamaya neden olan faktörler algıladığında ana cihaza LE Audio'da atlama etkinliği bildirir.
-
Gelişmiş RF İstatistikleri modu: Kumanda, RF istatistikleriyle ilgili bilgileri ana cihaza bildirir ve iki rapor kullanım alanını destekler:
- Periyodik raporlar
- Etkinlik tetikleyicileri (akış başlatma/durdurma ve bağlantı kalitesi etkinlik tetikleyicisi).
- Denetleyici durumunu izleme mekanizması, ana makineye iki tür etkinlik aracılığıyla durumla ilgili bilgiler sağlar: periyodik raporlar ve etkinliğe dayalı raporlar.
- Bluetooth Kalite Raporu Komutunun BQR_Report_Action'ı: Ana makine, kalite izleme modu, enerji izleme modu veya gelişmiş RF istatistikleri modu için tek seferlik sorgu almak üzere bu HCI komutunu kullanabilir.
OCF: 0x15E
| Komut parametresi | Boyut | Amaç |
|---|---|---|
BQR_Report_Action |
1 sekizlik |
BQR_Quality_Event_Mask parametresinde ayarlanan kaliteli etkinliklerin raporlanmasını ekleme / silme veya tümünü temizleme işlemi.
0x00 - Ekle
Silme işlemi, belirli kalite etkinliklerinin raporlarını temizler. |
BQR_Quality_Event_Mask |
4 sekizlik |
Seçilen kalite etkinliği raporlaması için bit maskeleri.
Bit 0: Kalite izleme modunu etkinleştirmek için ayarlanır. |
BQR_Minimum_Report_Interval |
2 sekizlik |
Seçilen kalite etkinlikleri için kalite etkinliği raporlamanın minimum zaman aralığını tanımlayın. Denetleyici yazılımı, tanımlanan zaman aralığı içinde bir sonraki etkinliği bildirmemelidir. Aralık ayarı, eklenen kalite etkinliklerine göre ve bu etkinliklere özel olmalıdır.
Birim: ms |
BQR_Vendor_Specific_Quality_Event_Mask |
4 sekizlik |
Seçilen tedarikçiye özel kalite etkinliği raporlaması için bit maskeleri. Bu parametre yalnızca BQR_Quality_Event_Mask öğesinin 15. biti ayarlandığında geçerlidir.
Bit 0 ~ 31: Ayrılmış. |
BQR_Vendor_Specific_Trace_Mask |
4 sekizlik |
Seçilen tedarikçiye özel izleme raporlaması için bit maskeleri. Bu parametre yalnızca BQR_Quality_Event_Mask değerinin 31. biti ayarlandığında geçerlidir.
Bit 0 ~ 31: Ayrılmış. |
Report_interval_multiple |
4 sekizlik |
BQR_Minimum_Report_Interval için çarpan. Bu değer >= 1 olduğunda,
BQR rapor aralığı biçimindedir. BQR rapor aralığı = BQR_Minimum_Report_Interval x Report_interval_multiple. Denetleyici yazılımı, tanımlanan zaman aralığı içinde bir sonraki etkinliği bildirmemelidir. Aralık ayarı, özellikle eklenen kalite etkinliği/etkinlikleri için ayrılmıştır.
Birim: ms BQR_Report_Interval ayarı, denetleyicinin kapasitesinden büyükse denetleyici, komut tamamlandığında maksimum BQR_Report_Interval süresini döndürmelidir.
|
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Current_Quality_Event_Mask |
4 sekizlik |
Geçerli bit maskesi ayarını gösterir. Bit 0: Kalite izleme modu etkinleştirildi. Bit 1: Yaklaşan LSTO etkinliği raporlaması etkinleştirildi. 2. bit: A2DP sesinde kesintili etkinlik raporlaması etkinleştirilir. Bit 3: (e)SCO Voice Choppy etkinlik raporlaması etkinleştirildi. Bit 4: Kök iltihabı etkinliği raporlaması etkinleştirilir. Bit 5: Enerji izleme modu etkinleştirildi. Bit 6: LE Audio'da kesintili etkinlik raporlaması etkinleştirilir. Bit 7: Bağlantı hatası etkinliği. Bit 8: Gelişmiş RF İstatistikleri modu etkinlik tetikleyicisini etkinleştirmek için ayarlanır. Bit 9: Gelişmiş RF istatistiklerinin düzenli olarak raporlanmasını sağlamak için ayarlanır. Bit 10: Denetleyici sağlığı izleme mekanizması etkinlik tetikleyicisini etkin olarak ayarlayın. Bit 11: Denetleyici sağlığı izleme mekanizmasının düzenli olarak rapor vermesi için etkin olarak ayarlanır. Bit 12 ~ 14: Ayrılmış. Bit 15: Tedarikçiye özel kalite etkinliği raporlaması etkinleştirilir. Bit 16: LMP/LL mesaj izleme etkinleştirildi. Bit 17: Bluetooth çoklu bağlantı/birlikte var olma planlama izi etkinleştirildi. Bit 18: Kumanda hata ayıklama bilgileri mekanizması etkinleştirildi. Bit 19: Reserved for offload debug information Bit 20: UART History Dump Event trigger Bit 21 ~ 30: Reserved. Bit 31: Tedarikçiye özgü izleme etkinleştirilir. |
Current_Vendor_Specific_Quality_Event_Mask |
4 sekizlik | Geçerli bit maskesi ayarını gösterir. |
Current_Vendor_Specific_Trace_Mask |
4 sekizlik | Geçerli bit maskesi ayarını gösterir. |
BQR_Report_interval |
4 sekizlik | Geçerli bit maskesi ayarını gösterir. |
Current_Vendor_Specific_Trace_Mask |
4 sekizlik |
BQR_Report_interval ayarı. BQR_Minimum_Report_Interval * Report_interval_multiple arasındaki minimum değer veya denetleyicinin maksimum destek aralığı olmalıdır. |
Dinamik ses arabelleği komutu
Dinamik ses arabelleği, Bluetooth denetleyicisindeki ses arabelleği boyutunu çeşitli senaryolara göre değiştirerek ses hatalarını azaltır.
OCF: 0x15F
Ses arabelleği süresi özelliğini kullanma
Alt OCF: 0x01
Bluetooth denetleyicisinden ses arabelleği süresi özelliğini almak için bu komutu kullanın.
| Komut parametresi | Boyut | Amaç |
|---|---|---|
| Yok | Boş komut parametresi listesi |
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Dynamic_Audio_Buffer_opcode |
1 sekizlik | 0x01 - Ses arabelleği süresini alma |
Audio_Codec_Type_Supported |
4 sekizlik |
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. |
Audio_Codec_Buffer_Default_Time_For_Bit_0 |
2 sekizlik |
Audio_Codec_Type_Supported içinde belirtilen Bit 0 codec türünün varsayılan arabellek süresi. Bit 0 codec türü desteklenmiyorsa bu değer 0 olmalıdır. Birim: ms |
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 |
2 sekizlik |
Audio_Codec_Type_Supported içinde belirtilen Bit 0 codec türünün maksimum arabellek süresi. Bit 0 codec türü desteklenmiyorsa bu değer 0 olmalıdır. Birim: ms |
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 |
2 sekizlik |
Audio_Codec_Type_Supported içinde belirtilen Bit 0 codec türünün minimum arabellek süresi. Bit 0 codec türü desteklenmiyorsa bu değer 0 olmalıdır. Birim: ms |
Audio_Codec_Buffer_Default_Time_For_Bit_1 |
2 sekizlik |
Audio_Codec_Type_Supported içinde belirtilen Bit 1 codec türünün varsayılan arabellek süresi. Bit 1 codec türü desteklenmiyorsa bu değer 0 olmalıdır. Birim: ms |
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 |
2 sekizlik |
Audio_Codec_Type_Supported içinde belirtilen Bit 1 codec türünün maksimum arabellek süresi. Bit 1 codec türü desteklenmiyorsa bu değer 0 olmalıdır. Birim: ms |
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 |
2 sekizlik |
Audio_Codec_Type_Supported içinde belirtilen Bit 1 codec türünün minimum arabellek süresi. Bit 1 codec türü desteklenmiyorsa bu değer 0 olmalıdır. Birim: ms |
| ...... | ...... | ...... |
Audio_Codec_Buffer_Default_Time_For_Bit_31 |
2 sekizlik |
Audio_Codec_Type_Supported içinde belirtilen Bit 31 codec türünün varsayılan arabellek süresi. Bit 31 codec türü desteklenmiyorsa bu değer 0 olmalıdır. Birim: ms |
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 |
2 sekizlik |
Audio_Codec_Type_Supported içinde belirtilen Bit 31 codec türünün maksimum arabellek süresi. Bit 31 codec türü desteklenmiyorsa bu değer 0 olmalıdır. Birim: ms |
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 |
2 sekizlik |
Audio_Codec_Type_Supported içinde belirtilen Bit 31 codec türünün minimum arabellek süresi. Bit 31 codec türü desteklenmiyorsa bu değer 0 olmalıdır. Birim: ms |
Ses arabelleği süresini ayarlama
Alt OCF: 0x02
Ses arabelleği süresini Bluetooth denetleyiciye ayarlamak için bu komutu kullanın.
| Komut parametresi | Boyut | Amaç |
|---|---|---|
Audio_Codec_Buffer_Time |
2 sekizlik |
Şu anda kullanılan codec için istenen ses arabelleği süresi. Birim: ms |
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Dynamic_Audio_Buffer_opcode |
1 sekizlik | 0x02 - Ses arabelleği süresini ayarlama |
Audio_Codec_Buffer_Time |
2 sekizlik |
Bluetooth kumandasında geçerli ses arabelleği süresi. Birim: ms |
HCI etkinliği (tedarikçiye özel)
Bazı durumlarda tedarikçiye özel HCI etkinlikleri gerekir. BT Core 5.2 Spesifikasyonu'nun 1897. sayfasındaki Şekil 5.4'e bakın. Etkinlik parametresi 0, her zaman ilk alt etkinlik kodunu içerir. HCI etkinliğinin geri kalanı bu koda göre çözülür.
| Etkinlik Parametresi | Boyut | Amaç |
|---|---|---|
HCI_vendor_specific_event_code |
1 sekizlik | 0xFF |
sub_event_code |
1 sekizlik | Alt etkinlik kodu, HCI etkinlik paketinde Parametre Uzunluğu'nu hemen takip eden bayt olan 1 oktet boyutunda olacaktır. |
Depolama alanı eşiği ihlali alt etkinliği
Bu etkinlik, depolama alanı eşiğinin aşıldığını gösterir.
Alt etkinlik kodu = 0x54
| Subevent Parametresi | Boyut | Amaç |
|---|---|---|
| Yok |
LE multi-advertising state change subevent
Bu etkinlik, bir reklam örneğinin durumunu değiştirdiğini gösterir. Şu anda bu etkinlik yalnızca hangi reklamcılık örneğinin bağlantı nedeniyle durdurulduğunu belirtmek için kullanılır.
Alt etkinlik kodu = 0x55
| Alt etkinlik parametresi | Boyut | Amaç |
|---|---|---|
Advertising_instance |
1 sekizlik |
Belirli reklam örneğini tanımlar Geçerli değerler 0 ile max_advt_instances-1 arasındadır.
|
State_Change_Reason |
1 sekizlik | 0x00: Bağlantı alındı |
Connection_handle |
2 sekizlik |
advt örneğinin devre dışı bırakılmasına neden olan bağlantıyı tanımlar (geçersizse 0xFFFF)
|
LE advertisement tracking subevent
Bu etkinlik, bir reklamverenin bulunup bulunmadığını veya kaybolup kaybolmadığını gösterir.
Alt etkinlik kodu = 0x56
| Subevent Parametresi | Boyut | Amaç |
|---|---|---|
APCF_Filter_Index |
1 sekizlik | Filtre dizini (0, max_filter-1) |
Advertiser_State |
1 sekizlik |
0x00: Reklamveren bulundu 0x01: Reklamveren kaybedildi |
Advt_Info_Present |
1 sekizlik |
0x00: Reklamveren bilgileri (Advt_Info) mevcut0x01: Reklamveren bilgileri ( Advt_Info) mevcut değil
|
Advertiser_Address |
6 sekizlik | Herkese açık veya rastgele adres |
Advertiser_Address_Type |
1 sekizlik |
0x00: Herkese açık adres 0x01: Rastgele adres |
Advt_Info |
Tx_Pwr[0]: 1 sekizliRSSI[0]: 1 sekizliTimestamp[0]: 2 sekizliAdv packet_len[0]: 1 sekizliAdv_packet[0]: Adv_packet_len sekizliScan_data_resp_len[0]: 1 sekizliScan_data_resp[0]: Scan_data_resp sekizli
|
Kumanda hata ayıklama bilgileri alt etkinliği
Bu etkinlik, bir denetleyici tarafından bir ana bilgisayara ikili hata ayıklama bilgileri sağlamak için kullanılır.
Alt etkinlik kodu = 0x57
| Subevent Parametresi | Boyut | Amaç |
|---|---|---|
debug_block_byte_offset_start |
2 sekizlik | Hata ayıklama bloğu, başlangıçtan itibaren bayt ofseti |
last_block |
1 sekizlik |
0x00: Daha fazla hata ayıklama verisi var 0x01: Son ikili blok; daha fazla hata ayıklama verisi yok |
cur_pay_load_sz |
2 sekizlik | Mevcut bir etkinlikteki ikili blok boyutu |
Debug_Data |
Değişken | cur_payload_sz hata ayıklama verileri |
Bluetooth Kalite Raporu alt etkinliği
Bu etkinlik, aşağıdakilerden birinin gerçekleştiğini gösterir: Bluetooth kalitesi etkinliği oluştu, kumanda LMP/LL mesaj izini ve Bluetooth çoklu bağlantı/birlikte var olma planlama izini yükledi veya kumanda hata ayıklama bilgileri verilerini boşalttı.
Alt etkinlik kodu = 0x58 [Quality_Report_Id = 0x01 ~ 0x04, Bağlantı kalitesiyle ilgili etkinlik]
| Subevent Parametresi | Boyut | Amaç |
|---|---|---|
Quality_Report_Id |
1 sekizlik |
0x01: İzleme modunda kalite raporlama. 0x02: Approaching LSTO. 0x03: A2DP Sesinde Atlamalar Oluyor. 0x04: (e)SCO Voice Choppy. 0x05 ~ 0x06: Ayrılmış. 0x07: LE Audio'da ses atlıyor. 0x08: Bağlantı başarısız oldu. 0x09 ~ 0xFF: Ayrılmış. |
Packet_Types |
1 sekizlik |
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 0x10: DM1 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: 1M PHY 0x53: 2M PHY 0x54: Codec PHY S=2 0x55: Codec PHY S=8 0x56 ~ 0xFF: Reserved |
Connection_Handle |
2 sekizlik | ACL/(e)SCO/ISO bağlantı tutamacı. |
Connection_Role |
1 sekizlik |
Bağlantı için rolü gerçekleştirme. 0x00: Merkezi 0x01: Çevresel 0x02 ~ 0xFF: Ayrılmış. |
TX_Power_Level |
1 sekizlik |
Belirtilen Connection_Handle için mevcut iletim gücü düzeyi.
Bu değer, HCI_Read_Transmit_Power_Level HCI komutuna yanıt veren denetleyicinin değeriyle aynı olmalıdır. |
RSSI |
1 sekizlik |
[dBm cinsinden]
Belirtilen Connection_Handle için alınan sinyal gücü göstergesi (RSSI) değeri. |
SNR |
1 sekizlik |
[dB cinsinden]
Belirtilen Connection_Handle için sinyal-gürültü oranı (SNR) değeri. |
Unused_AFH_Channel_Count |
1 sekizlik |
AFH_channel_map'teki kullanılmayan kanal sayısını gösterir. 0x4F ~ 0xFF: Ayrılmış. |
AFH_Select_Unideal_Channel_Count |
1 sekizlik |
Girişimde bulunulan ve kalitesi düşük olan ancak yine de AFH için seçilen kanalların sayısını gösterir. Bluetooth spesifikasyonunun izin verdiği minimum kanal sayısı 20'dir. Bu nedenle, 79 kanalın tamamı parazitli ve kalitesiz olsa bile denetleyicinin AFH için en az 20 kanal seçmesi gerekir. |
LSTO |
2 sekizlik |
Mevcut bağlantı gözetimi zaman aşımı ayarı. Süre = N * 0,625 ms Süre Aralığı: 0,625 ms - 40,9 sn |
Connection_Piconet_Clock |
4 sekizlik |
Belirtilen Connection_Handle için Piconet Clock. Bu değer, "Which_Clock" parametresi 0x01 (Piconet Clock) olan HCI_Read_Clock HCI komutuna yanıt veren denetleyicinin değeriyle aynı olmalıdır. Birim: N * 0,3125 ms (1 Bluetooth saati) |
Retransmission_Count |
4 sekizlik |
Son etkinlikten bu yana yeniden iletim sayısı. Bu sayı, toplantıyı düzenleyen kullanıcıya bildirildikten sonra sıfırlanır. |
No_RX_Count |
4 sekizlik |
Son etkinlikten bu yana RX sayısı yok. Planlanan zaman aralığında paket alınmadığında veya alınan paket bozulduğunda sayı artar. Bu sayı, toplantıyı düzenleyen kullanıcıya bildirildikten sonra sıfırlanır. |
NAK_Count |
4 sekizlik |
Son etkinlikten bu yana NAK (olumsuz onay) sayısı. Bu sayı, toplantıyı düzenleyen kullanıcıya bildirildikten sonra sıfırlanır. |
Last_TX_ACK_Timestamp |
4 sekizlik |
Son TX ACK'nin zaman damgası. Bu, piconet merkezinin Bluetooth saati (CLK) temel alınarak belirlenir. Birim: N * 0,3125 ms (1 Bluetooth saati) |
Flow_Off_Count |
4 sekizlik |
Son etkinlikten bu yana kontrol cihazının Flow-off (STOP) komutunu alma sayısı. Bu sayı, toplantıyı düzenleyen kullanıcıya bildirildikten sonra sıfırlanır. |
Last_Flow_On_Timestamp |
4 sekizlik |
Son Flow-on (GO) zaman damgası. Bu, piconet merkezinin Bluetooth saati (CLK) temel alınarak belirlenir. Birim: N * 0,3125 ms (1 Bluetooth saati) |
Buffer_Overflow_Bytes |
4 sekizlik |
[in Byte]
Son etkinlikten bu yana arabellek taşması sayısı. |
Buffer_Underflow_Bytes |
4 sekizlik |
[in Byte]
Son etkinlikten bu yana arabellek taşması sayısı. |
bdaddr |
6 sekizlik | Uzak cihaz adresi |
cal_failed_item_count |
1 sekizlik | Kalibrasyonu başarısız olan öğelerin sayısı |
TX_Total_Packets |
4 sekizlik | Gönderilen paket sayısı. |
TX_UnAcked_Packets |
4 sekizlik |
Onay almayan paketlerin sayısı. Bu sayı, toplantıyı düzenleyen kullanıcıya bildirildikten sonra sıfırlanır. |
TX_Flushed_Packets |
4 sekizlik |
Temizleme noktası tarafından gönderilmeyen paketlerin sayısı. Bu sayı, toplantıyı düzenleyen kullanıcıya bildirildikten sonra sıfırlanır. |
TX_Last_Subevent_Packets |
4 sekizlik |
Bağlantı katmanının bir CIS etkinliğinin son alt etkinliğinde bir CIS veri PDU'sunu ilettiği paket sayısı. Bu sayı, toplantıyı düzenleyen kullanıcıya bildirildikten 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 sekizlik |
Son etkinlikten bu yana CRC hatası içeren alınan paketlerin sayısı. Bu sayı, toplantıyı düzenleyen kullanıcıya bildirildikten sonra sıfırlanır. |
RX_Duplicate_Packets |
4 sekizlik |
Son etkinlikten bu yana alınan yinelenen (yeniden iletim) paketlerin sayısı. Bu sayı, toplantıyı düzenleyen kullanıcıya bildirildikten sonra sıfırlanır. |
RX_Unreceived_Packets |
4 sekizlik |
Alınmayan paket sayısı, LE READ ISO Link Quality komutunun parametresiyle aynıdır (Bluetooth Core Specification Version 5.4'e bakın). İlişkili akışlar CIS ve BIS'dir. Bu değer artırıldığında, Bağlantı Katmanı, temizleme noktasında (CIS'te) veya ilişkilendirildiği etkinliğin sonunda (BIS'te; Bluetooth Core Specification Version 5.4 Vol 6 Part B, Section 4.4.6.6'ya bakın) belirli bir yük almaz. |
Coex_Info_Mask |
2 sekizlik |
Bit 0 - CoexInvolvement: Bu rapor oluşturulduğunda (ör. A2DP Chops ve Approaching LSTO) birlikte var olma etkinliklerinin dahil olduğundan şüphelenildiğini belirtmek için ayarlanır. Bit 1 - WL 2G Radio Active: WLAN 2G radyonun etkin olduğunu belirtmek için ayarlanır. Bit 2 - WL 2G Connected: WLAN 2G Radyo'nun etkin ve bağlı olduğunu belirtmek için ayarlanır. Bit 3 - WL 5G/6G Radio Active: WLAN 5G/6G radyonun etkin olduğunu belirtmek için ayarlanır. Bit 4-15 - Ayrılmış |
| Tedarikçiye Özel Parametre | (parametre toplam uzunluğu - HBD) * sekizli | Denetleyici tedarikçisinin, tedarikçiye özel daha fazla parametre alması için. |
Alt etkinlik kodu = 0x58 [Quality_Report_Id = 0x05, Root Inflammation event]
Bu etkinlik, Bluetooth HAL'nin veya kumandanı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. Denetleyici, her durumda hata ayıklama bilgisi etkinliklerinin ilk parçasını göndermeden önce Bluetooth yığınına bir Root_Inflammation_Event göndermelidir.
Error_Code parametresi, HAL/denetleyiciden bildirilen bir hata kodunu içerir. Yonga seti satıcısına özgü bir hata olması durumunda 0 değerini alır. Vendor_Specific_Error_Code, HAL/Denetleyici'den alınan yonga seti tedarikçisine özgü bir hata kodu içerir. Error_Code parametresi 0'dan küçükse 0 olarak ayarlanmalıdır. Error_Code ve Vendor_Specific_Error_Code parametrelerinin ikisi de 0 olmamalıdır.
| Subevent Parametresi | Boyut | Amaç |
|---|---|---|
Quality_Report_Id |
1 sekizlik |
0x00 ~ 0x04: Ayrılmış. 0x05: Kök iltihabı. 0x06 ~ 0xFF: Ayrılmış. |
Error_Code |
1 sekizlik |
0x00: Yonga seti tedarikçisine özgü hata kodu eklenir. 0x01 ~ 0xFF: Denetleyici hatası oluştu. Hata kodları ve açıklamalarının listesi için Bluetooth Spec [Vol 2] Part D, Error Codes bölümüne bakın. |
Vendor_Specific_Error_Code |
1 sekizlik |
0x00: Yonga seti tedarikçisine özgü hata kodu dahil değildir. 0x01 ~ 0xFF: Yonga seti tedarikçisine özgü hata kodu. |
| Tedarikçiye Özel Parametre | (Parametre Toplam Uzunluğu - 4) * sekizlikler | Denetleyici tedarikçisinin, tedarikçiye özel daha fazla parametre alması için. |
Alt etkinlik kodu = 0x58 [Quality_Report_Id = 0x06, Energy monitor event]
Bu etkinlik, Bluetooth kumandasının güç tüketimi ve belirli bir süre boyunca çalışma durumlarının anlık görüntüsünü sağlar. Bu etkinlik, geliştiricilerin ve mühendislerin kontrol cihazının gücü nasıl yönettiğini analiz etmesine, en fazla enerjiyi hangi etkinliklerin tükettiğini belirlemesine ve güçle ilgili sorunları gidermesine yardımcı olur.
Raporun parametreleri aşağıdaki gibi temel metrikleri izler:
- Ortalama akım tüketimi: Kontrol cihazı tarafından kullanılan toplam akım.
- Farklı durumlarda geçirilen süre: Kontrol cihazının boşta (uyku/düşük güç) durumunda ve etkin durumda (veri bağlama, iletme veya alma) geçirdiği toplam süre (milisaniye cinsinden).
- Durum geçişi sayıları: Kontrol cihazının boşta ve etkin durumlar arasında geçiş yapma sayısı.
- Belirli radyo durumlarında geçirilen süre: Hem BR/EDR (Bluetooth Classic) hem de LE (Bluetooth Düşük Enerji) bağlantıları için iletme (Tx) ve alma (Rx) işlemlerinde geçirilen süreye ilişkin ayrı metrikler.
- Ortalama iletim gücü seviyeleri: BR/EDR ve LE bağlantılarında iletim için kullanılan ortalama güç (dBm cinsinden).
- Ayrıntılı zincir etkinliği: Aktif iletim veya alım zincirleriyle geçirilen süre hakkında raporlar. Tek zincirli ve iki zincirli işlemler ile dahili (iPA) ve harici (ePA) güç amplifikatörleri arasında ayrım yapılır.
- Tarama etkinliği süresi: Kumandanın BR/EDR ve LE cihazlarını etkin olarak tarayarak geçirdiği süre.
Mühendisler bu parametreleri inceleyerek kontrol cihazının güç verimliliği hakkında bilgi edinebilir ve performansını optimize edebilir.
| Subevent Parametresi | Boyut | Amaç |
|---|---|---|
Quality_Report_Id |
1 sekizlik | 0x06: Enerji İzleme |
Average_Current_Consumption |
2 sekizlik | [mA cinsinden] Kontrol cihazı tarafından tüketilen tüm etkinliklerin ortalama akım tüketimi |
Idle_Total_Time (uyku) |
4 sekizlik | [ms cinsinden] Boşta kalma (düşük güç durumları, uyku) durumundaki toplam süre. |
Idle_Sate_Enter_Count |
4 sekizlik | Denetleyicinin boşta duruma kaç kez girdiğini gösterir. |
Active_Total_Time |
4 sekizlik | [ms cinsinden] Etkin (sorgulama, sayfalama, ACL/SCO/eSCO/BIS/CIS trafiği, herhangi bir görevi işleme) durumundaki toplam süre. |
Active_State_Enter_Count |
4 sekizlik | Kumandanın etkin durumlara kaç kez girdiğini gösterir. |
BR_RDR_Tx_Total_Time |
4 sekizlik | [ms cinsinden] BR/EDR'ye özgü Tx(ACL/SCO/eSCO trafiği için iletim) durumundaki toplam süre. |
BR_RDR_Tx_State_Enter_Count |
4 sekizlik | Denetleyicinin BR/EDR'ye özgü Tx durumuna kaç kez girdiğini gösterir. |
BR_RDR_Tx_Average_Power_Level |
1 sekizlik | [dBm cinsinden] Tüm BR/EDR bağlantılarının ortalama Tx güç düzeyi |
BR_RDR_Rx_Total_Time |
4 sekizlik | [ms cinsinden] BR/EDR'ye özgü Rx (ACL/SCO/eSCO trafiğinden alma) durumundaki toplam süre. |
BR_RDR_Rx_State_Enter_Count |
4 sekizlik | [ms cinsinden] Denetleyicinin BR/EDR'ye özgü Rx durumuna kaç kez girdiğini gösterir. |
LE_Tx_Total_Time |
4 sekizlik | [ms cinsinden] LE'ye özgü Tx (ACL/BIS/CIS veya LE reklam trafiği için iletim) durumundaki toplam süre. |
LE_Tx_State_Enter_Count |
4 sekizlik | Denetleyicinin BR/EDR'ye özgü Rx durumuna kaç kez girdiğini gösterir. |
LE_Tx_Average_Power_Level |
1 sekizlik | [dBm cinsinden] Tüm LE bağlantılarının ortalama Tx güç düzeyi. |
LE_Rx_Total_Time |
4 sekizlik | [ms cinsinden] LE'ye özgü Rx (ACL/BIS/CIS veya LE tarama trafiğinden alma) durumundaki toplam süre. |
LE_Rx_State_Enter_Count |
4 sekizlik | [ms cinsinden] Denetleyicinin LE'ye özgü Rx durumuna kaç kez girdiğini gösterir. |
Report_Time_Duration (Toplam süre) |
4 sekizlik | [ms cinsinden] Güçle ilgili bilgilerin toplanması için gereken toplam süre. |
RX_Active_One_Chain_Time |
4 sekizlik | [ms cinsinden] Bir zincirde RX'in etkin olduğu süre |
RX_Active_Two_Chain_Time |
4 sekizlik | [ms cinsinden] İki zincirde RX'in etkin olduğu süre |
TX_iPA_Active_One_Chain_Time |
4 sekizlik | [ms cinsinden] Bir zincirde etkin olan dahili TX'in süresi |
TX_iPA_Active_Two_Chain_Time |
4 sekizlik | [ms cinsinden] İki zincirde etkin olan dahili TX'in süresi |
TX_ePA_Active_One_Chain_Time |
4 sekizlik | [ms cinsinden] Bir zincirde etkin olan harici TX'in süresi |
TX_ePA_Active_Two_Chain_Time |
4 sekizlik | [ms cinsinden] İki zincirde harici TX'in etkin olduğu süre |
BREDR_RX_Active_Scan_total_Time |
4 sekizlik | [ms cinsinden] BR/EDR taramasında RX etkin süresine ait zaman aralığı (ms) |
LE_RX_Active_Scan_total_Time |
4 sekizlik | [ms cinsinden] LE tarama RX etkin süresindeki zaman aralığı (ms) |
Alt etkinlik kodu = 0x58 [Quality_Report_Id = 0x09~0x0A, Gelişmiş RF istatistikleri etkinliği]
Bluetooth Advanced RF (Radyo Frekansı) İstatistikleri etkinliği, Bluetooth denetleyicisinin radyo davranışı hakkında ayrıntılı performans metrikleri sağlar. Etkinlik iki şekilde tetiklenebilir:
- Tetikleyiciye Göre (0x09): Belirli bir komuta yanıt olarak tek seferlik bir rapor gönderilir.
- İzleme ile (0x0A): Denetleyici, belirli bir aralıkta düzenli olarak rapor gönderir.
Etkinliğin parametreleri, belirli bir süre boyunca çeşitli radyo davranışlarını izleyen paket sayaçlarıdır.
Temel metrikler ve amaçları
- İletim gücü istatistikleri: Bu sayaçlar, farklı güç yapılandırmaları kullanılarak gönderilen paketleri izler. Dahili (iPA) ve harici (ePA) güç amplifikatörleri ile çeşitli anten çeşitliliği (Div) veya ışın oluşturma (BF) modları arasında ayrım yapar. Bu, hangi güç ve anten ayarlarının en sık kullanıldığını belirlemeye yardımcı olur.
- Alınan sinyal gücü göstergesi (RSSI) grupları: Bu parametreler, alınan paketleri sinyal güçlerine göre kategorize eder. Rapor, belirli RSSI aralıklarındaki paketlerin sayısını (ör. -90 dBm'den az, -70 ila -75 dBm) sağlayarak bağlantı kalitesiyle ilgili net bir fikir verir. "Zayıf" sinyal gruplarındaki yüksek sayı (örneğin, < -90 dBm), bağlantının zayıf olduğunu gösterir.
- RSSI farkı: Bu metrik, iki alıcı anten arasındaki sinyal gücü farkını ölçer (geçerliyse). Sayaçlar, farklı aralıklarda kaç paketin RSSI farkı <0x0A> olduğunu izler. Büyük bir delta (ör. >11 dBm) değerleri, bir anten diğerinden çok daha güçlü bir sinyal aldığı için parazit veya fiziksel bir engel olduğunu gösterebilir.
- Anten değiştirme ve yeniden iletimler: Bu raporda, denetleyicinin antenler arasında ne sıklıkta geçiş yaptığı sayılır ve yeniden iletilen (ReTX) paketler izlenir. Yüksek sayıda yeniden iletim, genellikle zayıf veya güvenilir olmayan bir bağlantıya işaret eder ve paketlerin yeniden gönderilmesini gerektirir.
- Kanal kalitesi: Bu parametreler, farklı iletişim kanallarının durumuyla ilgili üst düzey bir özet sunar ve RSSI'lerine göre "İyi", "İdare Eder", "Kötü" veya "Çok Kötü" olarak sınıflandırır. Bu sayede, radyo frekansı ortamına dair anında genel bir bakış elde edebilirsiniz.
- TX arabellek sırası: Bu bölümde, denetleyicinin iletim arabelleğinde ACL (Asenkron Bağlantı Odaklı Mantıksal Bağlantı), LECONN (LE Bağlantısı) ve LEISOC (LE Eşzamanlı) gibi farklı bağlantı türleri için bekleyen paketlerin sayısı izlenir. Yüksek arabellek sayısı, ana makineden denetleyiciye akan verilerde bir darboğaz veya sorun olduğunu gösterebilir.
| Alt etkinlik parametresi | Boyut | Amaç |
|---|---|---|
Quality_Report_Id |
1 sekizlik | 0x09: Advance RF Stats By Trigger 0x0A: Advance RF Stats By Monitor |
Extension_info |
1 sekizlik | BQR sürüm bilgileri. BQRv6 için 0x01 BQRv7 için 0x02 |
Report_Time_Period |
4 sekizlik | Performans bilgilerinin toplanacağı süre. Birim: ms |
TX_Power_iPA_BF |
4 sekizlik | iPA BF'nin paket sayacı |
TX_Power_ePA_BF |
4 sekizlik | ePA BF'nin paket sayacı |
TX_Power_iPA_Div |
4 sekizlik | ePA Div'in paket sayacı |
TX_Power_ePA_Div |
4 sekizlik | ePA Div'in paket sayacı |
RSSI_chain_50 |
4 sekizlik | RSSI zincirinin paket sayacı > -50 dBm |
RSSI_chain_50_55 |
4 sekizlik | -50 dBm ~ >-55 dBm arasındaki RSSI zincirinin paket sayacı |
RSSI_chain_55_60 |
4 sekizlik | -55 dBm ~ >-60 dBm arasındaki RSSI zincirinin paket sayacı |
RSSI_chain_60_65 |
4 sekizlik | -60 dBm ~ >-65 dBm arasındaki RSSI zincirinin paket sayacı |
RSSI_chain_65_70 |
4 sekizlik | -65 dBm ~ >-70 dBm arasındaki RSSI zincirinin paket sayacı |
RSSI_chain_70_75 |
4 sekizlik | -70 dBm ~ >-75 dBm arasındaki RSSI zincirinin paket sayacı |
RSSI_chain_75_80 |
4 sekizlik | -75 dBm ~ >-80 dBm arasındaki RSSI zincirinin paket sayacı |
RSSI_chain_80_85 |
4 sekizlik | -80 dBm ~ >-85 dBm arasındaki RSSI zincirinin paket sayacı |
RSSI_chain_85_90 |
4 sekizlik | -85 dBm ~ >-90 dBm arasındaki RSSI zincirinin paket sayacı |
RSSI_chain_90 |
4 sekizlik | RSSI zincirinin paket sayacı < -90 dBm |
RSSI_delta_2 |
4 sekizlik | RSSI delta < 2 dBm olan paket sayısı |
RSSI_delta_2_5 |
4 sekizlik | 2 dBm ~ 5 dBm arasındaki RSSI delta'sının paket sayacı |
RSSI_delta_5_8 |
4 sekizlik | 5 dBm ~ 8 dBm arasındaki RSSI delta değerinin paket sayısı |
RSSI_delta_8_11 |
4 sekizlik | 8 dBm ~ 11 dBm arasındaki RSSI farkının paket sayısı |
RSSI_delta_11 |
4 sekizlik | RSSI delta > 11 dBm olan paket sayısı |
Antenna_Switch_Count |
4 sekizlik | Anten değiştirme etkinliğinin paket sayacı |
ReTX_iPA_BF |
4 sekizlik | En son dönemdeki ReTX_iPA_BF paket sayacı |
ReTX_ePA_BF |
4 sekizlik | En son dönemdeki ReTX_ePA_BF paket sayacı |
ReTX_iPA_Div |
4 sekizlik | En son dönemdeki ReTX_iPA_Div paket sayacı |
ReTX_ePA_Div |
4 sekizlik | En son dönemdeki ReTX_ePA_Div paket sayacı |
Channel_count_Good |
1 sekizlik | RSSI'si Bin-1 (<-90) içinde olan kanal sayısı |
Channel_count_OK |
1 sekizlik | RSSI'si Bin-2 (-90~-76) aralığında olan kanal sayısı |
Channel_count_Bad |
1 sekizlik | RSSI'si Bin-3 (-76~-50) aralığında olan kanal sayısı |
Channel_count_VeryBad |
1 sekizlik | RSSI'si Bin-4 (>-50) aralığında olan kanal sayısı |
TX_buffer_Queue_Count |
4 sekizlik | En son zaman aralığında arabellek kuyruğu durumu denetleyicisi TX arabelleğinin sayacı [0:3] ACL_1 [4:7] ACL_2 [8:11] LECONN_1 [12:15] LECONN_2 [16:19] LEISOC_1 [20:23] LEISOC_2 [24:27] LEBroadcast [28:31] rsvd |
Alt etkinlik kodu = 0x58 [Quality_Report_Id = 0x0B~0x0C, Controller Health Monitoring event]
Bluetooth Kumanda Durumu İzleme etkinliği, kumandanın çalışma durumunun özetini sağlar. Etkinlik iki şekilde tetiklenebilir:
- Tetikleyiciye Göre (0x09): Belirli bir komuta yanıt olarak tek seferlik bir rapor gönderilir.
- İzleme ile (0x0A): Denetleyici, belirli bir aralıkta düzenli olarak rapor gönderir.
Bluetooth Kumanda Durumu İzleme etkinliği, kumandanın çalışma durumunun özetini sağlayan bir teşhis aracıdır. Bu etkinlik, Bluetooth Kalite Raporu (BQR) çerçevesinin bir parçasıdır ve bağlantı, güç yönetimi ve zamanlama sorunlarını ayıklamak için kullanılır. Tek seferlik bir rapor olarak veya sürekli izleme sağlamak için düzenli olarak gönderilebilir.
Temel metrikler ve amaçları
- HCI Paket Sayaçları: Etkinlik, Ana Bilgisayardan Denetleyiciye ve tam tersi yönde gönderilen toplam paket sayısını izler. Bu sayaçlar, yazılım yığını ile Bluetooth denetleyici çipi arasındaki iletişim kanalı olan Ana Bilgisayar Denetleyici Arayüzü (HCI) aktarımıyla ilgili sorunları ayıklamak için gereklidir.
- Paket uzunlukları: Etkinlik, gönderilen ve alınan son HCI paketinin uzunluğunu bildirir. Bu sayede verilerin doğru şekilde iletildiğinden ve beklenmedik boyut sorunları olmadığından emin olabilirsiniz.
- Uyandırma Sinyali Sayıları: Raporda, BT_Wake ve HOST_Wake pinlerinin onaylanma sayısı yer alır. Bu fiziksel sinyaller, ilgili öğeleri düşük güç durumlarından uyandırmak için kullanıldığından güç yönetimi açısından kritik öneme sahiptir. Bu sayıları izlemek, beklenmedik uyanmalar veya uyku moduna girilememesi gibi güçle ilgili sorunların hata ayıklanmasına yardımcı olur.
- Zaman damgaları: Etkinlik, son uyandırma sinyalinin ve son HCI sıfırlamasının zamanı da dahil olmak üzere çeşitli zaman damgaları sağlar. Bu zaman damgaları, zamanlamayla ilgili sorunları gidermeye yardımcı olur ve belirli etkinliklerin ne zaman gerçekleştiğiyle ilgili bir referans noktası sağlar.
- Gözetim Zamanlayıcısı: Etkinliğin, kontrol cihazının gözetim zamanlayıcısının süresinin dolmak üzere olduğuna dair erken uyarı olarak oluşturulup oluşturulmadığını belirten belirli bir işaret. Bu, olası kontrol cihazı donmaları veya arızaları için önemli bir uyarıdır.
- Bağlantı Durumu: Rapor, BR/EDR, LE ve CIS (Bağlı Eşzamanlı Akış) bağlantılarının toplam sayısı dahil olmak üzere etkin bağlantıların mevcut durumunu özetler. Ayrıca, etkin SCO (Senkron Bağlantı Odaklı) bağlantı olup olmadığını da gösterir. Bu bilgiler, kontrol cihazının mevcut bağlantı yükünün anlık görüntüsünü sağlar.
| Alt etkinlik parametresi | Boyut | Amaç |
|---|---|---|
Quality_Report_Id |
1 Sekizlik | 0xB~0xC 0x0B: tek seferlik veya etkinliğe bağlı raporlar 0x0C: düzenli raporlar. |
Packet_Count_Host_to_Controller |
4 Sekizli | HCI aktarımı üzerinden Ana Makine'den Denetleyici'ye gönderilen paketlerin toplam sayısı. Bu alan, HCI (ör. UART) sorunlarında hata ayıklamak için kullanılır. Davranış: Denetleyici HCI sıfırlama işlemi aldığında sayaçlar sıfırlanır. |
Packet_Count_Controller_to_Host |
4 Sekizli | Ana makineye gönderilen HCI Event paketlerinin toplam sayısı. Bu alan, HCI'da (ör. UART) sorunları. Davranış: Kumanda HCI sıfırlama işlemi aldığında sayaçlar sıfırlanır. |
Last_Packet_Length_Host_to_Controller |
2 sekizlik | Ana UART'a gönderilen son HCI paketinin uzunluğu. Not: HCI Paket Uzunluğu en fazla 2 oktet (HCI, ACL, SCO, ISO dahil) |
Last_Packet_Length_Controller_To_host |
2 sekizlik | Ana makine UART'ından alınan son HCI paketinin uzunluğu. Not: HCI Paket Uzunluğu en fazla 2 sekizli (HCI, ACL, SCO, ISO dahil) |
Total_BT_Wake_Count |
4 Sekizli | Ana makine öğesi tarafından yapılan BT_Wake pin onaylarının toplam sayısı. Bu alan, güçle ilgili sorunlarda hata ayıklama için teşhis aracı olarak kullanılır. Davranış: Kumanda HCI sıfırlama işlemi aldığında sayaçlar sıfırlanır. |
Total_HOST_Wake_Count |
4 Sekizli | Denetleyici tarafından başlatılan Host_Wake pin onaylarının toplu hesaplaması. Bu alan, güçle ilgili sorunlarda hata ayıklama için teşhis aracı olarak kullanılır. Davranış: Denetleyici HCI sıfırlama işlemi aldığında sayaçlar sıfırlanır. |
Last_BT_Wake_TimeStamp |
4 Sekizli | Ana makinenin BT_Wake pin'ini onayladığı son zaman damgası.Bu alan, güç sorunlarını ayıklamak amacıyla uygulanır. |
Last_HOST_Wake_TimeStamp |
4 Sekizli | Kumandanın Host_Wake pinini onayladığı en son zaman damgası. Bu alan, güç sorunlarında hata ayıklamak için kullanılır. |
Reset_Timestamp |
4 Sekizli | En son HCI sıfırlama işleminin tamamlandığını gösteren zaman damgası. Bu alan, zamanlamayla ilgili sorunların çözülmesini kolaylaştırmak amacıyla kullanılır. Bu öğe, diğer tüm öğelerin referans olarak alındığı ilk kayıt noktası olmalıdır. |
Current_Timestamp |
4 Sekizli | Bu etkinlik oluşturulduğunda geçerli olan zaman. Bu alan, zamanlama farklılıklarını gidermek için kullanılır. Diğer tüm öğelerin referans verdiği tetikleyici kayıt noktası olarak kullanılmalıdır. |
Is_WatchDog_Timer_About_To_Expire |
4 Sekizli | Bu durum denetimi etkinliğinin, kontrol cihazı tarafından watchdog geçerlilik bitimiyle ilgili erken uyarı olarak oluşturulduğunu belirten işaret. Geçerli zaman damgası, olayın gerçekleşme zamanını gösterir. |
Coex_Status_Mask |
2 sekizlik | Bit 0 - Ayrılmış |
Total_Links_BR_EDR_LE_Active |
1 Sekizlik | Etkin durumdaki BR/EDR/LE'nin toplam bağlantı sayısı. |
Total_Links_BR_EDR_Sniff |
1 Sekizlik | Sniff/Idle durumundaki BR/EDR'nin toplam bağlantı sayısı. |
Total_Links_CIS |
1 Sekizlik | ISO'nun toplam bağlantı sayısı. |
Is_SCO_Active |
1 Sekizlik | SCO bağlantısının şu anda etkin olup olmadığını kontrol etme göstergesi. |
Alt etkinlik kodu = 0x58 [Quality_Report_Id = 0x11 ~ 0x13, Log Dump related event]
| Subevent Parametresi | Boyut | Amaç |
|---|---|---|
Quality_Report_Id |
1 sekizlik |
0x00 ~ 0x10: Ayrılmış. 0x11: LMP/LL mesaj izleme. 0x12: Bluetooth çoklu bağlantı/birlikte var olma planlama izi. 0x13: Denetleyici hata ayıklama bilgileri veri dökümü. 0x14 ~ 0xFF: Ayrılmış. |
Connection_Handle |
2 sekizlik | Bağlantı tutma yeri. |
| Tedarikçiye Özel Parametre | (Parametre Toplam Uzunluğu - 4) * sekizlikler | LMP mesaj izinin, Bluetooth Multi-link/Coex zamanlama izinin ve denetleyici hata ayıklama bilgileri veri dökümünün satıcıya özel biçimi. |
ISO Link Feedback alt etkinliği
Alt etkinlik kodu = 0x5C
Etkinleştirildiğinde bu etkinlik, her ISO aralığında oluşturulmalıdır.
Etkinleştirme
Etkinleştirme,HCI_LE_Setup_ISO_Data_Path standart komutunda tedarikçi Data_Path_ID kodu
0x19 seçilerek gerçekleştirilir.
HCI_Configure_Data_Path komutu, Data_Path_ID 0x19 olarak ve Vendor_Specific_Config_Length 0 olarak ayarlanmışsa bu komutun alınması üzerine denetleyiciden herhangi bir işlem beklenmese bile kabul edilmelidir.
Gönderme zamanı
Etkinlik, bir ISO aralığının (CIG veya BIG bağlantı noktası) başlangıcından sonraki ISO aralığına kadar yayınlanır. Denetleyici,Anchor_Point_Delay kullanarak ISO aralığının geçerli başlangıcıyla ilgili gecikmeyi gösterir.
Kumanda senkronizasyonu
Bir ISO aralığının başında denetleyici, geçerli değeri yapılandırılmışISO_Interval ÷ SDU_Interval ile artırarak StreamSN değerini hesaplar. İlk aralıkta bu değer 0 olarak başlatılır.Ardından, ISO FIFO'daki her paket için aşağıdakiler geçerlidir:
-
Denetleyici, iki sıra numarası arasındaki sarmalama farkı SNdiff değerini hesaplar:
SNdiff = (SDUSN - StreamSN + 0x10000) mod 0x10000 (SNdiff + (FT-1) × ISO_Interval ÷ SDU_Interval) mod 0x10000 <= (FT-1) × ISO_Interval ÷ SDU_Intervalolduğunda:
Paket, yeniden iletim penceresindedir. Önceki aralıklarla iletilecek şekilde planlanmış olmalı ve artık yeniden iletilebilir olmalıdır. Bu durum söz konusu değilse (iletim için planlanmamışsa) geç alınmıştır. Bu durum,In_Statuskullanılarak ana makineye bildirilmelidir. Bu tür paketler atılabilir veya iletim için planlanabilir. Seçim, uygulamaya bağlıdır.- Alternatif olarak,
SNdiff < ISO_Interval ÷ SDU_Interval:
Paketin, bu etkinlikten temizleme zaman aşımı gerçekleşene kadar iletilmesi planlanır. - Veya
SNdiff >= ISO_Interval ÷ SDU_IntervalveSNdiff <= Max_Forward_Buffers:
olduğunda: Paket gelecekteki bir zamana aittir ve sonraki bir etkinlikle iletilecektir. Paketler sırayla gönderildiğinden bu koşul, bu aralık için paket aramasını sonlandırır.
Düzenleyen tarafından kullanılan arabellekler denetleyiciye iletilmez ancakMax_Forward_Buffers = 16ile sınırlıdır. - Veya yukarıdaki koşullardan hiçbiri karşılanmadığında:
Paket atılır, temizleme zaman aşımı sınırına ulaşılır veya hatalı biçimlendirilmiş bir paket alınır.
| Alt etkinlik parametresi | Boyut | Amaç |
|---|---|---|
Connection_Handle |
2 sekizlik |
CIS veya BIS'nin bağlantı tutma noktası Aralık: 0x0000 - 0x0EFF |
Sequence_Number |
2 sekizlik |
Akışın, denetleyici tarafından yönetilen sıra numarası. CIS veya BIS oluşturulduğunda 0 olarak başlatılır ve her ISO aralığında ISO_interval ÷ SDU_Interval olarak tanımlanan ISO Eşzamanlı aralığına göre SDU sayısı kadar artırılır.
|
Anchor_Point_Delay |
2 sekizlik |
Etkinliğin oluşturulması ile etkili BIG veya CIG
bağlantı noktası ya da ISO aralığının başlangıcı arasındaki mikrosaniye cinsinden gecikme.
Etkili sabitleme noktası zaman damgası şunlara göre tanımlanır:Event generation time - Anchor_Point_Delay
Aralık: 0 ile mikrosaniye cinsinden ISO aralığı |
In_Status |
2 sekizlik |
Denetleyici ISO arabellek durumu Bir ISO aralığının başında, SDU<0xx0A> (Sequence_Number + i) mod 0x10000 kullanılabilir olduğunda her bit bi ayarlanır. Kullanılamadığında SDU, Not received from the host olarak tanımlanır.i değeri 0 ile ISO_Interval ÷ SDU_Interval - 1 arasında değişir.
i'nin diğer değerleri için bitler 0 olarak ayarlanır.
|
Tx_Status |
2 sekizlik |
Sıra numaralı SDU'lara göre iletim durumu:(Sequence_Number - Flush_Timeout × ISO_Interval ÷ SDU_Interval + i + 0x10000)
mod 0x10000
Tanımlanan SDU'nun sıra numarasına göre tüm PDU'ları başarıyla iletilip onaylandığında her bit bi ayarlanır. i değeri 0 ile ISO_Interval ÷ SDU_Interval - 1 arasında değişir.
i'nin diğer değerleri için bitler 0 olarak ayarlanır.Yayın grubunda iletimin her zaman onaylanması gerekir. |
Birden çok reklamveren desteği
Çoklu reklamveren desteğinin amaçları şunlardır:
-
Birden fazla reklamı destekleme özelliği
(
max_advt_instances) - Farklı iletim güçleri sayesinde değişken aralık
- Farklı reklam içeriği
- Her reklamveren için ayrı ayrı yanıtlar
- Her reklamveren için gizlilik (izlenemez)
- Bağlanabilir
Bu spesifikasyonu mevcut standartlara yakın tutmak için aşağıdaki tedarikçiye özel komutlar sağlanır. Bluetooth Core 4.1 Spesifikasyonu'ndan türetilirler.
LE_Multi_Advt_Command
OCF: 0x154
| Komut parametresi | Boyut | Amaç |
|---|---|---|
Multi_advt_opcode |
1 sekizlik |
0x01 - Set_Advt_Param_Multi_Sub_Cmd0x02 - Set_Advt_Data_Multi_Sub_Cmd0x03 - Set_Scan_Resp_Data_Multi_Sub_Cmd0x04 - Set_Random_Addr_Multi_Sub_Cmd0x05 - Set_Advt_Enable_Multi_Sub_Cmd
|
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Multi_advt_opcode |
1 sekizlik |
0x01 - Set_Advt_Param_Multi_Command0x02 - Set_Advt_Data_Multi_Command0x03 - Set_Scan_Resp_Data_Multi_Command0x04 - Set_Random_Addr_Multi_Command0x05 - Set_Advt_Enable_Multi_Command
|
LE_Multi_Advt_Command: Set_Advt_Param_Multi_Sub_Cmd
Temel referans: Bluetooth Core 4.1 Specification, sayfa 964 (LE Set Advertising Parameter Command)
Alt OCF: 0x01
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
Advertising_Interval_Min |
Spesifikasyona göre | Spesifikasyona göre |
Advertising_Interval_Max |
Spesifikasyona göre | Spesifikasyona göre |
Advertising_Type |
Spesifikasyona göre | Spesifikasyona göre |
Own_Address_Type |
Spesifikasyona göre | Spesifikasyona göre |
Own_Address |
Spesifikasyona göre | Spesifikasyona göre |
Direct_Address_Type |
Spesifikasyona göre | Spesifikasyona göre |
Direct_Address |
Spesifikasyona göre | Spesifikasyona göre |
Advertising_Channel_Map |
Spesifikasyona göre | Spesifikasyona göre |
Adverstising_Filter_Policy |
Spesifikasyona göre | Spesifikasyona göre |
Advertising_Instance |
1 sekizlik | Yukarıdaki parametrelerin bir örnek için geçerliliğini belirtir. |
Tx_power |
1 sekizlik |
Transmit_Power Birim: dBm (işaretli tam sayı) Aralık: -70 ila +20 |
Own_Address parametresi, bu çoklu reklam örneği ayarlanırken ana makine tarafından yapılandırılmış bir adres olabilir. Bu, ilk işaret iletimi sırasında çözümlenebilir bir özel adresin olmasını sağlar. Bir örnekteki reklam, bağlantıdan bağımsız olarak yayınlanmaya devam eder. Ana makine BT yığını, bağlantı kurulduktan sonra bir örnekte reklam başlatma komutu verebilir.
Bu komut için, yukarıdaki komuta göre Bluetooth Core 4.1 Spesifikasyonu'nda belirtildiği şekilde bir Command Complete (Komut Tamamlama) etkinliği oluşturulur. Reklam örneği veya Tx_Power parametreleri geçersizse denetleyici, başarılı olmayan (geçersiz parametre) bir kodla yanıt verir.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Multi_advt_opcode |
1 sekizlik | 0x01 [Set_Advt_Param_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Advt_Data_Multi_Sub_Cmd
Temel referans: Bluetooth Core 4.1 Specification, sayfa 969 (LE Set Advertising Data Command)
Alt OCF: 0x02
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
Advertising_Data_Length |
Spesifikasyona göre | Spesifikasyona göre |
Advertising_Data |
Spesifikasyona göre | Spesifikasyona göre |
Advertising_Instance |
1 sekizlik | Yukarıdaki parametrelerin bir örnek için geçerliliğini belirtir. |
Bu komut için, yukarıdaki komuta göre Bluetooth Core 4.1 Spesifikasyonu'nda belirtildiği şekilde bir Command Complete etkinliği oluşturulur. Reklam ö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 sekizlik | Komut Tamamlandı durumu |
Multi_advt_opcode |
1 sekizlik | 0x02 [Set_Advt_Data_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Scan_Resp_Data_Multi_Sub_Cmd
Temel referans: Bluetooth Core 4.1 Specification, sayfa 970 (LE Set Scan Response Data Command)
Sub OCF: 0x03
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
Scan_Response_Data_Length |
Spesifikasyona göre | Spesifikasyona göre |
Scan_Response_Data |
Spesifikasyona göre | Spesifikasyona göre |
Advertising_Instance |
1 sekizlik | Yukarıdaki parametrelerin bir örnek için geçerliliğini belirtir. |
Bu komut için, yukarıdaki komuta göre Bluetooth Core 4.1 Spesifikasyonu'nda belirtildiği şekilde bir Command Complete etkinliği oluşturulur. Reklam örneği veya Tx_Power parametreleri geçersizse denetleyici, başarı kodu olmayan bir kodla (geçersiz parametre) yanıt verir.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Multi_advt_opcode |
1 sekizlik | 0x03 [Set_Scan_Resp_Data_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Random_Addr_Multi_Sub_Cmd
Temel referans: Bluetooth Core 4.1 Specification, sayfa 963 (LE Set Random Address Command)
Alt OCF: 0x04
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
| Rastgele Adres | Spesifikasyona göre | Spesifikasyona göre |
Advertising_Instance |
1 sekizlik | Yukarıdaki parametrelerin bir örnek için geçerliliğini belirtir. |
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Multi_advt_opcode |
1 sekizlik | 0x04 [Set_Random_Addr_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Advt_Enable_Multi_Sub_Cmd
Temel referans: Bluetooth Core 4.1 Specification, sayfa 971 (LE Set Advertise Enable Command in that core specification)
OCF: 0x05
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
Advertising_Enable |
1 sekizlik | 1 değeri etkinleştirme anlamına gelir. Başka herhangi bir değer devre dışı bırakma anlamına gelir. |
Advertising_Instance |
1 sekizlik | Yukarıdaki parametrelerin bir örnek için geçerliliğini belirtir. 0 örneği, standart bir HCI örneği anlamına gelir. |
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Multi_advt_opcode |
1 sekizlik | 0x05 [Set_Advt_Enable_Multi_Sub_Cmd] |
Özel adresin çözümü yüklendi
Bu özellik, denetleyici donanım yazılımında veya donanımında özel bir adresi çözerek aşağıdaki avantajları sağlar:
- Ana makinenin özel bir adresi çözümlemesiyle ilgili gecikme
- Ana makineyi uyandırmaktan kaçınarak güç tasarrufu yapma
LE_Set_RPA_Timeout
OCF: 0x15C
| Komut parametresi | Boyut | Amaç |
|---|---|---|
LE_local_IRK |
16 sekizlik | Rastgele çözümlenebilir adresler oluşturmak için kullanılan yerel cihaz IRK'sı. |
tRPA_min |
2 sekizlik |
Saniye cinsinden minimum RPA oluşturma zaman aşımı. Denetleyici, bu zaman aşımından sonraki tüm reklam/tarama/bağlantı etkinlikleri için yeni çözümlenebilir adresler oluşturmalıdır. Geçerli aralık: 300-1800 |
tRPA_max |
2 sekizlik |
Saniye cinsinden maksimum RPA oluşturma zaman aşımı. Denetleyici, bu zaman aşımından önce veya bu zaman aşımı sırasında gerçekleşen tüm reklam/tarama/bağlantı etkinlikleri için yeni çözümlenebilir adresler oluşturmalıdır. Geçerli aralık: tRPA_min-1800
|
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik |
Komutun durumu. Önerilen HCI durum değerleri: 0x00 Başarılı 0x01 Bilinmeyen komut (desteklenmiyorsa) 0x12 Geçersiz komut parametreleri (parametreler verilen aralığın dışındaysa) |
LE_RPA_offload_Command
OCF: 0x155
| Komut parametresi | Boyut | Amaç |
|---|---|---|
RPA_offload_opcode |
1 sekizlik |
0x1 - Müşteriye özel özelliği etkinleştirme 0x2 - Listeye IRK ekleme 0x3 - Listeden IRK kaldırma 0x4 - IRK listesini temizleme 0x5 - IRK listesi girişini okuma |
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Event_RPA_offload_opcode |
1 sekizlik |
0x1 - Müşteriye özel özelliği etkinleştirme 0x2 - Listeye IRK ekleme 0x3 - Listeden IRK kaldırma 0x4 - IRK listesini temizleme 0x5 - IRK listesi girişini okuma |
LE_RPA_offload: Enable_cust_specific_sub_Command
Alt OCF: 0x01
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
enable_customer_specific_feature_set |
1 sekizlik |
0x01 - Yükü boşaltılmış RPA özelliğini etkinleştirme 0x00 - Yükü boşaltılmış RPA özelliğini devre dışı bırakma |
RPA boşaltma, çip özelliğine göre ana makine tarafından etkinleştirilmelidir. LE_Get_Vendor_Capabilities_Command bölümüne bakın.
Her çipin donanım yazılımında farklı bir max_irk_list_sz olabilir.
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Event_cust_specific_feature_opcode |
1 sekizlik | 0x01 [Enable customer-specific feature] |
LE_RPA_offload: Add_IRK_to_list_sub_Command
Alt OCF: 0x02
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
LE_IRK |
16 sekizlik | LE IRK (1. bayt LSB) |
Address_Type |
1 sekizlik |
0: Herkese açık adres 1: Rastgele adres |
LE_Device_Address |
6 sekizlik | IRK ile ilişkili herkese açık veya rastgele adres (1. bayt LSB) |
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Event_cust_specific_feature_opcode |
1 sekizlik | 0x02 [Add IRK to the list] |
LE_IrkList_AvailableSpaces |
1 sekizlik | Mevcut işlemden sonra kullanılabilen IRL liste girişleri |
LE_RPA_offload: Remove_IRK_to_list_sub_Command
Sub OCF: 0x03
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
Address_Type |
1 sekizlik |
0: Herkese açık adres 1: Rastgele adres |
LE_Device_Address |
6 sekizlik | IRK ile ilişkilendirilen genel veya rastgele adres |
Bu komut için bir Command Complete etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Event_cust_specific_feature_opcode |
1 sekizlik | 0x03 [Remove IRK from the list] (Kimlik doğrulama anahtarını listeden kaldırma) |
LE_IrkList_AvailableSpaces |
1 sekizlik | Mevcut işlemden sonra kullanılabilen IRL liste girişleri |
LE_RPA_offload: Clear_IRK_list_sub_Command
Alt OCF: 0x04
| Alt komut parametresi | Boyut | Amaç |
|---|---|---|
| Yok |
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Event_cust_specific_feature_opcode |
1 sekizlik | 0x04 [Clear IRK List] (Clear IRK List) |
LE_IrkList_AvailableSpaces |
1 sekizlik |
Mevcut işlemden sonra kullanılabilir IRL liste 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 sekizlik | IRK listesinin indeksi [0, max_irk_list_sz-1] |
Bu komut için bir Command Complete (Komut Tamamlandı) etkinliği oluşturulur.
| Dönüş parametresi | Boyut | Amaç |
|---|---|---|
Status |
1 sekizlik | Komut Tamamlandı durumu |
Event_cust_specific_feature_opcode |
1 sekizlik | 0x05 [Read IRK List Entry] (IRK Liste Girişini Oku) |
LE_Read_IRK_List_entry |
1 sekizlik | Ana makinenin geri okumasını istediği IRK'nin dizini (maksimum IRK listesi boyutu 32'dir) |
LE_IRK |
16 sekizlik | IRK değeri |
Address_Type |
1 sekizlik |
0: Herkese açık adres 1: Rastgele adres |
LE_Device_Address |
6 sekizlik | IRK ile ilişkili herkese açık veya rastgele adres |
LE_Resolved_Private_Address |
6 sekizlik | Bu IRK'nin çözümlenmiş mevcut çözümlenebilir özel adresi |
Sniff Offload
Sniff Offload özelliği, Sniff modu yönetimini Bluetooth ana makine yığınından Bluetooth denetleyicisine boşaltır. Bu sayede kontrol cihazı, Sniff moduna girme/çıkma zamanlamasını ve yapılandırılabilir Sniff ve Sniff alt derecelendirme parametrelerini uygulayabilir. Ana makine ise Bluetooth profili etkinlik değişikliklerine göre parametre seçimi üzerinde kontrolü korur.
Sniff Offload States
Bu bölümde, Sniff Offload işleviyle ilgili olarak Bluetooth denetleyicisindeki durumlar tanımlanmaktadır. Bluetooth kumandanın Sniff Offload etkinleştirme durumunu belirlemek için iki genel durum tanımlanmıştır. Bluetooth denetleyicisi Sniff Offload Enabled (Koklama Yükü Etkin) durumundayken BR/EDR bağlantısının durumunu belirlemek için bağlantıya özel iki durum tanımlanmıştır.
Global States
Bluetooth kumandanın Sniff Offload etkinleştirme durumunu belirlemek için iki genel durum tanımlanmıştır.
Sniff Offload Disabled State
Bluetooth kumandalar varsayılan olarak "Sniff Offload Disabled" (Koklama Yükü Devre Dışı) durumunda kabul edilir. Bluetooth denetleyicisinin, Bluetooth ana makinesinden verilen HCI_Sniff_Mode, HCI_Exit_Sniff_Mode ve HCI_Sniff_Subrating komutlarını işlemesi beklenir. Bluetooth kumandası, Bluetooth ana makinesi tarafından ayarlanan etkinlik maskesine göre HCI_Mode_Change ve HCI_Sniff_Subrating etkinliklerini de bir Bluetooth ana makinesine yönlendirmelidir.
Sniff Offload Enabled State
Bluetooth denetleyici, Sniff Offload'u etkinleştirmek için "WriteSniffOffloadEnable"ı başarıyla işledikten sonra "Sniff Offload Etkin" durumunda kabul edilir. Bu durumda, Bluetooth denetleyicisinin, Bluetooth ana makinesi tarafından ayarlanan etkinlik maskesi ve Etkinlik Bastırma İşaretleri'nin mantıksal VE işleviyle belirlendiği şekilde HCI_Mode_Change ve HCI_Sniff_Subrating etkinliklerini bir Bluetooth ana makinesine yönlendirmesi beklenir.
Bağlantıya Özgü Durumlar
Bluetooth kumandası "Sniff Offload Enabled" durumundayken her etkin ACL, aşağıda açıklanan iki durumdan birinde olabilir.
Beklemede-Parametre Durumu
Bir ACL, Bluetooth denetleyicisi "Sniff Offload Enabled" durumundayken ancak mevcut ACL için Bluetooth ana makinesi tarafından en az bir kez "WriteSniffOffloadParameters" satıcıya özel komutu verilmediğinde "Beklemede-Parametreler" durumunda kabul edilir.
Kontrol başlatıldı durumu
Bir erişim kontrol listesi, Bluetooth denetleyicisi "Sniff Offload Enabled" (Sniff Offload Etkin) durumundayken ve mevcut erişim kontrol listesi için Bluetooth ana makinesi tarafından en az bir kez "WriteSniffOffloadParameters" satıcıya özel komutu verildiğinde "Control-Started" (Kontrol Başlatıldı) durumunda kabul edilir.
WriteSniffOffloadEnable
OCF: 0x310
| Komut parametresi | Boyut | Amaç |
|---|---|---|
Enable_Sniff_Offload |
1 sekizlik | 0x00 : Devre dışı bırak 0x01 : Etkinleştir |
Subrating_Max_Latency |
2 sekizlik | Maksimum gecikme parametresi, uzak cihazın kullanabileceği maksimum koklama alt hızını hesaplamak için kullanılır. Varsayılan: T*sniff* Latency = N × 0,625 ms (1 Baseband yuvası) Aralık: 0x0002 - 0xFFFE Zaman Aralığı: 1,25 ms - 40,9 sn |
Subrating_Min_Remote_Timeout |
2 sekizlik | Uzak cihazın kullanabileceği minimum koklama modu zaman aşımı (T*sniff_mode_timeout*) Varsayılan: 0x0000 Zaman aşımı = N × 0,625 ms (1 temel bant yuvası) Aralık: 0x0000 - 0xFFFE Zaman Aralığı: 0 sn - 40,9 sn |
Subrating_Min_Local_Timeout |
2 sekizlik | Yerel cihazın kullanabileceği minimum koklama modu zaman aşımı (T*sniff_mode_timeout*). Varsayılan: 0x0000 Zaman aşımı = N × 0,625 ms (1 temel bant yuvası) Aralık: 0x0000 - 0xFFFE Zaman Aralık: 0 sn - 40,9 sn |
Suppress_Mode_Change_Event |
1 sekizlik | 0x00 : Bluetooth denetleyicisi, HCI_Set_Event_Mask komutunda ayarlanan yapılandırmaya tabi olarak HCI Mode_Change etkinliğini ana bilgisayara bildirmelidir. 0x01 : Bluetooth denetleyicisi, HCI Mode_Change etkinliğini ana bilgisayara bildirmemelidir. |
Suppress_Sniff_Subrating_Event |
1 sekizlik | 0x00 : Bluetooth denetleyicisi, HCI_Set_Event_Mask komutunda ayarlanan yapılandırmaya tabi olarak HCI Sniff_Subrating etkinliğini ana makineye bildirmelidir. 0x01 : Bluetooth denetleyicisi, HCI Sniff_Subrating etkinliğini ana makineye bildirmemelidir. |
WriteSniffOffloadParameters
OCF: 0x311
| Komut parametresi | Boyut | Amaç |
|---|---|---|
Connection_Handle |
2 sekizlik | 16 bit BR/EDR ACL bağlantı tutamacı. Aralık: 0x0000 - 0x0EFF |
Sniff_Max_Interval |
2 sekizlik | –Bluetooth SIG Defined range, ordinarily used for entry to Sniff mode. Aralık: 0x0002 - 0xFFFE; yalnızca çift değerler geçerlidir. Zorunlu Aralık: 0x0006 - 0x0540 Süre = N × 0,625 ms Süre Aralığı: 1,25 ms - 40,9 sn –Özel Durumlar 0x0000: "Push-Active" (Aktif İtme) Sniff-Offload Modu'nu seçmek için kullanılır. 0x0001: "Tercih Edilen Etkin" Sniff-Offload Modu'nu seçmek için kullanılır. |
Sniff_Min_Interval |
2 sekizlik | Aralık: 0x0002 - 0xFFFE; yalnızca çift değerler geçerlidir. Zorunlu Aralık: 0x0006 - 0x0540 Zaman = N × 0,625 ms Zaman Aralığı: 1,25 ms - 40,9 sn |
Sniff_Attempts |
2 sekizlik | Koklama girişimi için temel bant alma yuvası sayısı. Uzunluk = N × 1,25 ms Aralığı: 0x0001 - 0x7FFF Zaman Aralığı: 1,25 ms - 40,9 sn Kumanda için Zorunlu Aralık: 1 - T*sniff* ÷ 2 |
Sniff_Timeout |
2 sekizlik | Sniff zaman aşımı için temel bant alma yuvası sayısı. Uzunluk = N × 1,25 ms Aralık: 0x0000 - 0x7FFF Zaman Aralığı: 0 ms - 40,9 sn Denetleyici için Zorunlu Aralık: 0 - 0x0028 |
Link_Inactivity_Timeout |
2 sekizlik | Zaman aşımı değeri (milisaniye). Link_Inactivity Timer, her HCI-ACL işleminde başlatılır/sıfırlanır. Bu zamanlayıcının süresi dolduğunda denetleyici, Sniff moduna girişi başlatır. |
Subrating_Max_Latency |
2 sekizlik | Maksimum gecikme parametresi, uzak cihazın kullanabileceği maksimum koklama alt hızını hesaplamak için kullanılır. Varsayılan: T*sniff* Latency = N × 0,625 ms (1 Baseband yuvası) Aralık: 0x0002 - 0xFFFE Zaman Aralığı: 1,25 ms - 40,9 sn |
Subrating_Min_Remote_Timeout |
2 sekizlik | Uzak cihazın kullanabileceği minimum koklama modu zaman aşımı (T*sniff_mode_timeout*) Varsayılan: 0x0000 Zaman aşımı = N × 0,625 ms (1 temel bant yuvası) Aralık: 0x0000 - 0xFFFE Zaman Aralığı: 0 sn - 40,9 sn |
Subrating_Min_Local_Timeout |
2 sekizlik | Yerel cihazın kullanabileceği minimum koklama modu zaman aşımı (T*sniff_mode_timeout*). Varsayılan: 0x0000 Zaman aşımı = N × 0,625 ms (1 temel bant yuvası) Aralık: 0x0000 - 0xFFFE Zaman Aralık: 0 sn - 40,9 sn |
Allow_Exit_Sniff_On_Rx |
1 sekizlik | Alım yönlü HCI-ACL işleminde Sniff modundan çıkışı kontrol etmek için kullanılan işaret. 0x00 : Rx'te sniff'ten çıkmayın. 0x01 : Rx alma yönünde HCI-ACL'de Sniff'ten çıkış, HCI üzerinden denetleyiciden ana makineye ACL paketi iletimi olarak tanımlanır. |
Allow_Exit_Sniff_On_Tx |
1 sekizlik | İletim yönünde HCI-ACL işleminde Sniff modundan çıkışı kontrol etmek için kullanılan işaret. 0x00 : Tx'te sniff'ten çıkmayın. 0x01 : Exit Sniff on Tx Transmit-direction HCI-ACL is defined as ACL packet transmission from host to controller over HCI. |