HCI gereksinimleri

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:
  • iso_link_feedback_support
  • BQRv7
  • sniff_offload_support
V1.04:
  • BQRv6
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 - immediate
0x01 - on_found
0x02 - 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:
  • Şu anda yerel ad dizesindeki maksimum karakter sayısı 29'dur.
  • İşlem "Temizle" (0x2) olduğunda geçerli değildir.

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:
  • Şu anda yerel ad dizesindeki maksimum karakter sayısı 29'dur.
  • İşlem "Temizle" (0x2) olduğunda geçerli değildir.
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:
  • Şu anda yerel ad dizesindeki maksimum karakter sayısı 29'dur.
  • İşlem "Temizle" (0x2) olduğunda geçerli değildir.
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 gelir
APCF_Action değeri 0x02 (Temizle) olduğunda yoksayılır.
APCF_AD_DATA Değişken boyutu Değişken boyutlu, APCF_AD_DATA_Length
değ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_Length
temel alınarak değişken boyutlu APCF_Action 0x02 (Temizle) olduğunda yoksayılır
APCF_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 0: Aktarım Keşfi Hizmeti filtresini destekleme
  • Bit 1: Reklam türü filtresini destekleme
  • Bit 2 ~15: Gelecekte kullanılmak üzere ayrılmıştır

Bit değeri

  • 0 = Desteklenmiyor
  • 1 = Destekleniyor

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.
  • 0x00 - SCMS-T üst bilgisi dahil edilmedi.
  • 0x01 - SCMS-T üstbilgisi dahil.

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.
Sekizli 0: Blok uzunluğu | Alt bantlar | Tahsis yöntemi
Sekizli 1: Minimum bit havuzu değeri
Sekizli 2: Maksimum bit havuzu değeri
Sekizli 3: Örnekleme sıklığı | Kanal modu
Sekizli 4-31: ayrılmış

AAC Codec:

A2DP v1.3'teki AAC Codec'e özgü bilgi öğelerine bakın
Sekizli 0: Nesne Türü
Sekizli 1; b7: VBR
Sekizli 2-31: ayrılmış

LDAC Codec'i:

Sekizli 0-3: Tedarikçi kimliği
0x0000012D

Sekizli 4-5: Codec kimliği
0x00AA - LDAC
Diğer tüm değerler ayrılmıştır.

Sekizli 6: Bit Hızı Dizini:
0x00 - Yüksek
0x01 - Orta
0x02 - Düşük
0x03 - 0x7E - Ayrılmış
0x7F - ABR (Uyarlanabilir Bit Hızı)
0x80 - 0xFF - Ayrılmış

7. sekizli: LDAC Kanal Modu
0x01 - Stereo
0x02 - Çift
0x04 - Mono
Diğerleri ayrılmıştır.

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
0x01 - Sil
0x02 - Temizle
0x03 - Tek seferlik sorgu

Silme işlemi, belirli kalite etkinliklerinin raporlarını temizler.
Temizle, tüm kalite etkinlikleri raporlamasını temizler (BQR_Quality_Event_Mask parametresi yok sayılabilir).

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.
Bit 1: Yaklaşan LSTO etkinliğini (ACL/(e)SCO/ISO için) etkinleştirmek üzere ayarlanır.
Bit 2: A2DP Ses Kesintisi etkinliğini etkinleştirmek için ayarlanır.
Bit 3: Set to enable (e)SCO Voice Choppy event.
Bit 4: Kök iltihabı etkinliğini etkinleştirmek için ayarlanır.
Bit 5: Enerji izleme modunu etkinleştirmek için ayarlanır.
Bit 6: LE Audio'da kesintili etkinlikleri etkinleştirmek için ayarlanır.
Bit 7: Bağlantı hatası etkinliğini etkinleştirmek için ayarlanır.
Bit 8: Gelişmiş RF İstatistikleri modu etkinlik tetikleyicisini etkinleştirmek için ayarlanır.
Bit 9: Periyodik Gelişmiş RF İstatistikleri raporunu etkinleştirmek için ayarlanır.
Bit 10: Denetleyici sağlığı izleme mekanizması etkinlik tetikleyicisini etkinleştirmek için ayarlanır. (BQRv7'de eklendi)
Bit 11: Denetleyici sağlığı izleme mekanizmasının düzenli olarak rapor vermesini sağlamak için ayarlanır. (BQRv7'de eklendi)
Bit 12 ~ 14: Ayrılmış.
Bit 15: Tedarikçiye özel kalite etkinliklerini etkinleştirmek için ayarlanır.
Bit 16: LMP/LL ileti izlemeyi etkinleştirmek için ayarlanır.
Bit 17: Bluetooth çoklu bağlantı/birlikte var olma planlama izini etkinleştirmek için ayarlanır.
Bit 18: Denetleyici hata ayıklama bilgileri mekanizmasını etkinleştirmek için ayarlanır.
Bit 19: Reserved for offload debug information.
Bit 20: UART Geçmişi Dökümü Etkinliği tetikleyicisi. (BQRv7'de eklendi)
Bit 21 ~ 30: Ayrılmış.
Bit 31: Tedarikçiye özel izlemeyi 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
Varsayılan: 0 (Aralık için sınırlama yoktur.)
Aralık: 0 ~ 65535 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
Varsayılan: 1
Aralık: 0 ~ 4294967295 (0: 1'e eşit olarak ayarlanır)

Not: 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) mevcut
0x01: 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 sekizli
RSSI[0]: 1 sekizli
Timestamp[0]: 2 sekizli
Adv packet_len[0]: 1 sekizli
Adv_packet[0]: Adv_packet_len sekizli
Scan_data_resp_len[0]: 1 sekizli
Scan_data_resp[0]: Scan_data_resp 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ı.

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.
Bu değer, mutlak alıcı sinyal gücü değeri olmalıdır.
Aralık: -127 - +20

SNR 1 sekizlik [dB cinsinden]

Belirtilen Connection_Handle için sinyal-gürültü oranı (SNR) değeri.
Denetleyici, bağlantı tarafından kullanılan tüm kanalların ortalama SNR'sini sağlamalıdır.

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ı.
Denetleyici, kaç bayt verinin bırakıldığını sayar.
Bu sayı, toplantıyı düzenleyene bildirim gönderildikten sonra sıfırlanır.

Buffer_Underflow_Bytes 4 sekizlik [in Byte]

Son etkinlikten bu yana arabellek taşması sayısı.
Bu sayı, toplantıyı düzenleyene bildirim gönderildikten sonra sıfırlanır.

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

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_Interval olduğ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_Status kullanı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_Interval ve SNdiff <= 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 ancak Max_Forward_Buffers = 16 ile 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_Cmd
0x02 - Set_Advt_Data_Multi_Sub_Cmd
0x03 - Set_Scan_Resp_Data_Multi_Sub_Cmd
0x04 - Set_Random_Addr_Multi_Sub_Cmd
0x05 - Set_Advt_Enable_Multi_Sub_Cmd

Bu komut için bir 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_Command
0x02 - Set_Advt_Data_Multi_Command
0x03 - Set_Scan_Resp_Data_Multi_Command
0x04 - Set_Random_Addr_Multi_Command
0x05 - Set_Advt_Enable_Multi_Command

LE_Multi_Advt_Command: Set_Advt_Param_Multi_Sub_Cmd

Temel referans: Bluetooth Core 4.1 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.