Wymagania HCI

Interfejs kontrolera hosta (HCI) służy do interakcji z kontrolerem Bluetooth.

Ten dokument zawiera listę wymagań Bluetooth (BT) i Bluetooth Low Energy (BLE) HCI. Celem jest, aby dostawcy stosów Host BT i dostawcy kontrolerów BT spełniali wymagania tych platform, aby móc korzystać z zestawu funkcji opisanych poniżej.

W tym dokumencie specyfikacja Bluetooth Core 5.2 jest nazywana „specyfikacją”. Specyfikacja Bluetooth Core 5.2 jest dostępna na stronie internetowej Bluetooth SIG wraz z innymi przyjętymi dokumentami.

Ogólny przegląd projektu

Możliwości i konfiguracja chipów

Jako platforma otwarta, Android ma szereg wydań oprogramowania, producentów OEM, dostawców oraz możliwości platform i chipów.

Aby zarządzać zmiennym środowiskiem i zarządzać migracjami, w tym dokumencie opisano filozofię projektowania polegającą na umożliwieniu kontrolerom BT ujawnienia ich możliwości (wykraczających poza standardową specyfikację Bluetooth Core 5.2). Stos hosta BT może następnie wykorzystać te możliwości, aby określić, które funkcje włączyć.

Wspieranie otwartych standardów

Jednym z celów Androida jest obsługa otwartych standardów po ratyfikacji w specyfikacji Bluetooth. Jeśli funkcja opisana poniżej stanie się dostępna w standardowych metodach HCI w przyszłej specyfikacji Bluetooth, będziemy skłaniać się ku temu, aby podejście to było domyślne.

Możliwości specyficzne dla dostawcy

Polecenie specyficzne dla dostawcy: LE_Get_Vendor_Capabilities_Command

Pole poleceń OpCode (OCF): 0x153

Parametr polecenia Rozmiar Zamiar
NA Pusta lista parametrów polecenia

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono stan
max_advt_instances
(przestarzałe)
1 oktet Liczba obsługiwanych wystąpień reklam.

Zarezerwowane po wersji 0.98.
Ten parametr jest przestarzały w specyfikacji funkcji Google w wersji 0.98 i nowszych na rzecz LE Extended Advertising dostępnej w specyfikacji BT w wersji 5.0 i nowszych.
offloaded_resolution_of_private-address
(przestarzałe)
1 oktet Możliwość chipa BT RPA.
Jeśli jest obsługiwany przez chip, wymaga włączenia go przez hosta.
0 = Brak możliwości
1 = Zdolny

Zarezerwowane po wersji 0.98.
Ten parametr jest przestarzały w specyfikacji funkcji Google w wersji 0.98 i nowszych na rzecz funkcji prywatności dostępnej w specyfikacji BT w wersji 4.2 i nowszych.
total_scan_results_storage 2 oktety Pamięć wyników skanowania w bajtach
max_irk_list_sz 1 oktet Liczba wpisów IRK obsługiwanych w oprogramowaniu sprzętowym
filtering_support 1 oktet Wsparcie dla filtrowania w kontrolerze
0 = Nieobsługiwane
1 = obsługiwane
max_filter 1 oktet Liczba obsługiwanych filtrów
activity_energy_info_support 1 oktet Obsługuje raportowanie informacji o aktywności i energii
0 = Brak możliwości
1 = Zdolny
version_supported 2 oktety Określa obsługiwaną wersję specyfikacji funkcji Google
bajt[0] = Liczba główna
bajt[1] = Liczba podrzędna

v1.03
bajt[0] = 0x01
bajt[1] = 0x03
total_num_of_advt_tracked 2 oktety Całkowita liczba reklamodawców śledzonych dla celów OnLost / OnFound
extended_scan_support 1 oktet Obsługuje rozszerzone okno skanowania i interwał
debug_logging_supported 1 oktet Obsługuje rejestrowanie binarnych informacji debugowania ze sterownika
LE_address_generation_offloading_support
(przestarzałe)
1 oktet 0 = Nieobsługiwane
1 = obsługiwane

Zarezerwowane po wersji 0.98.
Ten parametr jest przestarzały w specyfikacji funkcji Google w wersji 0.98 i nowszych na rzecz funkcji prywatności dostępnej w specyfikacji BT w wersji 4.2 i nowszych.
A2DP_source_offload_capability_mask 4 oktety Obsługiwane maski bitowe dla typów kodeków
Bit 0 - SBC
Bit 1 – AAC
Bit 2 - APTX
Bit 3 - APTX HD
Bit 4 – LDAC
Bit 5-31 są zarezerwowane
bluetooth_quality_report_support 1 oktet Obsługuje raportowanie zdarzeń związanych z jakością Bluetooth
0 = Brak możliwości
1 = Zdolny
dynamic_audio_buffer_support 4 oktety Obsługuje dynamiczny bufor audio w kontrolerze Bluetooth
Obsługiwane maski bitowe dla typów kodeków
Bit 0 - SBC
Bit 1 – AAC
Bit 2 - APTX
Bit 3 - APTX HD
Bit 4 – LDAC
Bit 5-31 są zarezerwowane

Grupowanie wyników skanowania

Celem projektu jest ulepszenie sposobu dostarczania powiadomień o zdarzeniach Bluetooth LE Scan Response do hosta, aby oszczędzać energię hosta.

Zmniejszając częstotliwość powiadamiania procesora aplikacji hosta o wynikach skanowania, procesor aplikacji hosta może dłużej pozostawać w stanie bezczynności/uśpienia. Zmniejsza to zużycie energii przez hosta. Parametr zwracany total_scan_results_storage z LE_Get_Vendor_Capabilities_Command wskazuje zdolność chipa do przechowywania wyników skanowania.

Ta funkcja koncentruje się na zarządzaniu i konfiguracji obiektu przechowywania wyników skanowania LE w kontrolerze Bluetooth. Pamięć służy do tymczasowego gromadzenia danych reklamowych oraz skanowania danych i metadanych otrzymanych przez administratora w celu późniejszego dostarczenia do hosta.

Oprogramowanie sprzętowe będzie obsługiwać dwa typy grupowania, które można włączyć jednocześnie:

  • Kadłubowy. Zawiera następujące elementy informacyjne: {MAC, TX Power, RSSI, Timestamp}
  • Pełny. Zawiera następujące elementy informacyjne: {MAC, moc TX, RSSI, znacznik czasu, dane Adv, odpowiedź skanowania}

LE_Batch_Scan_Command

OCF: 0x156

Parametr polecenia Rozmiar Zamiar
Batch_Scan_opcode 1 oktet 0x1 — Włącz funkcję specyficzną dla klienta
0x2 — Ustaw parametry przechowywania wsadowego skanowania
0x3 — Ustaw parametry skanowania wsadowego
0x4 - Odczytaj parametry wyniku skanowania wsadowego

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete. Włączenie funkcji specyficznej dla klienta nie rozpoczyna skanowania.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono status
Batch_Scan_opcode 1 oktet 0x1 — Włącz funkcję specyficzną dla klienta
0x2 — Ustaw parametry przechowywania wsadowego skanowania
0x3 — Ustaw parametry skanowania wsadowego
0x4 - Odczytaj parametry wyniku skanowania wsadowego

LE_Batch_Scan_Command: Włącz funkcję specyficzną dla klienta

SubOCF: 0x01

Parametr podkomendy Rozmiar Zamiar
enable_customer_specific_feature_set 1 oktet 0x01 — Włącz funkcję skanowania wsadowego
0x00 — Wyłącz funkcję skanowania wsadowego

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono stan
Batch_Scan_opcode 1 oktet 0x1 — Włącz funkcję specyficzną dla klienta
0x2 — Ustaw parametry przechowywania wsadowego skanowania
0x3 — Ustaw parametry skanowania wsadowego
0x4 - Odczytaj parametry wyniku skanowania wsadowego

LE_Batch_Scan_Command: Ustawia podkomendę Parametr skanowania wsadowego pamięci

SubOCF: 0x02

Parametr podkomendy Rozmiar Zamiar
Batch_Scan_Full_Max 1 oktet Maksymalna powierzchnia magazynowa (w %) przeznaczona na pełny styl
[Zakres: 0-100]
Batch_Scan_Truncated_Max 1 oktet Maksymalna przestrzeń magazynowa (w%) przydzielona do stylu obciętego
[Zakres: 0-100]
Batch_Scan_Notify_Threshold 1 oktet Skonfiguruj poziom powiadomień (w %) dla pojedynczej puli pamięci
[Zakres: 0-100]
Ustawienie wartości 0 spowoduje wyłączenie powiadomień. Generowane jest zdarzenie HCI specyficzne dla dostawcy (podzdarzenie przekroczenia progu przechowywania)

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono stan
Batch_scan_opcode 1 oktet 0x02 [Ustaw parametry skanowania wsadowego]

LE_Batch_Scan_Command: Ustawia podkomendę Parametr skanowania wsadowego

SubOCF: 0x03

Parametr podkomendy Rozmiar Zamiar
Batch_Scan_Mode 1 oktet 0x00 – Skanowanie wsadowe jest wyłączone
0x01 – Włączono tryb obcięty
0x02 – Tryb pełny jest włączony
0x03 – Włączono tryb skrócony i pełny
Duty_cycle_scan_window 4 oktety Czas skanowania wsadowego (liczba szczelin)
Duty_cyle_scan_interval 4 oktety Okres interwału skanowania wsadowego (liczba szczelin)
own_address_type 1 oktet 0x00 — Adres urządzenia publicznego
0x01 — Losowy adres urządzenia
Batch_scan_Discard_Rule 1 oktet 0 - Odrzuć najstarsze ogłoszenie
1 - Odrzuć reklamę z najsłabszym RSSI

To polecenie podrzędne rozpocznie skanowanie wsadowe, jeśli jest włączone. W przypadku skanowania obciętego wyniki są przechowywane w formie skróconej, gdzie unikalny klucz stylu obciętego = { BD_ADDR, odstęp_skanowania}. Oznacza to, że dla każdego interwału skanowania zostanie zarejestrowany tylko jeden BD_ADDR will . Rekord, jaki należy zachować w trybie skróconym, jest następujący: { BD_ADDR , Tx Power, RSSI, Timestamp}

Gdy włączony jest tryb pełny, używane będzie aktywne skanowanie i rejestrowane będą odpowiedzi na skanowanie. Unikalny klucz pełnego stylu = {MAC, pakiet reklam}, niezależnie od interwału skanowania. Rekord, który należy zachować dla trybu pełnego, to { BD_ADDR , moc Tx, RSSI, znacznik czasu, pakiet reklam, odpowiedź skanowania}. W trybie pełnym ten sam pakiet AD, oglądany wielokrotnie w różnych odstępach czasu, jest rejestrowany tylko raz. Jednakże w trybie obciętym interesująca jest widoczność BA_ADDR w różnych interwałach skanowania (raz na interwał skanowania). RSSI to średnia wartość wszystkich duplikatów unikalnej reklamy w interwale skanowania.

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono stan
Batch_scan_opcode 1 oktet 0x03 [Ustaw parametry skanowania wsadowego]

LE_Batch_Scan_Command: Podkomenda Przeczytaj wyniki skanowania wsadowego

SubOCF: 0x04

Parametr podkomendy Rozmiar Zamiar
Batch_Scan_Data_read 1 oktet 0x01 – Dane w trybie obciętym
0x02 – Dane trybu pełnego

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete. Gdy host wyda to polecenie, wszystkie wyniki w kontrolerze mogą nie zmieścić się w jednym zdarzeniu Ukończenie polecenia. Host będzie powtarzał wydawanie tego polecenia, aż odpowiednie wyniki w zdarzeniu Command Complete wskażą 0 w liczbie rekordów, co oznacza, że ​​kontroler nie ma więcej rekordów do przekazania hostowi. Każde zdarzenie Command Complete może zawierać wiele rekordów tylko jednego typu danych (pełne lub obcięte).

Odniesienia do czasu kontrolera i hosta nie są zsynchronizowane. Jednostką znacznika czasu jest 50 ms. Wartość znacznika czasu jest oparta na dacie Read_Batch_Scan_Results_Sub_cmd od hosta. Jeśli czas nadejścia polecenia w oprogramowaniu sprzętowym to T_c , wówczas rzeczywisty czas pobrania znacznika czasu w oprogramowaniu wynosi T_fw . Czas raportowania będzie wynosił: ( T_c - T_fw ). T_c i T_fw znajdują się w domenie czasu oprogramowania sprzętowego. Dzięki temu gospodarz może obliczyć, jak dawno temu miało miejsce zdarzenie.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono stan
Batch_scan_opcode 1 oktet 0x03 [Ustaw parametry skanowania wsadowego]
Batch_Scan_data_read 1 oktet Określa format (obcięty lub pełny)
num_of_records 1 oktet Liczba rekordów Batch_Scan_data_read
format_of_data Zmienny Tryb skrócony:
Adres[0]: 6 oktetów
Typ_adresu[0]: 1 oktet
Tx_Pwr[0]: 1 oktet
RSSI[0] : 1 oktet
Znacznik czasu[0]: 2 oktety
[wiele rekordów ( num_of_records ) w powyższym formacie]

Tryb pełny:
Adres[0]: 6 oktetów
Typ_adresu[0]: 1 oktet
Tx_Pwr[0]: 1 oktet
RSSI[0]: 1 oktet
Znacznik czasu[0]: 2 oktety
Adv package_len[0]: 1 oktet
Adv_packet[0]: Adv_packet_len oktety
Scan_data_resp_len[0]: 1 oktet
Scan_data_resp[0]: Oktety Scan_data_resp
[wiele rekordów w powyższym formacie ( num_of_records )]

Filtr zawartości pakietów reklamowych

Użyj tej opcji, aby włączyć/wyłączyć/skonfigurować filtr zawartości pakietów reklamowych (APCF) w kontrolerze. APCF filtruje raporty reklamowe w kontrolerze, ale nie filtruje reklam okresowych.

LE_APCF_Polecenie

OCF: 0x157

Parametr polecenia Rozmiar Zamiar
APCF_opcode 1 oktet 0x00 — Włącz APCF
0x01 - APCF Ustaw parametry filtrowania
0x02 — Adres nadawcy APCF
0x03 — UUID usługi APCF
0x04 — UUID żądania usługi APCF
0x05 — nazwa lokalna APCF
0x06 — Dane producenta APCF
0x07 — Dane usługi APCF
0x08 — Usługa wykrywania transportu APCF
0x09 — Filtr typu AD APCF
0x10 ~ 0xAF - Zarezerwowane do wykorzystania w przyszłości
0xB0 ~ 0xDF - Zarezerwowane dla dostawcy
0xE0 ~ 0xFE - Zarezerwowane do wykorzystania w przyszłości
0xFF - APCF Przeczytaj rozszerzone funkcje

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Stan zwrotu
APCF_opcode 1 oktet 0x00 — Włącz APCF
0x01 - APCF Ustaw parametry filtrowania
0x02 — Adres nadawcy APCF
0x03 — UUID usługi APCF
0x04 — UUID żądania usługi APCF
0x05 — nazwa lokalna APCF
0x06 — Dane producenta APCF
0x07 — Dane usługi APCF
0x08 — Usługa wykrywania transportu APCF
0x09 — Filtr typu AD APCF
0x10 ~ 0xAF - Zarezerwowane do wykorzystania w przyszłości
0xB0 ~ 0xDF - Zarezerwowane dla dostawcy
0xE0 ~ 0xFE - Zarezerwowane do wykorzystania w przyszłości
0xFF - APCF Przeczytaj rozszerzone funkcje

LE_APCF_Command: Włącz_sub_cmd

SubOCF: 0x00

Parametr podkomendy Rozmiar Zamiar
APCF_enable 1 oktet 0x01 — Włącz funkcję APCF
0x00 — Wyłącz funkcję APCF

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono status
APCF_opcode 1 oktet 0x0 — APCF włączone
APCF_Enable 1 oktet Włącz/wyłącz ustawia się za pomocą APCF_enable

LE_APCF_Command: set_filtering_parameters_sub_cmd

To polecenie podrzędne służy do dodawania lub usuwania specyfikacji filtra lub czyszczenia listy filtrów w celu filtrowania na chipie.

SubOCF: 0x01

Parametr podkomendy Rozmiar Zamiar
APCF_Action 1 oktet 0x00 - Dodaj
0x01 — Usuń
0x02 - Wyczyść
Usuń spowoduje wyczyszczenie określonego filtru wraz z powiązanymi wpisami funkcji w innych tabelach.
Wyczyść spowoduje wyczyszczenie wszystkich filtrów i powiązanych wpisów w innych tabelach.
APCF_Filter_Index 1 oktet Indeks filtra (0, max_filter-1 )
APCF_Feature_Selection 2 oktety Maski bitowe dla wybranych obiektów:
Bit 0: Ustaw, aby włączyć filtr adresu rozgłoszeniowego
Bit 1: Ustaw, aby włączyć filtr zmiany danych serwisowych
Bit 2: Ustaw, aby włączyć sprawdzanie UUID usługi
Bit 3: Ustaw, aby włączyć sprawdzanie UUID żądania usługi
Bit 4: Ustaw, aby włączyć sprawdzanie nazwy lokalnej
Bit 5: Ustaw, aby włączyć kontrolę danych producenta
Bit 6: Ustaw, aby włączyć sprawdzanie danych serwisowych
Bit 7: Ustaw, aby włączyć sprawdzanie usługi wykrywania transportu
Bit 8: Ustaw, aby włączyć kontrolę typu AD
APCF_List_Logic_Type 2 oktety Operacja logiczna dla każdego wyboru funkcji (na pozycję bitową) określonej w APCF_Feature_Selection .
Obowiązuje tylko wtedy, gdy funkcja jest włączona.
Wartość pozycji bitu:
0: LUB
1: ORAZ
Jeśli zostanie wybrana logika „AND”, pakiet ADV przejdzie przez filtr tylko wtedy, gdy zawiera WSZYSTKIE wpisy na liście.
Jeśli zostanie wybrana logika „OR”, pakiet ADV przejdzie przez filtr, jeśli zawiera którykolwiek z wpisów na liście.
APCF_Filter_Logic_Type 1 oktet 0x00: LUB
0x01: ORAZ
Uwaga: Typ logiczny to N/A dla pierwszych trzech pól APCF_Feature_Selection , co zawsze jest logiką „AND”. Mają one zastosowanie tylko do (Bit 3 - Bit 6) czterech pól APCF_Feature_Selection .
rssi_high_thresh 1 oktet [w dBm]
Reklamodawca jest uważany za widocznego tylko wtedy, gdy sygnał jest wyższy niż wysoki próg RSSI. W przeciwnym razie oprogramowanie sprzętowe musi zachowywać się tak, jakby nigdy go nie widziało.
delivery_mode 1 oktet 0x00 - immediate
0x01 - on_found
0x02 – batched
onfound_timeout 2 oktety Obowiązuje tylko wtedy, gdy delivery_mode ma on_found .
[w milisekundach]
Czas, aby oprogramowanie sprzętowe pozostało i zebrało dodatkowe reklamy przed zgłoszeniem.
onfound_timeout_cnt 1 oktet Obowiązuje tylko wtedy, gdy delivery_mode ma on_found .
[liczyć]
Jeśli reklama w onFound pozostaje w oprogramowaniu sprzętowym przez czas onfound_timeout , zbierze kilka reklam i zostanie sprawdzony ich licznik. Jeśli liczba przekroczy onfound_timeout_cnt , zostanie ona natychmiast zgłoszona OnFound .
rssi_low_thresh 1 oktet Obowiązuje tylko wtedy, gdy delivery_mode ma on_found .
[w dBm]
Pakiet reklamodawcy jest uważany za niewidoczny, jeśli RSSI odebranego pakietu nie przekracza dolnego progu RSSI.
onlost_timeout 2 oktety Obowiązuje tylko wtedy, gdy delivery_mode ma on_found .
[w milisekundach]
Jeśli reklama po znalezieniu nie będzie wyświetlana w sposób ciągły przez okres lost_timeout , zostanie natychmiast zgłoszona jako utracona.
num_of_tracking_entries 2 oktety Obowiązuje tylko wtedy, gdy delivery_mode ma on_found .
[liczyć]
Całkowita liczba reklamodawców do śledzenia według filtra.

Wartości RSSI muszą zawierać uzupełnienie do 2, aby reprezentować wartości ujemne.

Host będzie mógł skonfigurować wiele filtrów z APCF_Application_Address_type ustawionym na 0x02 (dla wszystkich adresów nadawcy), aby zarządzać różnymi kombinacjami filtrów.

Filtrowanie, grupowanie i raportowanie to pojęcia ze sobą powiązane. Każda reklama i powiązana z nią odpowiedź skanowania będą musiały przejść przez wszystkie filtry, jeden po drugim. Zatem wynikowe działania ( delivery_mode ) są ściśle powiązane z filtrowaniem. Tryby dostarczania są następujące: report_immediately , batch i onFound . Wartość OnLost jest powiązana z OnFound w tym sensie, że w przypadku utraty pojawi się po OnFound .

Ten przepływ przetwarzania przedstawia model koncepcyjny:

Po odebraniu ramki ogłoszenia (lub odpowiedzi na skanowanie) jest ona stosowana do wszystkich filtrów w kolejności szeregowej. Możliwe jest, że reklama może spowodować natychmiastowe raportowanie w oparciu o jeden filtr i grupowanie tego samego w wyniku innego działania filtra.

Progi poziomu RSSI (wysoki i dolny) dają możliwość kontrolowania, kiedy ramka jest widoczna dla przetwarzania filtra, nawet jeśli kontroler odbierze ważny pakiet. W przypadku ustawienia trybu dostarczania na natychmiastowy lub wsadowy, RSSI ramki jest uwzględniany w dalszym przetwarzaniu przez kontroler. Różne aplikacje wymagają różnych zachowań w zakresie raportowania i przetwarzania wsadowego. Dzięki temu wiele aplikacji może jednocześnie bezpośrednio raportować i/lub grupować wyniki w oprogramowaniu sprzętowym. Przykładem może być sytuacja, gdy skanowanie wsadowe jest aktywne z jednej aplikacji, a później przeprowadzane jest zwykłe skanowanie LE z innej aplikacji. Przed wykonaniem skanowania wsadowego framework/aplikacja ustawia odpowiednie filtry. Później, gdy druga aplikacja wykona regularne skanowanie, poprzednie przetwarzanie wsadowe będzie kontynuowane. Jednak ze względu na regularne skanowanie przypomina to koncepcyjne dodanie filtra zerowego (wraz ze wszystkimi istniejącymi filtrami) wraz z poleceniem skanowania LE. Parametry polecenia skanowania LE mają pierwszeństwo, gdy są aktywne. Gdy zwykłe skanowanie LE zostanie wyłączone, sterownik powróci do poprzedniego skanowania wsadowego, jeśli istniało.

Tryb dostarczania OnFound opiera się na skonfigurowanych filtrach. Kombinacja, która wyzwala akcję filtru, która zakończyła się sukcesem, jest uważana za jednostkę do śledzenia dla onLost . Odpowiednie zdarzenie to podzdarzenie śledzenia LE Advt.

Przejście OnFound/OnLost dla filtra (jeśli jest włączone) będzie wyglądać następująco:

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono stan
APCF_opcode 1 oktet 0x01 - APCF Ustaw parametry filtrowania
APCF_Action 1 oktet Powtórz komendę APCF_Action
APCF_AvailableSpaces 1 oktet Liczba dostępnych wpisów w tabeli filtrów

LE_APCF_Command: adres_rozgłoszeniowy_sub_cmd

To polecenie podrzędne służy do dodawania lub usuwania adresu reklamodawcy lub do czyszczenia listy adresów reklamodawcy w celu filtrowania na chipie.

SubOCF: 0x02

Parametr podkomendy Rozmiar Zamiar
APCF_Action 1 oktet 0x00 - Dodaj
0x01 — Usuń
0x02 - Wyczyść
Usuń usunie określony adres nadawcy w określonym filtrze.
Opcja Clear usunie wszystkie adresy nadawców w określonym filtrze.
APCF_Filter_Index 1 oktet Indeks filtra (0, max_filter-1 )
APCF_Broadcaster_Address 6 oktetu 6-bajtowy adres urządzenia, który można dodać lub usunąć z listy adresów nadawcy
APCF_Application_Address_type 1 oktet 0x00: Publiczne
0x01: Losowe
0x02: NA (nie dotyczy typu adresu)

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono stan
APCF_opcode 1 oktet 0x02 — Adres nadawcy APCF
APCF_Action 1 oktet Powtórz komendę APCF_Action
APCF_AvailableSpaces 1 oktet Liczba wolnych wpisów nadal dostępnych w tabeli Adresów rozgłoszeniowych

LE_APCF_Command: service_uuid_sub_cmd

Ta komenda podrzędna służy do dodawania lub usuwania identyfikatora UUID usługi lub czyszczenia listy identyfikatorów UUID usług w celu filtrowania na chipie.

SubOCF: 0x03

Parametr podkomendy Rozmiar Zamiar
APCF_Action 1 oktet 0x00 - Dodaj
0x01 — Usuń
0x02 - Wyczyść
Usuń usunie określony adres UUID usługi w określonym filtrze.
Wyczyść wyczyści wszystkie identyfikatory UUID usług w określonym filtrze.
APCF_Filter_Index 1 oktet Indeks filtra (0, max_filter -1)
APCF_UUID 2,4,16 oktetu Identyfikator UUID usługi (16-bitowy, 32-bitowy lub 128-bitowy) umożliwiający dodawanie do listy lub usuwanie z niej.
APCF_UUID_MASK 2,4,16 oktetu Maska UUID usługi (16-bitowa, 32-bitowa lub 128-bitowa), którą chcesz dodać do listy. Powinien mieć taką samą długość jak APCF_UUID.

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono stan
APCF_opcode 1 oktet 0x03 — UUID usługi APCF
APCF_Action 1 oktet Powtórz komendę APCF_Action
APCF_AvailableSpaces 1 oktet Liczba wolnych wpisów nadal dostępnych w tabeli UUID usługi

LE_APCF_Command: solicitation_uuid_sub_cmd

Ta komenda podrzędna służy do dodawania lub usuwania UUID żądania lub do czyszczenia listy UUID żądania na potrzeby filtrowania na chipie.

SubOCF: 0x04

Parametr podkomendy Rozmiar Zamiar
APCF_Action 1 oktet 0x00 - Dodaj
0x01 — Usuń
0x02 - Wyczyść
Usuń usunie adres UUID żądania w określonym filtrze.
Opcja Clear wyczyści wszystkie identyfikatory UUID żądań w określonym filtrze.
APCF_Filter_Index 1 oktet Indeks filtra (0, max_filter -1)
APCF_UUID 2,4,16 oktetu Identyfikator UUID zaproszenia (16-bitowy, 32-bitowy lub 128-bitowy), który ma zostać dodany do listy lub usunięty z niej.
APCF_UUID_MASK 2,4,16 oktetu Maska UUID żądania (16-bitowa, 32-bitowa lub 128-bitowa), którą należy dodać do listy. Powinien mieć tę samą długość co APCF_UUID .

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono stan
APCF_opcode 1 oktet 0x04 — UUID żądania APCF
APCF_Action 1 oktet Powtórz komendę APCF_Action
APCF_AvailableSpaces 1 oktet Liczba wolnych wpisów nadal dostępnych w tabeli UUID zamówienia

LE_APCF_Command: nazwa_lokalna_sub_cmd

To polecenie podrzędne służy do dodawania lub usuwania ciągu nazw lokalnych lub czyszczenia listy ciągów nazw lokalnych na potrzeby filtrowania w chipie.

SubOCF: 0x05

Parametr podkomendy Rozmiar Zamiar
APCF_Action 1 oktet 0x00 - Dodaj
0x01 — Usuń
0x02 - Wyczyść
Usuń usunie określony ciąg nazwy lokalnej w określonym filtrze.
Opcja Clear wyczyści wszystkie ciągi nazw lokalnych w określonym filtrze.
APCF_Filter_Index 1 oktet Indeks filtra (0, max_filter -1)
APCF_LocName_Mandata_or_SerData Zmienny rozmiar Ciąg znaków dla nazwy lokalnej.

Uwagi:
  • Obecnie maksymalna liczba znaków w ciągu nazwy lokalnej wynosi 29
  • Nie ma zastosowania, gdy akcja jest „Wyczyść” (0x2)

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono stan
APCF_opcode 1 oktet 0x05 — nazwa lokalna APCF
APCF_Action 1 oktet Powtórz komendę APCF_Action
APCF_AvailableSpaces 1 oktet Liczba wolnych wpisów nadal dostępnych w tabeli nazw lokalnych

LE_APCF_Command: manf_data_sub_cmd

Ta komenda podrzędna służy do dodawania lub usuwania ciągu danych producenta lub do czyszczenia listy ciągów danych producenta na potrzeby filtrowania w chipie.

SubOCF: 0x06

Parametr podkomendy Rozmiar Zamiar
APCF_Action 1 oktet 0x00 - Dodaj
0x01 — Usuń
0x02 - Wyczyść
Usuń usunie określony ciąg danych producenta w określonym filtrze.
Wyczyść spowoduje wyczyszczenie wszystkich ciągów danych producenta w określonym filtrze.
APCF_Filter_Index 1 oktet Indeks filtra (0, max_filter -1)
APCF_LocName_Mandata_or_SerData Zmienny rozmiar Ciąg znaków dla danych producenta.

Uwagi:
  • Obecnie maksymalna liczba znaków w ciągu nazwy lokalnej wynosi 29
  • Nie ma zastosowania, gdy akcja jest „Wyczyść” (0x2)
APCF_ManData_Mask Zmienny rozmiar Maska danych producenta do dodania do listy. Powinien mieć tę samą długość co APCF_LocName_or_ManData_or_SerData .

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono status
APCF_opcode 1 oktet 0x06 — Dane producenta APCF
APCF_Action 1 oktet Powtórz komendę APCF_Action
APCF_AvailableSpaces 1 oktet Liczba wolnych wpisów nadal dostępnych w tabeli Dane producenta

LE_APCF_Command: service_data_sub_cmd

Ta komenda podrzędna służy do dodawania lub usuwania ciągu danych serwisowych lub do czyszczenia listy ciągów danych serwisowych na potrzeby filtrowania w chipie.

SubOCF: 0x07

Parametr podkomendy Rozmiar Zamiar
APCF_Action 1 oktet 0x00 - Dodaj
0x01 — Usuń
0x02 - Wyczyść
Usuń usunie określony ciąg danych usługi w określonym filtrze.
Opcja Clear wyczyści wszystkie ciągi danych usługi w określonym filtrze.
APCF_Filter_Index 1 oktet Indeks filtra (0, max_filter -1)
APCF_LocName_Mandata_or_SerData Zmienny rozmiar Ciąg znaków dla danych usługi.

Uwagi:
  • Obecnie maksymalna liczba znaków w ciągu nazwy lokalnej wynosi 29
  • Nie ma zastosowania, gdy akcja jest „Wyczyść” (0x2)
APCF_LocName_Mandata_or_SerData_Mask Zmienny rozmiar Maska danych usługi, która ma zostać dodana do listy. Powinien mieć tę samą długość co APCF_LocName_or_ManData_or_SerData.

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono stan
APCF_opcode 1 oktet 0x07 — Dane usługi APCF
APCF_Action 1 oktet Powtórz komendę APCF_Action
APCF_AvailableSpaces 1 oktet Liczba wolnych wpisów nadal dostępnych w tabeli danych usług

LE_APCF_Command: ad_type_sub_cmd

Ta komenda podrzędna służy do dodawania lub usuwania typu AD lub do czyszczenia listy typów AD w celu filtrowania na chipie. Użyj read_extended_features_sub_cmd , aby sprawdzić, czy to polecenie jest obsługiwane, czy nie.

SubOCF: 0x09

Parametr podkomendy Rozmiar Zamiar
APCF_Action 1 oktet 0x00 - Dodaj
0x01 — Usuń
0x02 - Wyczyść
Usuń usunie określony typ reklamy w określonym filtrze.
Wyczyść wyczyści wszystkie typy reklam w określonym filtrze.
APCF_Filter_Index 1 oktet Indeks filtra (0, max_filter -1)
APCF_AD_TYPE 1 oktet Typ usługi AD do dodania lub usunięcia z listy. Ignoruj, gdy APCF_Action ma wartość 0x02 (Wyczyść)
APCF_AD_DATA_Length Zmienny rozmiar 0x00 - oznacza, że ​​nie filtruj zawartości danych
Ignoruj, gdy APCF_Action ma wartość 0x02 (Wyczyść)
APCF_AD_DATA Zmienny rozmiar Ignoruj, gdy APCF_Action ma wartość 0x02 (Wyczyść)
APCF_AD_DATA_MASK Zmienny rozmiar Ignoruj, gdy APCF_Action ma wartość 0x02 (Wyczyść)
Powinien mieć tę samą długość co APCF_AD_DATA .

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono stan
APCF_opcode 1 oktet 0x09 — typ reklamy APCF
APCF_Action 1 oktet Powtórz komendę APCF_Action
APCF_AvailableSpaces 1 oktet Liczba wolnych wpisów nadal dostępnych w tabeli typów AD

LE_APCF_Command: read_extended_features_sub_cmd

Ta komenda podrzędna służy do odczytywania rozszerzonych funkcji APCF.

SubOCF: 0xFF

Parametr podkomendy Rozmiar Zamiar
Nie dotyczy Pusty parametr polecenia.

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono status
APCF_opcode 1 oktet 0xFF - APCF_Read_Extended_Features
APCF_extended_features 2 oktet

Obsługiwane maski bitowe dla rozszerzonych funkcji:

  • Bit 0: Obsługuje filtr usługi wykrywania transportu
  • Bit 1: Obsługa filtra typu AD
  • Bit 2 ~15: Zarezerwowane do wykorzystania w przyszłości

Wartość bitu

  • 0 = Nieobsługiwane
  • 1 = obsługiwane

Aktywność sterownika i polecenie dotyczące informacji o energii

Celem tych informacji jest umożliwienie wyższym funkcjom systemu hosta przeanalizowanie całkowitej aktywności wszystkich komponentów, w tym kontrolera BT i jego stanu makro, w powiązaniu z tym, co dzieje się w aplikacjach i środowisku. W tym celu wymagane są następujące informacje ze stosu BT i kontrolera:

  • Stos BT: Raportowanie aktualnego stanu makrooperacyjnego sterownika
  • Oprogramowanie układowe: raportowanie zbiorczej aktywności i informacji o energii

Stany makro stosu hosta BT określone na poziomie użytkownika:

  • Bezczynny: [skanowanie strony, reklama LE, skanowanie zapytania]
  • Skanowanie: [stronicowanie/zapytanie/próba połączenia]
  • Aktywne: [łącze ACL włączone, łącze SCO w toku, tryb sniffowania]

Czynności, które sterownik śledzi przez cały okres jego użytkowania, to czas Tx, czas Rx, czas bezczynności i całkowite zużycie energii. Są usuwane po odczytaniu z hosta.

LE_Get_Controller_Activity_Energy_Info

Jest to polecenie specyficzne dla dostawcy.

OCF: 0x159

Parametr podkomendy Rozmiar Zamiar
NA Puste parametry poleceń

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono stan
total_tx_time_ms 4 oktety Całkowity czas wykonywania Tx
total_rx_time_ms 4 oktety Całkowity czas wykonywania Rx
total_idle_time_ms 4 oktety Całkowity czas bezczynności (stany niskiego poboru mocy inne niż uśpienie)
total_energy_used 4 oktety Całkowita zużyta energia [iloczyn prądu (mA), napięcia (V) i czasu (ms)]

LE rozszerzone polecenie ustawiania parametrów skanowania

Tego polecenia można użyć do włączenia większego okna skanowania i interwału w kontrolerze. Zgodnie ze specyfikacją BT Core 5.2 okno skanowania i interwał mają górną granicę wynoszącą 10,24 sekundy, co utrudnia aplikacjom dłuższe interwały skanowania przekraczające 10,24 sekundy.

Odniesienie bazowe: Specyfikacja BT Core 5.2, strona 2493 (Polecenie LE Set Scan Parameters)

OCF: 0x15A

Parametr polecenia Rozmiar Zamiar
LE_Ex_Scan_Type 1 oktet 0x00 - Skanowanie pasywne. Żadne pakiety SCAN_REQ nie będą wysyłane (domyślnie).
0x01 - Aktywne skanowanie. Można wysyłać pakiety SCAN_REQ .
LE_Ex_Scan_Interval 4 oktety Zdefiniowany jako odstęp czasu od rozpoczęcia przez kontroler ostatniego skanowania LE do rozpoczęcia kolejnego skanowania LE.
Zakres: 0x0004 do 0x00FFFFFF
Wartość domyślna: 0x0010 (10 ms)
Czas = N * 0,625 ms
Zakres czasu: 2,5 ms do 10442,25 sekundy
LE_Ex_Scan_Window 4 oktety Czas trwania skanowania LE. LE_Scan_Window powinien być mniejszy lub równy LE_Scan_Interval .
Zakres: 0x0004 do 0xFFFF
Wartość domyślna: 0x0010 (10 ms)
Czas = N * 0,625 ms
Zakres czasu: 2,5 ms do 40,95 sekundy
Own_Address_Type 1 oktet 0x00 — Adres urządzenia publicznego (domyślny)
0x01 — Losowy adres urządzenia
LE_Ex_Scan_Filter_Policy 0x00 - Akceptuj wszystkie pakiety reklam (domyślnie). Pakiety reklam kierowanych, które nie są adresowane do tego urządzenia, będą ignorowane.
0x01 — Ignoruj ​​pakiety reklam z urządzeń, które nie znajdują się na liście Tylko białej listy. Pakiety reklam kierowanych, które nie są adresowane do tego urządzenia, będą ignorowane.

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono stan

Pobierz polecenie informacji o debugowaniu kontrolera

Celem tego elementu informacyjnego jest uzyskanie przez hosta informacji o debugowaniu kontrolera w formie binarnej w celu przetwarzania końcowego i analizy. Pomaga to w rozwiązywaniu problemów w terenie i zapewnia inżynierom zestaw narzędzi do rejestrowania informacji do analizy. Kontroler może dostarczyć informacje na żądanie hosta za pośrednictwem zdarzenia (podzdarzenie Informacje o debugowaniu kontrolera) lub autonomicznie, jeśli administrator sobie tego życzy. Przykładowe zastosowania mogą obejmować raportowanie informacji o stanie oprogramowania sprzętowego, informacji o zrzucie awaryjnym, informacji o rejestrowaniu itp.

OCF: 0x15B

Parametr polecenia Rozmiar Zamiar
Nie dotyczy Pusta lista parametrów polecenia

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono stan

Obsługa odciążania sprzętu A2DP

Funkcja A2DP Offload obsługuje odciążanie procesu kodowania dźwięku A2DP do procesora dźwięku podłączonego do kontrolera BT. Zakodowany strumień danych audio przechodzi bezpośrednio z procesora audio do kontrolera BT bez udziału hosta BT. Host BT jest nadal odpowiedzialny za konfigurację i kontrolę sesji A2DP. Dostępne są dwie wersje poleceń. Starsze polecenia z Sub OCF 0x01-0x02 obsługują tylko kodeki typu open source. Wersje z Sub-OCF 0x02-0x03 są niezależne od skonfigurowanego kodeka.

OCF: 0x15D

Rozpocznij odciążanie A2DP (starsza wersja)

SubOCF: 0x01

Użyj tego polecenia zarówno do skonfigurowania procesu odciążania A2DP, jak i do uruchomienia strumienia A2DP.

Parametr polecenia Rozmiar Zamiar
Codec 4 oktety Określa typ kodeka
0x01 – SBC
0x02 — AAC
0x04 - APTX
0x08 - APTX HD
0x10 – LDAC
Max_Latency 2 oktety Maksymalne dozwolone opóźnienie (w ms). Wartość zerowa wyłącza spłukiwanie.
SCMS-T_Enable 2 oktety Oktet 0: Flaga umożliwiająca dodanie nagłówka SCMS-T.
  • 0x00 — Nagłówek SCMS-T nie jest dołączony.
  • 0x01 - Dołączony nagłówek SCMS-T.

Oktet 1: Wartość nagłówka SCMS-T, jeśli jest włączony.

Sampling_Frequency 4 oktety 0x01 - 44100 Hz
0x02 - 48000 Hz
0x04 - 88200 Hz
0x08 - 96000 Hz
Bits_Per_Sample 1 oktet 0x01 – 16 bitów na próbkę
0x02 – 24 bity na próbkę
0x04 – 32 bity na próbkę
Channel_Mode 1 oktet 0x01 – Mono
0x02 – Stereo
Encoded_Audio_Bitrate 4 oktety Zakodowana szybkość transmisji dźwięku w bitach na sekundę.
0x00000000 - Szybkość transmisji audio nie jest określona/nieużywana.
0x00000001 - 0x00FFFFFF - Szybkość transmisji zakodowanego dźwięku w bitach na sekundę.
0x01000000 - 0xFFFFFFFF - Zarezerwowane.
Connection_Handle 2 oktety Connection Uchwyt konfigurowanego połączenia A2DP
L2CAP_Channel_ID 2 oktety Identyfikator kanału L2CAP, który ma być używany dla tego połączenia A2DP
L2CAP_MTU_Size 2 oktety Maksymalny rozmiar jednostki MTU L2CAP zawierającej zakodowane pakiety audio
Codec_Information 32 oktety Informacje specyficzne dla kodeków.

Kodek SBC:

Patrz elementy informacyjne specyficzne dla kodeka SBC w A2DP v1.3.
Oktet 0: Długość bloku | Podpasma | Metoda alokacji
Oktet 1: Minimalna wartość Bitpool
Oktet 2: Maksymalna wartość Bitpool
Oktet 3: Częstotliwość próbkowania | Tryb kanału
Oktet 4-31: zarezerwowane

Kodek AAC:

Zapoznaj się z elementami informacyjnymi dotyczącymi konkretnego kodeka AAC w A2DP v1.3
Oktet 0: Typ obiektu
oktet 1; b7: VBR
Oktet 2-31: zarezerwowane

Kodek LDAC:

Oktet 0-3: Identyfikator dostawcy
0x0000012D

Oktet 4-5: Identyfikator kodeka
0x00AA – LDAC
Wszystkie inne wartości są zastrzeżone

Oktet 6: Indeks szybkości transmisji:
0x00 — wysoki
0x01 – środek
0x02 — Niski
0x03 - 0x7E - Zarezerwowane
0x7F - ABR (adaptacyjna przepływność)
0x80 - 0xFF - Zarezerwowane

Oktet 7: Tryb kanału LDAC
0x01 – Stereo
0x02 - Podwójny
0x04 – Mono
Inne są zarezerwowane

Oktet 8-31: zarezerwowane

Wszystkie inne kodeki:

Oktet 0-31: zarezerwowany

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono stan
Sub_Opcode 1 oktet 0x01 — Rozpocznij odciążanie A2DP

Rozpocznij odciążanie A2DP

SubOCF: 0x03

Użyj tego polecenia zarówno do skonfigurowania procesu odciążania A2DP, jak i do uruchomienia strumienia A2DP.

Parametr polecenia Rozmiar Zamiar
Connection Handle 2 oktety Uchwyt aktywnego połączenia HCI
L2CAP_Channel_ID 2 oktety Identyfikator kanału L2CAP otwartego dla przesyłania strumieniowego A2DP
Data_Path_Direction 1 oktet 0x00 - Wyjście (źródło/łączenie AVDTP)
0x01 — wejście (ujście/podział AVDTP)
Peer_MTU 2 oktety Maksymalny rozmiar pakietów L2CAP negocjowany z peerem.
CP_Enable_SCMS_T 1 oktet 0x00 — Wyłącz nagłówek ochrony zawartości SCMS-T
0x01 — Włącz nagłówek ochrony treści SCMS-T
CP_Header_SCMS_T 1 oktet Gdy nagłówek ochrony treści SCMS-T jest włączony ( CP_SCMS_T_Enable ustawiony na 0x01), definiuje wartość nagłówka poprzedzającą treść audio (patrz A2DP, sekcja 3.2.1-2) zgodnie z definicją przydzielonych numerów Bluetooth, sekcja 6.3.2.
Ignorowane, gdy ochrona zawartości SCMS-T nie jest włączona.
Vendor_Specific_Parameters_Length 1 oktet Długość parametrów specyficznych dla dostawcy w zakresie od 0 do 128.
Wartość 0 jest używana, gdy nie podano żadnych dodatkowych parametrów.
Vendor_Specific_Parameters 0-128 oktetów Parametry specyficzne dla dostawcy dostarczane przez warstwę HAL Bluetooth Audio, CodecParameters.vendorSpecificParameters[] .

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono stan
Sub_Opcode 1 oktet 0x03 — Rozpocznij odciążanie A2DP

Zatrzymaj odciążanie A2DP (starsza wersja)

SubOCF: 0x02

To polecenie służy do zatrzymywania strumienia odciążania A2DP.

Parametr polecenia Rozmiar Zamiar
Nie dotyczy Pusta lista parametrów polecenia.

Dla tego polecenia nie zdefiniowano żadnych parametrów.

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono stan
Sub_Opcode 1 oktet 0x02 — Zatrzymaj odciążanie A2DP

Zatrzymaj odciążanie A2DP

SubOCF: 0x04

To polecenie służy do zatrzymywania strumienia odciążania A2DP.

Parametr polecenia Rozmiar Zamiar
Connection Handle 2 oktety Uchwyt aktywnego połączenia HCI
L2CAP_Channel_ID 2 oktety Identyfikator kanału L2CAP otwartego dla przesyłania strumieniowego A2DP
Data_Path_Direction 1 oktet 0x00 - Wyjście (źródło/łączenie AVDTP)
0x01 — wejście (ujście/podział AVDTP)

Dla tego polecenia zostanie wygenerowane zdarzenie Command Complete.

Parametr zwrotny Rozmiar Zamiar
Status 1 oktet Polecenie Zakończono status
Sub_Opcode 1 oktet 0x04 - Zatrzymaj odciążenie A2DP

Komenda raportu o jakości Bluetooth

Funkcja polecenia BT Quality Report rozpoczyna mechanizm kontrolera Bluetooth, aby zgłosić hostie zdarzenia jakości Bluetooth. Możesz włączyć cztery opcje:

  • Tryb monitorowania jakości: Kontroler okresowo wysyła podwodność BQR związaną z jakością linku do hosta.
  • Zbliżając się do LSTO: Jeśli nie otrzymają żadnych pakietów z podłączonego urządzenia BT przez dłuższy niż połowa wartości czasu na nadzór łącza (LSTO), kontroler zgłasza zbliżające się zdarzenie LSTO dla hosta.
  • A2DP Audio Purppy: Gdy kontroler wykrywa czynniki, które powodują wzburzony dźwięk, kontroler zgłasza dla hosta zdarzenie audio A2DP.
  • (e) Voice Purphpe: Gdy kontroler wykrywa czynniki powodujące wzburzenie głosu, kontroler zgłasza (e) Voice Voice Provipe zdarzenie dla hosta.
  • Zapalenie korzeni: To zdarzenie jest wysyłane przez kontroler do stosu, gdy HAL lub kontroler napotyka błąd śmiertelny i musi ponownie uruchomić Bluetooth.
  • Śledzenie komunikatu LMP/LL: Kontroler wysyła podanie wiadomości LMP/LL ze zdalnym urządzeniem do hosta.
  • Bluetooth Multi-Profile/COEX Planowanie: Kontroler wysyła informacje o planowaniu w zakresie obsługi wielu profili Bluetooth i współistnienia bezprzewodowego w paśmie 2,4 GHz dla hosta.
  • Mechanizm informacyjny debugowania kontrolera: Po włączeniu kontroler może autonomicznie zgłaszać informacje o rejestrowaniu debugowania za pośrednictwem podwodności informacyjnej debugowania kontrolera do hosta.

OCF: 0x15e

Parametr polecenia Rozmiar Zamiar
BQR_Report_Action 1 okett Działanie w celu dodania / usunięcia raportowania zdarzeń jakościowych ustawionych w parametrze BQR_QUALATY_EVENT_MASK lub wyczyść wszystko.

0x00 - Dodaj
0x01 - Usuń
0x02 - Wyczyść

Usuń wyczyści konkretne raportowanie (wysokiej jakości zdarzenia).
Clear wyczyści wszystkie raportowanie zdarzeń jakości (parametr BQR_QUALITY_EVENT_MASK można zignorować).

BQR_Quality_Event_Mask 4 okety Maski bitowe dla wybranych zgłoszenia zdarzeń jakościowych.

Bit 0: Ustaw tak, aby włączyć tryb monitorowania jakości.
Bit 1: Ustaw, aby włączyć zbliżające się zdarzenie LSTO (dla ACL/(E) SCO/ISO).
Bit 2: Ustaw, aby włączyć zdarzenie A2DP Audio Process.
Bit 3: Ustaw, aby Enable (e) Voice Porwające zdarzenie.
Bit 4: Ustaw, aby włączyć zdarzenie zapalenia korzeni.
Bit 5: Ustaw tak, aby włączyć tryb monitorowania energii.
Bit 6: Ustaw, aby włączyć LE Audio Purppy Event.
Bit 7: Ustaw, aby włączyć zdarzenie niepowodzenia Connect.
Bit 8 ~ 14: Zarezerwowany.
Bit 15: Ustaw, aby umożliwić zdarzenia jakościowe specyficzne dla dostawcy.
Bit 16: Ustaw, aby włączyć śledzenie komunikatu LMP/LL.
Bit 17: Ustaw, aby włączyć ślad planowania Bluetooth Multi-Link/COEX.
Bit 18: Ustaw, aby włączyć mechanizm informacji o debugowaniu kontrolera.
Bit 19 ~ 30: Zarezerwowany.
Bit 31: Ustaw, aby włączyć śledzenie specyficzne dla dostawcy.

BQR_Minimum_Report_Interval 2 okety Zdefiniuj minimalny czas raportowania zdarzeń jakości dla wybranych zdarzeń jakościowych. Oprogramowanie układowe kontrolera nie powinno zgłaszać następnego zdarzenia w określonym przedziale czasowym. Ustawienie interwałów powinno być odpowiednie i poświęcone dla dodawanych zdarzeń jakościowych.

Jednostka: MS
Domyślnie: 0 (bez ograniczeń dla przedziału.)
Zakres: 0 ~ 65535 ms

BQR_Vendor_Specific_Quality_Event_Mask 4 okety Maski bitowe dla wybranych zgłoszenia zdarzeń związanych z zdarzeniem specyficznym dla dostawcy.
Ten parametr jest prawidłowy tylko wtedy, gdy ustawia się bit 15 z BQR_Quality_Event_Mask .

Bit 0 ~ 31: Zarezerwowany.

BQR_Vendor_Specific_Trace_Mask 4 okety Maski bitowe dla wybranego raportowania śledzenia specyficznego dla dostawcy.
Ten parametr jest prawidłowy tylko wtedy, gdy ustawia się bit 31 BQR_Quality_Event_Mask .

Bit 0 ~ 31: Zarezerwowany.

Dla tego polecenia zostanie wygenerowane pełne zdarzenie.

Powrót parametr Rozmiar Zamiar
Status 1 okett Polecenie pełny status
Current_Quality_Event_Mask 4 okety Wskazuje bieżące ustawienie maski bitowej.
Bit 0: Tryb monitorowania jakości jest włączony.
Bit 1: Zbliża się raportowanie zdarzeń LSTO.
Bit 2: A2DP Audio Purphing Eventing jest włączony.
Bit 3: (e) Włączono zgłaszanie zdarzeń głosowych SCO.
Bit 4: Raportowanie zdarzeń zapalnych jest włączone.
Bit 5: Tryb monitorowania energii jest włączony.
Bit 6: LE Audio Purppy Event Raporting jest włączony.
Bit 7: Połącz zdarzenie niepowodzenia.
Bit 8 ~ 14: Zarezerwowany.
Bit 15: Włączono raportowanie o zdarzeniach dla dostawcy.
Bit 16: Włączono śledzenie komunikatu LMP/LL.
Bit 17: Bluetooth Multi-Link/COEX Planowanie jest włączone.
Bit 18: Mechanizm informacji o debugowaniu kontrolera jest włączony.
Bit 19 ~ 30: Zarezerwowany.
Bit 31: Włączono śledzenie specyficzne dla dostawcy.
Current_Vendor_Specific_Quality_Event_Mask 4 okety Wskazuje bieżące ustawienie maski bitowej.
Current_Vendor_Specific_Trace_Mask 4 okety Wskazuje bieżące ustawienie maski bitowej.

Dynamiczne polecenie bufora audio

Dynamiczny bufor audio zmniejsza usterkę audio, zmieniając rozmiar buforu audio w kontrolerze Bluetooth na podstawie różnych scenariuszy.

OCF: 0x15f

Uzyskaj możliwości czasu bufora dźwięku

Sub OCF: 0x01

Użyj tego polecenia, aby uzyskać możliwość czasu buforu audio z kontrolera Bluetooth.

Parametr polecenia Rozmiar Zamiar
Nie dotyczy Pusta lista parametrów polecenia

Dla tego polecenia zostanie wygenerowane pełne zdarzenie.

Powrót parametr Rozmiar Zamiar
Status 1 okett Polecenie pełny status
Dynamic_Audio_Buffer_opcode 1 okett 0x01 - Uzyskaj czas buforu audio
Audio_Codec_Type_Supported 4 okety Maski bitowe dla obsługiwanych typów kodeków
Bit 0 - SBC
Bit 1 - aac
Bit 2 - Aptx
Bit 3 - Aptx HD
Bit 4 - LDAC
Bit 5-31 jest zarezerwowany
Audio_Codec_Buffer_Default_Time_For_Bit_0 2 okety Domyślny czas bufora typu kodeku bit 0 określony w audio_codec_type_support.
Wartość ta powinna wynosić 0, jeżeli typ kodeku Bit 0 nie jest obsługiwany.
Jednostka: MS
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 2 okety Maksymalny czas bufora typu kodeku bit 0 określony w audio_codec_type_support.
Wartość ta powinna wynosić 0, jeżeli typ kodeku Bit 0 nie jest obsługiwany.
Jednostka: MS
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 2 okety Minimalny czas bufora typu kodeku bit 0 określony w audio_codec_type_support.
Wartość ta powinna wynosić 0, jeżeli typ kodeku Bit 0 nie jest obsługiwany.
Jednostka: MS
Audio_Codec_Buffer_Default_Time_For_Bit_1 2 okety Domyślny czas bufora typu kodeku bit 1 określony w audio_codec_type_support.
Wartość ta wynosi 0, jeśli typ kodeka Bit 1 nie jest obsługiwany.
Jednostka: MS
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 2 okety Maksymalny czas bufora typu kodeku bit 1 określony w audio_codec_type_support.
Wartość ta wynosi 0, jeśli typ kodeka Bit 1 nie jest obsługiwany.
Jednostka: MS
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 2 okety Minimalny czas bufora typu kodeku bit 1 określony w audio_codec_type_support.
Wartość ta wynosi 0, jeśli typ kodeka Bit 1 nie jest obsługiwany.
Jednostka: MS
...... ...... ......
Audio_Codec_Buffer_Default_Time_For_Bit_31 2 okety Domyślny czas bufora Bit 31 Typ kodeka określonego w audio_codec_type_support.
Wartość ta wynosi 0, jeśli typ kodeka Bit 31 nie jest obsługiwany.
Jednostka: MS
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 2 okety Maksymalny czas bufora typu kodeku Bit 31 określony w audio_codec_type_support.
Wartość ta wynosi 0, jeśli typ kodeka Bit 31 nie jest obsługiwany.
Jednostka: MS
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 2 okety Minimalny czas bufora typu kodeku Bit 31 określony w audio_codec_type_support.
Wartość ta wynosi 0, jeśli typ kodeka Bit 31 nie jest obsługiwany.
Jednostka: MS

Ustaw czas bufora audio

Sub OCF: 0x02

Użyj tego polecenia, aby ustawić czas bufora audio na kontroler Bluetooth.

Parametr polecenia Rozmiar Zamiar
Audio_Codec_Buffer_Time 2 okety Żądany czas bufora audio dla bieżącego używanego kodeka.
Jednostka: MS

Dla tego polecenia zostanie wygenerowane pełne zdarzenie.

Powrót parametr Rozmiar Zamiar
Status 1 okett Polecenie pełny status
Dynamic_Audio_Buffer_opcode 1 okett 0x02 - Ustaw czas buforu audio
Audio_Codec_Buffer_Time 2 okety Obecny czas bufora audio w kontrolerze Bluetooth.
Jednostka: MS

Wydarzenie HCI (specyficzne dla dostawcy)

W niektórych przypadkach wymagane są zdarzenia HCI specyficzne dla dostawcy. Patrz rysunek 5.4 na stronie 1897 specyfikacji BT Core 5.2. Parametr zdarzenia 0 zawsze będzie zawierał pierwszy kod podwozia, na podstawie którego dekodowana jest reszta zdarzenia HCI.

Parametr zdarzenia Rozmiar Zamiar
HCI_vendor_specific_event_code 1 okett 0xff
sub_event_code 1 okett Kod podwodności będzie miał rozmiar 1 ok., Bajt bezpośrednio po długości parametrów w pakiecie zdarzeń HCI.

Podsumowanie łamania progu przechowywania

To zdarzenie wskazuje, że próg przechowywania został naruszony.

Kod podwodności = 0x54

Parametr podwodny Rozmiar Zamiar
Nic

LE Multi-Advertizing State Change Sub-Vise

To wydarzenie wskazuje, że instancja reklamowa zmieniła swój stan. W tej chwili to wydarzenie jest używane tylko do wskazania, która instancja reklamowa została zatrzymana w wyniku połączenia.

Kod podwodności = 0x55

Parametr podwodny Rozmiar Zamiar
Advertising_instance 1 okett Identyfikuje konkretną instancję reklamową
Prawidłowe wartości to 0 do max_advt_instances -1
State_Change_Reason 1 okett 0x00: Otrzymane połączenie
Connection_handle 2 okety Identyfikuje połączenie, które spowodowało wyłączenie instancji advt (0xffff, jeśli jest nieprawidłowy)

Pod-zdeunkowe śledzenia reklam

To wydarzenie wskazuje, kiedy reklamodawca zostaje znaleziony lub zagubiony.

Kod podrzędny = 0x56

Parametr podwodny Rozmiar Zamiar
APCF_Filter_Index 1 okett Indeks filtra (0, max_filter -1)
Advertiser_State 1 okett 0x00: Znaleziono reklamodawcę
0x01: Zagubiony reklamodawca
Advt_Info_Present 1 okett 0x00: Informacje o reklamie ( Advt_Info ) obecne
0x01: Informacje o reklamie ( Advt_Info ) nie są obecne
Advertiser_Address 6 oktetów Adres publiczny lub losowy
Advertiser_Address_Type 1 okett 0x00: Adres publiczny
0x01: losowy adres
Advt_Info Tx_Pwr[0] : 1 okett
RSSI[0] : 1 okett
Timestamp[0] : 2 oktety
Adv packet_len[0] : 1 okett
Adv_packet[0] : Adv_packet_len Outtet
Scan_data_resp_len[0] : 1 OCTET
Scan_data_resp[0] : Scan_data_resp OTTETY

Podwodna info debugowania kontrolera

To zdarzenie jest wykorzystywane przez kontrolera do dostarczania hosta informacji o debugowaniu binarnym.

Kod podwodności = 0x57

Parametr podwodny Rozmiar Zamiar
debug_block_byte_offset_start 2 okety DEBUG BLOK BYTE OFFSETUS od samego początku
last_block 1 okett 0x00: Więcej danych debugowania obecnych
0x01: Ostatni blok binarny; Nigdy więcej danych debugowania
cur_pay_load_sz 2 okety Binarny rozmiar bloku w bieżącym wydarzeniu
Debug_Data Zmienny Dane debugowania cur_payload_sz

Bluetooth Quality Report Sub-Vevent

To zdarzenie wskazuje na jedną z następujących czynności: Wystąpiło zdarzenie jakości Bluetooth, kontroler przesłał śledzenie komunikatu LMP/LL i ślad planowania Multi-Link/COEX lub kontrolera zrzuconego danych debugowania.

Parametr podwodny Rozmiar Zamiar
Quality_Report_Id 1 okett 0x01: Raportowanie jakości w trybie monitorowania.
0x02: Zbliżanie się do LSTO.
0x03: A2DP Audio Procpy.
0x04: (e) Voice Voice Purppy.
0x05 ~ 0x06: Zarezerwowany.
0x07: LE Audio Purppy.
0x08: Połącz awarię.
0x09 ~ 0xff: Zarezerwowany.
Packet_Types 1 okett 0x01: ID
0x02: Null
0x03: Ankieta
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: Zarezerwowany
0x51: pakiet ISO
0x52 ~ 0xff: zarezerwowany
Connection_Handle 2 okety ACL/(E) Uchwyt połączenia SCO/ISO.
Connection_Role 1 okett Wykonywanie roli połączenia.
0x00: Central
0x01: Obwód
0x02 ~ 0xff: Zarezerwowany.
TX_Power_Level 1 okett Obecny poziom mocy transmisji dla określonego Connection_Handle.

Ta wartość będzie taka sama jak reagowanie kontrolera na polecenie HCI_READ_TRANSMIT_POWER_LEVEL HCI.

RSSI 1 okett [w dbm]

Otrzymane wskazanie siły sygnału (RSSI) dla określonego połączenia_handle.
Ta wartość jest bezwzględną wartością siły sygnału odbiornika.
Zakres: -127 do +20

SNR 1 okett [w db]

Wartość współczynnika sygnału do szumu (SNR) dla określonego połączenia_handle.
Kontroler zapewnia średni SNR wszystkich kanałów używanych przez link.

Unused_AFH_Channel_Count 1 okett Wskazuje liczbę nieużywanych kanałów w AFH_Channel_Map.
0x4f ~ 0xff: Zarezerwowany.
AFH_Select_Unideal_Channel_Count 1 okett Wskazuje liczbę kanałów, które są zakłócane i mają złą jakość, ale nadal są wybierane do AFH.
Minimalna liczba kanałów dozwolonych przez specyfikację Bluetooth wynosi 20, więc nawet jeśli wszystkie 79 kanałów są zakłócane i mają złą jakość, kontroler nadal musi wybrać co najmniej 20 kanałów dla AFH.
LSTO 2 okety Obecne ustawienie limitu czasu nadzoru linków.
Czas = n * 0,625 ms
Zakres czasu: 0,625 ms do 40,9 s
Connection_Piconet_Clock 4 okety Zegar pikonowy dla określonego Connection_Handle.
Wartość ta powinna być taka sama jak reagowanie kontrolera na polecenie HCI_READ_CLOCK HCI z parametrem „WHO_CLOCK” z 0x01 (zegar pikonet).
Jednostka: N * 0,3125 ms (1 zegar Bluetooth)
Retransmission_Count 4 okety Liczba retransmisji od ostatniego wydarzenia.
Niniejsza liczba zostanie zresetowana po zgłoszeniu hosta.
No_RX_Count 4 okety Brak liczby RX od ostatniego wydarzenia.
Liczba wzrasta, gdy nie otrzymano pakietu na zaplanowanym przedziale czasowym lub odebrany pakiet jest uszkodzony.
Niniejsza liczba zostanie zresetowana po zgłoszeniu hosta.
NAK_Count 4 okety Nak (negatywne uznanie) liczy się od ostatniego wydarzenia.
Niniejsza liczba zostanie zresetowana po zgłoszeniu hosta.
Last_TX_ACK_Timestamp 4 okety Znacznik czasu ostatniego tx ack. Opiera się na zegar Bluetooth Piconet Central (CLK).
Jednostka: N * 0,3125 ms (1 zegar Bluetooth)
Flow_Off_Count 4 okety Liczba razy, gdy kontroler odbiera przepływ (stop) od ostatniego zdarzenia.
Niniejsza liczba zostanie zresetowana po zgłoszeniu hosta.
Last_Flow_On_Timestamp 4 okety Znacznik czasu ostatniego przepływu (GO). Opiera się na zegar Bluetooth Piconet Central (CLK).
Jednostka: N * 0,3125 ms (1 zegar Bluetooth)
Buffer_Overflow_Bytes 4 okety [w bajcie]

Liczba przepełnienia bufora od ostatniego wydarzenia.
Kontroler liczy liczbę bajtów danych.
Niniejsza liczba zostanie zresetowana po zgłoszeniu się do hosta.

Buffer_Underflow_Bytes 4 okety [w bajcie]

Liczba podbiegu bufora od ostatniego wydarzenia.
Niniejsza liczba zostanie zresetowana po zgłoszeniu się do hosta.

bdaddr 6 oktetów Zdalny adres urządzenia
cal_failed_item_count 1 okett Liczba kalibracji nieudanych elementów
TX_Total_Packets 4 okety Liczba wysyłanych pakietów.
TX_UnAcked_Packets 4 okety Liczba pakietów, które nie otrzymują potwierdzenia.
Ta liczba jest resetowana po zgłoszeniu się do hosta.
TX_Flushed_Packets 4 okety Liczba pakietów, które nie są wysyłane przez punkt spłukiwania.
Ta liczba jest resetowana po zgłoszeniu się do hosta.
TX_Last_Subevent_Packets 4 okety Liczba pakietów, które łączą warstwę, przesyła PDU danych CIS w ostatnim podkładce zdarzenia CIS.
Ta liczba jest resetowana po zgłoszeniu się do hosta.
Wartość wynosi zero, jeśli nie ma prawidłowej wartości linku.
CRC_Error_Packets 4 okety Liczba odebranych pakietów z błędem CRC od ostatniego zdarzenia.
Ta liczba jest resetowana po zgłoszeniu się do hosta.
RX_Duplicate_Packets 4 okety Liczba pakietów duplikatów (retransmisji) otrzymanych od ostatniego wydarzenia.
Ta liczba jest resetowana po zgłoszeniu się do hosta.
Parametr specyficzny dla dostawcy (Parametr całkowita długość - TBD) * Oszczędność Dla dostawcy kontrolera, aby uzyskać więcej parametrów specyficznych dla dostawcy.

Kod podwodności = 0x58 [Quality_report_id = 0x05, zdarzenie zapalenia root]

To zdarzenie wskazuje, że Bluetooth HAL lub kontroler napotkał śmiertelny błąd i potrzebuje stosu Bluetooth, aby zarejestrować tę sytuację i ponownie uruchomić. Kontroler musi wysłać w dowolnym przypadku stosowanie_inflammation_event do stosu Bluetooth przed wysłaniem pierwszego fragmentu zdarzeń informacyjnych debugowania.

Parametr ERROR_CODE zawiera kod błędu zgłoszony z HAL/Controller, 0, jeśli jest to błąd specyficzny dla dostawcy chipsetów. Vendor_specific_error_code zawiera kod błędu specyficznego dla producenta producenta chipsetów z HAL/kontrolera. Powinien być ustawiony jako 0, jeśli parametr ERROR_CODE nie jest 0. Parametry Error_Code i Vendor_Specific_error_code nie powinny wynosić 0.

Parametr podwodny Rozmiar Zamiar
Quality_Report_Id 1 okett 0x00 ~ 0x04: Zarezerwowany.
0x05: Zapalenie korzeni.
0x06 ~ 0xff: Zarezerwowany.
Error_Code 1 okett 0x00: Uwzględniono specyficzny kod błędu dostawcy chipsetów.
0x01 ~ 0xff: Wystąpiła awaria kontrolera. Patrz Bluetooth Spec [Vol 2] Część D, kody błędów dla listy kodów błędów i opisów.
Vendor_Specific_Error_Code 1 okett 0x00: Brak konkretnego kodu błędu dostawcy chipsetów.
0x01 ~ 0xff: Chipset Sprzedawca specyficzny kod błędu.
Parametr specyficzny dla dostawcy (Parametr całkowitą długość - 4) * oktety Dla dostawcy kontrolera, aby uzyskać więcej parametrów specyficznych dla dostawcy.
Parametr podwodny Rozmiar Zamiar
Quality_Report_Id 1 okett 0x00 ~ 0x10: Zarezerwowany.
0x11: Śledzenie komunikatu LMP/LL.
0x12: Śledzenie planowania Bluetooth Multi-Link/COEX.
0x13: Zrzut danych debugowania kontrolera.
0x14 ~ 0xff: Zarezerwowany.
Connection_Handle 2 okety Uchwyt połączenia.
Parametr specyficzny dla dostawcy (Parametr całkowitą długość - 4) * oktety Format specyficzny dla dostawcy Śledzenia komunikatu LMP, Bluetooth Multi-Link/COEX Planowanie śledzenia i zrzucenie danych debugowania kontrolera.

Obsługa wielu advertiser

Cele wsparcia wielu advertiser są następujące:

  • Możliwość obsługi wielu reklam ( max_advt_instances )
  • Różne moce transmisowe, aby umożliwić zmienny zakres
  • Różne treści reklamowe
  • Zindywidualizowana odpowiedź dla każdego reklamodawcy
  • Prywatność (nie do śledzenia) dla każdego reklamodawcy
  • Łącze

Aby zachować tę specyfikację w pobliżu istniejących standardów, podano następujące polecenia specyficzne dla dostawcy. Pochodzą one ze specyfikacji Bluetooth Core 4.1.

Le_multi_advt_command

OCF: 0x154

Parametr polecenia Rozmiar Zamiar
Multi_advt_opcode 1 okett 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

Dla tego polecenia zostanie wygenerowane pełne zdarzenie.

Powrót parametr Rozmiar Zamiar
Status 1 okett Polecenie pełny status
Multi_advt_opcode 1 okett 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

Odniesienie podstawowe: specyfikacja Bluetooth Core 4.1, strona 964 (pole Parametrów reklamowych LE)

Sub OCF: 0x01

Parametr podskórny Rozmiar Zamiar
Advertising_Interval_Min Na specyfikację Na specyfikację
Advertising_Interval_Max Na specyfikację Na specyfikację
Advertising_Type Na specyfikację Na specyfikację
Own_Address_Type Na specyfikację Na specyfikację
Own_Address Na specyfikację Na specyfikację
Direct_Address_Type Na specyfikację Na specyfikację
Direct_Address Na specyfikację Na specyfikację
Advertising_Channel_Map Na specyfikację Na specyfikację
Adverstising_Filter_Policy Na specyfikację Na specyfikację
Advertising_Instance 1 okett Określa możliwość zastosowania powyższych parametrów do instancji
Tx_power 1 okett Moc nadawania
Jednostka - w DBM (podpisana liczba całkowita)
Zakres (-70 do +20)

Parametr Own_Address może być adresem skonfigurowanym do hosta w momencie konfigurowania tej instancji wielopoziomowej. Zapewnia to możliwość posiadania rozwiązywalnego prywatnego adresu w momencie przesyłania pierwszego latarni. Reklama w instancji będzie trwała niezależnie od połączenia. Stos Hosta BT może wydać polecenie, aby rozpocząć reklamę w instancji, Post Connection.

Wykonanie kompletnego polecenia zostanie wygenerowane dla tego polecenia, jak określono w specyfikacji Bluetooth Core 4.1, zgodnie z powyższym poleceniem. Kontroler zareaguje kodem nieuzasadnionym (niepoprawnym parametrem), jeżeli instancja reklamowa lub parametry Tx_Power są nieprawidłowe.

Powrót parametr Rozmiar Zamiar
Status 1 okett Polecenie pełny status
Multi_advt_opcode 1 okett 0x01 [ Set_Advt_Param_Multi_Sub_Cmd]

Le_multi_advt_command: set_advt_data_multi_sub_cmd

Odniesienie podstawowe: specyfikacja Bluetooth Core 4.1, strona 969 (polecenie reklamowe SET SET)

Sub OCF: 0x02

Parametr podskórny Rozmiar Zamiar
Advertising_Data_Length Na specyfikację Na specyfikację
Advertising_Data Na specyfikację Na specyfikację
Advertising_Instance 1 okett Określa możliwość zastosowania powyższych parametrów do instancji

Wykonanie kompletnego polecenia zostanie wygenerowane dla tego polecenia, jak określono w specyfikacji Bluetooth Core 4.1, zgodnie z powyższym poleceniem. Kontroler zareaguje kodem niezgodnym, jeśli instancja reklamowa lub parametry Tx_Power są nieprawidłowe.

Powrót parametr Rozmiar Zamiar
Status 1 okett Polecenie pełny status
Multi_advt_opcode 1 okett 0x02 [ Set_Advt_Data_Multi_Sub_Cmd]

Le_multi_advt_command: set_scan_resp_data_multi_sub_cmd

Odniesienie podstawowe: specyfikacja Bluetooth Core 4.1, strona 970 (polecenie danych SET SET SKANOWANIE)

Sub OCF: 0x03

Parametr podskórny Rozmiar Zamiar
Scan_Response_Data_Length Na specyfikację Na specyfikację
Scan_Response_Data Na specyfikację Na specyfikację
Advertising_Instance 1 okett Określa możliwość zastosowania powyższych parametrów do instancji

Wykonanie kompletnego polecenia zostanie wygenerowane dla tego polecenia, jak określono w specyfikacji Bluetooth Core 4.1, zgodnie z powyższym poleceniem. Kontroler zareaguje kodem niezgodnym (niepoprawny parametr), jeśli instancja reklamowa lub parametry Tx_Power są nieprawidłowe.

Powrót parametr Rozmiar Zamiar
Status 1 okett Polecenie pełny status
Multi_advt_opcode 1 okett 0x03 [ Set_Scan_Resp_Data_Multi_Sub_Cmd]

Le_multi_advt_command: set_random_addr_multi_sub_cmd

Odniesienie podstawowe: specyfikacja Bluetooth Core 4.1, strona 963 (polecenie LE SET LOSE Adres)

Sub OCF: 0x04

Parametr podskórny Rozmiar Zamiar
Losowy adres Na specyfikację Na specyfikację
Advertising_Instance 1 okett Określa możliwość zastosowania powyższych parametrów do instancji

Dla tego polecenia zostanie wygenerowane pełne zdarzenie.

Powrót parametr Rozmiar Zamiar
Status 1 okett Polecenie pełny status
Multi_advt_opcode 1 okett 0x04 [ Set_Random_Addr_Multi_Sub_Cmd]

Le_multi_advt_command: set_advt_enable_multi_sub_cmd

Odniesienie podstawowe: specyfikacja Bluetooth Core 4.1, strona 971 (LE SET REKLAMACJA Włącz polecenie W tej podstawowej specyfikacji)

OCF: 0x05

Parametr podskórny Rozmiar Zamiar
Advertising_Enable 1 okett Wartość 1 oznacza włączenie. Każda inna wartość oznacza wyłączenie.
Advertising_Instance 1 okett Określa możliwość zastosowania powyższych parametrów do instancji. Instancja 0 oznacza standardową instancję HCI.

Dla tego polecenia zostanie wygenerowane pełne zdarzenie.

Powrót parametr Rozmiar Zamiar
Status 1 okett Polecenie pełny status
Multi_advt_opcode 1 okett 0x05 [ Set_Advt_Enable_Multi_Sub_Cmd]

Rozdzielona rozdzielczość prywatnego adresu

Ta funkcja rozwiązuje prywatny adres w oprogramowaniu układowym lub sprzęcie kontrolera, co zapewnia następujące korzyści:

  • Opóźnienie związane z hostem w rozwiązywaniu prywatnego adresu
  • Oszczędzanie mocy poprzez powstrzymanie się od przebudzenia gospodarza

Le_set_RPA_Timeout

OCF: 0x15c

Parametr polecenia Rozmiar Zamiar
LE_local_IRK 16 oketów Urządzenie lokalne IRK używane do generowania losowego adresu rozdzielonego.
tRPA_min 2 okety Minimalny limit czasu generowania RPA w sekundach. Kontroler musi wygenerować nowe rozwiązane adresy dla dowolnych zdarzeń reklamowych/skanowania/połączenia w tym czasie lub po nim.
Prawidłowy zakres: 300-1800
tRPA_max 2 okety Maksymalny limit czasu generowania RPA w sekundach. Kontroler musi wygenerować nowe rozwiązywalne adresy dla dowolnych zdarzeń reklamowych/skanowania/połączenia w tym czasie lub wcześniej.
Prawidłowy zakres: tRPA_min -1800
Powrót parametr Rozmiar Zamiar
Status 1 okett Status polecenia.

Sugerowane wartości statusu HCI:
Sukces 0x00
0x01 Nieznane polecenie (jeśli nie jest obsługiwane)
0x12 Nieprawidłowe parametry polecenia (jeśli dowolne parametry są poza danym zakresem)

Le_RPA_Offload_Command

OCF: 0x155

Parametr polecenia Rozmiar Zamiar
RPA_offload_opcode 1 okett 0x1 - Włącz funkcję specyficzną dla klienta
0x2 - Dodaj IRK do listy
0x3 - Usuń IRK z listy
0x4 - Wyczyść listę irk
0x5 - Przeczytaj wpis listy IRK

Dla tego polecenia zostanie wygenerowane pełne zdarzenie.

Powrót parametr Rozmiar Zamiar
Status 1 okett Polecenie pełny status
Event_RPA_offload_opcode 1 okett 0x1 - Włącz funkcję specyficzną dla klienta
0x2 - Dodaj IRK do listy
0x3 - Usuń IRK z listy
0x4 - Wyczyść listę irk
0x5 - Przeczytaj wpis listy IRK

Le_RPA_Offload: enable_cust_specific_sub_command

Sub OCF: 0x01

Parametr podskórny Rozmiar Zamiar
enable_customer_specific_feature_set 1 okett 0x01 - Włącz funkcję rozładowanej RPA
0x00 - Wyłącz obciążoną funkcję RPA

Host musi być włączony przez hosta, w oparciu o możliwości układu. Patrz LE_Get_Vendor_Capabilities_Command . Każdy układ może mieć w oprogramowaniu zmieniającym max_irk_list_sz .

Dla tego polecenia zostanie wygenerowane pełne zdarzenie.

Powrót parametr Rozmiar Zamiar
Status 1 okett Polecenie pełny status
Event_cust_specific_feature_opcode 1 okett 0x01 [Włącz funkcję specyficzną dla klienta]

Le_RPA_Offload: add_irk_to_list_sub_command

Sub OCF: 0x02

Parametr podskórny Rozmiar Zamiar
LE_IRK 16 oktetów Le Irk (1st Bajt LSB)
Address_Type 1 okett 0: Adres publiczny
1: Losowy adres
LE_Device_Address 6 oktetów Adres publiczny lub losowy powiązany z IRK (1. bajtowy LSB)

Dla tego polecenia zostanie wygenerowane pełne zdarzenie.

Powrót parametr Rozmiar Zamiar
Status 1 okett Polecenie pełny status
Event_cust_specific_feature_opcode 1 okett 0x02 [Dodaj irk do listy]
LE_IrkList_AvailableSpaces 1 okett Dostępne wpisy listy IRL po bieżącej operacji

Le_RPA_Offload: remove_irk_to_list_sub_command

Sub OCF: 0x03

Parametr podskórny Rozmiar Zamiar
Address_Type 1 okett 0: Adres publiczny
1: Losowy adres
LE_Device_Address 6 oktetów Publiczny lub losowy adres, który kojarzy się z IRK

Dla tego polecenia zostanie wygenerowane pełne zdarzenie.

Powrót parametr Rozmiar Zamiar
Status 1 okett Polecenie pełny status
Event_cust_specific_feature_opcode 1 okett 0x03 [Usuń irk z listy]
LE_IrkList_AvailableSpaces 1 okett Dostępne wpisy listy IRL po bieżącej operacji

Le_RPA_Offload: Clear_IRK_LIST_SUB_COMMAND

Sub OCF: 0x04

Parametr podskórny Rozmiar Zamiar
Nic

Dla tego polecenia zostanie wygenerowane pełne zdarzenie.

Powrót parametr Rozmiar Zamiar
Status 1 okett Polecenie pełny status
Event_cust_specific_feature_opcode 1 okett 0x04 [Wyczyść listę irk]
LE_IrkList_AvailableSpaces 1 okett Dostępne wpisy listy IRL po bieżącej operacji [ max_irk_list_sz]

Le_RPA_Offload: Read_IRK_LIST_SUB_COMMAND

Sub OCF: 0x05

Parametr podskórny Rozmiar Zamiar
LE_read_IRK_list_entry-index 1 okett Indeks listy IRK [0, max_irk_list_sz-1]

Dla tego polecenia zostanie wygenerowane pełne zdarzenie.

Powrót parametr Rozmiar Zamiar
Status 1 okett Polecenie pełny status
Event_cust_specific_feature_opcode 1 okett 0x05 [Przeczytaj wpis listy IRK]
LE_Read_IRK_List_entry 1 okett Indeks IRK, który host chce odczytać (maksymalny rozmiar listy IRK to 32)
LE_IRK 16 oktetów Wartość irk
Address_Type 1 okett 0: Adres publiczny
1: Losowy adres
LE_Device_Address 6 oktetów Adres publiczny lub losowy powiązany z IRK
LE_Resolved_Private_Address 6 oktetów Obecny rozstrzygnięty postanowiony prywatny adres tego IRK