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_records num_of_records Scan_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:
|
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:
|
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:
|
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:
Valore del bit
|
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.
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. Codec AAC:
Fai riferimento agli elementi di informazioni specifici del codec AAC in A2DP v1.3 Codec LDAC:
Ott 0-3: ID fornitore
Ottobre 4-5: ID codec
Ottobre 6: indice velocità in bit:
Ottobre 7: modalità canale LDAC 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
L'eliminazione cancellerà i report sugli eventi di qualità specifici. |
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à. |
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 |
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 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 ) presenti0x01: 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 ottettoRSSI[0] : 1 ottettoTimestamp[0] : 2 ottettiAdv packet_len[0] : 1 ottettoAdv_packet[0] : Adv_packet_len ottettoScan_data_resp_len[0] : 1 ottettoScan_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.
Codice evento secondario = 0x58 [Quality_Report_Id = 0x01 ~ 0x04, evento correlato alla qualità dei link]
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. |
SNR |
1 ottetto |
[in dB]
Valore rapporto segnale-disturbo (SNR) per l'Handle
di connessione specificato. |
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. |
Buffer_Underflow_Bytes |
4 ottetti |
[in byte]
Conteggio di underflow del buffer dall'ultimo evento. |
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. |
Codice evento secondario = 0x58 [Quality_Report_Id = 0x11 ~ 0x13, evento correlato al dump dei log]
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 |