Requisiti per l'HCI

L'interfaccia del controller host (HCI) viene utilizzata per interagire con un controller Bluetooth.

Questo documento fornisce un elenco dei requisiti HCI Bluetooth (BT) e Bluetooth Low Energy (BLE). L'obiettivo è che i fornitori di stack BT host e i fornitori di controller BT si conformino a questi requisiti di piattaforma per utilizzare il set di funzionalità descritto di seguito.

Questo documento fa riferimento alla specifica Bluetooth Core 5.2 come "specifica". La specifica Bluetooth Core 5.2 è disponibile sul sito web Bluetooth SIG insieme ad altri documenti adottati.

Panoramica generale sulla progettazione

Funzionalità e configurazione dei chip

Android è una piattaforma aperta che vanta una serie di release software, OEM, fornitori e funzionalità di piattaforme e chip.

Per gestire i vari aspetti e le migrazioni, questo documento descrive una filosofia di progettazione che consente ai controller BT di esporre le proprie funzionalità (oltre la specifica Bluetooth Core 5.2 standard). Lo stack BT dell'host può quindi utilizzare queste funzionalità per determinare quali funzionalità abilitare.

Supporto di standard aperti

Uno degli obiettivi di Android è supportare standard aperti dopo la ratifica in una specifica Bluetooth. Se una funzionalità descritta di seguito diventa disponibile nei metodi HCI standard in una futura specifica Bluetooth, ci impegneremo a rendere questo approccio predefinito.

Funzionalità specifiche del fornitore

Comando specifico del fornitore: LE_Get_Vendor_Capabilities_Command

Campo comando OpCode (OCF): 0x153

Parametro comando Dimensioni Finalità
N/A Elenco di parametri del comando vuoto

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
max_advt_instances
(deprecato)
1 ottetto Numero di istanze pubblicità supportate.

Prenotato dopo la versione 0.98.
Questo parametro è deprecato nella specifica delle funzionalità Google v0.98 e successive in favore della specifica LE Extended Advertising disponibile nella specifica BT versione 5.0 e successive.
offloaded_resolution_of_private-address
(deprecato)
1 ottetto Capacità del chip BT di RPA.
Se supportato da un chip, deve essere abilitato dall'host.
0 = Non supportato
1 = Non supportato

Prenotato dopo la versione 0.98.
Questo parametro è deprecato nella specifica delle funzionalità Google v0.98 e successive in favore della funzionalità Privacy disponibile nella specifica BT versione 4.2 e successive.
total_scan_results_storage 2 ottetti Spazio di archiviazione per i risultati della scansione in byte
max_irk_list_sz 1 ottetto Numero di voci IRK supportate nel firmware
filtering_support 1 ottetto Supporto per i filtri nel controller
0 = Non supportato
1 = supportato
max_filter 1 ottetto Numero di filtri supportati
activity_energy_info_support 1 ottetto Supporta la generazione di report di informazioni sull'attività e sull'energia
0 = Non supportata
1 = Attiva
version_supported 2 ottetti Specifica la versione della specifica della funzionalità Google supportata
byte[0] = numero principale
byte[1] = numero minore

v1.04
byte[0] = 0x01
byte[1] = 0x04
total_num_of_advt_tracked 2 ottetti Numero totale di inserzionisti monitorati per OnLost/OnFound scopi
extended_scan_support 1 ottetto Supporta intervallo e finestra di scansione estesi
debug_logging_supported 1 ottetto Supporta il logging delle informazioni di debug binarie dal controller
LE_address_generation_offloading_support
(deprecato)
1 ottetto 0 = non supportato
1 = supportato

Prenotato dopo la versione 0.98.
Questo parametro è deprecato nella specifica delle funzionalità Google v0.98 e successive in favore della funzionalità Privacy disponibile nella specifica BT versione 4.2 e successive.
A2DP_source_offload_capability_mask 4 ottetti Maschere di bit per i tipi di codec supportate
Bit 0 - SBC
Bit 1 - AAC
Bit 2 - APTX
Bit 3 - APTX HD
Bit 4 - LDAC
I bit 5-31 sono riservati
bluetooth_quality_report_support 1 ottetto Supporta la segnalazione di eventi di qualità Bluetooth
0 = Non supportato
1 = Attiva
dynamic_audio_buffer_support 4 ottetti Supporta il buffer audio dinamico nel controller Bluetooth
Maschere di bit per i tipi di codec supportate
Bit 0 - SBC
Bit 1 - AAC
Bit 2 - APTX
Bit 3 - APTX HD
Bit 4 - LDAC
Bit 5-31 sono riservati
a2dp_offload_v2_support 1 ottetto Supporta i comandi A2dp Offload v2 nel controller Bluetooth (vedi Avviare l'offload A2DP, Arrestare l'offload A2DP)
0 = non supportato
1 = supportato

Raggruppamento dei risultati della scansione

Un obiettivo di progettazione è migliorare il modo in cui le notifiche degli eventi Bluetooth LE Scan Response vengono inviate all'host, per risparmiare energia.

Riducendo la frequenza con cui il controller comunica al processore dell'applicazione host di eseguire la scansione dei risultati, il processore dell'applicazione host può rimanere inattivo/sospeso più a lungo. In questo modo si riduce il consumo di corrente dell'host. Il parametro restituito total_scan_results_storage di LE_Get_Vendor_Capabilities_Command indica la capacità del chip per l'archiviazione dei risultati della scansione.

Questa funzionalità è incentrata sulla gestione e sulla configurazione della struttura di archiviazione dei risultati della scansione LE nel controller Bluetooth. Lo spazio di archiviazione viene utilizzato per raccogliere temporaneamente i dati pubblicitari in batch e analizzare i dati e i metadati ricevuti dal titolare per il successivo invio all'host.

Il firmware deve supportare due tipi di batch, che possono essere coinvolti contemporaneamente:

  • Troncamento. Contiene i seguenti elementi di informazioni: {MAC, TX Power, RSSI, Timestamp}
  • Piena. Contiene i seguenti elementi di informazioni: {MAC, TX Power, RSSI, Timestamp, Adv Data, Scan Response}

LE_Scansione_batch_comando

OCF: 0x156

Parametro comando Dimensioni Finalità
Batch_Scan_opcode 1 ottetto 0x1 - Abilita funzionalità specifica per il cliente
0x2 - Imposta i parametri di archiviazione della scansione batch
0x3 - Imposta i parametri della scansione batch
0x4 - Leggi i parametri dei risultati della scansione batch

Per questo comando verrà generato un evento Command Complete. L'abilitazione della funzionalità specifica del cliente non avvia la scansione.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Batch_Scan_opcode 1 ottetto 0x1 - Abilita funzionalità specifica per il cliente
0x2 - Imposta i parametri di archiviazione della scansione batch
0x3 - Imposta i parametri della scansione batch
0x4 - Leggi i parametri dei risultati della scansione batch

LE_Batch_Scan_Command: Abilita funzionalità specifica per il cliente

OCF secondario: 0 x 01

Parametro sottocomando Dimensioni Finalità
enable_customer_specific_feature_set 1 ottetto 0x01 - Attiva la funzionalità di scansione batch
0x00 - Disattiva la funzionalità di scansione batch

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Batch_Scan_opcode 1 ottetto 0x1 - Abilita funzionalità specifica per il cliente
0x2 - Imposta i parametri di archiviazione della scansione batch
0x3 - Imposta i parametri della scansione batch
0x4 - Leggi i parametri dei risultati della scansione batch

LE_Batch_Scan_Command: imposta il sottocomando parametro di archiviazione della scansione batch

OCF secondario: 0 x 02

Parametro sottocomando Dimensioni Finalità
Batch_Scan_Full_Max 1 ottetto Spazio di archiviazione massimo (in %) allocato allo stile completo
[Intervallo: 0-100]
Batch_Scan_Truncated_Max 1 ottetto Spazio di archiviazione massimo (in %) allocato allo stile troncato
[Intervallo: 0-100]
Batch_Scan_Notify_Threshold 1 ottetto Configura il livello di notifica (in %) per il pool di archiviazione individuale
[Intervallo: 0-100]
Se imposti il livello di notifica su 0, la notifica verrà disabilitata. Viene generato un evento HCI specifico del fornitore (sottoevento di violazione della soglia di archiviazione)

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Batch_scan_opcode 1 ottetto 0x02 [Imposta parametri della scansione batch]

LE_Batch_Scan_Command: imposta il sottocomando param di scansione batch

OCF secondario: 0 x 03

Parametro sottocomando Dimensioni Finalità
Batch_Scan_Mode 1 ottetto 0x00 - La scansione batch è disabilitata
0x01 - La modalità troncata è abilitata
0x02 - La modalità Completa è abilitata
0x03 - Le modalità Troncata e Completa sono abilitate
Duty_cycle_scan_window 4 ottetti Tempo scansione scansione batch (n. di slot)
Duty_cyle_scan_interval 4 ottetti Periodo di intervallo scansione batch (n. di slot)
own_address_type 1 ottetto 0x00 - Indirizzo del dispositivo pubblico
0x01 - Indirizzo del dispositivo casuale
Batch_scan_Discard_Rule 1 ottetto 0 - Elimina l'annuncio meno recente
1 - Elimina l'annuncio con RSSI più debole

Questo sottocomando avvia l'analisi batch, se abilitata. Nella scansione troncata, i risultati vengono archiviati in forma troncata, dove la chiave univoca per lo stile troncato = {BD_ADDR, scan_interval}. Ciò significa che viene registrato solo un BD_ADDR will per ogni intervallo di scansione. Il record da conservare per la modalità troncato è il seguente: {BD_ADDR, Tx Power, RSSI, Timestamp}

Quando la modalità Completa è abilitata, verrà utilizzata la scansione attiva e le risposte della scansione verranno registrate. La chiave univoca Full style = {MAC, Ad package}, indipendentemente dall'intervallo di scansione. Il record da conservare per la modalità completa è {BD_ADDR, Tx Power, RSSI, Timestamp, Adpackage, Scan Response}. In stile completo, lo stesso pacchetto AD viene registrato una sola volta, se visualizzato più volte in diversi intervalli di scansione. Tuttavia, in modalità troncata, è la visibilità di BA_ADDR in diversi intervalli di scansione che interessa (una volta per intervallo di scansione). RSSI è il valore medio di tutti i duplicati di una pubblicità univoca all'interno di un intervallo di scansione.

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Batch_scan_opcode 1 ottetto 0x03 [Impostare i parametri della scansione batch]

LE_Batch_Scan_Command: legge il sottocomando dei risultati della scansione batch

OCF secondario: 0 x 04

Parametro sottocomando Dimensioni Finalità
Batch_Scan_Data_read 1 ottetto 0x01 - Dati in modalità troncati
0x02 - Dati in modalità completa

Per questo comando verrà generato un evento Command Complete. Quando l'host emette questo comando, tutti i risultati nel controller potrebbero non rientrare in un solo evento Command Complete. L'host eseguirà l'iterazione dell'emissione di questo comando finché i risultati corrispondenti nell'evento Command Complete non indicano un numero di record pari a 0, il che indica che il controller non ha altri record per comunicare con l'host. Ogni evento Command Complete può contenere più record di un solo tipo di dati (Completo o Troncato).

I riferimenti relativi all'ora del controller e dell'host non sono sincronizzati. L'unità del timestamp è 50 ms. Il valore del timestamp si basa sul momento in cui Read_Batch_Scan_Results_Sub_cmd viene fornito dall'host. Se l'ora di arrivo del comando è T_c nel firmware, il timestamp effettivo nel firmware è T_fw. L'ora del report sarà: (T_c - T_fw). T_c e T_fw fanno parte del dominio ora del firmware. In questo modo l'host può calcolare da quanto tempo si è verificato l'evento.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Batch_scan_opcode 1 ottetto 0x03 [Imposta parametri della scansione batch]
Batch_Scan_data_read 1 ottetto Identifica il formato (Troncato o Completo)
num_of_records 1 ottetto Numero di record di Batch_Scan_data_read
format_of_data Variabile Truncated Mode:
Timestampts octet: 6 octet: 6 octet.
















num_of_recordsnum_of_recordsScan_data_resp

Filtro contenuti pacchetti pubblicitari

Utilizza questa opzione per abilitare/disabilitare/configurare il filtro per i contenuti dei pacchetti pubblicitari (APCF) nel controller. APCF filtra i report pubblicitari nel controller, ma non filtra la pubblicità periodica.

Comando_LE_APCF

OCF: 0x157

Parametro comando Dimensioni Finalità
APCF_opcode 1 ottetto 0x00 - APCF 0x01 - 0x01 - APCF Imposta parametri di filtro
0x02 - APCF Broadcaster Address
0x03 - UUID servizio APCF
0x04 - UUID richiesta servizio APCF
0x05 - Nome locale APCF riservato
0x06 Produttore APCF








Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato del reso
APCF_opcode 1 ottetto 0x00 - APCF 0x01 - 0x01 - APCF Imposta parametri di filtro
0x02 - APCF Broadcaster Address
0x03 - UUID servizio APCF
0x04 - UUID richiesta servizio APCF
0x05 - Nome locale APCF riservato
0x06 Produttore APCF








LE_APCF_Command: Enable_sub_cmd

OCF secondario: 0 x 00

Parametro sottocomando Dimensioni Finalità
APCF_enable 1 ottetto 0x01 - Abilita la funzionalità APCF
0x00 - Disabilita la funzionalità APCF

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
APCF_opcode 1 ottetto 0x0 - Abilitazione APCF
APCF_Enable 1 ottetto L'opzione di attivazione/disattivazione è impostata tramite APCF_enable

LE_APCF_Command: set_filtering_parameters_sub_cmd

Questo sottocomando viene utilizzato per aggiungere o eliminare una specifica di filtro o per cancellare un elenco di filtri per l'applicazione di filtri on-chip.

OCF secondario: 0 x 01

Parametro sottocomando Dimensioni Finalità
APCF_Action 1 ottetto 0x00 - Aggiungi
0x01 - Elimina
0x02 - Cancella
Elimina il filtro specifico viene cancellato insieme alle voci di funzionalità associate in altre tabelle.
Se scegli Cancella, tutti i filtri e le voci associate in altre tabelle verranno cancellati.
APCF_Filter_Index 1 ottetto Indice del filtro (0, max_filter-1)
APCF_Feature_Selection 2 ottetti Maschere di bit per le funzionalità selezionate:
Bit 0: Imposta per abilitare il filtro Indirizzo di trasmissione
Bit 1: Imposta per abilitare il filtro di modifica dei dati di servizio
Bit 2: Imposta per abilitare il controllo UUID di servizio
Bit 3: Imposta per abilitare il controllo UUID richiesta di servizio
Bit 4: Imposta per abilitare il controllo del nome locale
Bit 5: Imposta per abilitare il servizio Manufacturer Data Check
Bit 7: Imposta per abilitare il controllo dei dati del produttore
Bit 6: Imposta per abilitare il controllo dei dati del produttore
Bit 7: Imposta per abilitare il controllo dei dati del produttore
Bit 7: Imposta per abilitare il controllo dei dati del produttore
Bit 7: Imposta per abilitare il controllo dei dati del produttore
Bit 7: Imposta per abilitare il controllo dei dati del produttore
Bit 6: Imposta per abilitare il controllo dei dati del produttore
APCF_List_Logic_Type 2 ottetti Operazione logica per ogni selezione di funzionalità (posizione per bit) specificata in APCF_Feature_Selection.
Valido solo quando è abilitata una funzionalità.
Valore di posizione bit:
0: OR
1: AND
Se viene selezionata la logica "AND", un pacchetto ADV passerà il filtro solo se contiene TUTTE le voci dell'elenco.
Se viene selezionata la logica "OR", un pacchetto ADV passerà il filtro se contiene una qualsiasi delle voci nell'elenco.
APCF_Filter_Logic_Type 1 ottetto 0x00: OR
0x01: AND
Nota: il tipo logico è N/D per i primi tre campi di APCF_Feature_Selection, che è sempre la logica "AND". Sono applicabili solo per (Bit 3 - Bit 6) quattro campi di APCF_Feature_Selection.
rssi_high_thresh 1 ottetto [in dBm]
L'inserzionista viene considerato visto solo se l'indicatore è superiore alla soglia alta RSSI. In caso contrario, il firmware deve comportarsi come se non l'avesse mai visto.
delivery_mode 1 ottetto 0x00 - immediate
0x01 - on_found
0x02 - batched
onfound_timeout 2 ottetti Valido solo se delivery_mode è on_found.
[in millisecondi]
Tempo di attesa del firmware e della raccolta di ulteriori annunci pubblicitari prima della segnalazione.
onfound_timeout_cnt 1 ottetto Valido solo se delivery_mode è on_found.
[count]
Se un annuncio in onFound persiste nel firmware per la durata di onfound_timeout, raccoglierà alcuni annunci e il numero verrà controllato. Se il conteggio supera onfound_timeout_cnt, viene registrato OnFound subito dopo.
rssi_low_thresh 1 ottetto Valido solo se delivery_mode è on_found.
[in dBm]
Il pacchetto inserzionista viene considerato come non visto se l'RSSI del pacchetto ricevuto non è superiore alla soglia bassa RSSI.
onlost_timeout 2 ottetti Valido solo se delivery_mode è on_found.
[in millisecondi]
Se un annuncio, dopo essere stato trovato, non viene visto contiguamente per il periodo lost_timeout, verrà immediatamente segnalato come perso.
num_of_tracking_entries 2 ottetti Valido solo se delivery_mode è on_found.
[count]
Numero totale di inserzionisti da monitorare per filtro.

I valori RSSI devono utilizzare il completamento del 2 per rappresentare i valori negativi.

L'host deve essere in grado di configurare più filtri con APCF_Application_Address_type impostato su 0x02 (per tutti gli indirizzi delle emittenti) per gestire varie combinazioni di filtri.

I filtri, i gruppi e i report sono concetti correlati. Ogni pubblicità e la relativa risposta alla scansione dovranno passare attraverso tutti i filtri, uno dopo l'altro. Pertanto, le azioni risultanti (delivery_mode) sono strettamente legate al filtro. Le modalità di invio sono le seguenti: report_immediately, batch e onFound. Il valore OnLost è correlato a OnFound, nel senso che, in caso di smarrimento, corrisponderà a OnFound.

Questo flusso di elaborazione illustra il modello concettuale:

Quando viene ricevuto un frame pubblicitario (o risposta alla scansione), viene applicato a tutti i filtri in ordine seriale. È possibile che una pubblicità possa generare report immediati basati su un filtro e il relativo raggruppamento in batch a causa di un'azione del filtro diversa.

Le soglie di livello RSSI (alta e bassa) consentono di controllare quando il frame è visibile per l'elaborazione del filtro, anche quando il controller riceve un pacchetto valido. Nel caso in cui la modalità di invio sia impostata su immediata o in batch, l'RSSI di un frame viene preso in considerazione per un'ulteriore elaborazione da parte del controller. App diverse richiedono comportamenti diversi di reporting e raggruppamento. Ciò consente a più app di disporre contemporaneamente di report diretti e/o di batch di risultati nel firmware. Un esempio è un caso in cui una scansione batch è attiva da un'app e successivamente una normale scansione LE viene emessa da un'altra app. Prima dell'esecuzione di una scansione batch, il framework/l'app imposta i filtri appropriati. In seguito, quando la seconda app esegue una scansione regolare, i batch precedenti continuano. Tuttavia, a causa della normale scansione, è come aggiungere concettualmente un filtro nullo (insieme a tutti i filtri esistenti) insieme al comando di scansione LE. Se attivi, i parametri del comando di scansione LE hanno la precedenza. Quando la scansione LE normale è disabilitata, il controller torna a una scansione batch precedente, se esistente.

La modalità di invio di OnFound si basa sui filtri configurati. Una combinazione che attiva l'azione di un filtro con esito positivo viene considerata l'entità da monitorare per onLost. L'evento corrispondente è il sottoevento di monitoraggio inserzionista LE.

La transizione OnFound/OnLost per un filtro (se abilitata) sarà simile alla seguente:

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
APCF_opcode 1 ottetto 0x01 - Impostazione dei parametri di filtro APCF
APCF_Action 1 ottetto APCF_Action del comando Echo back
APCF_AvailableSpaces 1 ottetto Numero di voci disponibili nella tabella dei filtri

LE_APCF_Command: broadcast_address_sub_cmd

Questo sottocomando viene utilizzato per aggiungere o eliminare l'indirizzo di un inserzionista o per cancellare l'elenco di indirizzi dell'inserzionista per i filtri on-chip.

OCF secondario: 0 x 02

Parametro sottocomando Dimensioni Finalità
APCF_Action 1 ottetto 0x00 - Aggiungi
0x01 - Elimina
0x02 - Cancella
L'eliminazione eliminerà l'indirizzo dell'emittente specificato nel filtro specificato.
Cancella verranno cancellati tutti gli indirizzi delle emittenti nel filtro specificato.
APCF_Filter_Index 1 ottetto Indice del filtro (0, max_filter-1)
APCF_Broadcaster_Address 6 ottetto Indirizzo del dispositivo a 6 byte da aggiungere o eliminare dall'elenco di indirizzi dell'emittente
APCF_Application_Address_type 1 ottetto 0x00: Pubblico
0x01: Casuale
0x02: NA (ignora il tipo di indirizzo)
Per filtrare i report sulla pubblicità con tipi di indirizzi di identità (0x02, 0x03). Per ottenere report sulla pubblicità con tipi di indirizzo 0x02 e 0x03, imposta questo campo su 0x02: NA (ignora il tipo di indirizzo).

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
APCF_opcode 1 ottetto 0x02 - Indirizzo dell'emittente APCF
APCF_Action 1 ottetto APCF_Action del comando Echo back
APCF_AvailableSpaces 1 ottetto Numero di voci senza costi ancora disponibili nella tabella Indirizzo di trasmissione

LE_APCF_Command: service_uuid_sub_cmd

Questo sottocomando viene utilizzato per aggiungere o eliminare un UUID di servizio o per cancellare un elenco di UUID di servizio per il filtro on-chip.

OCF secondario: 0 x 03

Parametro sottocomando Dimensioni Finalità
APCF_Action 1 ottetto 0x00 - Aggiungi
0x01 - Elimina
0x02 - Cancella
Il pulsante Elimina eliminerà l'indirizzo dell'UUID di servizio specificato nel filtro specificato.
Se scegli Cancella, tutti gli UUID di servizio nel filtro specificato verranno cancellati.
APCF_Filter_Index 1 ottetto Indice del filtro (0, max_filter-1)
APCF_UUID 2,4,16 ottetto L'UUID del servizio (16 bit, 32 bit o 128 bit) per aggiungere o eliminare dall'elenco.
APCF_UUID_MASK 2,4,16 ottetto La maschera UUID del servizio (16 bit, 32 bit o 128 bit) da aggiungere all'elenco. Deve avere la stessa lunghezza di APCF_UUID.

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
APCF_opcode 1 ottetto 0x03 - UUID servizio APCF
APCF_Action 1 ottetto APCF_Action del comando Echo back
APCF_AvailableSpaces 1 ottetto Numero di voci senza costi ancora disponibili nella tabella UUID del servizio

LE_APCF_Command: richiestoation_uuid_sub_cmd

Questo sottocomando viene utilizzato per aggiungere o eliminare un UUID di sollecitazione o per cancellare un elenco di UUID di sollecitazione per il filtro on-chip.

OCF secondario: 0 x 04

Parametro sottocomando Dimensioni Finalità
APCF_Action 1 ottetto 0x00 - Aggiungi
0x01 - Elimina
0x02 - Cancella
Elimina eliminerà l'indirizzo UUID della richiesta nel filtro specificato.
Se scegli Cancella, tutti gli UUID di sollecitazione verranno cancellati nel filtro specificato.
APCF_Filter_Index 1 ottetto Indice del filtro (0, max_filter-1)
APCF_UUID 2,4,16 ottetto L'UUID richiesta (16 bit, 32 bit o 128 bit) da aggiungere o eliminare dall'elenco.
APCF_UUID_MASK 2,4,16 ottetto La maschera UUID della richiesta (16 bit, 32 bit o 128 bit) da aggiungere all'elenco. Deve avere la stessa lunghezza di APCF_UUID.

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
APCF_opcode 1 ottetto 0x04 - UUID richiesta APCF
APCF_Action 1 ottetto APCF_Action del comando Echo back
APCF_AvailableSpaces 1 ottetto Numero di voci senza costi ancora disponibili nella tabella UUID della richiesta

LE_APCF_Command: nome_locale_sub_cmd

Questo sottocomando viene utilizzato per aggiungere o eliminare una stringa di nomi locali o per cancellare l'elenco di stringhe dei nomi locali per l'applicazione di filtri on-chip.

OCF secondario: 0 x 05

Parametro sottocomando Dimensioni Finalità
APCF_Action 1 ottetto 0x00 - Aggiungi
0x01 - Elimina
0x02 - Cancella
Il pulsante Elimina elimina la stringa del nome locale specificata nel filtro specificato.
Se scegli Cancella, verranno cancellate tutte le stringhe dei nomi locali nel filtro specificato.
APCF_Filter_Index 1 ottetto Indice del filtro (0, max_filter-1)
APCF_LocName_Mandata_or_SerData Dimensione variabile Una stringa di caratteri per il nome locale.

Note:
  • Attualmente, il numero massimo di caratteri in una stringa del nome locale è 29
  • Non applicabile se l'azione è "Cancella" (0x2)

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
APCF_opcode 1 ottetto 0x05 - Nome locale APCF
APCF_Action 1 ottetto APCF_Action del comando Echo back
APCF_AvailableSpaces 1 ottetto Numero di voci senza costi ancora disponibili nella tabella dei nomi locali

LE_APCF_Command: manf_data_sub_cmd

Questo sottocomando viene utilizzato per aggiungere o eliminare una stringa di dati del produttore o per cancellare l'elenco di stringhe di dati del produttore per l'applicazione di filtri on-chip.

OCF secondario: 0 x 06

Parametro sottocomando Dimensioni Finalità
APCF_Action 1 ottetto 0x00 - Aggiungi
0x01 - Elimina
0x02 - Cancella
L'eliminazione eliminerà la stringa di dati del produttore specificata nel filtro specificato.
Se scegli Cancella, verranno cancellate tutte le stringhe di dati del produttore nel filtro specificato.
APCF_Filter_Index 1 ottetto Indice del filtro (0, max_filter-1)
APCF_LocName_Mandata_or_SerData Dimensione variabile Una stringa di caratteri per i dati del produttore.

Note:
  • Attualmente, il numero massimo di caratteri in una stringa del nome locale è 29
  • Non applicabile se l'azione è "Cancella" (0x2)
APCF_ManData_Mask Dimensione variabile La maschera dei dati di produzione da aggiungere all'elenco. Deve avere la stessa lunghezza di APCF_LocName_or_ManData_or_SerData.

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
APCF_opcode 1 ottetto 0x06 - Dati del produttore APCF
APCF_Action 1 ottetto APCF_Action del comando Echo back
APCF_AvailableSpaces 1 ottetto Numero di voci senza costi ancora disponibili nella tabella dei dati di produttore

LE_APCF_Command: service_data_sub_cmd

Questo sottocomando viene utilizzato per aggiungere o eliminare una stringa di dati di servizio o per cancellare l'elenco di stringhe di dati di servizio per l'applicazione di filtri on-chip.

OCF secondario: 0 x 07

Parametro sottocomando Dimensioni Finalità
APCF_Action 1 ottetto 0x00 - Aggiungi
0x01 - Elimina
0x02 - Cancella
Il pulsante Elimina elimina la stringa di dati di servizio specificata nel filtro specificato.
Se scegli Cancella, verranno cancellate tutte le stringhe dei dati di servizio nel filtro specificato.
APCF_Filter_Index 1 ottetto Indice del filtro (0, max_filter-1)
APCF_LocName_Mandata_or_SerData Dimensione variabile Una stringa di caratteri per i dati di servizio.

Note:
  • Attualmente, il numero massimo di caratteri in una stringa del nome locale è 29
  • Non applicabile se l'azione è "Cancella" (0x2)
APCF_LocName_Mandata_or_SerData_Mask Dimensione variabile La maschera dei dati di servizio da aggiungere all'elenco. Deve avere la stessa lunghezza di APCF_LocName_or_ManData_or_SerData.

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
APCF_opcode 1 ottetto 0x07 - Dati di servizio APCF
APCF_Action 1 ottetto APCF_Action del comando Echo back
APCF_AvailableSpaces 1 ottetto Numero di voci senza costi ancora disponibili per la tabella Dati di servizio

LE_APCF_Command: ad_type_sub_cmd

Questo sottocomando viene utilizzato per aggiungere o eliminare un tipo di AD o per cancellare un elenco di tipi di AD per l'applicazione di filtri su chip. Utilizza read_extended_features_sub_cmd per verificare se questo comando è supportato o meno.
Quando APCF_AD_DATA_Length è 0, filtra APCF_AD_TYPE senza confrontare i dati AD e la maschera di dati AD. Se la lunghezza dei dati del pacchetto ADV ricevuto supera AD_DATA_LENGTH, confronta solo i primi AD_DATA_LENGTH byte dei dati AD e ignora i dati rimanenti.

OCF secondario: 0 x 09

Parametro sottocomando Dimensioni Finalità
APCF_Action 1 ottetto 0x00 - Aggiungi
0x01 - Elimina
0x02 - Cancella
L'eliminazione eliminerà il tipo di annuncio specificato nel filtro specificato.
Se scegli Cancella, verranno cancellati tutti i tipi di annunci nel filtro specificato.
APCF_Filter_Index 1 ottetto Indice del filtro (0, max_filter-1)
APCF_AD_TYPE 1 ottetto Il tipo di annuncio da aggiungere o eliminare dall'elenco. Ignora quando APCF_Action è 0x02 (Cancella)
APCF_AD_DATA_Length 1 ottetto 0 x 00: indica che non è possibile filtrare i contenuti dei dati
Ignora quando APCF_Action è 0x02 (Cancella)
APCF_AD_DATA Dimensione variabile Dimensioni variabili, in base a APCF_AD_DATA_Length
Ignora quando APCF_Action è 0x02 (Cancella)
APCF_AD_DATA_MASK Dimensione variabile Dimensioni variabili, in base a APCF_AD_DATA_Length
Ignora quando APCF_Action è 0x02 (Cancella)
Deve avere la stessa lunghezza di APCF_AD_DATA.

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
APCF_opcode 1 ottetto 0x09 - Tipo di annuncio APCF
APCF_Action 1 ottetto APCF_Action del comando Echo back
APCF_AvailableSpaces 1 ottetto Numero di voci senza costi ancora disponibili nella tabella Tipo di annuncio

LE_APCF_Command: read_extended_features_sub_cmd

Questo sottocomando viene utilizzato per leggere le funzionalità APCF estese.

OCF secondario: 0xFF

Parametro sottocomando Dimensioni Finalità
Non applicabile Parametro comando vuoto.

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
APCF_opcode 1 ottetto 0xFF - APCF_Read_Extended_Features
APCF_extended_features 2 ottetto

Maschere di bit per funzionalità estese supportate:

  • Bit 0: filtro Supporto Transport Discovery Service
  • Bit 1: filtro Tipo di annuncio di supporto
  • Bit 2 ~15: riservato per un uso futuro.

Valore del bit

  • 0 = non supportato
  • 1 = supportato

Comando delle informazioni sull'attività e sull'energia del controller

L'obiettivo di queste informazioni è consentire a funzioni di sistema host più elevate di analizzare le attività totali di tutti i componenti, incluso il controller BT e il relativo stato delle macro, insieme a ciò che accade nelle app e nel framework. Per farlo, dallo stack BT e dal controller sono necessarie le seguenti informazioni:

  • Stack BT: segnalazione dello stato macro-operativo attuale del controller
  • Firmware: segnalazione di informazioni aggregate su attività ed energia

Stati della macro dello stack host BT, come determinato a livello di utente:

  • Inattività: [scansione della pagina, inserz. LE, scansione richiesta, scansione LE]
  • Scansione: [impaginazione/richiesta/in corso di connessione]
  • Attivo: [collegamento ACL attivato, link SCO in corso, modalità sniff]

Le attività che il controller tiene traccia nel corso della sua vita sono il tempo di trasmissione, il tempo di ricezione, il tempo di inattività e il consumo totale di energia. Vengono cancellati quando vengono letti dall'host.

LE_Get_Controller_Activity_Energy_Info

Si tratta di un comando specifico del fornitore.

OCF: 0x159

Parametro sottocomando Dimensioni Finalità
N/A Parametri comando vuoti

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
total_tx_time_ms 4 ottetti Tempo totale di esecuzione trasmissione
total_rx_time_ms 4 ottetti Rx tempo di esecuzione totale
total_idle_time_ms 4 ottetti Tempo totale in stato di inattività (stati di basso consumo energetico non in sospensione)
total_energy_used 4 ottetti Energia totale utilizzata [prodotto della corrente (mA), tensione (V) e tempo (ms)]

Comando LE Extended Set ScanParameters

Questo comando può essere utilizzato per abilitare una finestra e un intervallo di scansione più ampi nel controller. In base alla specifica BT Core 5.2, una finestra e un intervallo di scansione hanno un limite superiore di 10,24 secondi, il che impedisce gli intervalli di scansione più lunghi dell'applicazione, oltre i 10,24 secondi.

Riferimento di base: specifica BT Core 5.2, pagina 2493 (LE Set Scan Parameters Command)

OCF: 0x15A

Parametro comando Dimensioni Finalità
LE_Ex_Scan_Type 1 ottetto 0x00 - Scansione passiva. Non verranno inviati pacchetti SCAN_REQ (impostazione predefinita).
0x01 - Scansione attiva. Potrebbero essere inviati SCAN_REQ pacchetti.
LE_Ex_Scan_Interval 4 ottetti Definito come l'intervallo di tempo tra l'inizio dell'ultima scansione LE del controller e l'inizio della successiva scansione LE.
Intervallo: da 0x0004 a 0x00FFFFFF
Valore predefinito: 0x0010 (10 ms)
Tempo = N * 0,625 ms
Intervallo di tempo: da 2,5 ms a 10442,25 secondi
LE_Ex_Scan_Window 4 ottetti La durata della scansione LE. LE_Scan_Window deve essere inferiore o uguale a LE_Scan_Interval.
Intervallo: da 0x0004 a 0xFFFF
Valore predefinito: 0x0010 (10 ms)
Tempo = N * 0,625 ms
Intervallo di tempo: da 2,5 ms a 40,95 secondi
Own_Address_Type 1 ottetto 0x00 - Indirizzo dispositivo pubblico (predefinito)
0x01 - Indirizzo dispositivo casuale
LE_Ex_Scan_Filter_Policy 0x00 - Accetta tutti i pacchetti pubblicitari (impostazione predefinita). I pacchetti pubblicitari indirizzati che non sono indirizzati per questo dispositivo verranno ignorati.
0x01 - Ignora i pacchetti pubblicitari provenienti dai dispositivi non presenti nell'elenco Solo liste consentite. I pacchetti pubblicitari indirizzati che non sono indirizzati per questo dispositivo verranno ignorati.

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando

Comando Ottieni informazioni di debug del controller

L'obiettivo di questo elemento di informazione è acquisire le informazioni di debug del controller da un host, in formato binario, per la post-elaborazione e l'analisi. Questo aiuta a eseguire il debug dei problemi sul campo e fornisce agli ingegneri un toolkit per registrare le informazioni per l'analisi. Un controller può fornire le informazioni quando richiesto da un host tramite l'evento (evento secondario Informazioni di debug del controller) o autonomamente quando lo desidera. Ad esempio, puoi segnalare informazioni sullo stato del firmware, informazioni sul dump degli arresti anomali, informazioni di logging e così via.

OCF: 0 x 15 MLD

Parametro comando Dimensioni Finalità
N/A Elenco di parametri di comando vuoto

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando

Supporto dell'offload hardware A2DP

La funzionalità Offload A2DP supporta l'offload del processo di codifica audio A2DP a un processore audio collegato al controller BT. Lo stream di dati audio codificati passa direttamente dal processore audio al controller BT senza l'intervento dell'host BT. L'host BT è comunque responsabile della configurazione e del controllo della sessione A2DP. Sono disponibili due versioni dei comandi. I comandi legacy con Sub OCF 0x01-0x02 supportano solo codec open source. Le versioni con Sub-OCF 0x02-0x03 sono indipendenti dal codec configurato.

OCF: 0x15D

Avvia offload A2DP (legacy)

OCF secondario: 0 x 01

Utilizza questo comando sia per configurare il processo A2DP Offload sia per avviare il flusso A2DP.

Parametro comando Dimensioni Finalità
Codec 4 ottetti Specifica il tipo di codec
0x01 - SBC
0x02 - AAC
0x04 - APTX
0x08 - APTX HD
0x10 - LDAC
Max_Latency 2 ottetti Latenza massima consentita (in ms). Un valore pari a zero disabilita lo svuotamento.
SCMS-T_Enable 2 ottetti Ott 0: flag che consente l'aggiunta dell'intestazione SCMS-T.
  • 0x00 - Intestazione SCMS-T non inclusa.
  • 0x01 - Intestazione SCMS-T inclusa.

1 ott: valore per l'intestazione SCMS-T, quando è attivata.

Sampling_Frequency 4 ottetti 0x01 - 44100 Hz
0x02 - 48000 Hz
0x04 - 88200 Hz
0x08 - 96000 Hz
Bits_Per_Sample 1 ottetto 0x01 - 16 bit per campione
0x02 - 24 bit per campione
0x04 - 32 bit per campione
Channel_Mode 1 ottetto 0x01 - Mono
0x02 - Stereo
Encoded_Audio_Bitrate 4 ottetti Velocità in bit dell'audio codificato in bit al secondo.
0x00000000 - La velocità in bit audio non è specificata /hairsp;/ unused.
0x00000001 - 0x00FFFFFF: velocità in bit audio codificata in bit al secondo.
0x01000000 - 0xFFFFFFFF - Riservato.
Connection_Handle 2 ottetti Handle di connessione della connessione A2DP in fase di configurazione
L2CAP_Channel_ID 2 ottetti ID canale L2CAP da utilizzare per questa connessione A2DP
L2CAP_MTU_Size 2 ottetti Dimensione massima della MTU L2CAP contenente pacchetti audio codificati
Codec_Information 32 ottetti Informazioni specifiche del codec.

Codec SBC:

Fai riferimento agli elementi di informazione specifici del codec SBC in A2DP v1.3.
Ottetto 0: Lunghezza blocco | Sottobande | Metodo di allocazione
Ottetto 1: Valore minimo di bitpool
Ottetto 2: Valore massimo di bitpool
Ottetto 3: Frequenza di campionamento | Modalità canale
Ottetto 4-31: riservato

Codec AAC:

Fai riferimento agli elementi di informazioni specifici del codec AAC in A2DP v1.3
Ott 0: tipo di oggetto
Ott 1; b7: VBR
Ott 2-31: riservato

Codec LDAC:

Ott 0-3: ID fornitore
0x0000012D

Ottobre 4-5: ID codec
0x00AA - LDAC
Tutti gli altri valori sono riservati

Ottobre 6: indice velocità in bit:
0x00 - Elevata
0x01 - Media
0x02 - Bassa
0x03 - 0x7E - Riservato
0x7F - ABR (velocità in bit adattiva)
0x80 - 0xFF - Riservato

Ottobre 7: modalità canale LDAC
0x01 - Stereo
0x02 - Doppio
0x04 - Mono
Altri sono riservati

8-31 ott: prenotazione prenotata

Tutti gli altri codec:

0-31 ott: riservato

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Sub_Opcode 1 ottetto 0x01 - Avvia offload A2DP

Avvia offload A2DP

OCF secondario: 0 x 03

Utilizza questo comando sia per configurare il processo A2DP Offload sia per avviare il flusso A2DP.

Parametro comando Dimensioni Finalità
Connection Handle 2 ottetti Handle della connessione HCI attiva
L2CAP_Channel_ID 2 ottetti Identificatore del canale L2CAP aperto per lo streaming A2DP
Data_Path_Direction 1 ottetto 0x00 - Uscita (sorgente/unione AVDTP)
0x01 - Ingresso (sink/suddivisione AVDTP)
Peer_MTU 2 ottetti Dimensione massima dei pacchetti L2CAP, negoziata con il peer.
CP_Enable_SCMS_T 1 ottetto 0x00 - Disabilita l'intestazione della protezione dei contenuti SCMS-T
0x01 - Attiva l'intestazione della protezione dei contenuti SCMS-T
CP_Header_SCMS_T 1 ottetto Se l'intestazione della protezione dei contenuti SCMS-T è abilitata (CP_SCMS_T_Enable impostata su 0x01), definisce il valore dell'intestazione che precede il contenuto audio (fai riferimento ad A2DP, sezione 3.2.1-2) come definito da Numeri assegnati tramite Bluetooth, sezione 6.3.2.
Ignorata quando la protezione dei contenuti di SCMS-T non è attiva.
Vendor_Specific_Parameters_Length 1 ottetto Lunghezza dei parametri specifici del fornitore, compreso tra 0 e 128.
Il valore 0 viene utilizzato quando non vengono forniti parametri aggiuntivi.
Vendor_Specific_Parameters 0-128 ottetti Parametri specifici del fornitore forniti da Bluetooth Audio HAL, CodecParameters.vendorSpecificParameters[].

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Sub_Opcode 1 ottetto 0x03 - Avvia offload A2DP

Arresta offload A2DP (legacy)

OCF secondario: 0 x 02

Questo comando viene utilizzato per arrestare il flusso A2DP Offload.

Parametro comando Dimensioni Finalità
N/A Elenco di parametri del comando vuoto.

Nessun parametro definito per questo comando.

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Sub_Opcode 1 ottetto 0x02 - Arresto offload A2DP

Interrompi offload A2DP

OCF secondario: 0 x 04

Questo comando viene utilizzato per arrestare il flusso A2DP Offload.

Parametro comando Dimensioni Finalità
Connection Handle 2 ottetti Handle della connessione HCI attiva
L2CAP_Channel_ID 2 ottetti Identificatore del canale L2CAP aperto per lo streaming A2DP
Data_Path_Direction 1 ottetto 0x00 - Uscita (sorgente/unione AVDTP)
0x01 - Ingresso (sink/suddivisione AVDTP)

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Sub_Opcode 1 ottetto 0x04 - Arresto offload A2DP

Comando Bluetooth Quality Report

La funzionalità del comando Rapporto sulla qualità BT avvia il meccanismo nel controller Bluetooth per segnalare eventi di qualità Bluetooth all'host. Puoi abilitare quattro opzioni:

  • Modalità di monitoraggio della qualità: il controller invia periodicamente un evento secondario BQR relativo alla qualità del collegamento all'host.
  • LSTO in arrivo: se il dispositivo BT connesso non riceve pacchetti per più della metà del valore LSTO (Link Supervision TimeOut), il controller segnala all'host un evento Approaching LSTO.
  • Audio discontinuo A2DP: quando il controller rileva fattori che causano interruzioni dell'audio, segnala all'host un evento audio discontinuo A2DP.
  • (e)SCO Voice discontinuo: quando il controller rileva fattori che causano la voce discontinua, segnala un (e)evento discontinua voce di SCO all'host.
  • Infiammazione delle radici: questo evento viene inviato dal controller allo stack quando l'HAL o il controller riscontra un errore irreversibile e deve riavviare il Bluetooth.
  • Traccia messaggio LMP/LL: il controller invia all'host il messaggio LMP/LL per l'handshake con il dispositivo remoto.
  • Traccia di pianificazione Bluetooth multiprofilo/Coex: il controller invia all'host le proprie informazioni di pianificazione sulla gestione di più profili Bluetooth e sulla coesistenza wireless nella banda da 2,4 GHz.
  • Meccanismo delle informazioni di debug del controller: se abilitato, il controller può segnalare autonomamente all'host le informazioni sul logging di debug tramite l'evento secondario Informazioni di debug del controller.
  • LE audio discontinuo: quando il controller rileva fattori che causano un audio discontinuo, segnala un evento LE audio discontinuo all'host.
  • Modalità avanzata statistiche RF: il controller segnala all'host le informazioni relative alle statistiche RF, supportando due casi d'uso dei report:
    • Report periodici
    • Attivatori di eventi (avvio/interruzione dello streaming e trigger di eventi di qualità del collegamento).
  • BQR_Report_Action del comando Bluetooth Quality Report: l'host può utilizzare questo comando HCI per ottenere una query una tantum per la modalità monitoraggio della qualità, la modalità monitoraggio energia o una modalità avanzata statistiche RF.

OCF: 0x15E

Parametro comando Dimensioni Finalità
BQR_Report_Action 1 ottetto Azione per aggiungere / eliminare i report sugli eventi di qualità impostati nel parametro BQR_Quality_Event_Mask o cancellare tutto.

0x00 - Aggiungi
0x01 - Elimina
0x02 - Cancella
0x03 - Query unica

L'eliminazione cancellerà i report sugli eventi di qualità specifici.
Se scegli Cancella, verranno cancellati tutti i report sugli eventi di qualità (il parametro BQR_Quality_Event_Mask può essere ignorato).

BQR_Quality_Event_Mask 4 ottetti Maschere di bit per i report sugli eventi di qualità selezionati.

Bit 0: impostato per abilitare la modalità monitoraggio della qualità.
Bit 1: impostato per abilitare l'evento Approaching LSTO (per ACL/(e)SCO/ISO).
Bit 2: impostato per abilitare l'evento Audio discontinuo A2DP.
Bit 3: impostato per abilitare l'evento discontinuo della voce (e)SCO.
Bit 4: impostato per abilitare l'evento di infiammazione delle radici.
Bit 5: impostato per abilitare la modalità di monitoraggio del consumo di energia.
Bit 6: impostato per abilitare l'evento discontinuo audio LE.
Bit 7: impostato per abilitare l'evento di connessione non riuscita.
Bit 8: impostato per abilitare l'attivatore dell'evento della modalità Statistiche RF avanzate.
Bit 9: impostato per abilitare il report periodico Statistiche RF avanzate.
Bit 10 ~ 14: riservato.
Bit 15: impostato per abilitare eventi di qualità specifici del fornitore.
Bit 16: impostato per abilitare la traccia dei messaggi LMP/LL.
Bit 17: impostato per abilitare la traccia di pianificazione Bluetooth Multi-link/Coex.
Bit 18: impostato per abilitare il meccanismo delle informazioni di debug del controller.
Bit 19 ~ 30: riservato.
Bit 31: impostato per abilitare la traccia specifica del fornitore.

BQR_Minimum_Report_Interval 2 ottetti Definisci l'intervallo di tempo minimo dei report sugli eventi di qualità per gli eventi di qualità selezionati. Il firmware del controller non deve segnalare l'evento successivo nell'intervallo di tempo definito. L'impostazione dell'intervallo deve essere rispettiva e dedicata agli eventi di qualità che vengono aggiunti.

Unità: ms
Valore predefinito: 0 (nessuna limitazione per l'intervallo).
Intervallo: 0 ~ 65.535 ms

BQR_Vendor_Specific_Quality_Event_Mask 4 ottetti Maschere di bit per i report sugli eventi di qualità specifici del fornitore selezionati.
Questo parametro è valido solo quando è impostato il bit 15 di BQR_Quality_Event_Mask.

Bit 0 ~ 31: riservato.

BQR_Vendor_Specific_Trace_Mask 4 ottetti Maschere di bit per i report di traccia specifici del fornitore selezionati.
Questo parametro è valido solo quando è impostato il bit 31 di BQR_Quality_Event_Mask.

Bit 0 ~ 31: riservato.

Report_interval_multiple 4 ottetti Il moltiplicatore per BQR_Minimum_Report_Interval. Quando questo valore è maggiore di 1, l'intervallo di report BQR segue il formato
Intervallo di report BQR = BQR_Minimum_Report_Interval x Report_interval_multiple.
Il firmware del controller non deve segnalare l'evento successivo nell'intervallo di tempo definito. L'impostazione dell'intervallo è dedicata specificamente agli eventi di qualità aggiunti.

Unità: ms
Valore predefinito: 1
Intervallo: 0 ~ 4294967295 (0: è uguale a 1)

Nota: se l'impostazione BQR_Report_Interval supera la capacità del controller, quest'ultimo deve restituire il tempo massimo di BQR_Report_Interval al completamento del comando.

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Current_Quality_Event_Mask 4 ottetti Indica l'impostazione corrente della maschera di bit.
Bit 0: la modalità Monitoraggio qualità è abilitata.
Bit 1: il report sugli eventi LSTO sta per raggiungere è abilitato.
Bit 2: segnalazione eventi audio discontinuo A2DP abilitata.
Bit 3: (e) il reporting degli eventi discontinuo di SCO Voice è abilitato.
Bit 4: la segnalazione dell'evento di infiammazione radice è abilitata.
Bit 5: la modalità di monitoraggio dell'energia è abilitata.
Bit 6: il reporting degli eventi discontinui audio LE è abilitato.
Bit 7: evento di connessione non riuscita.
Bit 8: impostato per abilitare l'attivatore dell'evento della modalità Statistiche RF avanzate.
Bit 9: impostato per abilitare il report Statistiche RF avanzate periodicamente.
Bit 10 ~ 14: riservato.
Bit 15: sono abilitati i report sugli eventi di qualità specifici del fornitore.
Bit 16: traccia messaggio LMP/LL abilitata.
Bit 17: traccia di pianificazione Bluetooth Multi-link/Coex abilitata.
Bit 18: il meccanismo delle informazioni di debug del controller è abilitato.
Bit 19 ~ 30: riservato.
Bit 31: è abilitata la traccia specifica del fornitore.
Current_Vendor_Specific_Quality_Event_Mask 4 ottetti Indica l'impostazione corrente della maschera di bit.
Current_Vendor_Specific_Trace_Mask 4 ottetti Indica l'impostazione corrente della maschera di bit.
BQR_Report_interval 4 ottetti Indica l'impostazione corrente della maschera di bit.
Current_Vendor_Specific_Trace_Mask 4 ottetti L'impostazione di BQR_Report_interval. Deve essere il valore minimo compreso tra BQR_Minimum_Report_Interval * Report_interval_multiple o l'intervallo massimo di supporto del controller.

Comando buffer audio dinamico

Il buffer audio dinamico riduce i glitch audio modificando la dimensione del buffer audio nel controller Bluetooth in base a vari scenari.

OCF: 0x15F

Ottieni la funzionalità di tempo di buffer audio

OCF secondario: 0 x 01

Utilizza questo comando per recuperare la funzionalità del tempo di buffer audio dal controller Bluetooth.

Parametro comando Dimensioni Finalità
N/A Elenco di parametri del comando vuoto

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Dynamic_Audio_Buffer_opcode 1 ottetto 0x01 - Ottieni tempo di buffer audio
Audio_Codec_Type_Supported 4 ottetti Maschere di bit per i tipi di codec supportati
Bit 0 - SBC
Bit 1 - AAC
Bit 2 - APTX
Bit 3 - APTX HD
Bit 4 - LDAC
I bit 5-31 sono riservati
Audio_Codec_Buffer_Default_Time_For_Bit_0 2 ottetti Tempo di buffer predefinito del tipo di codec Bit 0 specificato in Audio_Codec_Type_Supported.
Questo valore deve essere 0 se il tipo di codec Bit 0 non è supportato.
Unità: ms
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 2 ottetti Tempo di buffer massimo del tipo di codec Bit 0 specificato in Audio_Codec_Type_Supported.
Questo valore deve essere 0 se il tipo di codec Bit 0 non è supportato.
Unità: ms
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 2 ottetti Tempo di buffer minimo del tipo di codec Bit 0 specificato in Audio_Codec_Type_Supported.
Questo valore deve essere 0 se il tipo di codec Bit 0 non è supportato.
Unità: ms
Audio_Codec_Buffer_Default_Time_For_Bit_1 2 ottetti Tempo di buffer predefinito del tipo di codec Bit 1 specificato in Audio_Codec_Type_Supported.
Questo valore deve essere 0 se il tipo di codec Bit 1 non è supportato.
Unità: ms
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 2 ottetti Tempo di buffer massimo del tipo di codec Bit 1 specificato in Audio_Codec_Type_Supported.
Questo valore deve essere 0 se il tipo di codec Bit 1 non è supportato.
Unità: ms
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 2 ottetti Tempo di buffer minimo del tipo di codec Bit 1 specificato in Audio_Codec_Type_Supported.
Questo valore deve essere 0 se il tipo di codec Bit 1 non è supportato.
Unità: ms
...... ...... ......
Audio_Codec_Buffer_Default_Time_For_Bit_31 2 ottetti Tempo di buffer predefinito del tipo di codec Bit 31 specificato in Audio_Codec_Type_Supported.
Questo valore deve essere 0 se il tipo di codec Bit 31 non è supportato.
Unità: ms
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 2 ottetti Tempo di buffer massimo del tipo di codec Bit 31 specificato in Audio_Codec_Type_Supported.
Questo valore deve essere 0 se il tipo di codec Bit 31 non è supportato.
Unità: ms
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 2 ottetti Tempo di buffer minimo del tipo di codec Bit 31 specificato in Audio_Codec_Type_Supported.
Questo valore deve essere 0 se il tipo di codec Bit 31 non è supportato.
Unità: ms

Imposta il tempo di buffer audio

OCF secondario: 0 x 02

Usa questo comando per impostare il tempo di buffer audio per il controller Bluetooth.

Parametro comando Dimensioni Finalità
Audio_Codec_Buffer_Time 2 ottetti Tempo di buffer audio richiesto per il codec attualmente utilizzato.
Unità: ms

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Dynamic_Audio_Buffer_opcode 1 ottetto 0x02 - Imposta il tempo di buffer audio
Audio_Codec_Buffer_Time 2 ottetti Tempo di buffer audio attuale nel controller Bluetooth.
Unità: ms

Evento HCI (specifico del fornitore)

In alcuni casi sono necessari eventi HCI specifici del fornitore. Fai riferimento alla Figura 5.4 a pagina 1897 della specifica BT Core 5.2. Il parametro evento 0 conterrà sempre il primo codice evento secondario, in base al quale il resto dell'evento HCI viene decodificato.

Parametro evento Dimensioni Finalità
HCI_vendor_specific_event_code 1 ottetto 0xFF
sub_event_code 1 ottetto Un codice dell'evento secondario avrà una dimensione di 1 ottetto, il byte immediatamente dopo Lunghezza parametro nel pacchetto di eventi HCI.

Evento secondario violazione soglia di archiviazione

Questo evento indica che la soglia di spazio di archiviazione è stata violata.

Codice evento secondario = 0x54

Parametro evento secondario Dimensioni Finalità
Nessun valore

Evento secondario di modifica dello stato multi-pubblicità LE

Questo evento indica che un'istanza pubblicitaria ha modificato il proprio stato. Al momento, questo evento viene utilizzato solo per indicare quale istanza pubblicitaria è stata interrotta a seguito di una connessione.

Codice evento secondario = 0x55

Parametro evento secondario Dimensioni Finalità
Advertising_instance 1 ottetto Identifica l'istanza pubblicitaria specifica
I valori validi sono compresi tra 0 e max_advt_instances-1
State_Change_Reason 1 ottetto 0x00: connessione ricevuta
Connection_handle 2 ottetti Identifica la connessione che ha causato la disattivazione dell'istanza advt (0xFFFF se non valida)

Evento secondario di monitoraggio della pubblicità LE

Questo evento indica quando un inserzionista viene trovato o perso.

Codice evento secondario = 0x56

Parametro evento secondario Dimensioni Finalità
APCF_Filter_Index 1 ottetto Indice del filtro (0, max_filter-1)
Advertiser_State 1 ottetto 0x00: inserzionista trovato
0x01: inserzionista perso
Advt_Info_Present 1 ottetto 0x00: informazioni sull'inserzionista (Advt_Info) presenti
0x01: informazioni sull'inserzionista (Advt_Info) non presenti
Advertiser_Address 6 ottetti Indirizzo pubblico o casuale
Advertiser_Address_Type 1 ottetto 0x00: indirizzo pubblico
0x01: indirizzo casuale
Advt_Info Tx_Pwr[0]: 1 ottetto
RSSI[0]: 1 ottetto
Timestamp[0]: 2 ottetti
Adv packet_len[0]: 1 ottetto
Adv_packet[0]: Adv_packet_len ottetto
Scan_data_resp_len[0]: 1 ottetto
Scan_data_resp[0]: Scan_data_resp ottetto

Evento secondario informazioni di debug del controller

Questo evento viene utilizzato da un controller per fornire informazioni di debug binarie a un host.

Codice evento secondario = 0x57

Parametro evento secondario Dimensioni Finalità
debug_block_byte_offset_start 2 ottetti Offset del byte a blocchi di debug dall'inizio
last_block 1 ottetto 0x00: altri dati di debug presenti
0x01: ultimo blocco binario; nessun altro dato di debug
cur_pay_load_sz 2 ottetti Dimensioni del blocco binario in un evento corrente
Debug_Data Variabile Dati di debug di cur_payload_sz

Evento secondario Bluetooth Quality Report

Questo evento indica uno dei seguenti eventi: si è verificato un evento di qualità Bluetooth, il controller ha caricato la traccia del messaggio LMP/LL e la traccia di pianificazione Bluetooth Multi-link/Coex o il controller ha scaricato i dati delle informazioni di debug.

Parametro evento secondario Dimensioni Finalità
Quality_Report_Id 1 ottetto 0x01: report sulla qualità nella modalità di monitoraggio.
0x02: In avvicinamento all'LSTO.
0x03: audio discontinuo A2DP.
0x04: (e)SCO Voice discontinua.
0x05 ~ 0x06: riservato.
0x07: LE audio discontinuo.
0x08: connessione non riuscita.
0x09 ~ 0xFF: riservato.
Packet_Types 1 ottetto 0x01: ID
0x02: 0x02: NULL
0x03: POLL
0x04: FHS
0x05: HV1
0x06: HV2
0x07: HV3
0x08: DV
0x09: EV3
0x0



















Connection_Handle 2 ottetti Handle di connessione ACL/(e)SCO/ISO.
Connection_Role 1 ottetto Esecuzione del ruolo per la connessione in corso...
0x00: Centrale
0x01: Periferica
0x02 ~ 0xFF: riservato.
TX_Power_Level 1 ottetto Livello di potenza di trasmissione corrente per l'handle di connessione specificato.

Questo valore deve corrispondere alla risposta del controller al comando HCI HCI_Read_Transmit_Power_Level.

RSSI 1 ottetto [in dBm]

Valore RSSI (Segnale Strength Indication) ricevuto per l'Handle di connessione specificato.
Questo valore deve essere un valore assoluto dell'intensità del segnale del ricevitore.
Intervallo: da -127 a +20

SNR 1 ottetto [in dB]

Valore rapporto segnale-disturbo (SNR) per l'Handle di connessione specificato.
Il controller deve fornire l'SNR medio di tutti i canali utilizzati dal collegamento.

Unused_AFH_Channel_Count 1 ottetto Indica il numero di canali inutilizzati in AFH_channel_map.
0x4F ~ 0xFF: riservato.
AFH_Select_Unideal_Channel_Count 1 ottetto Indica il numero di canali che subiscono interferenze e hanno una cattiva qualità, ma sono comunque selezionati per AFH.
Il numero minimo di canali consentito dalla specifica Bluetooth è 20, quindi anche se tutti i 79 canali subiscono interferenze e presentano una cattiva qualità, il controller deve comunque scegliere almeno 20 canali per AFH.
LSTO 2 ottetti Impostazione corrente timeout della supervisione dei link.
Tempo = N * 0,625 ms
Intervallo di tempo: da 0,625 ms a 40,9 s
Connection_Piconet_Clock 4 ottetti Orologio Piconet per l'Handle_di connessione specificato.
Questo valore deve corrispondere alla risposta del controller al comando HCI HCI_Read_Clock con il parametro "Where_Clock" di 0x01 (Piconet Clock).
Unità: N * 0,3125 ms (1 orologio Bluetooth)
Retransmission_Count 4 ottetti Il numero di ritrasmissioni dall'ultimo evento.
Questo conteggio verrà reimpostato dopo la segnalazione all'host.
No_RX_Count 4 ottetti Nessun conteggio RX dall'ultimo evento.
Il conteggio aumenta quando non vengono ricevuti pacchetti nella fascia oraria pianificata o quando il pacchetto ricevuto è danneggiato.
Questo conteggio verrà reimpostato dopo la segnalazione all'host.
NAK_Count 4 ottetti Conteggio NAK (conferma negativa) dall'ultimo evento.
Questo conteggio verrà reimpostato dopo la segnalazione all'host.
Last_TX_ACK_Timestamp 4 ottetti Timestamp dell'ultimo ACK TX. Si basa sull'orologio Bluetooth di Piconet Central (CLK).
Unità: N * 0,3125 ms (1 orologio Bluetooth)
Flow_Off_Count 4 ottetti Il numero di volte in cui il controller riceve Flow-off (STOP) dall'ultimo evento.
Questo conteggio verrà reimpostato dopo la segnalazione all'host.
Last_Flow_On_Timestamp 4 ottetti Timestamp dell'ultimo Flow-on (GO). Si basa sull'orologio Bluetooth di Piconet Central (CLK).
Unità: N * 0,3125 ms (1 orologio Bluetooth)
Buffer_Overflow_Bytes 4 ottetti [in byte]

Conteggio dell'overflow del buffer dall'ultimo evento.
Il controller conteggia la quantità di byte di dati eliminati.
Questo conteggio verrà reimpostato dopo la segnalazione all'host.

Buffer_Underflow_Bytes 4 ottetti [in byte]

Conteggio di underflow del buffer dall'ultimo evento.
Questo conteggio verrà reimpostato dopo la segnalazione all'host.

bdaddr 6 ottetti Indirizzo del dispositivo remoto
cal_failed_item_count 1 ottetto Il numero di elementi con errori di calibrazione
TX_Total_Packets 4 ottetti Il numero di pacchetti inviati.
TX_UnAcked_Packets 4 ottetti Il numero di pacchetti che non ricevono un riconoscimento.
Questo conteggio viene reimpostato dopo la segnalazione all'host.
TX_Flushed_Packets 4 ottetti Il numero di pacchetti che non sono inviati dal suo punto di flush.
Questo conteggio viene reimpostato dopo la segnalazione all'host.
TX_Last_Subevent_Packets 4 ottetti Il numero di pacchetti che il livello di collegamento trasmette una PDU di dati CIS nell'ultimo sottoevento di un evento CIS.
Questo conteggio viene reimpostato dopo la segnalazione all'host.
Il valore è zero se non esiste un valore valido per il collegamento.
CRC_Error_Packets 4 ottetti Il numero di pacchetti ricevuti con errore CRC dall'ultimo evento.
Questo conteggio viene reimpostato dopo la segnalazione all'host.
RX_Duplicate_Packets 4 ottetti Il numero di pacchetti duplicati (ritrasmissione) ricevuti dall'ultimo evento.
Questo conteggio viene reimpostato dopo la segnalazione all'host.
RX_Unreceived_Packets 4 ottetti Il numero di pacchetti non ricevuti è uguale al parametro del comando LE READ ISO Link Quality (vedi la specifica Bluetooth core versione 5.4). I flussi associati sono CIS e BIS.
Quando questo valore viene incrementato, il livello di collegamento non riceve un payload specifico dal suo punto di flush (su un CIS) o al termine dell'evento a cui è associato (su un BIS; vedere Bluetooth Core Specification Version 5.4 Vol 6 Part B, Section 4.4.6.6).
Coex_Info_Mask 2 ottetti Bit 0 - CoexInvolvement: impostato per indicare che si sospetta che le attività coex siano coinvolte quando viene generato questo report (ad esempio, A2DP Chops e Approaching LSTO).
Bit 1 - Radio WL 2G attiva: impostato per indicare che la radio WLAN 2G è attiva.
Bit 2 - WL 2G connesso: impostato per indicare che la radio WLAN 2G è attiva e connessa.
Bit 3 - Radio WL 5G/6G attiva: impostata per indicare che la radio WLAN 5G/6G è attiva.
Bit 4-15 - Riservato
Parametro specifico del fornitore (lunghezza totale parametri - da definire) * ottetti Per consentire al fornitore del controller di ottenere parametri più specifici del fornitore.

Codice evento secondario = 0x58 [Quality_Report_Id = 0x05, evento di infiammazione delle radici]

Questo evento indica che Bluetooth HAL o il controller hanno riscontrato un errore irreversibile e richiede lo stack Bluetooth per registrare la situazione e riavviare. In ogni caso, il controller deve inviare un Root_Inflammation_Event allo stack Bluetooth prima di inviare il primo frammento degli eventi di informazioni di debug.

Il parametro Error_Code contiene un codice di errore segnalato da HAL/Controller, 0 se si tratta di un errore specifico del fornitore di chipset. Il codice Vendor_Specific_Error_Code contiene un codice di errore specifico del fornitore di chipset da HAL/Controller. Deve essere impostato su 0 se il parametro Error_Code non è 0. I parametri Error_Code e Vendor_Specific_Error_Code non devono essere entrambi 0.

Parametro evento secondario Dimensioni Finalità
Quality_Report_Id 1 ottetto 0x00 ~ 0x04: riservato.
0x05: infiammazione delle radici.
0x06 ~ 0xFF: riservato.
Error_Code 1 ottetto 0x00: è incluso il codice di errore specifico del fornitore del chipset.
0x01 ~ 0xFF: si è verificato un errore del controller. Consulta le Specifiche Bluetooth [Vol 2], Parte D, Codici di errore per un elenco dei codici di errore e delle relative descrizioni.
Vendor_Specific_Error_Code 1 ottetto 0x00: non è incluso alcun codice di errore specifico del fornitore di chipset.
0x01 ~ 0xFF: codice di errore specifico del fornitore di chipset.
Parametro specifico del fornitore (Lunghezza totale parametro - 4) * ottetti Per consentire al fornitore del controller di ottenere parametri più specifici del fornitore.
Parametro evento secondario Dimensioni Finalità
Quality_Report_Id 1 ottetto 0x00 ~ 0x10: riservato.
0x11: traccia dei messaggi LMP/LL.
0x12: traccia di pianificazione Bluetooth Multi-link/Coex.
0x13: dump dei dati delle informazioni di debug del controller.
0x14 ~ 0xFF: riservato.
Connection_Handle 2 ottetti Handle di connessione.
Parametro specifico del fornitore (Lunghezza totale parametro - 4) * ottetti Formato specifico del fornitore per la traccia dei messaggi LMP, la traccia di pianificazione Bluetooth Multi-link/Coex e il dump dei dati delle informazioni di debug del controller.

Assistenza per più inserzionisti

Gli obiettivi del supporto di più inserzionisti sono i seguenti:

  • Possibilità di supportare più annunci pubblicitari (max_advt_instances)
  • Diverse potenze di trasmissione per consentire una gamma variabile
  • Diversi contenuti pubblicitari
  • Una risposta personalizzata per ogni inserzionista
  • Privacy (non monitorabile) per ogni inserzionista
  • Collegabili

Per mantenere questa specifica vicino agli standard esistenti, vengono forniti i seguenti comandi specifici del fornitore. Derivano dalla specifica Bluetooth Core 4.1.

LE_Comando_multi_inserzionista

OCF: 0x154

Parametro comando Dimensioni Finalità
Multi_advt_opcode 1 ottetto 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

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Multi_advt_opcode 1 ottetto 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

Riferimento di base: specifica Bluetooth Core 4.1, pagina 964 (LE Set Advertising Parameter Command)

OCF secondario: 0 x 01

Parametro sottocomando Dimensioni Finalità
Advertising_Interval_Min In base alla specifica In base alla specifica
Advertising_Interval_Max In base alla specifica In base alla specifica
Advertising_Type In base alla specifica In base alla specifica
Own_Address_Type In base alla specifica In base alla specifica
Own_Address In base alla specifica In base alla specifica
Direct_Address_Type In base alla specifica In base alla specifica
Direct_Address In base alla specifica In base alla specifica
Advertising_Channel_Map In base alla specifica In base alla specifica
Adverstising_Filter_Policy In base alla specifica In base alla specifica
Advertising_Instance 1 ottetto Specifica l'applicabilità dei parametri precedenti a un'istanza
Tx_power 1 ottetto Potenza_di_trasmissione
Unità: in dBm (numero intero con segno)
Intervallo (da -70 a +20)

Il parametro Own_Address potrebbe essere un indirizzo configurato dall'host al momento della configurazione di questa istanza multi-pubblicità. In questo modo è possibile avere un indirizzo privato risolvibile al momento della trasmissione del primo beacon. La pubblicità su un'istanza continuerà indipendentemente dalla connessione. Lo stack BT dell'host potrebbe inviare un comando per avviare la pubblicità su un'istanza, dopo la connessione.

Per questo comando verrà generato un evento Command Complete come specificato nella specifica Bluetooth Core 4.1, in base al comando precedente. Il controller risponderà con un codice di esito negativo (parametro non valido) se l'istanza pubblicitaria o i parametri Tx_Power non sono validi.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Multi_advt_opcode 1 ottetto 0x01 [Set_Advt_Param_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Advt_Data_Multi_Sub_Cmd

Riferimento di base: specifica Bluetooth Core 4.1, pagina 969 (LE Set Advertising Data Command)

OCF secondario: 0 x 02

Parametro sottocomando Dimensioni Finalità
Advertising_Data_Length In base alla specifica In base alla specifica
Advertising_Data In base alla specifica In base alla specifica
Advertising_Instance 1 ottetto Specifica l'applicabilità dei parametri precedenti a un'istanza

Per questo comando verrà generato un evento Command Complete come specificato nella specifica Bluetooth Core 4.1, in base al comando precedente. Il controller risponderà con un codice di operazione non riuscita se l'istanza pubblicitaria o i parametri Tx_Power non sono validi.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Multi_advt_opcode 1 ottetto 0x02 [Set_Advt_Data_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Scan_Resp_Data_Multi_Sub_Cmd

Riferimento di base: specifica Bluetooth Core 4.1, pagina 970 (LE Set Scan Response Data Command)

OCF secondario: 0 x 03

Parametro sottocomando Dimensioni Finalità
Scan_Response_Data_Length In base alla specifica In base alla specifica
Scan_Response_Data In base alla specifica In base alla specifica
Advertising_Instance 1 ottetto Specifica l'applicabilità dei parametri precedenti a un'istanza

Per questo comando verrà generato un evento Command Complete come specificato nella specifica Bluetooth Core 4.1, in base al comando precedente. Il controller risponderà con un codice di esito negativo (parametro non valido) se l'istanza pubblicitaria o i parametri Tx_Power non sono validi.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Multi_advt_opcode 1 ottetto 0x03 [Set_Scan_Resp_Data_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Random_Addr_Multi_Sub_Cmd

Riferimento di base: specifica Bluetooth Core 4.1, pagina 963 (LE Set Random Address Command)

OCF secondario: 0 x 04

Parametro sottocomando Dimensioni Finalità
Indirizzo casuale In base alla specifica In base alla specifica
Advertising_Instance 1 ottetto Specifica l'applicabilità dei parametri precedenti a un'istanza

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Multi_advt_opcode 1 ottetto 0x04 [Set_Random_Addr_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Advt_Abilita_Multi_Sub_Cmd

Riferimento di base: specifica Bluetooth Core 4.1, pagina 971 (LE Set advertising Enable Command in quella specifica principale)

OCF: 0x05

Parametro sottocomando Dimensioni Finalità
Advertising_Enable 1 ottetto Il valore 1 significa che è abilitato. Qualsiasi altro valore indica la disattivazione.
Advertising_Instance 1 ottetto Specifica l'applicabilità dei parametri precedenti a un'istanza. L'istanza 0 indica un'istanza HCI standard.

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Multi_advt_opcode 1 ottetto 0x05 [Set_Advt_Enable_Multi_Sub_Cmd]

Risoluzione offload dell'indirizzo privato

Questa funzionalità risolve un indirizzo privato nel firmware o nell'hardware del controller, offrendo i seguenti vantaggi:

  • Latenza coinvolta con l'host nella risoluzione di un indirizzo privato
  • Risparmiare energia evitando di riattivare l'host

LE_Set_RPA_Timeout

OCF: 0x15C

Parametro comando Dimensioni Finalità
LE_local_IRK 16 ottetti L'IRK del dispositivo locale utilizzato per generare gli indirizzi risolvibili in modo casuale.
tRPA_min 2 ottetti Timeout minimo della generazione di RPA in secondi. Il controller deve generare nuovi indirizzi risolvibili per eventuali eventi di pubblicità/scansione/connessione che si verificano durante questo timeout o dopo questo timeout.
Intervallo valido: 300-1800
tRPA_max 2 ottetti Il timeout massimo della generazione di RPA in secondi. Il controller deve generare nuovi indirizzi risolvibili per eventuali eventi di pubblicità/scansione/connessione durante questo timeout o prima di questo.
Intervallo valido: tRPA_min-1800
Parametro restituito Dimensioni Finalità
Status 1 ottetto Lo stato del comando.

Valori suggeriti per lo stato HCI:
0x00 Operazione riuscita
Comando 0x01 sconosciuto (se non supportato)
0x12 Parametri del comando non validi (se alcuni parametri non rientrano nell'intervallo specificato)

Comando_offload_LE_RPA

OCF: 0x155

Parametro comando Dimensioni Finalità
RPA_offload_opcode 1 ottetto 0x1 - Abilita funzionalità specifica per il cliente
0x2 - Aggiungi IRK all'elenco
0x3 - Rimuovi IRK dall'elenco
0x4 - Cancella elenco IRK
0x5 - Leggi voce elenco IRK

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Event_RPA_offload_opcode 1 ottetto 0x1 - Abilita funzionalità specifica per il cliente
0x2 - Aggiungi IRK all'elenco
0x3 - Rimuovi IRK dall'elenco
0x4 - Cancella elenco IRK
0x5 - Leggi voce elenco IRK

LE_RPA_offload: Enable_cust_specific_sub_Command

OCF secondario: 0 x 01

Parametro sottocomando Dimensioni Finalità
enable_customer_specific_feature_set 1 ottetto 0x01 - Attiva la funzionalità RPA con offload
0x00 - Disattiva la funzionalità RPA con offload

L'offload RPA deve essere abilitato dall'host in base alla funzionalità del chip. Consulta il LE_Get_Vendor_Capabilities_Command. Ogni chip può avere un valore max_irk_list_sz diverso nel firmware.

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Event_cust_specific_feature_opcode 1 ottetto 0x01 [Attivazione della funzionalità specifica per il cliente]

LE_RPA_offload: Aggiungi_IRK_a_elenco_sub_Comando

OCF secondario: 0 x 02

Parametro sottocomando Dimensioni Finalità
LE_IRK 16 ottetti LE IRK (LSB 1° byte)
Address_Type 1 ottetto 0: indirizzo pubblico
1: indirizzo casuale
LE_Device_Address 6 ottetti Indirizzo pubblico o casuale associato all'IRK (LSB di 1° byte)

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Event_cust_specific_feature_opcode 1 ottetto 0x02 [Aggiungi IRK all'elenco]
LE_IrkList_AvailableSpaces 1 ottetto Voci dell'elenco IRL disponibili dopo l'operazione corrente

LE_RPA_offload: Rimuovi_IRK_da_elenco_sub_Comando

OCF secondario: 0 x 03

Parametro sottocomando Dimensioni Finalità
Address_Type 1 ottetto 0: indirizzo pubblico
1: indirizzo casuale
LE_Device_Address 6 ottetti Indirizzo pubblico o casuale associato all'IRK

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Event_cust_specific_feature_opcode 1 ottetto 0x03 [Rimuovi IRK dall'elenco]
LE_IrkList_AvailableSpaces 1 ottetto Voci dell'elenco IRL disponibili dopo l'operazione corrente

LE_RPA_offload: Cancella_IRK_list_sub_Command

OCF secondario: 0 x 04

Parametro sottocomando Dimensioni Finalità
Nessun valore

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Event_cust_specific_feature_opcode 1 ottetto 0 x 04 [Cancella elenco IRK]
LE_IrkList_AvailableSpaces 1 ottetto Voci dell'elenco IRL disponibili dopo l'operazione corrente [max_irk_list_sz]]

LE_RPA_offload: Read_IRK_list_sub_Command

OCF secondario: 0 x 05

Parametro sottocomando Dimensioni Finalità
LE_read_IRK_list_entry-index 1 ottetto Indice dell'elenco IRK [0, max_irk_list_sz-1]

Per questo comando verrà generato un evento Command Complete.

Parametro restituito Dimensioni Finalità
Status 1 ottetto Stato di completamento comando
Event_cust_specific_feature_opcode 1 ottetto 0x05 [Lettura voce elenco IRK]
LE_Read_IRK_List_entry 1 ottetto Indice dell'IRK che l'host vuole leggere (la dimensione massima dell'elenco IRK è 32)
LE_IRK 16 ottetti Valore IRK
Address_Type 1 ottetto 0: indirizzo pubblico
1: indirizzo casuale
LE_Device_Address 6 ottetti Indirizzo pubblico o casuale associato all'IRK
LE_Resolved_Private_Address 6 ottetti Indirizzo privato risolvibile corrente risolto di questo IRK