HCI Gereksinimleri

Ana Bilgisayar Denetleyici Arayüzü (HCI), bir Bluetooth denetleyiciyle etkileşim kurmak için kullanılır.

Bu belge, Bluetooth (BT) ve Bluetooth Düşük Enerji (BLE) HCI gereksinimlerinin bir listesini sağlar. Amaç, Host BT yığını satıcılarının ve BT denetleyici satıcılarının aşağıda açıklanan özellik setini kullanabilmeleri için bu platform gereksinimlerine uymalarıdır.

Bu belgede "özellik" olarak Bluetooth Core 5.2 Spesifikasyonuna atıfta bulunulmaktadır. Bluetooth Core 5.2 Spesifikasyonu, kabul edilen diğer belgelerle birlikte Bluetooth SIG web sitesinde mevcuttur.

Genel tasarıma genel bakış

Çip yetenekleri ve yapılandırması

Açık bir platform olarak Android, yazılım sürümleri, OEM'ler, satıcılar, platform ve çip yeteneklerinden oluşan bir matrise sahiptir.

Değişen ortamı yönetmek ve geçişleri yönetmek için, BT denetleyicilerinin yeteneklerini (standart Bluetooth Core 5.2 Spesifikasyonunun ötesinde) ortaya çıkarmasına izin veren bir tasarım felsefesi bu belgede açıklanmaktadır. Ana bilgisayar BT yığını daha sonra hangi özelliklerin etkinleştirileceğini belirlemek için bu yetenekleri kullanabilir.

Açık standartları desteklemek

Android'in hedeflerinden biri, Bluetooth spesifikasyonunun onaylanmasından sonra açık standartları desteklemektir. Aşağıda açıklanan bir özellik, gelecekteki bir Bluetooth spesifikasyonunda standart HCI yöntemlerinde kullanılabilir hale gelirse, bu yaklaşımı varsayılan hale getirmeye yöneleceğiz.

Satıcıya özel yetenekler

Satıcıya özel komut: LE_Get_Vendor_Capabilities_Command

OpCode Komut Alanı (OCF): 0x153

Komut parametresi Boyut Amaç
Yok Komut parametre listesini boşalt

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
max_advt_instances
(Kullanımdan kaldırıldı)
1 sekizli Desteklenen reklam örneklerinin sayısı.

V0.98'den sonra ayrılmıştır.
Bu parametre, Google özellik spesifikasyonu v0.98 ve üzeri sürümlerde kullanımdan kaldırılmış, bunun yerine BT spesifikasyonu sürüm 5.0 ve üzeri sürümlerde bulunan LE Genişletilmiş Reklamcılık tercih edilmiştir.
offloaded_resolution_of_private-address
(Kullanımdan kaldırıldı)
1 sekizli RPA'nın BT çip kapasitesi.
Bir çip tarafından destekleniyorsa ana bilgisayar tarafından etkinleştirilmesi gerekir.
0 = Yetenekli değil
1 = Yetenekli

V0.98'den sonra ayrılmıştır.
Bu parametre, Google özellik spesifikasyonu v0.98 ve üzeri sürümlerde kullanımdan kaldırılmış, bunun yerine BT spesifikasyonu sürüm 4.2 ve üzeri sürümlerde bulunan Gizlilik özelliği kullanılmaktadır.
total_scan_results_storage 2 sekizli Bayt cinsinden tarama sonuçlarının saklanması
max_irk_list_sz 1 sekizli Ürün yazılımında desteklenen IRK girişlerinin sayısı
filtering_support 1 sekizli Denetleyicide filtreleme desteği
0 = Desteklenmiyor
1 = Destekleniyor
max_filter 1 sekizli Desteklenen filtre sayısı
activity_energy_info_support 1 sekizli Faaliyet ve enerji bilgilerinin raporlanmasını destekler
0 = Yetenekli değil
1 = Yetenekli
version_supported 2 sekizli Desteklenen Google özellik spesifikasyonunun sürümünü belirtir
bayt[0] = Ana sayı
bayt[1] = Küçük sayı

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

V0.98'den sonra ayrılmıştır.
Bu parametre, Google özellik spesifikasyonu v0.98 ve üzeri sürümlerde kullanımdan kaldırılmış, bunun yerine BT spesifikasyonu sürüm 4.2 ve üzeri sürümlerde bulunan Gizlilik özelliği kullanılmaktadır.
A2DP_source_offload_capability_mask 4 sekizli Desteklenen codec türleri için bit maskeleri
Bit 0 - SBC
Bit 1 - AAC
Bit 2 - APTX
Bit 3 - APTX HD
Bit 4 - LDAC
Bit 5-31 ayrılmıştır
bluetooth_quality_report_support 1 sekizli Bluetooth Kalitesi olaylarının raporlanmasını destekler
0 = Yetenekli değil
1 = Yetenekli
dynamic_audio_buffer_support 4 sekizli Bluetooth denetleyicisindeki dinamik ses arabelleğini destekler
Desteklenen codec türleri için bit maskeleri
Bit 0 - SBC
Bit 1 - AAC
Bit 2 - APTX
Bit 3 - APTX HD
Bit 4 - LDAC
Bit 5-31 ayrılmıştır
a2dp_offload_v2_support 1 sekizli Bluetooth denetleyicisindeki A2dp Boşaltma v2 komutlarını destekler (bkz. A2DP Boşaltma Başlat , A2DP Boşaltma Durdurma )
0 = Desteklenmiyor
1 = Destekleniyor

Tarama sonuçlarının gruplandırılması

Tasarım hedeflerinden biri, ana bilgisayardaki güç tasarrufu amacıyla Bluetooth LE Tarama Yanıtı olay bildirimlerinin ana bilgisayara iletilme biçimini geliştirmektir.

Denetleyicinin, sonuçları taramak için ana bilgisayar uygulama işlemcisine bildirimde bulunma sıklığını azaltarak, ana bilgisayar uygulama işlemcisi daha uzun süre boşta/uykuda kalabilir. Bu, ana bilgisayardaki güç tüketimini azaltır. LE_Get_Vendor_Capabilities_Command total_scan_results_storage dönüş parametresi, tarama sonuçlarının depolanmasına yönelik çip yeteneğini gösterir.

Bu özellik, Bluetooth denetleyicisindeki LE Tarama Sonuçları depolama olanağının yönetimine ve yapılandırılmasına odaklanır. Depolama, reklam verilerini geçici olarak toplu olarak toplamak ve daha sonra ana bilgisayara teslim edilmek üzere denetleyici tarafından alınan verileri ve meta verileri taramak için kullanılır.

Firmware, aynı anda devreye alınabilecek iki tür gruplamayı destekleyecektir:

  • Kesilmiş. Aşağıdaki bilgi öğelerini içerir: {MAC, TX Power, RSSI, Timestamp}
  • Tam dolu. Aşağıdaki bilgi öğelerini içerir: {MAC, TX Gücü, RSSI, Timestamp, Adv Data, Scan Response}

LE_Batch_Scan_Command

OCF: 0x156

Komut parametresi Boyut Amaç
Batch_Scan_opcode 1 sekizli 0x1 - Müşteriye özel özelliği etkinleştirin
0x2 - Toplu Tarama Depolama parametrelerini ayarlayın
0x3 - Toplu Tarama parametrelerini ayarlayın
0x4 - Toplu Tarama Sonucu parametrelerini okuyun

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır. Müşteriye özel özelliğin etkinleştirilmesi taramayı başlatmaz.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
Batch_Scan_opcode 1 sekizli 0x1 - Müşteriye özel özelliği etkinleştirin
0x2 - Toplu Tarama Depolama parametrelerini ayarlayın
0x3 - Toplu Tarama parametrelerini ayarlayın
0x4 - Toplu Tarama Sonucu parametrelerini okuyun

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

Alt OCF: 0x01

Alt komut parametresi Boyut Amaç
enable_customer_specific_feature_set 1 sekizli 0x01 - Toplu Tarama özelliğini etkinleştir
0x00 - Toplu Tarama özelliğini devre dışı bırakın

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
Batch_Scan_opcode 1 sekizli 0x1 - Müşteriye özel özelliği etkinleştirin
0x2 - Toplu Tarama Depolama parametrelerini ayarlayın
0x3 - Toplu Tarama parametrelerini ayarlayın
0x4 - Toplu Tarama Sonucu parametrelerini okuyun

LE_Batch_Scan_Command: Toplu Tarama Depolama Paramını Ayarla alt komutu

Alt OCF: 0x02

Alt komut parametresi Boyut Amaç
Batch_Scan_Full_Max 1 sekizli Tam stile tahsis edilen maksimum depolama alanı (% olarak)
[Aralık: 0-100]
Batch_Scan_Truncated_Max 1 sekizli Kesilmiş stile ayrılan maksimum depolama alanı (% olarak)
[Aralık: 0-100]
Batch_Scan_Notify_Threshold 1 sekizli Bireysel depolama havuzu için kurulum bildirim düzeyi (% olarak)
[Aralık: 0-100]
0'a ayarlamak bildirimi devre dışı bırakacaktır. Satıcıya özel HCI olayı oluşturuldu (Depolama eşiği ihlali alt olayı)

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
Batch_scan_opcode 1 sekizli 0x02 [Toplu Tarama parametrelerini ayarla]

LE_Batch_Scan_Command: Toplu Tarama Parametresini Ayarla alt komutu

Alt OCF: 0x03

Alt komut parametresi Boyut Amaç
Batch_Scan_Mode 1 sekizli 0x00 – Toplu tarama devre dışı
0x01 – Kesilmiş mod etkinleştirildi
0x02 – Tam mod etkin
0x03 – Kesilmiş ve Tam mod etkinleştirildi
Duty_cycle_scan_window 4 sekizli Toplu Tarama tarama süresi (yuva sayısı)
Duty_cyle_scan_interval 4 sekizli Toplu Tarama aralığı süresi (yuva sayısı)
own_address_type 1 sekizli 0x00 - Genel cihaz adresi
0x01 - Rastgele cihaz adresi
Batch_scan_Discard_Rule 1 sekizli 0 - En eski reklamı sil
1 - En zayıf RSSI'ye sahip reklamları atın

Bu alt komut, etkinleştirilirse toplu taramayı başlatacaktır. Kesilmiş taramada, sonuçlar Kesilmiş stil için benzersiz anahtarın = { BD_ADDR, scan_interval} olduğu kesik biçimde saklanır. Bu, her tarama aralığı için yalnızca bir BD_ADDR will anlamına gelir. Kesilmiş mod için tutulacak kayıt şudur: { BD_ADDR , Tx Power, RSSI, Timestamp}

Tam mod etkinleştirildiğinde aktif tarama kullanılacak ve Tarama Yanıtları kaydedilecektir. Tam stil benzersiz anahtarı = {MAC, Reklam paketi}, tarama aralığından bağımsız olarak. Tam mod için tutulacak kayıt: { BD_ADDR , Tx Power, RSSI, Timestamp, Ad package, Scan Response}. Tam stilde, aynı AD paketi farklı tarama aralıklarında birden çok kez görüldüğünde yalnızca bir kez kaydedilir. Ancak Kesilmiş modda, BA_ADDR farklı tarama aralıklarında görünürlüğü ilgi çekicidir (tarama aralığı başına bir kez). RSSI, bir tarama aralığı içindeki benzersiz bir reklamın tüm kopyalarının ortalama değeridir.

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
Batch_scan_opcode 1 sekizli 0x03 [Toplu Tarama Parametrelerini Ayarla]

LE_Batch_Scan_Command: Toplu Tarama Sonuçlarını Oku alt komutu

Alt OCF: 0x04

Alt komut parametresi Boyut Amaç
Batch_Scan_Data_read 1 sekizli 0x01 – Kesilmiş mod verileri
0x02 – Tam mod verileri

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır. Ana bilgisayar bu komutu verdiğinde denetleyicideki tüm sonuçlar tek bir Komut Tamamlama olayına sığmayabilir. Ana bilgisayar, Komut Tamamlama olayındaki karşılık gelen sonuçlar kayıt sayısında 0'ı gösterene kadar bu komutu vermeyi yineleyecektir; bu, denetleyicinin ana bilgisayarla iletişim kuracak başka kaydı olmadığını gösterir. Her Komut Tamamlama olayı yalnızca tek bir veri türünden (Tam veya Kesilmiş) birden fazla kayıt içerebilir.

Denetleyici ve ana bilgisayar zaman referansları senkronize değil. Zaman damgasının birimi 50 ms'dir. Zaman damgasının değeri, ana bilgisayar tarafından Read_Batch_Scan_Results_Sub_cmd verildiğinde temel alınır. Firmware'de bir komutun varış zamanı T_c ise, firmware'de zaman damgasının alındığı gerçek zaman T_fw olur. Raporlama süresi şöyle olacaktır: ( T_c - T_fw ). T_c ve T_fw ürün yazılımı zaman alanındadır. Bu, toplantı sahibinin olayın ne kadar zaman önce gerçekleştiğini hesaplamasını sağlar.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
Batch_scan_opcode 1 sekizli 0x03 [Toplu Tarama parametrelerini ayarla]
Batch_Scan_data_read 1 sekizli Formatı tanımlar (Kesilmiş veya Tam)
num_of_records 1 sekizli Batch_Scan_data_read kayıtlarının sayısı
format_of_data Değişken Kesilmiş Mod:
Adres[0]: 6 sekizli
Adres_Türü[0]: 1 sekizli
Tx_Pwr[0]: 1 sekizli
RSSI[0] : 1 sekizli
Zaman damgası[0]: 2 sekizli
[yukarıdaki formatta birden fazla kayıt ( num_of_records )]

Tam Mod:
Adres[0]: 6 sekizli
Adres_Türü[0]: 1 sekizli
Tx_Pwr[0]: 1 sekizli
RSSI[0]: 1 sekizli
Zaman damgası[0]: 2 sekizli
Adv package_len[0]: 1 sekizli
Adv_packet[0]: Adv_packet_len sekizli
Scan_data_resp_len[0]: 1 sekizli
Scan_data_resp[0]: Scan_data_resp sekizlileri
[yukarıdaki formatta birden fazla kayıt ( num_of_records )]

Reklam Paketi İçerik Filtresi

Denetleyicideki Reklam Paketi İçerik Filtresini (APCF) etkinleştirmek/devre dışı bırakmak/ayarlamak için bunu kullanın. APCF, denetleyicideki reklam raporlarını filtreler ancak periyodik reklamları filtrelemez.

LE_APCF_Komut

OCF: 0x157

Komut parametresi Boyut Amaç
APCF_opcode 1 sekizli 0x00 - APCF Etkinleştir
0x01 - APCF Filtreleme parametrelerini ayarla
0x02 - APCF Yayıncı Adresi
0x03 - APCF Hizmeti UUID'si
0x04 - APCF Hizmet Talebi UUID'si
0x05 - APCF Yerel Adı
0x06 - APCF Üretici Verileri
0x07 - APCF Hizmet Verileri
0x08 - APCF Taşıma Keşif Hizmeti
0x09 - APCF AD Tipi Filtre
0x10 ~ 0xAF - Gelecekte kullanılmak üzere ayrılmıştır
0xB0 ~ 0xDF - Satıcıya ayrılmıştır
0xE0 ~ 0xFE - Gelecekte kullanılmak üzere ayrılmıştır
0xFF - APCF Genişletilmiş Özellikleri Oku

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli İade durumu
APCF_opcode 1 sekizli 0x00 - APCF Etkinleştir
0x01 - APCF Filtreleme parametrelerini ayarla
0x02 - APCF Yayıncı Adresi
0x03 - APCF Hizmeti UUID'si
0x04 - APCF Hizmet Talebi UUID'si
0x05 - APCF Yerel Adı
0x06 - APCF Üretici Verileri
0x07 - APCF Hizmet Verileri
0x08 - APCF Taşıma Keşif Hizmeti
0x09 - APCF AD Tipi Filtre
0x10 ~ 0xAF - Gelecekte kullanılmak üzere ayrılmıştır
0xB0 ~ 0xDF - Satıcıya ayrılmıştır
0xE0 ~ 0xFE - Gelecekte kullanılmak üzere ayrılmıştır
0xFF - APCF Genişletilmiş Özellikleri Oku

LE_APCF_Command: Enable_sub_cmd

Alt OCF: 0x00

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

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
APCF_opcode 1 sekizli 0x0 - APCF Etkinleştir
APCF_Enable 1 sekizli Etkinleştirme/devre dışı bırakma APCF_enable aracılığıyla ayarlanır

LE_APCF_Komut: set_filtering_parameters_sub_cmd

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

Alt OCF: 0x01

Alt komut parametresi Boyut Amaç
APCF_Action 1 sekizli 0x00 - Ekle
0x01 - Sil
0x02 - Temizle
Sil, diğer tablolardaki ilgili özellik girişleriyle birlikte belirli filtreyi de temizler.
Temizle, diğer tablolardaki tüm filtreleri ve ilgili girişleri temizleyecektir.
APCF_Filter_Index 1 sekizli Filtre dizini (0, max_filter-1 )
APCF_Feature_Selection 2 sekizli Seçilen özellikler için bit maskeleri:
Bit 0: Yayın Adresi filtresini etkinleştirmek için ayarlayın
Bit 1: Servis Veri Değişikliği filtresini etkinleştirmek için ayarlayın
Bit 2: Hizmet UUID kontrolünü etkinleştirmek için ayarlayın
Bit 3: Hizmet Talebi UUID kontrolünü etkinleştirmek için ayarlayın
Bit 4: Yerel Ad kontrolünü etkinleştirmek için ayarlayın
Bit 5: Üretici Veri Kontrolünü etkinleştirmek için ayarlayın
Bit 6: Servis Veri Kontrolünü etkinleştirmek için ayarlayın
Bit 7: Aktarım Keşif Hizmeti Denetimini etkinleştirmek için ayarlayın
Bit 8: AD Tipi Kontrolünü etkinleştirmek için ayarlayın
APCF_List_Logic_Type 2 sekizli APCF_Feature_Selection belirtilen her özellik seçimine (bit başına konum) yönelik mantıksal işlem.
Yalnızca bir özellik etkinleştirildiğinde geçerlidir.
Bit konum değeri:
0: VEYA
1: VE
"VE" mantığı seçilirse, bir ADV paketi yalnızca listedeki girişlerin TÜMÜNÜ içeriyorsa filtreden geçecektir.
"OR" mantığı seçilirse, bir ADV paketi listedeki girişlerden herhangi birini içeriyorsa filtreden geçecektir.
APCF_Filter_Logic_Type 1 sekizli 0x00: VEYA
0x01: VE
Not: APCF_Feature_Selection öğesinin ilk üç alanı için mantık türü N/A'dır ve bu her zaman "VE" mantığıdır. Bunlar yalnızca APCF_Feature_Selection (Bit 3 - Bit 6) dört alanı için geçerlidir.
rssi_high_thresh 1 sekizli [dBm cinsinden]
Reklamverenin yalnızca sinyalin RSSI yüksek eşiğinden yüksek olması durumunda görüldüğü kabul edilir. Aksi takdirde, ürün yazılımının onu hiç görmemiş gibi davranması gerekir.
delivery_mode 1 sekizli 0x00 - immediate
0x01 - on_found
0x02 - batched
onfound_timeout 2 sekizli Yalnızca delivery_mode on_found ise geçerlidir.
[milisaniye cinsinden]
Firmware'in raporlamadan önce oyalanıp ek reklamlar toplamasının zamanı geldi.
onfound_timeout_cnt 1 sekizli Yalnızca delivery_mode on_found ise geçerlidir.
[saymak]
onFound bir reklam onfound_timeout süresi boyunca ürün yazılımında kalırsa, birkaç reklam toplayacak ve sayım kontrol edilecektir. Sayım onfound_timeout_cnt aşarsa, hemen ardından OnFound olarak raporlanır.
rssi_low_thresh 1 sekizli Yalnızca delivery_mode on_found ise geçerlidir.
[dBm cinsinden]
Alınan paketin RSSI'si RSSI düşük eşiğinin üzerinde değilse, reklamveren paketinin görülmediği kabul edilir.
onlost_timeout 2 sekizli Yalnızca delivery_mode on_found ise geçerlidir.
[milisaniye cinsinden]
Bir ilan, bulunduktan sonra lost_timeout süresi boyunca sürekli olarak görülmezse, derhal kayıp olarak bildirilecektir.
num_of_tracking_entries 2 sekizli Yalnızca delivery_mode on_found ise geçerlidir.
[saymak]
Filtre başına izlenecek reklamverenlerin toplam sayısı.

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

Ana bilgisayar, çeşitli filtre kombinasyonlarını yönetmek için APCF_Application_Address_type 0x02'ye (tüm yayıncı adresleri için) ayarlanmış olarak birden fazla filtre yapılandırabilecektir.

Filtreleme, toplu işlem ve raporlama birbiriyle ilişkili kavramlardır. Her reklam ve ilgili tarama yanıtının birbiri ardına tüm filtrelerden geçmesi gerekecektir. Bu nedenle, ortaya çıkan eylemler ( delivery_mode ) filtrelemeye yakından bağlıdır. Teslimat modları şunlardır: report_immediately , batch ve onFound . OnLost değeri, kaybolduğunda OnFound sonra gelmesi anlamında OnFound ile ilişkilidir.

Bu işlem akışı kavramsal modeli tasvir etmektedir:

Bir reklam (veya tarama yanıtı) çerçevesi alındığında, tüm filtrelere seri sırayla uygulanır. Bir reklamın, farklı bir filtre eylemi nedeniyle tek bir filtreye dayalı olarak anında raporlamaya ve aynı filtrenin gruplandırılmasına neden olması mümkündür.

RSSI seviyesi eşikleri (yüksek ve düşük), denetleyici tarafından geçerli bir paket alındığında bile, çerçevenin filtre işleme için ne zaman görünür olacağını kontrol etme yeteneği sağlar. Teslimat modunun anında veya toplu olarak ayarlanması durumunda, daha sonraki denetleyici işlemleri için bir çerçevenin RSSI'si dikkate alınır. Farklı uygulamaların farklı raporlama ve toplu işlem davranışlarına ihtiyacı vardır. Bu, birden fazla uygulamanın aynı anda doğrudan raporlamasına ve/veya sonuçların ürün yazılımında toplu olarak gruplanmasına olanak tanır. Bunun bir örneği, bir uygulamadan toplu taramanın etkin olduğu ve daha sonra başka bir uygulama tarafından düzenli bir LE taramasının yayınlandığı durumdur. Toplu tarama yapılmadan önce çerçeve/uygulama uygun filtreleri ayarlar. Daha sonra ikinci uygulama düzenli bir tarama yayınladığında önceki toplu işlem devam eder. Ancak, düzenli tarama nedeniyle, kavramsal olarak LE tarama komutuyla birlikte boş bir filtre (mevcut tüm filtrelerle birlikte) eklemeye benzer. LE tarama komutu parametreleri etkin olduğunda önceliklidir. Normal LE taraması devre dışı bırakıldığında, denetleyici, varsa önceki toplu taramaya geri döner.

OnFound dağıtım modu yapılandırılmış filtrelere dayanır. Başarılı olması için bir filtre eylemini tetikleyen bir kombinasyon, onLost için izlenecek varlık olarak kabul edilir. İlgili olay LE Advt izleme alt olayıdır.

Bir filtre için OnFound/OnLost geçişi (etkinse) aşağıdaki gibi görünecektir:

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
APCF_opcode 1 sekizli 0x01 - APCF Filtreleme Parametrelerini Ayarla
APCF_Action 1 sekizli Echo back komutunun APCF_Action
APCF_AvailableSpaces 1 sekizli Filtreler tablosundaki mevcut girişlerin sayısı

LE_APCF_Komut: yayın_adresi_alt_cmd

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

Alt OCF: 0x02

Alt komut parametresi Boyut Amaç
APCF_Action 1 sekizli 0x00 - Ekle
0x01 - Sil
0x02 - Temizle
Sil, belirtilen filtredeki belirtilen yayıncı adresini silecektir.
Temizle, belirtilen filtredeki tüm yayıncı adreslerini temizleyecektir.
APCF_Filter_Index 1 sekizli Filtre dizini (0, max_filter-1 )
APCF_Broadcaster_Address 6 sekizli Yayıncı adres listesine eklenecek veya listeden silinecek 6 baytlık cihaz adresi
APCF_Application_Address_type 1 sekizli 0x00: Genel
0x01: Rastgele
0x02: Yok (adres türü uygulanamaz)

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
APCF_opcode 1 sekizli 0x02 - APCF Yayıncı Adresi
APCF_Action 1 sekizli Echo back komutunun APCF_Action
APCF_AvailableSpaces 1 sekizli Yayın Adresi tablosunda hâlâ mevcut olan ücretsiz girişlerin sayısı

LE_APCF_Komut: service_uuid_sub_cmd

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

Alt OCF: 0x03

Alt komut parametresi Boyut Amaç
APCF_Action 1 sekizli 0x00 - Ekle
0x01 - Sil
0x02 - Temizle
Sil, belirtilen filtrede belirtilen hizmet UUID adresini silecektir.
Clear, belirtilen filtredeki tüm hizmet UUID'lerini temizleyecektir.
APCF_Filter_Index 1 sekizli Filtre dizini (0, max_filter -1)
APCF_UUID 2,4,16 sekizli Listeye ekleme veya listeden silme için Hizmet UUID'si (16 bit, 32 bit veya 128 bit).
APCF_UUID_MASK 2,4,16 sekizli Listeye eklenecek Hizmet UUID Maskesi (16 bit, 32 bit veya 128 bit). APCF_UUID.

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
APCF_opcode 1 sekizli 0x03 - APCF Hizmeti UUID'si
APCF_Action 1 sekizli Echo back komutunun APCF_Action
APCF_AvailableSpaces 1 sekizli Hizmet UUID tablosunda hâlâ mevcut olan ücretsiz girişlerin sayısı

LE_APCF_Komut: talep_uuid_sub_cmd

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

Alt OCF: 0x04

Alt komut parametresi Boyut Amaç
APCF_Action 1 sekizli 0x00 - Ekle
0x01 - Sil
0x02 - Temizle
Sil, belirtilen filtredeki talep UUID adresini silecektir.
Temizle, belirtilen filtredeki tüm talep UUID'lerini temizleyecektir.
APCF_Filter_Index 1 sekizli Filtre dizini (0, max_filter -1)
APCF_UUID 2,4,16 sekizli Listeye eklenecek veya listeden silinecek Talep UUID'si (16 bit, 32 bit veya 128 bit).
APCF_UUID_MASK 2,4,16 sekizli Listeye eklenecek Talep UUID Maskesi (16 bit, 32 bit veya 128 bit). APCF_UUID ile aynı uzunlukta olmalıdır.

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
APCF_opcode 1 sekizli 0x04 - APCF Talep UUID'si
APCF_Action 1 sekizli Echo back komutunun APCF_Action
APCF_AvailableSpaces 1 sekizli Talep UUID tablosunda hâlâ mevcut olan ücretsiz girişlerin sayısı

LE_APCF_Komut: yerel_adı_alt_cmd

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

Alt OCF: 0x05

Alt komut parametresi Boyut Amaç
APCF_Action 1 sekizli 0x00 - Ekle
0x01 - Sil
0x02 - Temizle
Sil, belirtilen filtredeki belirtilen yerel ad dizesini silecektir.
Clear, belirtilen filtredeki tüm yerel ad dizelerini temizleyecektir.
APCF_Filter_Index 1 sekizli Filtre dizini (0, max_filter -1)
APCF_LocName_Mandata_or_SerData Değişken boyut Yerel ad için bir karakter dizesi.

Notlar:
  • Şu anda yerel ad dizesindeki maksimum karakter sayısı 29'dur
  • Eylem "Temizle" (0x2) olduğunda geçerli değildir

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
APCF_opcode 1 sekizli 0x05 - APCF Yerel Adı
APCF_Action 1 sekizli Echo back komutunun APCF_Action
APCF_AvailableSpaces 1 sekizli Yerel ad tablosunda hâlâ mevcut olan ücretsiz girişlerin sayısı

LE_APCF_Komut: manf_data_sub_cmd

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

Alt OCF: 0x06

Alt komut parametresi Boyut Amaç
APCF_Action 1 sekizli 0x00 - Ekle
0x01 - Sil
0x02 - Temizle
Sil, belirtilen filtredeki belirtilen üretici veri dizesini silecektir.
Temizle, belirtilen filtredeki tüm üretici veri dizelerini temizleyecektir.
APCF_Filter_Index 1 sekizli Filtre Dizini (0, max_filter -1)
APCF_LocName_Mandata_or_SerData Değişken boyut Üretici verileri için bir karakter dizisi.

Notlar:
  • Şu anda yerel ad dizesindeki maksimum karakter sayısı 29'dur
  • Eylem "Temizle" (0x2) olduğunda geçerli değildir
APCF_ManData_Mask Değişken boyut Listeye eklenecek üretim veri maskesi. APCF_LocName_or_ManData_or_SerData ile aynı uzunlukta olmalıdır.

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
APCF_opcode 1 sekizli 0x06 - APCF Üretici Verileri
APCF_Action 1 sekizli Echo back komutunun APCF_Action
APCF_AvailableSpaces 1 sekizli Üretici Verileri tablosunda hâlâ mevcut olan ücretsiz girişlerin sayısı

LE_APCF_Komut: service_data_sub_cmd

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

Alt OCF: 0x07

Alt komut parametresi Boyut Amaç
APCF_Action 1 sekizli 0x00 - Ekle
0x01 - Sil
0x02 - Temizle
Sil, belirtilen filtredeki belirtilen hizmet veri dizesini silecektir.
Temizle, belirtilen filtredeki tüm hizmet veri dizelerini temizleyecektir.
APCF_Filter_Index 1 sekizli Filtre Dizini (0, max_filter -1)
APCF_LocName_Mandata_or_SerData Değişken boyut Hizmet verileri için bir karakter dizisi.

Notlar:
  • Şu anda yerel ad dizesindeki maksimum karakter sayısı 29'dur
  • Eylem "Temizle" (0x2) olduğunda geçerli değildir
APCF_LocName_Mandata_or_SerData_Mask Değişken boyut Listeye eklenecek hizmet veri maskesi. APCF_LocName_or_ManData_or_SerData.

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
APCF_opcode 1 sekizli 0x07 - APCF Hizmet Verileri
APCF_Action 1 sekizli Echo back komutunun APCF_Action
APCF_AvailableSpaces 1 sekizli Hizmet Verileri tablosu için hâlâ mevcut olan ücretsiz girişlerin sayısı

LE_APCF_Komut: ad_type_sub_cmd

Bu alt komut, bir AD tipi eklemek veya silmek ya da çip üzerinde filtreleme için bir AD tipi listesini temizlemek için kullanılır. Bu komutun desteklenip desteklenmediğini kontrol etmek için read_extended_features_sub_cmd kullanın.

Alt OCF: 0x09

Alt komut parametresi Boyut Amaç
APCF_Action 1 sekizli 0x00 - Ekle
0x01 - Sil
0x02 - Temizle
Sil, belirtilen filtrede belirtilen AD tipini silecektir.
Temizle, belirtilen filtredeki tüm AD türlerini temizleyecektir.
APCF_Filter_Index 1 sekizli Filtre Dizini (0, max_filter -1)
APCF_AD_TYPE 1 sekizli Listeye ekleme veya listeden silme için AD Türü. APCF_Action 0x02 olduğunda yoksay (Temizle)
APCF_AD_DATA_Length Değişken boyut 0x00 - veri içeriğinin filtrelenmediği anlamına gelir
APCF_Action 0x02 olduğunda yoksay (Temizle)
APCF_AD_DATA Değişken boyut APCF_Action 0x02 olduğunda yoksay (Temizle)
APCF_AD_DATA_MASK Değişken boyut APCF_Action 0x02 olduğunda yoksay (Temizle)
APCF_AD_DATA ile aynı uzunlukta olmalıdır.

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
APCF_opcode 1 sekizli 0x09 - APCF AD Türü
APCF_Action 1 sekizli Echo back komutunun APCF_Action
APCF_AvailableSpaces 1 sekizli AD Türü tablosunda hâlâ mevcut olan ücretsiz girişlerin sayısı

LE_APCF_Komut: read_extulated_features_sub_cmd

Bu alt komut genişletilmiş APCF özelliklerini okumak için kullanılır.

Alt OCF: 0xFF

Alt komut parametresi Boyut Amaç
Uygulanamaz Boş komut parametresi.

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
APCF_opcode 1 sekizli 0xFF - APCF_Read_Extished_Features
APCF_extended_features 2 sekizli

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

  • Bit 0: Destek Aktarım Keşif Hizmeti filtresi
  • Bit 1: AD Tipi filtresini destekleyin
  • Bit 2 ~15: Gelecekte kullanılmak üzere ayrılmıştır

Bit değeri

  • 0 = Desteklenmiyor
  • 1 = Destekleniyor

Denetleyici etkinliği ve enerji bilgisi komutu

Bu bilgilerin amacı, daha yüksek ana bilgisayar sistemi işlevlerinin, uygulamalarda ve çerçevede olup bitenlerle bağlantılı olarak BT denetleyicisi ve makro durumu da dahil olmak üzere tüm bileşenlerin toplam etkinliklerini analiz etmesini sağlamaktır. Bunu yapmak için BT yığınından ve denetleyiciden aşağıdaki bilgiler gereklidir:

  • BT yığını: Denetleyicinin mevcut makro-işlemsel durumunu raporlama
  • Firmware: Toplu aktivite ve enerji bilgilerinin raporlanması

BT ana bilgisayar yığını makro durumları, kullanıcı düzeyinde belirlendiği şekilde:

  • Boşta: [sayfa taraması, LE reklamı, sorgulama taraması]
  • Tarama: [çağrı arama/sorgulama/bağlanmaya çalışılıyor]
  • Aktif: [ACL bağlantısı açık, SCO bağlantısı devam ediyor, koklama modu]

Kontrolörün ömrü boyunca takip ettiği faaliyetler Tx süresi, Rx süresi, boşta kalma süresi ve tüketilen toplam enerjidir. Ana bilgisayardan okunduğunda temizlenirler.

LE_Get_Controller_Activity_Energy_Info

Bu satıcıya özel bir komuttur.

OCF: 0x159

Alt komut parametresi Boyut Amaç
Yok Komut parametrelerini boşalt

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
total_tx_time_ms 4 sekizli Tx gerçekleştirmenin toplam süresi
total_rx_time_ms 4 sekizli Rx gerçekleştirmenin toplam süresi
total_idle_time_ms 4 sekizli Boşta kalan toplam süre (uyku dışı düşük güç durumları)
total_energy_used 4 sekizli Kullanılan toplam enerji [akım (mA), voltaj (V) ve zamanın (ms) çarpımı]

LE genişletilmiş tarama parametrelerini ayarlama komutu

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

Temel referans: BT Core 5.2 Spesifikasyonu, sayfa 2493 (LE Tarama Parametrelerini Ayarla Komutu)

OCF: 0x15A

Komut Parametresi Boyut Amaç
LE_Ex_Scan_Type 1 sekizli 0x00 - Pasif tarama. Hiçbir SCAN_REQ paketi gönderilmeyecektir (varsayılan).
0x01 - Etkin tarama. SCAN_REQ paketleri gönderilebilir.
LE_Ex_Scan_Interval 4 sekizli Denetleyicinin son LE taramasına başlamasından sonraki LE taramasına başlamasına kadar geçen zaman aralığı olarak tanımlanır.
Aralık: 0x0004 ila 0x00FFFFFF
Varsayılan: 0x0010 (10 ms)
Süre = N * 0,625 ms
Zaman aralığı: 2,5 ms ila 10442,25 saniye
LE_Ex_Scan_Window 4 sekizli LE taramasının süresi. LE_Scan_Window LE_Scan_Interval değerinden küçük veya ona eşit olacaktır.
Aralık: 0x0004 ila 0xFFFF
Varsayılan: 0x0010 (10 ms)
Süre = N * 0,625 ms
Zaman Aralığı: 2,5 ms ila 40,95 saniye
Own_Address_Type 1 sekizli 0x00 - Genel Cihaz Adresi (varsayılan)
0x01 - Rastgele Cihaz Adresi
LE_Ex_Scan_Filter_Policy 0x00 - Tüm reklam paketlerini kabul edin (varsayılan). Bu cihaza yönelik olmayan yönlendirilmiş reklam paketleri dikkate alınmayacaktır.
0x01 - Yalnızca Beyaz Liste listesinde olmayan cihazlardan gelen reklam paketlerini yoksay. Bu cihaza yönelik olmayan yönlendirilmiş reklam paketleri dikkate alınmayacaktır.

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu

Denetleyici hata ayıklama bilgilerini al komutu

Bu bilgi öğesinin amacı, işlem sonrası ve analiz için bir ana bilgisayar tarafından ikili biçimde denetleyici hata ayıklama bilgilerini elde etmektir. Bu, sahadaki sorunların ayıklanmasına yardımcı olur ve mühendislere analiz için bilgileri günlüğe kaydedebilecekleri bir araç seti sağlar. Bir Denetleyici, bir ana bilgisayar tarafından talep edildiğinde bilgiyi olay (Denetleyici Hata Ayıklama Bilgisi alt olayı) aracılığıyla veya denetleyici tarafından istendiğinde bağımsız olarak sağlayabilir. Örnek kullanımlar, ürün yazılımı durumu bilgilerini, kilitlenme dökümü bilgilerini, günlük bilgilerini vb. raporlamak olabilir.

OCF: 0x15B

Komut parametresi Boyut Amaç
Yok Komut parametre listesini boşalt

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu

A2DP Donanım Aktarımı Desteği

A2DP Aktarımı özelliği, A2DP ses kodlama işleminin BT Denetleyiciye bağlı bir ses işlemcisine aktarılmasını destekler. Kodlanmış ses veri akışı, BT ana bilgisayarının katılımı olmadan doğrudan Ses işlemcisinden BT Denetleyiciye geçer. BT Ana Bilgisayarı A2DP oturumunun yapılandırılmasından ve kontrolünden hâlâ sorumludur. Komutların iki versiyonu mevcuttur. Sub OCF 0x01-0x02'ye sahip eski komutlar yalnızca açık kaynaklı codec bileşenlerini destekler. Sub-OCF 0x02-0x03'e sahip sürümler, yapılandırılmış codec bileşeninden bağımsızdır.

OCF: 0x15D

A2DP Aktarımını Başlat (eski)

Alt OCF: 0x01

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

Komut parametresi Boyut Amaç
Codec 4 sekizli Codec türünü belirtir
0x01 - SBC
0x02 - AAC
0x04 - APTX
0x08 - APTX HD
0x10 -LDAC
Max_Latency 2 sekizli İzin Verilen Maksimum Gecikme (ms cinsinden). Sıfır değeri yıkamayı devre dışı bırakır.
SCMS-T_Enable 2 sekizli Sekizli 0: SCMS-T başlığının eklenmesini sağlayan bayrak.
  • 0x00 - SCMS-T Başlığı dahil değildir.
  • 0x01 - SCMS-T Başlığı dahil.

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

Sampling_Frequency 4 sekizli 0x01 - 44100Hz
0x02 - 48000 Hz
0x04 - 88200Hz
0x08 - 96000 Hz
Bits_Per_Sample 1 sekizli 0x01 - örnek başına 16 bit
0x02 - örnek başına 24 bit
0x04 - örnek başına 32 bit
Channel_Mode 1 sekizli 0x01 - Tek renkli
0x02 - Stereo
Encoded_Audio_Bitrate 4 sekizli Kodlanmış ses bit hızı, saniye başına bit cinsinden.
0x00000000 - Ses bit hızı belirtilmedi/kullanılmadı.
0x00000001 - 0x00FFFFFF - Saniye başına bit cinsinden kodlanmış ses bit hızı.
0x01000000 - 0xFFFFFFFF - Ayrılmış.
Connection_Handle 2 sekizli Yapılandırılan A2DP bağlantısının Bağlantı Kolu
L2CAP_Channel_ID 2 sekizli Bu A2DP bağlantısı için kullanılacak L2CAP Kanal Kimliği
L2CAP_MTU_Size 2 sekizli Kodlanmış ses paketlerini içeren maksimum L2CAP MTU boyutu
Codec_Information 32 sekizli Codec'e Özel Bilgiler.

SBC Codec'i:

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

AAC Codec'i:

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

LDAC Codec'i:

0-3 Sekizli: Satıcı Kimliği
0x0000012D

4-5 Ekim: Codec Kimliği
0x00AA-LDAC
Diğer tüm değerler saklıdır

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

Sekizli 7: LDAC Kanal Modu
0x01 - Stereo
0x02 - Çift
0x04 - Tek renkli
Diğerleri saklıdır

8-31 Ekim: ayrılmış

Diğer tüm kodlayıcılar:

0-31 Ekim: ayrılmış

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
Sub_Opcode 1 sekizli 0x01 - A2DP Aktarımını Başlat

A2DP Aktarımını Başlat

Alt OCF: 0x03

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

Komut parametresi Boyut Amaç
Connection Handle 2 sekizli Aktif HCI bağlantısının kolu
L2CAP_Channel_ID 2 sekizli A2DP akışı için açılan L2CAP Kanalının tanımlayıcısı
Data_Path_Direction 1 sekizli 0x00 - Çıkış (AVDTP Kaynağı/Birleştirme)
0x01 - Giriş (AVDTP Havuzu/Bölme)
Peer_MTU 2 sekizli Eş ile anlaşılan maksimum L2CAP paketi boyutu.
CP_Enable_SCMS_T 1 sekizli 0x00 - SCMS-T İçerik Koruma Başlığını Devre Dışı Bırak
0x01 - SCMS-T İçerik Koruma Başlığını Etkinleştir
CP_Header_SCMS_T 1 sekizli SCMS-T İçerik Koruma Başlığı etkinleştirildiğinde ( CP_SCMS_T_Enable 0x01'e ayarlı), Bluetooth Atanmış Numaralar, bölüm 6.3.2 tarafından tanımlandığı gibi ses içeriğinden önce gelen başlık değerini tanımlar (bkz. A2DP, bölüm 3.2.1-2).
SCMS-T İçerik koruması etkinleştirilmediğinde yoksayılır.
Vendor_Specific_Parameters_Length 1 sekizli Satıcıya Özel Parametrelerin Uzunluğu, 0 ila 128 aralığında.
Hiçbir ek parametre sağlanmadığında 0 değeri kullanılır.
Vendor_Specific_Parameters 0-128 sekizli Bluetooth Audio HAL, CodecParameters.vendorSpecificParameters[] tarafından sağlanan Satıcıya Özel Parametreler.

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
Sub_Opcode 1 sekizli 0x03 - A2DP Aktarımını Başlat

A2DP Aktarımını Durdur (eski)

Alt OCF: 0x02

Bu komut A2DP Aktarımı akışını durdurmak için kullanılır.

Komut parametresi Boyut Amaç
Yok Komut parametre listesini boşaltın.

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

Bu komut için bir Komut Tamamlandı olayı oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 sekizli Komut Tamamlandı durumu
Sub_Opcode 1 sekizli 0x02 - A2DP Aktarımını Durdur

A2DP Aktarımını Durdurun

Alt OCF: 0x04

Bu komut A2DP Aktarımı akışını durdurmak için kullanılır.

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

Bu komut için bir komut tam olay oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 Octet Komut Komple Durumu
Sub_Opcode 1 Octet 0x04 - A2DP boşaltma

Bluetooth Kalite Rapor Komutu

BT kalite raporu komut özelliği, Bluetooth kalite olaylarını ana bilgisayara bildirmek için Bluetooth denetleyicisindeki mekanizmayı başlatır. Dört seçeneği etkinleştirebilirsiniz:

  • Kalite İzleme Modu: Denetleyici periyodik olarak ana bilgisayara bağlantı kalitesi ile ilgili bir BQR alt etkinliği gönderir.
  • Yaklaşan LSTO: Bağlantılı BT cihazından bağlantı denetimi zaman aşımının (LSTO) değerinin yarısından daha uzun bir paket alınmazsa, denetleyici yaklaşan bir LSTO olayını ana bilgisayara bildirir.
  • A2DP Audio Dalgası: Denetleyici dalgalı sese neden olan faktörleri algıladığında, kontrolör ana bilgisayara bir A2DP ses dalgalı olay bildirir.
  • (E) SCO Voice Dalgası: Denetleyici dalgalı sese neden olan faktörleri algıladığında, denetleyici (e) SCO ses dalgalı olayını ana bilgisayara bildirir.
  • Kök iltihabı: Bu olay, HAL veya kontrolör ölümcül bir hatayla karşılaştığında ve Bluetooth'u yeniden başlatması gerektiğinde kontrolör tarafından yığın olarak gönderilir.
  • LMP/LL Mesaj İzleme: Denetleyici, uzak cihazla LMP/LL mesaj el sıkışmasını ana bilgisayara gönderir.
  • Bluetooth Multi-Profile/Coex Zamanlama İzleme: Denetleyici, 2.4 GHz bandında birden fazla Bluetooth profilini ve kablosuz bir arada bulunma konusundaki planlama bilgilerini ana bilgisayara gönderir.
  • Denetleyici Hata Ayıklama Bilgi Mekanizması: Etkinleştirildiğinde, denetleyici, KONTROL KAYDIRILIĞINDA BİLGİ Hata Ayıklama Bilgi Alt Event aracılığıyla Hata Ayıklama Günlüğü Bilgileri'ni özerk bir şekilde rapor edebilir.

OCF: 0x15E

Komut parametresi Boyut Amaç
BQR_Report_Action 1 Octet BQR_QUALity_EVENT_MASK parametresinde ayarlanan kalite olaylarının raporlanmasını eklemek / silmek için eylem veya hepsini temizleyin.

0x00 - Ekle
0x01 - Sil
0x02 - Temizle

Sil, belirli kalite olay (lar) raporunu temizler.
Clear tüm kaliteli olay raporlarını temizleyecektir (bqr_quality_event_mask parametresi göz ardı edilebilir).

BQR_Quality_Event_Mask 4 sekizli Seçilen kaliteli olay raporlaması için bit maskeleri.

Bit 0: Kalite İzleme Modunu etkinleştirecek şekilde ayarlayın.
Bit 1: Yaklaşan LSTO olayını etkinleştirecek şekilde ayarlayın (ACL/(E) SCO/ISO için).
Bit 2: A2DP ses dalgalı olayını etkinleştirecek şekilde ayarlayın.
Bit 3: (E) SCO ses dalgalı olayını etkinleştirecek şekilde ayarlayın.
Bit 4: Kök iltihabı olayını etkinleştirecek şekilde ayarlayın.
Bit 5: Enerji İzleme Modunu etkinleştirecek şekilde ayarlayın.
Bit 6: LE Audio dalgalı olayını etkinleştirecek şekilde ayarlayın.
Bit 7: Bağlantı Hapis Olayını etkinleştirecek şekilde ayarlayın.
Bit 8 ~ 14: Ayrılmış.
Bit 15: Satıcıya özgü kalite etkinliklerini etkinleştirecek şekilde ayarlayın.
Bit 16: LMP/LL mesaj izini etkinleştirecek şekilde ayarlayın.
Bit 17: Bluetooth Multi-Link/Coex zamanlama izini etkinleştirecek şekilde ayarlayın.
Bit 18: Denetleyici hata ayıklama bilgi mekanizmasını etkinleştirecek şekilde ayarlayın.
Bit 19 ~ 30: Ayrılmış.
Bit 31: Satıcıya özgü izi etkinleştirecek şekilde ayarlayın.

BQR_Minimum_Report_Interval 2 sekiz Seçilen kalite olay (lar) için kalite olay raporlamasının minimum zaman aralığını tanımlayın. Denetleyici ürün yazılımı, bir sonraki olayı tanımlanan zaman aralığında bildirmemelidir. Aralık ayarı, ilave edilen kalite olay (lar) için ilgili ve adanmış olmalıdır.

Birim: MS
Varsayılan: 0 (Aralık için sınırlama yok.)
Aralık: 0 ~ 65535 ms

BQR_Vendor_Specific_Quality_Event_Mask 4 sekizli Seçilen satıcıya özgü kalite olay raporlaması için bit maskeleri.
Bu parametre yalnızca BQR_Quality_Event_Mask 15 biti ayarlandığında geçerlidir.

Bit 0 ~ 31: Ayrılmış.

BQR_Vendor_Specific_Trace_Mask 4 sekizli Seçilen satıcıya özgü iz raporlaması için bit maskeleri.
Bu parametre yalnızca BQR_Quality_Event_Mask BIT 31'i ayarlandığında geçerlidir.

Bit 0 ~ 31: Ayrılmış.

Bu komut için bir komut tam olay oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 Octet Komut Komple Durumu
Current_Quality_Event_Mask 4 sekizli Geçerli bit maske ayarını gösterir.
Bit 0: Kalite izleme modu etkinleştirildi.
Bit 1: Yaklaşan LSTO olay raporlaması etkinleştirildi.
Bit 2: A2DP Ses dalgalı olay raporlaması etkinleştirilir.
Bit 3: (e) SCO sesli dalgalı olay raporlaması etkinleştirilir.
Bit 4: Kök iltihabı olayı raporlaması etkinleştirilir.
Bit 5: Enerji izleme modu etkinleştirildi.
Bit 6: LE Audio Chippy olay raporlaması etkinleştirildi.
Bit 7: Bağlan Fail olayını bağlayın.
Bit 8 ~ 14: Ayrılmış.
Bit 15: Tedarikçiye özgü kalite olay raporlaması etkinleştirildi.
Bit 16: LMP/LL mesaj izi etkinleştirilir.
Bit 17: Bluetooth Multi-Link/Coex Zamanlama İzleme etkinleştirilir.
Bit 18: Denetleyici hata ayıklama bilgi mekanizması etkinleştirilir.
Bit 19 ~ 30: Ayrılmış.
Bit 31: Tedarikçiye özgü iz etkinleştirilir.
Current_Vendor_Specific_Quality_Event_Mask 4 sekizli Geçerli bit maske ayarını gösterir.
Current_Vendor_Specific_Trace_Mask 4 sekizli Geçerli bit maske ayarını gösterir.

Dinamik ses arabelleği komutu

Dinamik ses arabelleği, çeşitli senaryolara göre Bluetooth denetleyicisindeki ses arabellek boyutunu değiştirerek ses aksaklığını azaltır.

OCF: 0x15f

Ses arabellek zaman özelliği alın

Alt OCF: 0x01

Bluetooth denetleyicisinden ses arabellek zaman kapasitesini almak için bu komutu kullanın.

Komut parametresi Boyut Amaç
Yok Boş Komut Parametre Listesi

Bu komut için bir komut tam olay oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 Octet Komut Komple Durumu
Dynamic_Audio_Buffer_opcode 1 Octet 0x01 - Ses arabellek süresi alın
Audio_Codec_Type_Supported 4 sekizli Desteklenen kodek türleri için bit maskeleri
Bit 0 - SBC
Bit 1 - AAC
Bit 2 - Aptx
Bit 3 - Aptx HD
Bit 4 - LDAC
Bit 5-31 ayrılmıştır
Audio_Codec_Buffer_Default_Time_For_Bit_0 2 sekiz Audio_codec_type_supported'de belirtilen bit 0 codec türünün varsayılan arabellek süresi.
Bit 0 codec türü desteklenmezse bu değer 0 olacaktır.
Birim: MS
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 2 sekiz Audio_codec_type_supported'de belirtilen bit 0 codec tipinin maksimum arabellek süresi.
Bit 0 codec türü desteklenmezse bu değer 0 olacaktır.
Birim: MS
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 2 sekiz Audio_codec_type_supported'de belirtilen bit 0 codec tipinin minimum arabellek süresi.
Bit 0 codec türü desteklenmezse bu değer 0 olacaktır.
Birim: MS
Audio_Codec_Buffer_Default_Time_For_Bit_1 2 sekiz Audio_codec_type_supported'de belirtilen bit 1 codec tipinin varsayılan arabellek süresi.
Bit 1 codec türü desteklenmezse bu değer 0 olacaktır.
Birim: MS
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 2 sekiz Audio_codec_type_supported'de belirtilen bit 1 codec tipinin maksimum tampon süresi.
Bit 1 codec türü desteklenmezse bu değer 0 olacaktır.
Birim: MS
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 2 sekiz Audio_codec_type_supported'de belirtilen bit 1 codec tipinin minimum tampon süresi.
Bit 1 codec türü desteklenmezse bu değer 0 olacaktır.
Birim: MS
...... ...... ......
Audio_Codec_Buffer_Default_Time_For_Bit_31 2 sekiz Audio_codec_type_supported'de belirtilen bit 31 kodek türünün varsayılan arabellek süresi.
Bit 31 codec türü desteklenmezse bu değer 0 olacaktır.
Birim: MS
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 2 sekiz Audio_codec_type_supported'de belirtilen bit 31 codec tipinin maksimum arabellek süresi.
Bit 31 codec türü desteklenmezse bu değer 0 olacaktır.
Birim: MS
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 2 sekiz Audio_codec_type_supported'de belirtilen bit 31 codec tipinin minimum tampon süresi.
Bit 31 codec türü desteklenmezse bu değer 0 olacaktır.
Birim: MS

Ses arabellek süresini ayarlayın

Alt OCF: 0x02

Ses arabellek zamanını Bluetooth denetleyicisine ayarlamak için bu komutu kullanın.

Komut parametresi Boyut Amaç
Audio_Codec_Buffer_Time 2 sekiz Mevcut kullanılan codec için ses arabellek süresi talep etti.
Birim: MS

Bu komut için bir komut tam olay oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 Octet Komut Komple Durumu
Dynamic_Audio_Buffer_opcode 1 Octet 0x02 - Ses arabellek süresini ayarlayın
Audio_Codec_Buffer_Time 2 sekiz Bluetooth denetleyicisinde geçerli ses tampon süresi.
Birim: MS

HCI Etkinliği (satıcıya özgü)

Bazı durumlarda satıcıya özgü HCI olayları gereklidir. BT Core 5.2 spesifikasyonunun 1897. sayfasında Şekil 5.4'e bakın. Olay parametresi 0, HCI olayının geri kalanının kod çözüldüğü her zaman ilk alt olay kodu içerecektir.

Olay parametresi Boyut Amaç
HCI_vendor_specific_event_code 1 Octet 0xff
sub_event_code 1 Octet Bir alt etkinlik kodu 1 sekizlik boyutunda, bayt HCI olay paketindeki parametre uzunluğunu hemen takip edecektir.

Depolama eşiği ihlali alt etkinliği

Bu olay, depolama eşiğinin ihlal edildiğini gösterir.

Alt etkinlik kodu = 0x54

Alt olay parametresi Boyut Amaç
Hiçbiri

Le Multi-Advertising Durum Değişikliği Alt Event

Bu olay, bir reklam örneğinin durumunu değiştirdiğini gösterir. Şu anda, bu olay yalnızca bir bağlantı sonucunda hangi reklam örneğinin durdurulduğunu belirtmek için kullanılır.

Alt etkinlik kodu = 0x55

Alt olay parametresi Boyut Amaç
Advertising_instance 1 Octet Belirli reklam örneğini tanımlar
Geçerli değerler 0 max_advt_instances -1
State_Change_Reason 1 Octet 0x00: Bağlantı Alındı
Connection_handle 2 sekiz advt örneğinin devre dışı bırakılmasına neden olan bağlantıyı tanımlar (geçersizse 0xffff)

Le reklam izleme alt etkinliği

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

Alt Olay Kodu = 0x56

Alt olay parametresi Boyut Amaç
APCF_Filter_Index 1 Octet Filtre Dizin (0, max_filter -1)
Advertiser_State 1 Octet 0x00: Reklamveren bulundu
0x01: Reklamveren Kayıp
Advt_Info_Present 1 Octet 0x00: Reklamveren Bilgileri ( Advt_Info ) mevcut
0x01: Reklamveren Bilgileri ( Advt_Info ) mevcut değil
Advertiser_Address 6 sekizli Genel veya rastgele adres
Advertiser_Address_Type 1 Octet 0x00: genel adres
0x01: rastgele adres
Advt_Info Tx_Pwr[0] : 1 Octet
RSSI[0] : 1 Octet
Timestamp[0] : 2 sekizli
Adv packet_len[0] : 1 Octet
Adv_packet[0] : Adv_packet_len oktetleri
Scan_data_resp_len[0] : 1 Octet
Scan_data_resp[0] : Scan_data_resp OCTETS

Denetleyici Hata Ayıklama Bilgisi Alt Event

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

Alt etkinlik kodu = 0x57

Alt olay parametresi Boyut Amaç
debug_block_byte_offset_start 2 sekiz Başlangıçtan itibaren blok bayt ofsetinde hata ayıklama
last_block 1 Octet 0x00: Daha fazla hata ayıklama verisi mevcut
0x01: Son ikili blok; Artık hata ayıklama verisi yok
cur_pay_load_sz 2 sekiz Mevcut bir etkinlikte ikili blok boyutu
Debug_Data Değişken cur_payload_sz verileri hata ayıklama

Bluetooth Kalite Raporu Alt Eva

Bu olay aşağıdakilerden birini gösterir: Bluetooth kalite olayı meydana geldi, denetleyici LMP/LL mesaj izini ve Bluetooth Multi-Link/Coex zamanlama izini veya denetleyicinin atılan hata ayıklama bilgi verilerini yükledi.

Alt olay parametresi Boyut Amaç
Quality_Report_Id 1 Octet 0x01: İzleme modunda kalite raporlama.
0x02: LSTO'ya yaklaşıyor.
0x03: A2DP ses dalgalı.
0x04: (e) SCO ses dalgalı.
0x05 ~ 0x06: Ayrılmış.
0x07: Le Ses dalgalı.
0x08: Bağlan başarısızlık.
0x09 ~ 0xff: Ayrılmış.
Packet_Types 1 Octet 0x01: kimlik
0x02: null
0x03: anket
0x04: FHS
0x05: HV1
0x06: HV2
0x07: HV3
0x08: DV
0x09: EV3
0x0a: EV4
0x0b: EV5
0x0c: 2-EV3
0x0d: 2-EV5
0x0E: 3-EV3
0x0f: 3-EV5
0x11: DH1
0x12: DM3
0x13: DH3
0x14: DM5
0x15: DH5
0x16: aux1
0x17: 2-DH1
0x18: 2-dh3
0x19: 2-DH5
0x1a: 3-DH1
0x1b: 3-dh3
0x1c: 3-DH5
0x1d ~ 0x50: ayrılmış
0x51: ISO paketi
0x52 ~ 0xff: ayrılmış
Connection_Handle 2 sekiz ACL/(E) SCO/ISO bağlantı kolu.
Connection_Role 1 Octet Bağlantı için rol oynama.
0x00: Merkez
0x01: Çevresel
0x02 ~ 0xff: Ayrılmış.
TX_Power_Level 1 Octet Belirtilen Connection_handle için geçerli iletim güç seviyesi.

Bu değer, denetleyicinin hci_read_transmit_power_level hci komutuna yanıt vermesiyle aynı olacaktır.

RSSI 1 Octet [DBM'de]

Belirtilen Connection_handle için alınan sinyal mukavemeti göstergesi (RSSI) değeri.
Bu değer mutlak bir alıcı sinyal gücü değeri olmalıdır.
Aralık: -127 ila +20

SNR 1 Octet [DB'de]

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 Octet AFH_CHANNEL_MAP'taki kullanılmayan kanalların sayısını gösterir.
0x4f ~ 0xff: Ayrılmış.
AFH_Select_Unideal_Channel_Count 1 Octet Müdahale edilen ve kaliteli olan kanalların sayısını gösterir, ancak yine de AFH için seçilmiştir.
Bluetooth spesifikasyonu tarafından izin verilen minimum kanal sayısı 20'dir, bu nedenle 79 kanalın tamamı müdahale edilmiş ve kötü kalitede olsa bile, kontrolörün hala AFH için en az 20 kanal seçmesi gerekir.
LSTO 2 sekiz Geçerli bağlantı denetimi zaman aşımı ayarı.
Zaman = n * 0.625 ms
Zaman aralığı: 0.625 ms ila 40.9 s
Connection_Piconet_Clock 4 sekizli Belirtilen bağlantı için Piconet Saati.
Bu değer, denetleyicinin HCI_READ_CLOCK HCI komutuna 0x01 (Piconet Saat) parametresiyle yanıt verenle aynı olacaktır.
Birim: N * 0.3125 ms (1 Bluetooth saati)
Retransmission_Count 4 sekizli Son olaydan bu yana yeniden iletim sayısı.
Bu sayı, ana bilgisayara rapor verildikten sonra sıfırlanacaktır.
No_RX_Count 4 sekizli Son olaydan beri RX sayısı yok.
Planlanan zaman diliminde veya alınan paketin bozulduğunda hiçbir paket alınmadığında sayım artar.
Bu sayı, ana bilgisayara rapor verildikten sonra sıfırlanacaktır.
NAK_Count 4 sekizli Son olaydan bu yana NAK (negatif onay) sayımı.
Bu sayı, ana bilgisayara rapor verildikten sonra sıfırlanacaktır.
Last_TX_ACK_Timestamp 4 sekizli Son TX ACK zaman damgası. Piconet Central'ın (CLK) Bluetooth saatine dayanır.
Birim: N * 0.3125 ms (1 Bluetooth saati)
Flow_Off_Count 4 sekizli Son olaydan bu yana denetleyicinin akışını (durdurma) kaç kez aldığı sayısı.
Bu sayı, ana bilgisayara rapor verildikten sonra sıfırlanacaktır.
Last_Flow_On_Timestamp 4 sekizli Son Flow-on (Go) zaman damgası. Piconet Central'ın (CLK) Bluetooth saatine dayanır.
Birim: N * 0.3125 ms (1 Bluetooth saati)
Buffer_Overflow_Bytes 4 sekizli [baytta]

Son olaydan bu yana arabellek taşma sayısı.
Denetleyici, kaç bayt veri bırakıldığını sayar.
Bu sayı, ana bilgisayar için rapor verildikten sonra sıfırlanacaktır.

Buffer_Underflow_Bytes 4 sekizli [baytta]

Son olaydan bu yana arabellek düşük akış sayısı.
Bu sayı, ana bilgisayar için rapor verildikten sonra sıfırlanacaktır.

bdaddr 6 sekizli Uzak cihaz adresi
cal_failed_item_count 1 Octet Kalibrasyon sayısı başarısız kalemler
TX_Total_Packets 4 sekizli Gönderilen paket sayısı.
TX_UnAcked_Packets 4 sekizli Teşekkür almayan paket sayısı.
Bu sayı, ana bilgisayara rapor verdikten sonra sıfırlanır.
TX_Flushed_Packets 4 sekizli Floş noktasına göre gönderilmeyen paket sayısı.
Bu sayı, ana bilgisayara rapor verdikten sonra sıfırlanır.
TX_Last_Subevent_Packets 4 sekizli Katmanı bağlayan paketlerin sayısı, bir CIS olayının son alt evinde bir CIS veri PDU'yu iletir.
Bu sayı, ana bilgisayara rapor verdikten sonra sıfırlanır.
Bağlantı için geçerli bir değer yoksa değer sıfırdır.
CRC_Error_Packets 4 sekizli Son olaydan bu yana CRC hatası olan alınan paketlerin sayısı.
Bu sayı, ana bilgisayara rapor verdikten sonra sıfırlanır.
RX_Duplicate_Packets 4 sekizli Son olaydan bu yana alınan yinelenen (yeniden iletim) paketlerinin sayısı.
Bu sayı, ana bilgisayara rapor verdikten sonra sıfırlanır.
Satıcıya özgü parametre (Parametre Toplam Uzunluk - TBD) * Octets Denetleyici satıcısının daha fazla tedarikçiye özgü parametre alması için.

Alt etkinlik kodu = 0x58 [kalite_report_id = 0x05, kök iltihaplanma olayı]

Bu olay, Bluetooth Hal veya kontrolörün ölümcül bir hatayla karşılaştığını ve bu durumu kaydetmek ve yeniden başlatmak için Bluetooth yığınına ihtiyaç duyduğunu gösterir. Her durumda hata ayıklama bilgi olaylarının ilk parçasını göndermeden önce denetleyici Bluetooth yığınına bir root_inflammation_event göndermelidir.

ERROR_CODE parametresi, HAL/Controller'dan bildirilen bir hata kodu içerir, eğer yonga seti satıcısına özgü bir hata ise 0. Vendor_specific_error_code, HAL/Controller'dan bir yonga seti satıcısına özgü hata kodu içerir. ERROR_CODE parametresi 0 değilse 0 olarak ayarlanmalıdır. ERROR_CODE ve Vendor_specific_error_code parametreleri her ikisi de 0 olmamalıdır.

Alt olay parametresi Boyut Amaç
Quality_Report_Id 1 Octet 0x00 ~ 0x04: Ayrılmış.
0x05: Kök iltihabı.
0x06 ~ 0xff: Ayrılmış.
Error_Code 1 Octet 0x00: Chipset satıcısına özgü hata kodu dahildir.
0x01 ~ 0xff: Kontrolör hatası meydana geldi. Bkz. Bluetooth Spec [Cilt 2] Bölüm D, hata kodları ve açıklamalarının bir listesi için hata kodları.
Vendor_Specific_Error_Code 1 Octet 0x00: Yonga seti satıcısına özgü hata kodu yok.
0x01 ~ 0xff: yonga seti satıcısına özgü hata kodu.
Satıcıya özgü parametre (Parametre Toplam Uzunluk - 4) * Oktetler Denetleyici satıcısının daha fazla tedarikçiye özgü parametre alması için.
Alt olay parametresi Boyut Amaç
Quality_Report_Id 1 Octet 0x00 ~ 0x10: Ayrılmış.
0x11: LMP/LL mesaj izi.
0x12: Bluetooth çok bağlantılı/coex planlama izi.
0x13: Denetleyici hata ayıklama bilgileri veri dökümü.
0x14 ~ 0xff: Ayrılmış.
Connection_Handle 2 sekiz Bağlantı kolu.
Satıcıya özgü parametre (Parametre Toplam Uzunluk - 4) * Oktetler LMP mesaj izi, Bluetooth Multi-Link/Coex Zamanlama İzleme ve Denetleyici Hata Ayıklama Bilgileri Dökme.

Çok Advertiser Desteği

Çoklu advertiser desteğinin amaçları şunlardır:

  • Birden çok reklamı destekleme yeteneği ( max_advt_instances )
  • Değişen bir aralığa izin vermek için farklı iletim güçleri
  • Farklı reklam içeriği
  • Her reklamveren için kişiselleştirilmiş bir yanıt
  • Her reklamveren için gizlilik (takip edilemez)
  • Bağlanabilir

Bu spesifikasyonu mevcut standartlara yakın tutmak için aşağıdaki satıcıya özgü komutlar verilmiştir. Bunlar Bluetooth Core 4.1 spesifikasyonundan türetilmiştir.

Le_multi_advt_command

OCF: 0x154

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

Bu komut için bir komut tam olay oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 Octet Komut Komple Durumu
Multi_advt_opcode 1 Octet 0x01 - Set_Advt_Param_Multi_Command
0x02 - Set_Advt_Data_Multi_Command
0x03 - Set_Scan_Resp_Data_Multi_Command
0x04 - Set_Random_Addr_Multi_Command
0x05 - Set_Advt_Enable_Multi_Command

Le_multi_advt_command: set_advt_param_multi_sub_cmd

Temel Referans: Bluetooth Core 4.1 Spesifikasyonu, sayfa 964 (LE Set Reklam Parametresi Komutu)

Alt OCF: 0x01

Alt-Komut parametresi Boyut Amaç
Advertising_Interval_Min Spesifik Spesifik
Advertising_Interval_Max Spesifik Spesifik
Advertising_Type Spesifik Spesifik
Own_Address_Type Spesifik Spesifik
Own_Address Spesifik Spesifik
Direct_Address_Type Spesifik Spesifik
Direct_Address Spesifik Spesifik
Advertising_Channel_Map Spesifik Spesifik
Adverstising_Filter_Policy Spesifik Spesifik
Advertising_Instance 1 Octet Yukarıdaki parametrelerin bir örneğe uygulanabilirliğini belirtir
Tx_power 1 Octet Tanıtım_power
Birim - DBM'de (İmzalı Tamsayı)
Aralık (-70 ila +20)

Own_Address parametresi, bu çoklu reklam örneği oluşturulurken ana bilgisayarla yapılandırılmış bir adres olabilir. Bu, ilk işaretin iletimi sırasında çözülebilir bir özel adrese sahip olma yeteneği sağlar. Bir örnekte reklam, bağlantıdan bağımsız olarak devam edecektir. Ana Bilgisayar BT yığını, bir örnek, bağlantı sonrası reklamı başlatmak için bir komut verebilir.

Bu komut için yukarıdaki komuta göre Bluetooth Core 4.1 spesifikasyonunda belirtildiği gibi bir komut tam olay oluşturulacaktır. Reklamcılık örneği veya Tx_Power parametreleri geçersizse denetleyici, başarılı olmayan (geçersiz parametre) kodla yanıt verecektir.

Dönüş parametresi Boyut Amaç
Status 1 Octet Komut Komple Durumu
Multi_advt_opcode 1 Octet 0x01 [ Set_Advt_Param_Multi_Sub_Cmd]

Le_multi_advt_command: set_advt_data_multi_sub_cmd

Temel Referans: Bluetooth Core 4.1 Spesifikasyonu, sayfa 969 (Le Set Reklam Veri Komutu)

Alt OCF: 0x02

Alt-Komut parametresi Boyut Amaç
Advertising_Data_Length Spesifik Spesifik
Advertising_Data Spesifik Spesifik
Advertising_Instance 1 Octet Yukarıdaki parametrelerin bir örneğe uygulanabilirliğini belirtir

Bu komut için yukarıdaki komuta göre Bluetooth Core 4.1 spesifikasyonunda belirtildiği gibi bir komut tam olay oluşturulacaktır. Reklamcılık örneği veya Tx_Power parametreleri geçersizse denetleyici, başarılı olmayan bir kodla yanıt verir.

Dönüş parametresi Boyut Amaç
Status 1 Octet Komut Komple Durumu
Multi_advt_opcode 1 Octet 0x02 [ Set_Advt_Data_Multi_Sub_Cmd]

Le_multi_advt_command: set_scan_resp_data_multi_sub_cmd

Temel Referans: Bluetooth Core 4.1 Spesifikasyonu, sayfa 970 (Le Set Tepki Veri Komutu)

Alt OCF: 0x03

Alt-Komut parametresi Boyut Amaç
Scan_Response_Data_Length Spesifik Spesifik
Scan_Response_Data Spesifik Spesifik
Advertising_Instance 1 Octet Yukarıdaki parametrelerin bir örneğe uygulanabilirliğini belirtir

Bu komut için yukarıdaki komuta göre Bluetooth Core 4.1 spesifikasyonunda belirtildiği gibi bir komut tam olay oluşturulacaktır. Reklamcılık örneği veya Tx_Power parametreleri geçersizse denetleyici, başarılı olmayan bir kodla (geçersiz parametre) yanıt verir.

Dönüş parametresi Boyut Amaç
Status 1 Octet Komut Komple Durumu
Multi_advt_opcode 1 Octet 0x03 [ Set_Scan_Resp_Data_Multi_Sub_Cmd]

Le_multi_advt_command: set_random_addr_multi_sub_cmd

Temel Referans: Bluetooth Core 4.1 Spesifikasyonu, sayfa 963 (Le rastgele adres komutunu ayarlayın)

Alt OCF: 0x04

Alt-Komut parametresi Boyut Amaç
Rastgele adres Spesifik Spesifik
Advertising_Instance 1 Octet Yukarıdaki parametrelerin bir örneğe uygulanabilirliğini belirtir

Bu komut için bir komut tam olay oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 Octet Komut Komple Durumu
Multi_advt_opcode 1 Octet 0x04 [ Set_Random_Addr_Multi_Sub_Cmd]

Le_multi_advt_command: set_advt_enable_multi_sub_cmd

Temel Referans: Bluetooth Core 4.1 Spesifikasyonu, sayfa 971 (LE SET Reklamı Etkinleştirme Komutunu Bu Çekirdek Spesifikasyonunda)

OCF: 0x05

Alt-Komut parametresi Boyut Amaç
Advertising_Enable 1 Octet 1 değeri etkinlik anlamına gelir. Başka herhangi bir değer devre dışı bırakmak anlamına gelir.
Advertising_Instance 1 Octet Yukarıdaki parametrelerin bir örneğe uygulanabilirliğini belirtir. Örnek 0, standart bir HCI örneği anlamına gelir.

Bu komut için bir komut tam olay oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 Octet Komut Komple Durumu
Multi_advt_opcode 1 Octet 0x05 [ Set_Advt_Enable_Multi_Sub_Cmd]

Özel adresin boşaltılmış çözümü

Bu özellik, aşağıdaki avantajları sağlayan denetleyici ürün yazılımında veya donanımında özel bir adresi çözer:

  • Özel bir adresin çözülmesinde ana bilgisayarla ilgili gecikme
  • Ev sahibini uyandırmaktan kaçınarak güç tasarrufu

Le_set_rpa_timeout

OCF: 0x15c

Komut parametresi Boyut Amaç
LE_local_IRK 16 Octet Yerel cihaz IRK, rastgele çözülebilir adres (ler) oluşturmak için kullanılır.
tRPA_min 2 sekiz Saniyeler içinde minimum RPA üretim zaman aşımı. Denetleyici, bu zaman aşımında veya sonra herhangi bir reklam/tarama/bağlantı etkinliği için yeni çözülebilir adresler oluşturmalıdır.
Geçerli Aralık: 300-1800
tRPA_max 2 sekiz Saniyeler içinde maksimum RPA üretim zaman aşımı. Denetleyici, bu zaman aşımında veya daha önce herhangi bir reklam/tarama/bağlantı etkinliği için yeni çözülebilir adresler oluşturmalıdır.
Geçerli Aralık: tRPA_min -1800
Dönüş parametresi Boyut Amaç
Status 1 Octet Komutun durumu.

Önerilen HCI Durum Değerleri:
0x00 Başarı
0x01 Bilinmeyen Komut (desteklenmiyorsa)
0x12 Geçersiz komut parametreleri (herhangi bir parametre verilen aralığın dışındaysa)

Le_rpa_offload_command

OCF: 0x155

Komut parametresi Boyut Amaç
RPA_offload_opcode 1 Octet 0x1 - Müşteriye özgü özelliği etkinleştirin
0x2 - Listeye IRK ekle
0x3 - IRK'yı listeden kaldırın
0x4 - IRK listesini temizleyin
0x5 - IRK listesi girişini okuyun

Bu komut için bir komut tam olay oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 Octet Komut Komple Durumu
Event_RPA_offload_opcode 1 Octet 0x1 - Müşteriye özgü özelliği etkinleştirin
0x2 - Listeye IRK ekle
0x3 - IRK'yı listeden kaldırın
0x4 - IRK listesini temizleyin
0x5 - IRK listesi girişini okuyun

Le_rpa_offload: enable_cust_specific_sub_command

Alt OCF: 0x01

Alt-Komut parametresi Boyut Amaç
enable_customer_specific_feature_set 1 Octet 0x01 - Boşaltılmış RPA özelliğini etkinleştir
0x00 - Boşaltılmış RPA özelliğini devre dışı bırakın

RPA boşaltma işleminin, çip özelliğine göre ana bilgisayar tarafından etkinleştirilmesi gerekir. LE_Get_Vendor_Capabilities_Command bakın. Her çip, ürün yazılımında değişen bir max_irk_list_sz olabilir.

Bu komut için bir komut tam olay oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 Octet Komut Komple Durumu
Event_cust_specific_feature_opcode 1 Octet 0x01 [Müşteriye özgü özelliği etkinleştir]

Le_rpa_offload: add_irk_to_list_sub_command

Alt OCF: 0x02

Alt-Komut parametresi Boyut Amaç
LE_IRK 16 sekiz Le Irk (1. bayt LSB)
Address_Type 1 Octet 0: Genel Adres
1: Rastgele adres
LE_Device_Address 6 sekizli IRK ile ilişkili genel veya rastgele adres (1. bayt LSB)

Bu komut için bir komut tam olay oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 Octet Komut Komple Durumu
Event_cust_specific_feature_opcode 1 Octet 0x02 [Listeye IRK ekle]
LE_IrkList_AvailableSpaces 1 Octet Mevcut işlemden sonra mevcut IRL listesi girişleri

Le_rpa_offload: remove_irk_to_list_sub_command

Alt OCF: 0x03

Alt-Komut parametresi Boyut Amaç
Address_Type 1 Octet 0: Genel Adres
1: Rastgele adres
LE_Device_Address 6 sekizli IRK ile ilişkilendiren halka açık veya rastgele adres

Bu komut için bir komut tam olay oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 Octet Komut Komple Durumu
Event_cust_specific_feature_opcode 1 Octet 0x03 [IRK'yı listeden kaldır]
LE_IrkList_AvailableSpaces 1 Octet Mevcut işlemden sonra mevcut IRL listesi girişleri

Le_rpa_offload: clear_irk_list_sub_command

Alt OCF: 0x04

Alt-Komut parametresi Boyut Amaç
Hiçbiri

Bu komut için bir komut tam olay oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 Octet Komut Komple Durumu
Event_cust_specific_feature_opcode 1 Octet 0x04 [IRK listesini temizleyin]
LE_IrkList_AvailableSpaces 1 Octet Geçerli işlemden sonra mevcut IRL listesi girişleri [ max_irk_list_sz]

Le_rpa_offload: Read_irk_list_sub_command

Alt OCF: 0x05

Alt-Komut parametresi Boyut Amaç
LE_read_IRK_list_entry-index 1 Octet IRK listesinin dizin [0, max_irk_list_sz-1]

Bu komut için bir komut tam olay oluşturulacaktır.

Dönüş parametresi Boyut Amaç
Status 1 Octet Komut Komple Durumu
Event_cust_specific_feature_opcode 1 Octet 0x05 [IRK listesi girişini okuyun]
LE_Read_IRK_List_entry 1 Octet Ana bilgisayarın geri okumak istediği IRK dizinini (maksimum IRK listesi boyutu 32)
LE_IRK 16 sekiz IRK değeri
Address_Type 1 Octet 0: Genel Adres
1: Rastgele adres
LE_Device_Address 6 sekizli IRK ile ilişkili genel veya rastgele adres
LE_Resolved_Private_Address 6 sekizli Bu IRK'nın mevcut çözülmüş çözülebilir özel adresi