HCI gereksinimleri

Ana Makine Denetleyici Arayüzü (HCI), Bluetooth denetleyiciyle etkileşime geçmek için kullanılır.

Bu belgede, Bluetooth (BT) ve Bluetooth Düşük Enerji (BDE) HCI gereksinimlerinin listesi verilmiştir. Amaç, aşağıda açıklanan özellik grubunu kullanabilmek için ana makine BT yığını tedarikçilerinin ve BT denetleyicisi tedarikçilerinin bu platform koşullarına uymasını sağlamaktır.

Bu dokümanda Bluetooth Core 5.2 Spesifikasyonu "spesifikasyon" olarak adlandırılmaktadır. Bluetooth Core 5.2 Spesifikasyonu, diğer kabul edilen belgelerle birlikte Bluetooth SIG web sitesinde bulunabilir.

Genel tasarıma genel bakış

Çip özellikleri ve yapılandırması

Açık bir platform olan Android'de yazılım sürümleri, OEM'ler, satıcılar, platform ve çip özellikleri matrisi bulunur.

Değişen ortamı ve geçişleri yönetmek için bu dokümanda, BT denetleyicilerinin yeteneklerini (standart Bluetooth Core 5.2 spesifikasyonunun ötesinde) göstermesine izin veren bir tasarım felsefesi açıklanmaktadır. Ardından ana makine BT yığını, 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 olarak kullanmaya çalışacağız.

Tedarikçi firmaya özgü özellikler

Tedarikçiye özgü komut: LE_Get_Vendor_Capabilities_Command

OpCode Komut Alanı (OCF): 0x153

Komut parametresi Boyut Amaç
Yok Boş komut parametresi listesi

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
max_advt_instances
(Kullanımdan kaldırıldı)
1 bayt Desteklenen reklam örneği sayısı.

0.98 sürümünden sonra ayrıldı.
Bu parametrenin desteği, Google özellik spesifikasyonu 0.98 ve sonraki sürümlerde sonlandırılmıştır. Bunun yerine, BT spesifikasyonu 5.0 ve sonraki sürümlerde kullanılabilen LE Genişletilmiş Reklamcılık tercih edilmektedir.
offloaded_resolution_of_private-address
(Kullanımdan kaldırıldı)
1 bayt RPA'nın BT çipi özelliği.
Bir çip tarafından destekleniyorsa barındırıcı tarafından etkinleştirilmesi gerekir.
0 = Yetenekli değil
1 = Yetenekli

v0.98'den sonra ayrıldı.
Bu parametrenin desteği, Google özellik spesifikasyonunun 0.98 ve sonraki sürümlerinde, BT spesifikasyonunun 4.2 ve sonraki sürümlerinde bulunan Gizlilik özelliği için kaldırılmıştır.
total_scan_results_storage 2 bayt Tarama sonuçları için depolama alanı (bayt)
max_irk_list_sz 1 bayt Donanım yazılımında desteklenen IRK girişlerinin sayısı
filtering_support 1 bayt Denetleyicide filtreleme desteği
0 = Desteklenmiyor
1 = Desteklenir
max_filter 1 bayt Desteklenen filtre sayısı
activity_energy_info_support 1 bayt Etkinlik ve enerji bilgilerinin raporlanmasını destekler
0 = Desteklenmiyor
1 = Desteklenir
version_supported 2 bayt Desteklenen Google özellik spesifikasyonunun sürümünü belirtir
byte[0] = Büyük sayı
byte[1] = Küçük sayı

v1.04
byte[0] = 0x01
byte[1] = 0x04
total_num_of_advt_tracked 2 bayt OnLost/OnFound amacıyla izlenen reklamverenlerin toplam sayısı
extended_scan_support 1 bayt Genişletilmiş tarama aralığını ve aralığını destekler
debug_logging_supported 1 bayt Denetleyiciden ikili hata ayıklama bilgilerinin günlüğe kaydedilmesini destekler
LE_address_generation_offloading_support
(Kullanımdan kaldırıldı)
1 bayt 0 = Desteklenmiyor
1 = Desteklenir

0.98 sürümünden sonra ayrılmıştır.
Bu parametrenin desteği, Google özellik spesifikasyonunun 0.98 ve sonraki sürümlerinde, BT spesifikasyonunun 4.2 ve sonraki sürümlerinde bulunan Gizlilik özelliği için kaldırılmıştır.
A2DP_source_offload_capability_mask 4 bayt 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 bayt Bluetooth kalitesi etkinliklerinin raporlanmasını destekler
0 = Desteklenmiyor
1 = Desteklenir
dynamic_audio_buffer_support 4 bayt Bluetooth denetleyicide dinamik ses arabelleği desteklenir
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 bayt Bluetooth denetleyicisinde A2DP offload v2 komutlarını destekler (A2DP offload'u başlatma, A2DP offload'u durdurma başlıklı makalelere bakın)
0 = Desteklenmez
1 = Desteklenir

Toplu tarama sonuçları

Tasarım hedeflerinden biri, ana makinede güç tasarrufu sağlamak için Bluetooth LE Tarama Yanıtı etkinlik bildirimlerinin ana makineye nasıl iletildiğini iyileştirmektir.

Denetleyicinin, ana uygulama işleyiciyi sonuçları taraması için bildirme sıklığını azaltarak ana uygulama işleyici daha uzun süre boşta/uyku modunda kalabilir. Bu, ana makinedeki güç tüketimini azaltır. LE_Get_Vendor_Capabilities_Command işlevinin döndürdüğü total_scan_results_storage parametresi, tarama sonuçlarının depolanması için çip kapasitesini gösterir.

Bu özellik, Bluetooth denetleyicisindeki LE Tarama Sonuçları depolama alanının yönetimine ve yapılandırmasına odaklanır. Depolama alanı, reklam verilerini geçici olarak gruplandırmak ve denetleyici tarafından alınan verileri ve meta verileri tarayarak daha sonra barındırıcıya iletmek için kullanılır.

Donanım yazılımı, aynı anda etkinleştirilebilen iki tür gruplandırmayı desteklemelidir:

  • Kısaltılmış. Aşağıdaki bilgi öğelerini içerir: {MAC, TX Gücü, RSSI, Zaman damgası}
  • Tam. Aşağıdaki bilgi öğelerini içerir: {MAC, TX Gücü, RSSI, Zaman damgası, Gelişmiş Veriler, Tarama Yanıtı}

LE_Batch_Scan_Command

OCF: 0x156

Komut parametresi Boyut Amaç
Batch_Scan_opcode 1 bayt 0x1 - Müşteriye özel özelliği etkinleştir
0x2 - Toplu Tarama Depolama parametrelerini ayarla
0x3 - Toplu Tarama parametrelerini ayarla
0x4 - Toplu Tarama Sonucu parametrelerini oku

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur. Müşteriye özgü özelliği etkinleştirmek taramayı başlatmaz.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Batch_Scan_opcode 1 bayt 0x1 - Müşteriye özel özelliği etkinleştir
0x2 - Toplu Tarama Depolama parametrelerini ayarla
0x3 - Toplu Tarama parametrelerini ayarla
0x4 - Toplu Tarama Sonucu parametrelerini oku

LE_Batch_Scan_Command: Müşteriye özel özelliği etkinleştir

Alt OCF: 0x01

Alt komut parametresi Boyut Amaç
enable_customer_specific_feature_set 1 bayt 0x01: Toplu tarama özelliğini etkinleştir
0x00: Toplu tarama özelliğini devre dışı bırak

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Batch_Scan_opcode 1 bayt 0x1 - Müşteriye özel özelliği etkinleştir
0x2 - Toplu Tarama Depolama parametrelerini ayarla
0x3 - Toplu Tarama parametrelerini ayarla
0x4 - Toplu Tarama Sonucu parametrelerini oku

LE_Batch_Scan_Command: Toplu tarama depolama alanı parametresi alt komutunu ayarlama

Alt OCF: 0x02

Alt komut parametresi Boyut Amaç
Batch_Scan_Full_Max 1 bayt Tam stile ayrılan maksimum depolama alanı (% olarak)
[Aralık: 0-100]
Batch_Scan_Truncated_Max 1 sekizlik Kısaltılmış stile ayrılan maksimum depolama alanı (% olarak)
[Aralık: 0-100]
Batch_Scan_Notify_Threshold 1 bayt Her depolama havuzu için bildirim düzeyini (yüzde cinsinden) ayarlama
[Aralık: 0-100]
0 olarak ayarlandığında bildirim devre dışı bırakılır. Tedarikçiye özgü HCI etkinliği oluşturulur (Depolama alanı eşiği ihlali alt etkinliği)

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Batch_scan_opcode 1 bayt 0x02 [Set Batch Scan parameters]

LE_Batch_Scan_Command: Toplu tarama parametresi alt komutunu ayarlama

Alt OCF: 0x03

Alt komut parametresi Boyut Amaç
Batch_Scan_Mode 1 bayt 0x00 – Toplu tarama devre dışıdır
0x01 – Kısaltılmış mod etkindir
0x02 – Tam mod etkindir
0x03 – Kısaltılmış ve Tam mod etkindir
Duty_cycle_scan_window 4 bayt Toplu tarama tarama süresi ("slot sayısı")
Duty_cyle_scan_interval 4 bayt Toplu tarama aralığı dönemi (aralık sayısı)
own_address_type 1 sekizlik 0x00: Herkese açık cihaz adresi
0x01: Rastgele cihaz adresi
Batch_scan_Discard_Rule 1 bayt 0 - En eski reklamı atla
1 - En zayıf RSSI'ye sahip reklamı atla

Bu alt komut, etkinse toplu taramayı başlatır. Kısaltılmış taramada, sonuçlar kısaltılmış biçimde depolanır. Kısaltılmış stilin benzersiz anahtarı = {BD_ADDR, scan_interval}. Bu, her tarama aralığı için yalnızca bir BD_ADDR will kaydedileceği anlamına gelir. Kısaltılmış modda tutulacak kayıt şudur: {BD_ADDR, Tx Gücü, RSSI, Zaman damgası}

Tam mod etkinleştirildiğinde etkin tarama kullanılır ve Tarama Yanıtları kaydedilir. Tam stil benzersiz anahtarı = {MAC, Reklam paketi}, tarama aralığına bakılmaksızın. Tam mod için tutulacak kayıt şudur: {BD_ADDR, Tx Gücü, RSSI, Zaman damgası, Reklam paketi, Tarama Yanıtı}. Tam stilde, aynı reklam paketi farklı tarama aralıklarında birden çok kez görüldüğünde yalnızca bir kez kaydedilir. Ancak, kesikli modda, ilgilenilen şey farklı tarama aralıkları boyunca BA_ADDR'ün görünürlüğüdür (tarama aralığı başına bir kez). RSSI, bir tarama aralığında benzersiz bir reklamın tüm kopyalarının ortalama değeridir.

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Batch_scan_opcode 1 bayt 0x03 [Toplu Tarama Parametrelerini Ayarlama]

LE_Batch_Scan_Command: Grup tarama sonuçlarını okuma alt komutu

Alt OCF: 0x04

Alt komut parametresi Boyut Amaç
Batch_Scan_Data_read 1 bayt 0x01 - Kısaltılmış mod verileri
0x02 - Tam mod verileri

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur. Ana makine bu komutu verdiğinde, kontrol cihazındaki tüm sonuçlar tek bir Komut Tamamlandı etkinliğine sığmayabilir. Ana makine, Komut Tamamlandı etkinliğindeki ilgili sonuçlarda kayıt sayısı 0'ı gösterene kadar bu komutu tekrar tekrar gönderir. Bu durum, denetleyicinin ana makineyle paylaşacak başka kaydı olmadığını gösterir. Her Komut Tamamlandı etkinliği, yalnızca bir tür veri (Tam veya Kısaltılmış) ile ilgili birden fazla kayıt içerebilir.

Denetleyici ve ana makine zaman referansları senkronize edilmemiştir. Zaman damgasının birimi 50 ms'dir. Zaman damgasının değeri, Read_Batch_Scan_Results_Sub_cmd değerinin barındırıcı tarafından verildiği zamana dayanır. Bir komutun donanım yazılımındaki varış zamanı T_c ise donanım yazılımında zaman damgasının alındığı gerçek zaman T_fw'tür. Raporlama zamanı: (T_c - T_fw). T_c ve T_fw , donanım yazılımı zaman alanındadır. Bu sayede ev sahibi, etkinliğin ne kadar zaman önce gerçekleştiğini hesaplayabilir.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Batch_scan_opcode 1 bayt 0x03 [Set Batch Scan parameters]
Batch_Scan_data_read 1 bayt Biçimi (kırpılmış veya tam) tanımlar
num_of_records 1 bayt Batch_Scan_data_read kayıt sayısı
format_of_data Değişken Kısaltılmış Mod:
Address[0]: 6 bayt
Address_Type[0]: 1 bayt
Tx_Pwr[0]: 1 bayt
RSSI[0] : 1 bayt
Timestamp[0]: 2 bayt
[yukarıdaki biçime sahip birden fazla kayıt (num_of_records)]

Tam Mod:
Address[0]: 6 bayt
Address_Type[0]: 1 bayt
Tx_Pwr[0]: 1 bayt
RSSI[0]: 1 bayt
Timestamp[0]: 2 bayt
Adv packet_len[0]: 1 bayt
Adv_packet[0]: Adv_packet_len bayt
Scan_data_resp_len[0]: 1 bayt
Scan_data_resp[0]: Scan_data_resp bayt
[yukarıdaki biçime sahip birden fazla kayıt (num_of_records)]

Reklam Paketi İçerik Filtresi

Denetleyicide Reklam Paketi İçerik Filtresi'ni (APCF) etkinleştirmek/devre dışı bırakmak/ayarlamak için bu seçeneği kullanın. APCF, denetleyicideki reklam raporlarını filtreler ancak düzenli reklamcılığı filtrelemez.

LE_APCF_Command

OCF: 0x157

Komut parametresi Boyut Amaç
APCF_opcode 1 bayt 0x00 - APCF Etkinleştir
0x01 - APCF Filtreleme parametrelerini ayarla
0x02 - APCF Yayıncı Adresi
0x03 - APCF Hizmet UUID'si
0x04 - APCF Hizmet Talebi UUID'si
0x05 - APCF Yerel Adı
0x06 - APCF Üretici Verileri
0x07 - APCF Hizmet Verileri
0x08 - APCF Aktarım Keşfi Hizmeti
0x09 - APCF Reklam Türü Filtresi
0x10 ~ 0xAF - Gelecekte kullanılmak üzere ayrılmıştır
0xB0 ~ 0xDF - Tedarikçi firma için ayrılmıştır
0xE0 ~ 0xFE - Gelecekte kullanılmak üzere ayrılmıştır
0xFF - APCF Genişletilmiş Özellikleri Oku

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt İade durumu
APCF_opcode 1 bayt 0x00 - APCF Etkinleştir
0x01 - APCF Filtreleme parametrelerini ayarla
0x02 - APCF Yayıncı Adresi
0x03 - APCF Hizmet UUID'si
0x04 - APCF Hizmet Talebi UUID'si
0x05 - APCF Yerel Adı
0x06 - APCF Üretici Verileri
0x07 - APCF Hizmet Verileri
0x08 - APCF Aktarım Keşfi Hizmeti
0x09 - APCF Reklam Türü Filtresi
0x10 ~ 0xAF - Gelecekte kullanılmak üzere ayrılmıştır
0xB0 ~ 0xDF - Tedarikçi firma için ayrılmıştır
0xE0 ~ 0xFE - Gelecekte kullanılmak üzere ayrılmıştır
0xFF - APCF Genişletilmiş Özellikleri Oku

LE_APCF_Command: Enable_sub_cmd

Alt OCF: 0x00

Alt komut parametresi Boyut Amaç
APCF_enable 1 bayt 0x01: APCF özelliğini etkinleştir
0x00: APCF özelliğini devre dışı bırak

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
APCF_opcode 1 bayt 0x0 - APCF Etkin
APCF_Enable 1 bayt Etkinleştirme/devre dışı bırakma APCF_enable üzerinden ayarlanır

LE_APCF_Command: set_filtering_parameters_sub_cmd

Bu alt komut, çip üzerinde filtreleme için filtre spesifikasyonu eklemek veya silmek ya da filtre listesini temizlemek için kullanılır.

Alt OCF: 0x01

Alt komut parametresi Boyut Amaç
APCF_Action 1 bayt 0x00 - Ekle
0x01 - Sil
0x02 - Temizle
Silme işlemi, belirli filtreyi ve diğer tablolardaki ilişkili özellik girişlerini temizler.
Temizle seçeneği, tüm filtreleri ve diğer tablolardaki ilişkili girişleri temizler.
APCF_Filter_Index 1 bayt Filtre dizini (0, max_filter-1)
APCF_Feature_Selection 2 bayt Seçilen özellikler için bit maskeleri:
Bit 0: Yayın Adresi filtresini etkinleştirmek için ayarlanır
Bit 1: Hizmet Verileri 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 Talebi UUID kontrolünü etkinleştirmek için ayarlanır
Bit 4: Yerel Ad kontrolünü etkinleştirmek için ayarlanır
Bit 5: Üretici Verileri Kontrolü'nü etkinleştirmek için ayarlanır
Bit 6: Hizmet Verileri Kontrolü'nü etkinleştirmek için ayarlanır
Bit 7: Aktarım Keşfi Hizmeti Kontrolü'nü etkinleştirmek için ayarlanır
Bit 8: Reklam Türü Kontrolü'nü etkinleştirmek için ayarlanır
APCF_List_Logic_Type 2 bayt APCF_Feature_Selection içinde belirtilen her özellik seçimi için mantıksal işlem (bit başına konum).
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çilirse ADV paketi, listedeki girişlerden herhangi birini içeriyorsa filtreden geçer.
APCF_Filter_Logic_Type 1 bayt 0x00: VEYA
0x01: VE
Not: APCF_Feature_Selection'ın ilk üç alanı için mantık türü geçersizdir ve her zaman "VE" mantığıdır. Bunlar yalnızca APCF_Feature_Selection'ün dört alanı (Bit 3 - Bit 6) için geçerlidir.
rssi_high_thresh 1 bayt [dBm cinsinden]
Reklamverenin görüldüğü kabul edilir ancak sinyal yalnızca RSSI yüksek eşiğinden daha yüksekse. Aksi takdirde, donanım yazılımı bu mesajı hiç görmemiş gibi davranmalıdır.
delivery_mode 1 bayt 0x00 - immediate
0x01 - on_found
0x02 - batched
onfound_timeout 2 bayt Yalnızca delivery_mode on_found ise geçerlidir.
[milisaniye cinsinden]
Donanım yazılımının, raporlamadan önce bekleyip ek reklam toplama süresi.
onfound_timeout_cnt 1 bayt Yalnızca delivery_mode on_found ise geçerlidir.
[count]
onFound'daki bir reklam, donanım yazılımında onfound_timeout süre boyunca kalırsa birkaç reklam toplanır ve sayı kontrol edilir. Sayı onfound_timeout_cnt'ü aşarsa hemen ardından OnFound bildirilir.
rssi_low_thresh 1 bayt Yalnızca delivery_mode on_found ise geçerlidir.
[dBm cinsinden]
Alınan paketin RSSI değeri RSSI düşük eşiğinin üzerinde değilse reklamveren paketi görülmemiş olarak kabul edilir.
onlost_timeout 2 bayt Yalnızca delivery_mode on_found ise geçerlidir.
[milisaniye cinsinden]
Bir reklam, bulunduktan sonra lost_timeout süre boyunca art arda görülmezse hemen kaybolmuş olarak bildirilir.
num_of_tracking_entries 2 bayt Yalnızca delivery_mode on_found ise geçerlidir.
[count]
Filtre başına izlenecek reklamverenlerin toplam sayısı.

RSSI değerleri, negatif değerleri temsil etmek için 2'nin tamamlayıcısını kullanmalıdır.

Sunucu, çeşitli filtre kombinasyonlarını yönetmek için APCF_Application_Address_type değerini 0x02 olarak ayarlayarak birden fazla filtre yapılandırabilir (tüm yayıncı adresleri için).

Filtreleme, gruplandırma ve raporlama birbiriyle ilişkili kavramlardır. Her reklamın ve ilgili tarama yanıtının, tüm filtrelerden tek tek geçmesi gerekir. Bu nedenle, ortaya çıkan işlemler (delivery_mode), filtrelemeye yakından bağlıdır. Yayınlama modları şunlardır: report_immediately, batch ve onFound. OnLost değeri, kaybedildiğinde OnFound değerinden sonra geleceğiOnFound

Bu işlem akışı, kavramsal modeli göstermektedir:

Bir reklam (veya tarama yanıtı) çerçevesi alındığında, seri sırada tüm filtrelere uygulanır. Bir reklamın, bir filtreye göre anında raporlanmasına ve farklı bir filtre işlemi nedeniyle aynı reklamın gruplandırılmasına neden olması mümkündür.

RSSI seviyesi eşikleri (yüksek ve düşük), denetleyici tarafından geçerli bir paket alındığında bile çerçevenin filtre işlenmesinde ne zaman görünür olacağını kontrol etme olanağı sunar. Yayınlama modu anında veya toplu olarak ayarlanmışsa bir çerçevenin RSSI'si, daha fazla kontrolör işleme için dikkate alınır. Farklı uygulamalar için farklı raporlama ve gruplandırma davranışları gerekir. Bu sayede birden fazla uygulamanın, donanım yazılımında sonuçların doğrudan raporlanmasına ve/veya toplu olarak işlenmesine aynı anda izin verilir. Örneğin, bir uygulamadan toplu tarama etkinken başka bir uygulama tarafından normal bir LE taraması yayınlandığında bu durum ortaya çıkar. Toplu tarama yayınlanmadan önce çerçeve/uygulama uygun filtreleri ayarlar. Daha sonra, ikinci uygulama normal bir tarama yaptığında önceki gruplandırma devam eder. Ancak normal tarama nedeniyle, bu işlem, LE tarama komutuyla birlikte kavramsal olarak bir null filtre (mevcut tüm filtrelerle birlikte) eklemeye benzer. LE tarama komutu parametreleri etkinken önceliklidir. Normal LE taraması devre dışı bırakıldığında, kontrolör varsa önceki bir toplu taramaya geri döner.

OnFound yayınlama modu, yapılandırılmış filtrelere dayanır. Bir filtrenin başarılı olmasını sağlayan işlemi tetikleyen bir kombinasyon, onLost için izlenecek varlık olarak kabul edilir. İlgili etkinlik, LE reklam 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 Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
APCF_opcode 1 bayt 0x01 - APCF Filtreleme Parametrelerini Ayarlama
APCF_Action 1 bayt Komutun APCF_Action kısmını geri yansıt
APCF_AvailableSpaces 1 bayt Filtreler tablosunda bulunan 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 için kullanılır.

Alt OCF: 0x02

Alt komut parametresi Boyut Amaç
APCF_Action 1 bayt 0x00 - Ekle
0x01 - Sil
0x02 - Temizle
Silme işlemi, belirtilen filtredeki belirtilen yayıncı adresini siler.
Temizle, belirtilen filtredeki tüm yayıncı adreslerini temizler.
APCF_Filter_Index 1 bayt Filtre dizini (0, max_filter-1)
APCF_Broadcaster_Address 6 bayt Yayıncı adres listesine eklenecek veya listeden silinecek 6 baytlık cihaz adresi
APCF_Application_Address_type 1 bayt 0x00: Herkese açık
0x01: Rastgele
0x02: Yok (adres türü yoksayılır)
Reklam raporlarını kimlik adresi türleriyle (0x02, 0x03) filtrelemek için. 0x02 ve 0x03 adres türlerine sahip reklamcılık raporları almak için bu alanı 0x02: NA (adres türünü yoksay) olarak ayarlayın.

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
APCF_opcode 1 bayt 0x02 - APCF Yayıncı Adresi
APCF_Action 1 bayt Komutun APCF_Action kısmını geri yansıt
APCF_AvailableSpaces 1 bayt Yayın adresi tablosunda hâlâ kullanılabilen ücretsiz girişlerin sayısı

LE_APCF_Command: service_uuid_sub_cmd

Bu alt komut, çip üzerinde filtreleme için bir hizmet UUID'si eklemek veya silmek ya da hizmet UUID listesini temizlemek için kullanılır.

Alt OCF: 0x03

Alt komut parametresi Boyut Amaç
APCF_Action 1 bayt 0x00 - Ekle
0x01 - Sil
0x02 - Temizle
Sil, belirtilen filtredeki belirtilen hizmet UUID adresini siler.
Temizle, belirtilen filtredeki tüm hizmet UUID'lerini temizler.
APCF_Filter_Index 1 bayt Filtre dizini (0, max_filter-1)
APCF_UUID 2,4,16 bayt Listeye eklemek veya listeden silmek için hizmet UUID'si (16 bit, 32 bit veya 128 bit).
APCF_UUID_MASK 2,4,16 bayt 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 Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
APCF_opcode 1 bayt 0x03 - APCF Hizmeti UUID'si
APCF_Action 1 bayt Komutun APCF_Action kısmını geri yansıt
APCF_AvailableSpaces 1 bayt Hizmet UUID tablosunda hâlâ kullanılabilir durumdaki ücretsiz girişlerin sayısı

LE_APCF_Command: solicitation_uuid_sub_cmd

Bu alt komut, çip üzerinde filtreleme için bir istek UUID'si eklemek veya silmek ya da istek UUID listesini temizlemek için kullanılır.

Alt OCF: 0x04

Alt komut parametresi Boyut Amaç
APCF_Action 1 bayt 0x00 - Ekle
0x01 - Sil
0x02 - Temizle
Silme işlemi, belirtilen filtredeki istek UUID adresini siler.
Temizle, belirtilen filtredeki tüm istek UUID'lerini temizler.
APCF_Filter_Index 1 bayt Filtre dizini (0, max_filter-1)
APCF_UUID 2,4,16 bayt Listeye eklenecek veya listeden silinecek istek UUID'si (16 bit, 32 bit veya 128 bit).
APCF_UUID_MASK 2,4,16 bayt Listeye eklenecek istek UUID maskesi (16 bit, 32 bit veya 128 bit). APCF_UUID ile aynı uzunlukta olmalıdır.

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
APCF_opcode 1 sekizlik 0x04 - APCF Talep UUID'si
APCF_Action 1 bayt Komutun APCF_Action kısmını geri yansıt
APCF_AvailableSpaces 1 bayt Talep UUID tablosunda hâlâ kullanılabilir durumdaki ü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 için kullanılır.

Alt OCF: 0x05

Alt komut parametresi Boyut Amaç
APCF_Action 1 bayt 0x00 - Ekle
0x01 - Sil
0x02 - Temizle
Silme işlemi, belirtilen filtredeki belirtilen yerel ad dizesini siler.
Temizle, belirtilen filtredeki tüm yerel ad dizelerini temizler.
APCF_Filter_Index 1 bayt Filtre dizini (0, max_filter-1)
APCF_LocName_Mandata_or_SerData Değişken boyut Yerel ad 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.

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
APCF_opcode 1 bayt 0x05 - APCF Yerel Adı
APCF_Action 1 bayt Komutun APCF_Action kısmını geri yansıt
APCF_AvailableSpaces 1 bayt Yerel ad tablosunda hâlâ kullanılabilen ücretsiz girişlerin sayısı

LE_APCF_Command: manf_data_sub_cmd

Bu alt komut, çip üzerinde filtreleme için bir üretici veri dizesi eklemek veya silmek ya da üretici veri dizesi listesini temizlemek için kullanılır.

Alt OCF: 0x06

Alt komut parametresi Boyut Amaç
APCF_Action 1 bayt 0x00 - Ekle
0x01 - Sil
0x02 - Temizle
Silme işlemi, belirtilen filtredeki belirtilen üretici veri dizesini siler.
Temizle, belirtilen filtredeki tüm üretici veri dizelerini temizler.
APCF_Filter_Index 1 bayt Filtre dizini (0, max_filter-1)
APCF_LocName_Mandata_or_SerData Değişken boyut Üretici verileri 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.
APCF_ManData_Mask Değişken boyut Listeye eklenecek üretici veri maskesi. APCF_LocName_or_ManData_or_SerData ile aynı uzunlukta olmalıdır.

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
APCF_opcode 1 bayt 0x06 - APCF Üretici Verileri
APCF_Action 1 bayt Komutun APCF_Action kısmını geri yansıt
APCF_AvailableSpaces 1 bayt Üretici Verileri tablosunda hâlâ kullanılabilen ücretsiz girişlerin sayısı

LE_APCF_Command: service_data_sub_cmd

Bu alt komut, hizmet verileri dizesi eklemek veya silmek ya da çip üzerinde filtreleme için hizmet verileri dizesi listesini temizlemek için kullanılır.

Alt OCF: 0x07

Alt komut parametresi Boyut Amaç
APCF_Action 1 bayt 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 bayt Filtre dizini (0, max_filter-1)
APCF_LocName_Mandata_or_SerData Değişken boyut 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 boyut Listeye eklenecek hizmet verileri maskesi. APCF_LocName_or_ManData_or_SerData. ile aynı uzunlukta olmalıdır

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
APCF_opcode 1 bayt 0x07 - APCF Hizmet Verileri
APCF_Action 1 bayt Komutun APCF_Action kısmını geri yansıt
APCF_AvailableSpaces 1 bayt Hizmet verileri tablosu için hâlâ kullanılabilir ücretsiz girişlerin sayısı

LE_APCF_Command: ad_type_sub_cmd

Bu alt komut, çip üzerinde filtreleme için bir reklam türü eklemek veya silmek ya da bir reklam türü listesini temizlemek için kullanılır. Bu komutun desteklenip desteklenmediğini kontrol etmek için read_extended_features_sub_cmd simgesini kullanın.
APCF_AD_DATA_Length 0 olduğunda, AD Verileri ve AD Veri Maskesi'ni karşılaştırmadan APCF_AD_TYPE'yi filtreleyin. Alınan ADV paketinin veri uzunluğu AD_DATA_LENGTH'ü aşarsa yalnızca AD Verileri'nin 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 bayt 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 bayt Filtre dizini (0, max_filter-1)
APCF_AD_TYPE 1 sekizlik Listeye ekleme veya listeden silme için AD türü. APCF_Action 0x02 (Clear) olduğunda yoksay
APCF_AD_DATA_Length 1 bayt 0x00: Veri içeriğini filtreleme
APCF_Action 0x02 (Temiz) olduğunda yoksayılır
APCF_AD_DATA Değişken boyut APCF_AD_DATA_Length
'e göre değişken boyutlu APCF_Action 0x02 (Temiz) olduğunda yoksayılır
APCF_AD_DATA_MASK Değişken boyut APCF_AD_DATA_Length
'e göre değişken boyutlu APCF_Action 0x02 (Clear) olduğunda yoksayılır
APCF_AD_DATA ile aynı uzunlukta olmalıdır.

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
APCF_opcode 1 bayt 0x09 - APCF Reklam Türü
APCF_Action 1 bayt Komutun APCF_Action kısmını geri yansıt
APCF_AvailableSpaces 1 bayt AD Type 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 Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
APCF_opcode 1 sekizlik 0xFF - APCF_Read_Extended_Features
APCF_extended_features 2 bayt

Desteklenen genişletilmiş özellikler için bit maskeleri:

  • Bit 0: Aktarım Keşfi Hizmeti filtresini destekleyin
  • 1. bit: Reklam türü filtresini destekleyin
  • Bit 2 ~15: Gelecekte kullanılmak üzere ayrılmıştır

Bitin değeri

  • 0 = Desteklenmiyor
  • 1 = Destekleniyor

Denetleyici etkinliği ve enerji bilgileri komutu

Bu bilgilerin amacı, daha yüksek ana sistem işlevlerinin BT denetleyicisi ve makro durumu da dahil olmak üzere tüm bileşenlerin toplam etkinliklerini, uygulamalarda ve çerçevede gerçekleşenlerle birlikte analiz etmektir. Bunu yapmak için BT yığınından ve denetleyiciden aşağıdaki bilgiler gereklidir:

  • BT yığını: Denetleyicinin mevcut makro işlevsel durumunu bildirme
  • Donanım yazılımı: Toplu etkinlik ve enerji bilgilerini raporlama

Kullanıcı düzeyinde belirlenen BT ana makine yığını makro durumları:

  • Boş: [sayfa taraması, LE reklamı, sorgu taraması, LE taraması]
  • Tarama: [sayfalama/sorgulama/bağlanmaya çalışıyor]
  • Etkin: [ACL bağlantısı açık, SCO bağlantısı devam ediyor, koku alma modu]

Denetleyicinin ömrü boyunca takip ettiği etkinlikler; Tx süresi, Rx süresi, boş zaman ve tüketilen toplam enerjidir. Bu veriler, ana makineden okunurken temizlenir.

LE_Get_Controller_Activity_Energy_Info

Bu, tedarikçiye özgü bir komuttur.

OCF: 0x159

Alt komut parametresi Boyut Amaç
Yok Boş komut parametreleri

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
total_tx_time_ms 4 bayt Gönderme işleminin toplam süresi
total_rx_time_ms 4 sekizlik Rx işleminin toplam süresi
total_idle_time_ms 4 bayt Devre dışı durumda toplam süre (uyku dışı düşük güç durumları)
total_energy_used 4 bayt Kullanılan toplam enerji [akım (mA), voltaj (V) ve sürenin (ms) çarpımı]

LE genişletilmiş tarama parametreleri ayarlama komutu

Bu komut, denetleyicide daha büyük bir tarama aralığı ve aralığı etkinleştirmek için kullanılabilir. BT Core 5.2 Spesifikasyonu uyarınca, tarama aralığı ve aralığı 10,24 saniyelik bir üst sınıra sahiptir. Bu da uygulamalar için 10,24 saniyenin üzerindeki tarama aralıklarını engeller.

Temel referans: BT Core 5.2 Spesifikasyonu, sayfa 2493 (LE Set Scan Parametreleri Komutu)

OCF: 0x15A

Komut Parametresi Boyut Amaç
LE_Ex_Scan_Type 1 bayt 0x00: Pasif tarama. SCAN_REQ paketi gönderilmez (varsayılan).
0x01: Etkin tarama. SCAN_REQ paketi gönderilebilir.
LE_Ex_Scan_Interval 4 bayt Denetleyicinin son LE taramasını başlattığı andan sonraki LE taramasını başlattığı ana kadar geçen zaman aralığı olarak tanımlanır.
Aralık: 0x0004 ila 0x00FFFFFF
Varsayılan: 0x0010 (10 ms)
Zaman = N * 0,625 ms
Zaman aralığı: 2,5 ms ila 10.442,25 saniye
LE_Ex_Scan_Window 4 bayt LE taramasının süresi. LE_Scan_Window, LE_Scan_Interval değerinden küçük veya eşit olmalıdır.
Aralık: 0x0004 ila 0xFFFF
Varsayılan: 0x0010 (10 ms)
Zaman = N * 0,625 ms
Zaman Aralığı: 2,5 ms ila 40,95 saniye
Own_Address_Type 1 bayt 0x00 - Herkese Açık Cihaz Adresi (varsayılan)
0x01 - Rastgele Cihaz Adresi
LE_Ex_Scan_Filter_Policy 0x00: Tüm reklam paketlerini kabul et (varsayılan). Bu cihaza yönelik olmayan yönlendirilmiş reklam paketleri yoksayılır.
0x01 - Yalnızca Beyaz Liste'de bulunmayan cihazlardan gelen reklam paketlerini yoksay. Bu cihaza yönlendirilmeyen yönlendirilmiş reklam paketleri yok sayılır.

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu

Denetleyici hata ayıklama bilgilerini alma komutu

Bu bilgi öğesinin amacı, bir ana makinenin, son işleme ve analiz için denetleyici hata ayıklama bilgilerini ikili biçimde edinmesidir. Bu, sahadaki sorunları gidermenize yardımcı olur ve mühendislere analiz için bilgi günlüğe kaydetmelerini sağlayan bir araç seti sunar. Denetleyici, bir ana makine tarafından istenen bilgileri etkinlik (Denetleyici Hata Ayıklama Bilgileri alt etkinliği) aracılığıyla veya denetleyici tarafından istendiğinde bağımsız olarak sağlayabilir. Örneğin, donanım yazılımı durum bilgilerini, kilitlenme döküm bilgilerini, günlük kaydı bilgilerini vb. bildirmek için kullanılabilir.

OCF: 0x15B

Komut parametresi Boyut Amaç
Yok Boş komut parametresi listesi

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu

A2DP donanım yükünü devre dışı bırakma desteği

A2DP aktarma özelliği, A2DP ses kodlama işleminin BT denetleyiciye bağlı bir ses işlemcisine aktarılmasını destekler. Kodlanmış ses veri akışı, BT ana makinesinin katılımı olmadan doğrudan ses işlemciden BT denetleyicisine geçer. BT ana makinesi, A2DP oturumunun yapılandırılmasından ve kontrolünden hâlâ sorumludur. Komutların iki sürümü vardır. Alt OCF 0x01-0x02 içeren eski komutlar yalnızca açık kaynak codec'leri destekler. Alt OCF 0x03-0x04 içeren sürümler, yapılandırılmış codec'e bağlı değildir.

OCF: 0x15D

A2DP yükünü devre dışı bırakma (eski)

Alt OCF: 0x01

Bu komutu hem A2DP aktarma işlemini 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 bayt İzin verilen maksimum gecikme (ms cinsinden). Sıfır değeri, temizlemeyi devre dışı bırakır.
SCMS-T_Enable 2 bayt 0 oktet: SCMS-T başlığının eklenmesini sağlayan işaret.
  • 0x00: SCMS-T üst bilgisi dahil edilmemiştir.
  • 0x01: SCMS-T üstbilgisi dahildir.

1. bayt: Etkinleştirildiğinde SCMS-T başlığının değeri.

Sampling_Frequency 4 bayt 0x01 - 44.100 Hz
0x02 - 48.000 Hz
0x04 - 88.200 Hz
0x08 - 96.000 Hz
Bits_Per_Sample 1 bayt 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 bayt Saniye başına bit cinsinden kodlanmış ses bit hızı.
0x00000000: Ses bit hızı belirtilmemiş / kullanılmamış.
0x00000001 - 0x00FFFFFF: Saniye başına bit cinsinden kodlanmış ses bit hızı.
0x01000000 - 0xFFFFFFFF - Ayrılmış.
Connection_Handle 2 bayt Yapılandırılan A2DP bağlantısının bağlantı kolu
L2CAP_Channel_ID 2 bayt Bu A2DP bağlantısı için kullanılacak L2CAP kanal kimliği
L2CAP_MTU_Size 2 bayt Kodlanmış ses paketleri içeren L2CAP MTU'nun maksimum boyutu
Codec_Information 32 bayt Kodek'e özgü bilgiler.

SBC codec'i:

A2DP v1.3'teki SBC codec'e özgü bilgi öğelerine bakın.
Sekizli 0: Blok uzunluğu | Alt bantlar | Ayırma Yöntemi
Sekizli 1: Minimum Bit Havuzu değeri
Sekizli 2: Maksimum Bit Havuzu değeri
Sekizli 3: Örnekleme Frekansı | Kanal Modu
Sekizli 4-31: ayrılmış

AAC codec'i:

A2DP v1.3'teki AAC codec'ine özgü bilgi öğelerine bakın
Octet 0: Object Type
Octet 1; b7: VBR
Octet 2-31: reserved

LDAC codec'i:

0-3 bayt: Tedarikçi firma kimliği
0x0000012D

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

6. bayt: 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. bayt: LDAC kanal modu
0x01 - Stereo
0x02 - Çift
0x04 - Mono
Diğerleri ayrılmıştır

8-31 oktet: ayrılmış

Diğer tüm codec'ler:

0-31 oktet: ayrılmış

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Sub_Opcode 1 sekizlik 0x01 - A2DP yükünü başlat

A2DP yükünü devre dışı bırakma

Alt OCF: 0x03

Bu komutu hem A2DP aktarma işlemini yapılandırmak hem de A2DP akışını başlatmak için kullanın.

Komut parametresi Boyut Amaç
Connection Handle 2 bayt Etkin HCI bağlantısının herkese açık adı
L2CAP_Channel_ID 2 bayt A2DP akış için açılan L2CAP kanalının tanımlayıcısı
Data_Path_Direction 1 bayt 0x00 - Çıkış (AVDTP Kaynağı/Birleştirme)
0x01 - Giriş (AVDTP Alıcısı/Bölme)
Peer_MTU 2 bayt Eşle pazarlık yapılan L2CAP paketlerinin maksimum boyutu.
CP_Enable_SCMS_T 1 bayt 0x00 - SCMS-T İçerik Koruma Üst Bilgisini Devre Dışı Bırak
0x01 - SCMS-T İçerik Koruma Üst Bilgisini Etkinleştir
CP_Header_SCMS_T 1 bayt SCMS-T İçerik Koruma Başlığı etkinleştirildiğinde (CP_SCMS_T_Enable 0x01 değerine ayarlanır), Bluetooth Atanmış Sayılar 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ı etkinleştirilmemişse yoksayılır.
Vendor_Specific_Parameters_Length 1 bayt Tedarikçiye özgü parametrelerin uzunluğu (0 ile 128 arasında).
Ek parametre sağlanmadığında 0 değeri kullanılır.
Vendor_Specific_Parameters 0-128 bayt Bluetooth Audio HAL tarafından sağlanan Satıcıya Özel Parametreler, CodecParameters.vendorSpecificParameters[].

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Sub_Opcode 1 bayt 0x03: A2DP aktarımını başlat

A2DP yükünü durdurma (eski)

Alt OCF: 0x02

Bu komut, A2DP aktarma akışını durdurmak için kullanılır.

Komut parametresi Boyut Amaç
Yok Boş komut parametresi listesi.

Bu komut için parametre tanımlanmamıştır.

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Sub_Opcode 1 bayt 0x02 - A2DP aktarımını durdur

A2DP yükünü durdurma

Alt OCF: 0x04

Bu komut, A2DP aktarma akışını durdurmak için kullanılır.

Komut parametresi Boyut Amaç
Connection Handle 2 bayt Etkin HCI bağlantısının herkese açık adı
L2CAP_Channel_ID 2 bayt A2DP akış için açılan L2CAP kanalının tanımlayıcısı
Data_Path_Direction 1 bayt 0x00 - Çıkış (AVDTP Kaynağı/Birleştirme)
0x01 - Giriş (AVDTP Alıcısı/Bölme)

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Sub_Opcode 1 bayt 0x04 - A2DP aktarımını durdur

Bluetooth Kalite Raporu komutu

BT Kalite Raporu komut özelliği, Bluetooth Kalite etkinliklerini ana makineye bildirmek için Bluetooth denetleyicisindeki mekanizmayı başlatır. Aşağıdaki dört seçeneği etkinleştirebilirsiniz:

  • Kalite İzleme Modu: Denetleyici, ana makineye düzenli olarak Bağlantı Kalitesi ile ilgili bir BQR alt etkinliği gönderir.
  • LSTO'ya Yaklaşma: Bağlanan BT cihazından Bağlantı Gözetimi Zaman Aşımı (LSTO) değerinin yarısından uzun süre boyunca paket alınmazsa kontrol cihazı, ana makineye LSTO'ya Yaklaşma etkinliği bildirir.
  • A2DP Ses Kesintisi: Denetleyici, sesin kesintili olmasına neden olan faktörleri algıladığında, ana makineye A2DP ses kesintisi etkinliği bildirir.
  • (e)SCO Ses Kesintisi: Denetleyici, sesin kesintili olmasına neden olan faktörleri algıladığında, (e)SCO ses kesintisi etkinliğini ana makineye bildirir.
  • Kök iltihabı: Bu etkinlik, HAL veya denetleyici ölümcül bir hatayla karşılaştığında ve Bluetooth'un yeniden başlatılması 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/Coex planlama izlemesi: Denetleyici, 2,4 GHz bandında birden fazla Bluetooth profilinin ve kablosuz birlikte varoluşunun işlenmesiyle ilgili planlama bilgilerini ana makineye gönderir.
  • Denetleyici hata ayıklama bilgileri mekanizması: Etkinleştirildiğinde denetleyici, denetleyici hata ayıklama bilgileri alt etkinliği aracılığıyla hata ayıklama günlük kaydı bilgilerini ana makineye bağımsız olarak bildirebilir.
  • LE Audio Kesintili: Denetleyici, sesin kesintili olmasına neden olan faktörler algıladığında, LE Audio Kesintili etkinliğini toplantı sahibine bildirir.
  • Gelişmiş RF İstatistikleri modu: Denetleyici, RF istatistikleriyle ilgili bilgilerini ana makineye raporlar ve iki rapor kullanım alanını destekler:
    • Periyodik raporlar
    • Etkinlik tetikleyicileri (yayın başlangıcı/durdurması ve bağlantı kalitesi etkinliği tetikleyicisi).
  • Bluetooth Kalite Raporu Komutu'nun BQR_Report_Action: Ana makine, kalite izleme modu, enerji izleme modu veya gelişmiş RF istatistikleri modu için tek seferlik bir sorgu almak amacıyla bu HCI komutunu kullanabilir.

OCF: 0x15E

Komut parametresi Boyut Amaç
BQR_Report_Action 1 bayt BQR_Quality_Event_Mask parametresinde ayarlanan kalite etkinliklerinin raporlaması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 etkinlikleri raporlarını temizler.
Temizle seçeneği, raporlanan tüm kalite etkinliklerini temizler (BQR_Quality_Event_Mask parametresi yoksayılabilir).

BQR_Quality_Event_Mask 4 bayt Seçilen kalite etkinliği raporlaması için bit maskeleri.

Bit 0: Kalite izleme modunu etkinleştirmek için ayarlayın.
1. bit: Yaklaşan LSTO etkinliğini etkinleştirmek için ayarlayın (ACL/(e)SCO/ISO için).
Bit 2: A2DP Audio Choppy etkinliğini etkinleştirmek için ayarlayın.
3. bit: (e)SCO Voice Choppy etkinliğini etkinleştirmek için ayarlayın.
4. bit: Kök iltihabı etkinliğini etkinleştirmek için ayarlayın.
5. bit: Enerji izleme modunu etkinleştirmek için ayarlayın.
6. bit: LE ses kesintisi etkinliğini etkinleştirmek için ayarlayın.
7. bit: Bağlantı hatası etkinleştirmek için ayarlayın.
8. bit: Gelişmiş RF İstatistikleri modu etkinlik tetikleyicisini etkinleştirmek için ayarlayın.
9. bit: Gelişmiş RF İstatistikleri dönemlik raporunu etkinleştirmek için ayarlayın.
10. ~ 14. bit: Ayrılmış.
15. bit: Tedarikçiye özgü kalite etkinliklerini etkinleştirmek için ayarlanır.
16. bit: LMP/LL ileti izlemeyi etkinleştirmek için ayarlanır.
17. bit: Bluetooth Çoklu Bağlantı/Coex planlama izlemesini etkinleştirmek için ayarlayın.
18. bit: Denetleyici Hata Ayıklama Bilgileri mekanizmasını etkinleştirmek için ayarlanır.
19. ~ 30. bit: Ayrılmış.
31. bit: Tedarikçiye özgü izlemeyi etkinleştirmek için ayarlanır.

BQR_Minimum_Report_Interval 2 bayt Seçilen kalite etkinlikleri için kalite etkinliği raporlamasının minimum zaman aralığını tanımlayın. Denetleyici donanım yazılımı, sonraki etkinliği belirlenen zaman aralığında bildirmemelidir. Aralık ayarı, eklenen kalite etkinliklerine ö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 bayt Seçilen tedarikçiye özgü kalite etkinliği raporlaması için bit maskeleri.
Bu parametre yalnızca BQR_Quality_Event_Mask'un 15. biti ayarlandığında geçerlidir.

Bit 0 ~ 31: Ayrılmış.

BQR_Vendor_Specific_Trace_Mask 4 bayt Seçilen tedarikçiye özgü izleme raporlaması için bit maskeleri.
Bu parametre yalnızca BQR_Quality_Event_Mask'un 31. biti ayarlandığında geçerlidir.

Bit 0 ~ 31: Ayrılmış.

Report_interval_multiple 4 bayt BQR_Minimum_Report_Interval için çarpan. Bu değer >= 1 olduğunda, BQR Rapor Aralıkları
biçimini izler: BQR Rapor Aralıkları = BQR_Minimum_Rapor_Aralığı x Rapor_aralığı_çarpanı.
Denetleyici donanım yazılımı, bir sonraki etkinliği tanımlanan zaman aralığında bildirmemelidir. Aralık ayarı, özellikle eklenen kalite etkinlikleri içindir.

Birim: ms
Varsayılan: 1
Aralık: 0 ~ 4294967295 (0: 1'e ayarlanır)

Not: BQR_Report_Interval ayarı denetleyicinin kapasitesinden daha büyükse denetleyici, komutun tamamlanmasıyla birlikte maksimum BQR_Report_Interval süresini döndürmelidir.

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Current_Quality_Event_Mask 4 bayt Mevcut bit maskesi ayarını gösterir.
Bit 0: Kalite izleme modu etkindir.
1. bit: Yaklaşan LSTO etkinliği raporlaması etkindir.
Bit 2: A2DP Audio Choppy etkinlik raporlaması etkindir.
3. bit: (e)SCO Voice Choppy etkinlik raporlaması etkindir.
4. bit: Kök iltihabı etkinliği raporlaması etkindir.
5. bit: Enerji izleme modu etkinleştirilmiştir.
6. bit: LE ses kesintili etkinlik raporlaması etkindir.
7. bit: Bağlantı hatası etkinliği.
8. Bit: Gelişmiş RF İstatistikleri modu etkinlik tetikleyicisini etkinleştirmek için ayarlayın.
9. bit: Gelişmiş RF istatistiklerinin düzenli olarak raporlanmasını etkinleştirmek için ayarlayın.
10. ~ 14. bit: Ayrılmış.
15. bit: Tedarikçiye özgü kalite etkinliği raporlaması etkindir.
16. bit: LMP/LL mesaj izleme etkindir.
17. bit: Bluetooth Çoklu Bağlantı/Coex planlama izleme etkindir.
18. bit: Denetleyici Hata Ayıklama Bilgileri mekanizması etkin.
19. ~ 30. bit: Ayrılmış.
31. bit: Tedarikçiye özgü izleme etkindir.
Current_Vendor_Specific_Quality_Event_Mask 4 bayt Mevcut bit maskesi ayarını gösterir.
Current_Vendor_Specific_Trace_Mask 4 bayt Mevcut bit maskesi ayarını gösterir.
BQR_Report_interval 4 bayt Mevcut bit maskesi ayarını gösterir.
Current_Vendor_Specific_Trace_Mask 4 bayt BQR_Report_interval ayarı. BQR_Minimum_Report_Interval * Report_interval_multiple ile denetleyicinin maksimum destek aralığı arasında minimum değer 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ğe alma süresi özelliğini alma

Alt OCF: 0x01

Bluetooth kontrol cihazından 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 Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Dynamic_Audio_Buffer_opcode 1 bayt 0x01 - Ses arabelleği süresini alma
Audio_Codec_Type_Supported 4 bayt 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 bayt Audio_Codec_Type_Supported parametresinde belirtilen Bit 0 codec türünün varsayılan arabelleğe alma süresi.
Bit 0 codec türü desteklenmiyorsa bu değer 0 olur.
Birim: ms
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 2 bayt Audio_Codec_Type_Supported parametresinde belirtilen Bit 0 codec türünün maksimum arabelleğe alma süresi.
Bit 0 codec türü desteklenmiyorsa bu değer 0 olur.
Birim: ms
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 2 bayt Audio_Codec_Type_Supported parametresinde belirtilen Bit 0 codec türünün minimum arabelleğe alma süresi.
Bit 0 codec türü desteklenmiyorsa bu değer 0 olur.
Birim: ms
Audio_Codec_Buffer_Default_Time_For_Bit_1 2 bayt Audio_Codec_Type_Supported parametresinde belirtilen 1 bitlik codec türünün varsayılan arabellek süresi.
Bit 1 codec türü desteklenmiyorsa bu değer 0 olur.
Birim: ms
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 2 bayt Audio_Codec_Type_Supported parametresinde belirtilen Bit 1 codec türünün maksimum arabelleğe alma süresi.
Bit 1 codec türü desteklenmiyorsa bu değer 0 olur.
Birim: ms
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 2 bayt Audio_Codec_Type_Supported parametresinde belirtilen 1 bitlik codec türünün minimum arabelleğe alma süresi.
Bit 1 codec türü desteklenmiyorsa bu değer 0 olur.
Birim: ms
...... ...... ......
Audio_Codec_Buffer_Default_Time_For_Bit_31 2 bayt Audio_Codec_Type_Supported parametresinde belirtilen 31 bitlik codec türünün varsayılan arabellek süresi.
31 bitlik codec türü desteklenmiyorsa bu değer 0 olur.
Birim: ms
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 2 bayt Audio_Codec_Type_Supported parametresinde belirtilen 31 bitlik codec türünün maksimum arabelleğe alma süresi.
31 bitlik codec türü desteklenmiyorsa bu değer 0 olur.
Birim: ms
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 2 bayt Audio_Codec_Type_Supported parametresinde belirtilen 31 bitlik codec türü için minimum arabelleğe alma süresi.
31 bitlik codec türü desteklenmiyorsa bu değer 0 olur.
Birim: ms

Ses arabelleği süresini ayarlama

Alt OCF: 0x02

Bluetooth denetleyicide ses arabelleği süresini ayarlamak için bu komutu kullanın.

Komut parametresi Boyut Amaç
Audio_Codec_Buffer_Time 2 bayt Kullanılan mevcut codec için istenen ses arabelleği süresi.
Birim: ms

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Dynamic_Audio_Buffer_opcode 1 sekizlik 0x02: Ses arabelleği süresini ayarlama
Audio_Codec_Buffer_Time 2 bayt Bluetooth kumandasındaki mevcut ses arabelleği süresi.
Birim: ms

HCI etkinliği (tedarikçiye özgü)

Bazı durumlarda tedarikçiye özgü HCI etkinlikleri gerekir. BT Core 5.2 Spesifikasyonunun 1897. sayfasındaki Şekil 5.4'e bakın. 0 numaralı etkinlik parametresi, her zaman HCI etkinliğinin geri kalanının kodunu çözmek için kullanılan ilk alt etkinlik kodunu içerir.

Etkinlik Parametresi Boyut Amaç
HCI_vendor_specific_event_code 1 bayt 0xFF
sub_event_code 1 bayt Alt etkinlik kodu 1 oktett boyutundadır ve HCI etkinlik paketinde Parametre Uzunluğu'ndan hemen sonra gelen bayttır.

Depolama alanı eşiği ihlali alt etkinliği

Bu etkinlik, depolama alanı eşiğinin ihlal edildiğini gösterir.

Alt etkinlik kodu = 0x54

Alt Etkinlik Parametresi Boyut Amaç
Yok

LE çoklu reklamcılık durumu değişikliği alt etkinliği

Bu etkinlik, bir reklamcılık örneğinin durumunun değiştiğini gösterir. Şu anda bu etkinlik yalnızca bir bağlantı sonucunda hangi reklamcılık örneğinin durdurulduğunu belirtmek için kullanılır.

Alt etkinlik kodu = 0x55

Alt etkinlik parametresi Boyut Amaç
Advertising_instance 1 bayt Belirli reklamcılık örneğini tanımlar
Geçerli değerler 0 ile max_advt_instances-1 arasındadır
State_Change_Reason 1 bayt 0x00: Bağlantı alındı
Connection_handle 2 bayt advt örneğinin devre dışı bırakılmasına neden olan bağlantıyı tanımlar (geçersizse 0xFFFF)

LE reklam izleme alt etkinliği

Bu etkinlik, bir reklamverenin ne zaman bulunduğunu veya kaybolduğunu gösterir.

Alt etkinlik kodu = 0x56

Alt Etkinlik Parametresi Boyut Amaç
APCF_Filter_Index 1 bayt Filtre dizini (0, max_filter-1)
Advertiser_State 1 bayt 0x00: Reklamveren bulundu
0x01: Reklamveren kayboldu
Advt_Info_Present 1 bayt 0x00: Reklamveren bilgileri (Advt_Info) mevcut
0x01: Reklamveren bilgileri (Advt_Info) mevcut değil
Advertiser_Address 6 bayt Herkese açık veya rastgele adres
Advertiser_Address_Type 1 bayt 0x00: Herkese açık adres
0x01: Rastgele adres
Advt_Info Tx_Pwr[0]: 1 bayt
RSSI[0]: 1 bayt
Timestamp[0]: 2 bayt
Adv packet_len[0]: 1 bayt
Adv_packet[0]: Adv_packet_len bayt
Scan_data_resp_len[0]: 1 bayt
Scan_data_resp[0]: Scan_data_resp bayt

Denetleyici hata ayıklama bilgileri alt etkinliği

Bu etkinlik, bir denetleyici tarafından ana makineye ikili hata ayıklama bilgileri sağlamak için kullanılır.

Alt etkinlik kodu = 0x57

Alt Etkinlik Parametresi Boyut Amaç
debug_block_byte_offset_start 2 bayt Başlangıçtan itibaren blok bayt ofsetinde hata ayıklama
last_block 1 bayt 0x00: Daha fazla hata ayıklama verisi var
0x01: Son ikili blok; başka hata ayıklama verisi yok
cur_pay_load_sz 2 bayt Mevcut bir etkinlikteki ikili blok boyutu
Debug_Data Değişken cur_payload_sz verilerini hata ayıklama

Bluetooth Kalite Raporu alt etkinliği

Bu etkinlik aşağıdakilerden birini gösterir: Bluetooth kalitesiyle ilgili bir etkinlik meydana geldi, kontrol cihazı LMP/LL mesaj izlemesini ve Bluetooth Çoklu Bağlantı/Coex planlama izlemesini yükledi veya kontrol cihazı hata ayıklama bilgileri verilerini döktü.

Alt Etkinlik Parametresi Boyut Amaç
Quality_Report_Id 1 bayt 0x01: İzleme modunda kalite raporlaması.
0x02: LSTO'ya yaklaşıyor.
0x03: A2DP Ses Kesik Kesik.
0x04: (e)SCO Sesi Kesik.
0x05 ~ 0x06: Ayrılmış.
0x07: LE ses kesintili.
0x08: Bağlantı kurulamadı.
0x09 ~ 0xFF: Ayrılmış.
Packet_Types 1 bayt 0x01: KIMLIK
0x02: BOŞ
0x03: ANKET
0x04: FHS
0x05: HV1
0x06: HV2
0x07: HV3
0x08: DV
0x09: EV3
0x0A: EV4
0x0B: EV5
0x0C: 2-EV3
0x0D: 2-EV5
0x0E: 3-EV3
0x0F: 3-EV5
0x11: DH1
0x12: DM3
0x13: DH3
0x14: DM5
0x15: DH5
0x16: AUX1
0x17: 2-DH1
0x18: 2-DH3
0x19: 2-DH5
0x1A: 3-DH1
0x1B: 3-DH3
0x1C: 3-DH5
0x1D ~ 0x50: Ayrılmış
0x51: ISO paketi
0x52 ~ 0xFF: Ayrılmış
Connection_Handle 2 bayt ACL/(e)SCO/ISO bağlantısı tutamaç.
Connection_Role 1 bayt Bağlantı için rolü yürütme.
0x00: Merkezi
0x01: Çevresel
0x02 ~ 0xFF: Ayrılmış.
TX_Power_Level 1 bayt Belirtilen Connection_Handle için geçerli iletim gücü seviyesi.

Bu değer, denetleyicinin HCI_Read_Transmit_Power_Level HCI komutuna verdiği yanıtla aynı olmalıdır.

RSSI 1 bayt [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 ila +20

SNR 1 bayt [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 bayt AFH_channel_map tablosunda kullanılmayan kanalların sayısını belirtir.
0x4F ~ 0xFF: Ayrılmış.
AFH_Select_Unideal_Channel_Count 1 bayt Parazitli ve kötü kalitede olan ancak AFH için yine de 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 tümü parazitli olsa ve kötü kalitede olsa bile denetleyicinin AFH için en az 20 kanal seçmesi gerekir.
LSTO 2 bayt Mevcut Bağlantı Gözetimi Zaman Aşımı Ayarı.
Zaman = N * 0,625 ms
Zaman Aralığı: 0,625 ms ila 40,9 saniye
Connection_Piconet_Clock 4 bayt Belirtilen Connection_Handle için Piconet Clock.
Bu değer, denetleyicinin HCI_Read_Clock HCI komutuna 0x01 değerine sahip "Which_Clock" parametresiyle yanıt vermesiyle aynı olmalıdır (Piconet Clock).
Birim: N * 0,3125 ms (1 Bluetooth Saat)
Retransmission_Count 4 bayt Son etkinlikten bu yana yeniden yayınların sayısı.
Bu sayı, düzenleyen kullanıcıya bildirildikten sonra sıfırlanır.
No_RX_Count 4 bayt Son etkinlikten bu yana RX sayısı yok.
Planlanan zaman aralığında paket alınmadığında veya alınan paket bozuk olduğunda sayı artar.
Bu sayı, düzenleyen kullanıcıya bildirildikten sonra sıfırlanır.
NAK_Count 4 bayt Son etkinlikten bu yana NAK (Olumsuz Onay) sayısı.
Bu sayı, düzenleyen kullanıcıya bildirildikten sonra sıfırlanır.
Last_TX_ACK_Timestamp 4 bayt Son TX ACK'nin zaman damgası. Bu, piconet merkezinin (CLK) Bluetooth saatine dayanır.
Birim: N * 0,3125 ms (1 Bluetooth Saat)
Flow_Off_Count 4 bayt Denetleyicinin son etkinlikten bu yana akış kapatma (STOP) sinyalini alma sayısı.
Bu sayı, düzenleyen kullanıcıya bildirildikten sonra sıfırlanır.
Last_Flow_On_Timestamp 4 bayt Son Flow-on'un (GO) zaman damgası. Bu, piconet merkezinin (CLK) Bluetooth saatine dayanır.
Birim: N * 0,3125 ms (1 Bluetooth Saat)
Buffer_Overflow_Bytes 4 bayt [Bayt cinsinden]

Son etkinlikten bu yana arabellek taşması sayısı.
Denetleyici, kaç bayt verinin atlandığını sayar.
Bu sayı, barındırıcıya bildirildikten sonra sıfırlanır.

Buffer_Underflow_Bytes 4 bayt [Bayt cinsinden]

Son etkinlikten bu yana arabellek alt akış sayısı.
Bu sayı, barındırıcıya bildirildikten sonra sıfırlanır.

bdaddr 6 bayt Uzak cihaz adresi
cal_failed_item_count 1 bayt Kalibrasyonda başarısız olan öğelerin sayısı
TX_Total_Packets 4 bayt Gönderilen paket sayısı.
TX_UnAcked_Packets 4 sekizlik Onay almayan paketlerin sayısı.
Bu sayı, düzenleyen kullanıcıya bildirildikten sonra sıfırlanır.
TX_Flushed_Packets 4 bayt Boşaltma noktasına göre gönderilmeyen paketlerin sayısı.
Bu sayı, düzenleyen kullanıcıya bildirildikten sonra sıfırlanır.
TX_Last_Subevent_Packets 4 bayt Bağlantı Katmanı'nın, bir CIS etkinliğinin son alt etkinliğinde CIS veri PDU'su ilettiği paket sayısı.
Bu sayı, 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 bayt Son etkinlikten bu yana CRC hatası içeren alınan paketlerin sayısı.
Bu sayı, düzenleyen kullanıcıya bildirildikten sonra sıfırlanır.
RX_Duplicate_Packets 4 bayt Son etkinlikten bu yana alınan yinelenen (yeniden iletilen) paketlerin sayısı.
Bu sayı, düzenleyen kullanıcıya bildirildikten sonra sıfırlanır.
RX_Unreceived_Packets 4 bayt Alınmayan paketlerin sayısı, LE READ ISO Bağlantı Kalitesi 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 arttığında Bağlantı Katmanı, temizleme noktasında (CIS'de) veya ilişkili olduğu etkinliğin sonunda (BIS'de; Bluetooth Core Specification Version 5.4 Vol 6 Part B, Section 4.4.6.6 bölümüne bakın) belirli bir yükü almaz.
Coex_Info_Mask 2 bayt Bit 0 - CoexInvolvement: Bu rapor oluşturulurken birlikte çalışma etkinliklerinin dahil olduğundan şüphelenildiğini belirtmek için ayarlanır (örneğin, A2DP kesintileri ve yaklaşan LSTO).
Bit 1 - WL 2G Radyosu Etkin: WLAN 2G radyosunun etkin olduğunu belirtecek şekilde ayarlanır.
Bit 2 - WL 2G Bağlı: WLAN 2G Radyo'nun etkin ve bağlı olduğunu belirtecek şekilde ayarlanır.
3. Bit - WL 5G/6G Radyo Etkin: WLAN 5G/6G Radyo'nun etkin olduğunu belirtecek şekilde ayarlanır.
Bit 4-15 - Ayrılmış
Tedarikçiye Özel Parametre (parametrenin toplam uzunluğu - TBD) * bayt Kontrol cihazı tedarikçisinin tedarikçiye özgü daha fazla parametre elde etmesi için.

Alt etkinlik kodu = 0x58 [Quality_Report_Id = 0x05, Root Inflammation etkinliği]

Bu etkinlik, Bluetooth HAL'in veya kumandanın önemli bir hatayla karşılaştığını ve bu durumu kaydedip yeniden başlatmak için Bluetooth yığınına ihtiyaç duyduğunu gösterir. Denetleyici, hata ayıklama bilgileri etkinliklerinin ilk parçasını göndermeden önce Bluetooth yığınına bir Root_Inflammation_Event göndermelidir.

Error_Code parametresi, HAL/Denetleyici'den bildirilen bir hata kodu içerir. Çipset üreticiye özgü bir hata ise 0 değerini alır. Vendor_Specific_Error_Code, HAL/Denetleyici'den gelen bir çipset tedarikçisine özgü hata kodu içerir. Error_Code parametresi 0 değilse 0 olarak ayarlanmalıdır. Error_Code ve Vendor_Specific_Error_Code parametrelerinin ikisi de 0 olmamalıdır.

Alt Etkinlik Parametresi Boyut Amaç
Quality_Report_Id 1 bayt 0x00 ~ 0x04: Ayrılmış.
0x05: Kök iltihabı.
0x06 ~ 0xFF: Ayrılmış.
Error_Code 1 bayt 0x00: Yonga seti tedarikçisine özgü hata kodu dahildir.
0x01 ~ 0xFF: Denetleyici hatası oluştu. Hata kodlarının listesini ve açıklamalarını görmek için Bluetooth Spec [Vol 2] D Bölümü, Hata Kodları'na bakın.
Vendor_Specific_Error_Code 1 bayt 0x00: Yonga seti tedarikçisine özgü hata kodu yok.
0x01 ~ 0xFF: Yonga seti tedarikçisine özgü hata kodu.
Tedarikçiye Özel Parametre (Parametrenin Toplam Uzunluğu - 4) * bayt Kontrol cihazı tedarikçisinin tedarikçiye özgü daha fazla parametre elde etmesi için.
Alt Etkinlik Parametresi Boyut Amaç
Quality_Report_Id 1 bayt 0x00 ~ 0x10: Ayrıldı.
0x11: LMP/LL mesaj izleme.
0x12: Bluetooth Çoklu Bağlantı/Coex planlama izleme.
0x13: Denetleyici Hata Ayıklama Bilgileri veri dökümü.
0x14 ~ 0xFF: Ayrılmış.
Connection_Handle 2 bayt Bağlantı Kolu.
Tedarikçiye Özel Parametre (Parametrenin Toplam Uzunluğu - 4) * bayt LMP mesaj izleme, Bluetooth Çoklu Bağlantı/Coex planlama izleme ve Denetleyici Hata Ayıklama Bilgileri veri dökümünün Satıcıya Özel biçimi.

Birden fazla reklamveren desteği

Çok reklamverenli desteğin hedefleri şunlardır:

  • Birden fazla reklamı destekleme olanağı (max_advt_instances)
  • Değişken bir aralığa izin vermek için farklı iletim güçleri
  • Farklı reklam içeriği
  • Her reklamveren için özelleştirilmiş bir yanıt
  • Her reklamveren için gizlilik (izlenemez)
  • Bağlanabilir

Bu spesifikasyonun mevcut standartlara yakın olması için aşağıdaki tedarikçiye özgü komutlar sağlanmıştır. Bunlar, Bluetooth Core 4.1 spesifikasyonundan türetilmiştir.

LE_Multi_Advt_Command

OCF: 0x154

Komut parametresi Boyut Amaç
Multi_advt_opcode 1 bayt 0x01 - Set_Advt_Param_Multi_Sub_Cmd
0x02 - Set_Advt_Data_Multi_Sub_Cmd
0x03 - Set_Scan_Resp_Data_Multi_Sub_Cmd
0x04 - Set_Random_Addr_Multi_Sub_Cmd
0x05 - Set_Advt_Enable_Multi_Sub_Cmd

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Multi_advt_opcode 1 bayt 0x01 - Set_Advt_Param_Multi_Command
0x02 - Set_Advt_Data_Multi_Command
0x03 - Set_Scan_Resp_Data_Multi_Command
0x04 - Set_Random_Addr_Multi_Command
0x05 - Set_Advt_Enable_Multi_Command

LE_Multi_Advt_Command: Set_Advt_Param_Multi_Sub_Cmd

Temel referans: Bluetooth Core 4.1 Spesifikasyonu, 964. sayfa (LE Set Advertising Parameter Command)

Alt OCF: 0x01

Alt komut parametresi Boyut Amaç
Advertising_Interval_Min Spesifikasyon başına Spesifikasyon başına
Advertising_Interval_Max Spesifikasyon başına Spesifikasyon başına
Advertising_Type Spesifikasyon başına Spesifikasyon başına
Own_Address_Type Spesifikasyon başına Spesifikasyon başına
Own_Address Spesifikasyon başına Spesifikasyon başına
Direct_Address_Type Spesifikasyon başına Spesifikasyon başına
Direct_Address Spesifikasyon başına Spesifikasyon başına
Advertising_Channel_Map Spesifikasyon başına Spesifikasyon başına
Adverstising_Filter_Policy Spesifikasyon başına Spesifikasyon başına
Advertising_Instance 1 bayt Yukarıdaki parametrelerin bir örnek için geçerliliğini belirtir
Tx_power 1 bayt Transmit_Power
Birim: dBm (işaretli tam sayı)
Aralık: (-70 ila +20)

Own_Address parametresi, bu çok reklamlı örneğin ayarlandığı sırada ana makine tarafından yapılandırılmış bir adres olabilir. Bu, ilk işaretin gönderildiği sırada çözülebilir bir özel adrese sahip olma olanağı sağlar. Bir örnekteki reklam, bağlantıdan bağımsız olarak devam eder. Ana makine BT yığını, bağlantıdan sonra bir örnekte reklamı başlatma komutu verebilir.

Yukarıdaki komut için Bluetooth Core 4.1 Spesifikasyonunda belirtildiği gibi bu komut için bir Komut Tamamlandı etkinliği oluşturulur. Reklamcılık örneği veya Tx_Power parametreleri geçersizse kontrolör, başarı olmayan bir kodla (geçersiz parametre) yanıt verir.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Multi_advt_opcode 1 bayt 0x01 [Set_Advt_Param_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Advt_Data_Multi_Sub_Cmd

Temel referans: Bluetooth Core 4.1 Spesifikasyonu, sayfa 969 (LE Reklam Verileri Ayarlama Komutu)

Alt OCF: 0x02

Alt komut parametresi Boyut Amaç
Advertising_Data_Length Spesifikasyon başına Spesifikasyon başına
Advertising_Data Spesifikasyon başına Spesifikasyon başına
Advertising_Instance 1 bayt Yukarıdaki parametrelerin bir örnek için geçerliliğini belirtir

Yukarıdaki komut için Bluetooth Core 4.1 Spesifikasyonunda belirtildiği gibi bu komut için bir Komut Tamamlandı etkinliği oluşturulur. Reklamcılık örneği veya Tx_Power parametreleri geçersizse denetleyici, başarı dışı bir kodla yanıt verir.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Multi_advt_opcode 1 bayt 0x02 [Set_Advt_Data_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Scan_Resp_Data_Multi_Sub_Cmd

Temel referans: Bluetooth Core 4.1 Spesifikasyonu, sayfa 970 (LE Set Scan Response Data Command)

Alt OCF: 0x03

Alt komut parametresi Boyut Amaç
Scan_Response_Data_Length Spesifikasyon başına Spesifikasyon başına
Scan_Response_Data Spesifikasyon başına Spesifikasyon başına
Advertising_Instance 1 bayt Yukarıdaki parametrelerin bir örnek için geçerliliğini belirtir

Yukarıdaki komut için Bluetooth Core 4.1 Spesifikasyonunda belirtildiği gibi bu komut için bir Komut Tamamlandı etkinliği oluşturulur. Reklamcılık örneği veya Tx_Power parametreleri geçersizse kontrolör, başarı kodu olmayan bir yanıt (geçersiz parametre) verir.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Multi_advt_opcode 1 bayt 0x03 [Set_Scan_Resp_Data_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Random_Addr_Multi_Sub_Cmd

Temel referans: Bluetooth Core 4.1 Spesifikasyonu, 963. sayfa (LE Set Random Address Command)

Alt OCF: 0x04

Alt komut parametresi Boyut Amaç
Rastgele Adres Spesifikasyon başına Spesifikasyon başına
Advertising_Instance 1 bayt Yukarıdaki parametrelerin bir örnek için geçerliliğini belirtir

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Multi_advt_opcode 1 bayt 0x04 [Set_Random_Addr_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Advt_Enable_Multi_Sub_Cmd

Temel referans: Bluetooth Core 4.1 Spesifikasyonu, sayfa 971 (Bu temel spesifikasyondaki LE SetAdvertiseEnable Komutu)

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ışı demektir.
Advertising_Instance 1 bayt Yukarıdaki parametrelerin bir örnek için uygulanabilirliğini belirtir. 0 numaralı örnek, standart bir HCI örneği anlamına gelir.

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Multi_advt_opcode 1 bayt 0x05 [Set_Advt_Enable_Multi_Sub_Cmd]

Özel adresin çözümü için aktarma

Bu özellik, denetleyici donanım yazılımında veya donanımında özel bir adresi çözerek aşağıdaki avantajları sağlar:

  • Özel bir adresi çözerken ana makineyle ilgili gecikme
  • Ev sahibini uyandırmaktan kaçınarak güç tasarrufu yapma

LE_Set_RPA_Timeout

OCF: 0x15C

Komut parametresi Boyut Amaç
LE_local_IRK 16 sekizlik Rastgele çözülebilir adresleri oluşturmak için kullanılan yerel cihaz IRK.
tRPA_min 2 bayt Saniye cinsinden minimum RPA oluşturma zaman aşımı. Denetleyici, bu zaman aşımından sonra veya bu zaman aşımından önce gerçekleşen tüm reklam/tarama/bağlantı etkinlikleri için yeni çözülebilir adresler oluşturmalıdır.
Geçerli aralık: 300-1.800
tRPA_max 2 bayt Saniye cinsinden maksimum RPA oluşturma zaman aşımı. Denetleyici, bu zaman aşımından önce veya bu zaman aşımına kadar tüm reklam/tarama/bağlantı etkinlikleri için yeni çözülebilir adresler oluşturmalıdır.
Geçerli aralık: tRPA_min-1800
Döndürülen parametre Boyut Amaç
Status 1 bayt Komutun durumu.

Önerilen HCI durum değerleri:
0x00 Başarılı
0x01 Bilinmeyen komut (desteklenmiyorsa)
0x12 Geçersiz komut parametreleri (parametreler belirtilen aralığın dışındaysa)

LE_RPA_offload_Command

OCF: 0x155

Komut parametresi Boyut Amaç
RPA_offload_opcode 1 bayt 0x1 - Müşteriye özel özelliği etkinleştir
0x2 - IRK'yı listeye ekle
0x3 - IRK'yı listeden kaldır
0x4 - IRK listesini temizle
0x5 - IRK listesi girişini oku

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Event_RPA_offload_opcode 1 bayt 0x1 - Müşteriye özel özelliği etkinleştir
0x2 - IRK'yı listeye ekle
0x3 - IRK'yı listeden kaldır
0x4 - IRK listesini temizle
0x5 - IRK listesi girişini oku

LE_RPA_offload: Enable_cust_specific_sub_Command

Alt OCF: 0x01

Alt komut parametresi Boyut Amaç
enable_customer_specific_feature_set 1 bayt 0x01: Yükün aktarıldığı RPA özelliğini etkinleştir
0x00: Yükün aktarıldığı RPA özelliğini devre dışı bırak

RPA offload'un, çip özelliğine göre ana makine tarafından etkinleştirilmesi gerekir. LE_Get_Vendor_Capabilities_Command sayfasına bakın. Her çipin donanım yazılımında farklı bir max_irk_list_sz olabilir.

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Event_cust_specific_feature_opcode 1 bayt 0x01 [Müşteriye özel özelliği etkinleştir]

LE_RPA_offload: Add_IRK_to_list_sub_Command

Alt OCF: 0x02

Alt komut parametresi Boyut Amaç
LE_IRK 16 bayt LE IRK (1. bayt LSB)
Address_Type 1 bayt 0: Herkese açık adres
1: Rastgele adres
LE_Device_Address 6 bayt IRK ile ilişkili herkese açık veya rastgele adres (1. bayt LSB)

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Event_cust_specific_feature_opcode 1 bayt 0x02 [Listeye IRK ekle]
LE_IrkList_AvailableSpaces 1 bayt Mevcut işlemden sonra kullanılabilir IRL listesi girişleri

LE_RPA_offload: Remove_IRK_to_list_sub_Command

Alt OCF: 0x03

Alt komut parametresi Boyut Amaç
Address_Type 1 bayt 0: Herkese açık adres
1: Rastgele adres
LE_Device_Address 6 bayt IRK ile ilişkilendirilen herkese açık veya rastgele adres

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Event_cust_specific_feature_opcode 1 bayt 0x03 [IRK'yı listeden kaldır]
LE_IrkList_AvailableSpaces 1 bayt Mevcut işlemden sonra mevcut IRL listesi girişleri

LE_RPA_offload: Clear_IRK_list_sub_Command

Alt OCF: 0x04

Alt komut parametresi Boyut Amaç
Yok

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Event_cust_specific_feature_opcode 1 bayt 0x04 [Clear IRK List]
LE_IrkList_AvailableSpaces 1 bayt Mevcut işlemden sonra kullanılabilir IRL listesi girişleri [max_irk_list_sz]

LE_RPA_offload: Read_IRK_list_sub_Command

Alt OCF: 0x05

Alt komut parametresi Boyut Amaç
LE_read_IRK_list_entry-index 1 bayt IRK listesinin dizini [0, max_irk_list_sz-1]

Bu komut için bir Komut Tamamlandı etkinliği oluşturulur.

Döndürülen parametre Boyut Amaç
Status 1 bayt Komut Tamamlandı durumu
Event_cust_specific_feature_opcode 1 bayt 0x05 [IRK Listesi Girişi'ni Oku]
LE_Read_IRK_List_entry 1 bayt Ana makinenin geri okumak istediği IRK'nın dizini (maksimum IRK listesi boyutu 32'dir)
LE_IRK 16 bayt IRK değeri
Address_Type 1 bayt 0: Herkese açık adres
1: Rastgele adres
LE_Device_Address 6 bayt IRK ile ilişkili herkese açık veya rastgele adres
LE_Resolved_Private_Address 6 bayt Bu IRK'nın mevcut çözümlenmiş özel adresi