L'interfaccia 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 Host BT e di controller BT si conformino a questi requisiti della 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 del progetto
Funzionalità e configurazione del chip
Essendo una piattaforma aperta, Android dispone di una matrice di versioni software, OEM, fornitori e funzionalità di piattaforma e chip.
Per gestire il panorama variabile e gestire le migrazioni, in questo documento viene descritta una filosofia di progettazione che consente ai controller BT di esporre le proprie capacità (oltre la specifica Bluetooth Core 5.2 standard). Lo stack BT host può quindi utilizzare queste funzionalità per determinare quali funzionalità abilitare.
Supportare standard aperti
Uno degli obiettivi di Android è supportare gli standard aperti dopo la ratifica in una specifica Bluetooth. Se una funzionalità descritta di seguito diventasse disponibile nei metodi HCI standard in una futura specifica Bluetooth, tenderemo a rendere tale approccio predefinito.
Funzionalità specifiche del fornitore
Comando specifico del fornitore: LE_Get_Vendor_Capabilities_Command
Campo comando OpCode (OCF): 0x153
Parametro di comando | Misurare | Scopo |
---|---|---|
N / A | Elenco dei parametri di comando vuoto |
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
max_advt_instances (Deprecato) | 1 ottetto | Numero di istanze pubblicitarie supportate. Riservato dopo la v0.98. Questo parametro è deprecato nelle specifiche delle funzionalità di Google v0.98 e successive a favore della pubblicità estesa LE disponibile nelle specifiche BT versione 5.0 e successive. |
offloaded_resolution_of_private-address (Deprecato) | 1 ottetto | Funzionalità del chip BT di RPA. Se supportato da un chip, necessita dell'abilitazione da parte dell'host. 0 = Non capace 1 = Capace Riservato dopo la v0.98. Questo parametro è deprecato nelle specifiche delle funzionalità Google v0.98 e successive a favore della funzionalità Privacy disponibile nelle specifiche 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 il filtraggio nel controller 0 = Non supportato 1 = Supportato |
max_filter | 1 ottetto | Numero di filtri supportati |
activity_energy_info_support | 1 ottetto | Supporta la segnalazione di attività e informazioni sull'energia 0 = Non capace 1 = Capace |
version_supported | 2 ottetti | Specifica la versione supportata delle specifiche delle funzionalità di Google byte[0] = numero maggiore byte[1] = numero minore v1.04 byte[0] = 0x01 byte[1] = 0x04 |
total_num_of_advt_tracked | 2 ottetti | Numero totale di inserzionisti tracciati per scopi OnLost / OnFound |
extended_scan_support | 1 ottetto | Supporta finestra e intervallo di scansione estesi |
debug_logging_supported | 1 ottetto | Supporta la registrazione delle informazioni di debug binario dal controller |
LE_address_generation_offloading_support (Deprecato) | 1 ottetto | 0 = Non supportato 1 = Supportato Riservato dopo la v0.98. Questo parametro è deprecato nelle specifiche delle funzionalità Google v0.98 e successive a favore della funzionalità Privacy disponibile nelle specifiche 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 Parte 1 - CAA Bit 2-APTX Bit 3-APTX HD Parte 4: LDAC I bit 5-31 sono riservati |
bluetooth_quality_report_support | 1 ottetto | Supporta la segnalazione di eventi di qualità Bluetooth 0 = Non capace 1 = Capace |
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 Parte 1 - CAA Bit 2-APTX Bit 3-APTX HD Parte 4: LDAC I bit 5-31 sono riservati |
a2dp_offload_v2_support | 1 ottetto | Supporta i comandi A2DP Offload v2 nel controller Bluetooth (vedi Avvia A2DP Offload , Interrompi A2DP Offload ) 0 = Non supportato 1 = Supportato |
Raggruppamento dei risultati della scansione
Uno degli obiettivi di progettazione è migliorare il modo in cui le notifiche degli eventi di risposta alla scansione Bluetooth LE vengono inviate all'host, al fine di risparmiare energia nell'host.
Riducendo la frequenza con cui il controller notifica al processore dell'applicazione host di scansionare i risultati, il processore dell'applicazione host può rimanere inattivo/sospeso più a lungo. Ciò riduce il consumo energetico nell'host. Il parametro di ritorno total_scan_results_storage
di LE_Get_Vendor_Capabilities_Command
indica la capacità del chip per l'archiviazione dei risultati della scansione.
Questa funzionalità si concentra sulla gestione e configurazione della struttura di archiviazione dei risultati della scansione LE nel controller Bluetooth. Lo spazio di archiviazione viene utilizzato per raggruppare temporaneamente i dati pubblicitari e scansionare dati e metadati ricevuti dal controller per la successiva consegna all'host.
Il firmware supporterà due tipi di batching, che possono essere attivati contemporaneamente:
- Troncato. Contiene i seguenti elementi informativi: {MAC, TX Power, RSSI, Timestamp}
- Pieno. Contiene i seguenti elementi informativi: {MAC, TX Power, RSSI, Timestamp, Adv Data, Scan Response}
LE_Batch_Scan_Command
OCF: 0x156
Parametro di comando | Misurare | Scopo |
---|---|---|
Batch_Scan_opcode | 1 ottetto | 0x1: abilita la funzionalità specifica del cliente 0x2: imposta i parametri di archiviazione della scansione batch 0x3 - Imposta i parametri di scansione batch 0x4 - Leggi i parametri dei risultati della scansione batch |
Per questo comando verrà generato un evento Comando completo. L'abilitazione della funzione specifica del cliente non avvia la scansione.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
Batch_Scan_opcode | 1 ottetto | 0x1: abilita la funzionalità specifica del cliente 0x2: imposta i parametri di archiviazione della scansione batch 0x3 - Imposta i parametri di scansione batch 0x4 - Leggi i parametri dei risultati della scansione batch |
LE_Batch_Scan_Command: abilita la funzione specifica del cliente
OCF secondario: 0x01
Parametro del sottocomando | Misurare | Scopo |
---|---|---|
enable_customer_specific_feature_set | 1 ottetto | 0x01 - Abilita la funzione Scansione batch 0x00: disabilita la funzionalità di scansione batch |
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
Batch_Scan_opcode | 1 ottetto | 0x1: abilita la funzionalità specifica del cliente 0x2: imposta i parametri di archiviazione della scansione batch 0x3 - Imposta i parametri di scansione batch 0x4 - Leggi i parametri dei risultati della scansione batch |
LE_Batch_Scan_Command: imposta il sottocomando Batch Scan Storage Param
OCF secondario: 0x02
Parametro del sottocomando | Misurare | Scopo |
---|---|---|
Batch_Scan_Full_Max | 1 ottetto | Spazio di archiviazione massimo (in%) assegnato allo stile completo [Intervallo: 0-100] |
Batch_Scan_Truncated_Max | 1 ottetto | Spazio di archiviazione massimo (in%) assegnato allo stile troncato [Intervallo: 0-100] |
Batch_Scan_Notify_Threshold | 1 ottetto | Livello di notifica dell'impostazione (in %) per il singolo storage pool [Intervallo: 0-100] L'impostazione su 0 disabiliterà la notifica. Viene generato un evento HCI specifico del fornitore (sottoevento di violazione della soglia di archiviazione) |
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
Batch_scan_opcode | 1 ottetto | 0x02 [Imposta parametri scansione batch] |
LE_Batch_Scan_Command: imposta il sottocomando Batch Scan Param
OCF secondario: 0x03
Parametro del sottocomando | Misurare | Scopo |
---|---|---|
Batch_Scan_Mode | 1 ottetto | 0x00: la scansione batch è disabilitata 0x01 – La modalità troncata è abilitata 0x02 – La modalità completa è abilitata 0x03 – Le modalità Troncato e Completo sono abilitate |
Duty_cycle_scan_window | 4 ottetti | Tempo di scansione scansione batch (n. di slot) |
Duty_cyle_scan_interval | 4 ottetti | Periodo di intervallo di scansione batch (n. di slot) |
own_address_type | 1 ottetto | 0x00 - Indirizzo del dispositivo pubblico 0x01 - Indirizzo casuale del dispositivo |
Batch_scan_Discard_Rule | 1 ottetto | 0 - Elimina l'annuncio più vecchio 1 - Scarta la pubblicità con l'RSSI più debole |
Questo sottocomando avvierà la scansione batch, se abilitato. Nella scansione troncata, i risultati vengono archiviati in forma troncata dove la chiave univoca per lo stile troncato = { BD_ADDR,
scan_interval}. Ciò significa BD_ADDR will
per ciascun intervallo di scansione. Il record da conservare per la modalità Troncata è il seguente: { BD_ADDR
, Tx Power, RSSI, Timestamp}
Quando è abilitata la modalità Completa, verrà utilizzata la scansione attiva e verranno registrate le risposte alla scansione. La chiave univoca in stile completo = {MAC, pacchetto di annunci}, indipendentemente dall'intervallo di scansione. Il record da conservare per la modalità completa è { BD_ADDR
, Tx Power, RSSI, Timestamp, Ad packet, Scan Response}. Nello stile Completo, lo stesso pacchetto AD, se visualizzato più volte in diversi intervalli di scansione, viene registrato una sola volta. Tuttavia, in modalità Troncata, ciò che interessa è la visibilità di BA_ADDR
attraverso diversi intervalli di scansione (una volta per intervallo di scansione). L'RSSI è il valore medio di tutti i duplicati di un annuncio pubblicitario unico all'interno di un intervallo di scansione.
Verrà generato un evento Comando completo per questo comando.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
Batch_scan_opcode | 1 ottetto | 0x03 [Imposta parametri scansione batch] |
LE_Batch_Scan_Command: sottocomando Leggi i risultati della scansione batch
OCF secondario: 0x04
Parametro del sottocomando | Misurare | Scopo |
---|---|---|
Batch_Scan_Data_read | 1 ottetto | 0x01 – Dati in modalità troncata 0x02 – Dati in modalità completa |
Per questo comando verrà generato un evento Comando completo. Quando l'host emette questo comando, tutti i risultati nel controller potrebbero non rientrare in un evento Command Complete. L'host ripeterà l'emissione di questo comando finché i risultati corrispondenti nell'evento Command Complete indicheranno 0 nel numero di record, il che indica che il controller non ha più record da comunicare all'host. Ciascun evento Command Complete può contenere più record di un solo tipo di dati (completo o troncato).
I riferimenti orari 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'orario di arrivo di un comando è T_c
nel firmware, l'ora effettiva in cui è stato acquisito il timestamp nel firmware è T_fw
. L'orario di reporting sarà: ( T_c
- T_fw
). T_c
e T_fw
si trovano nel dominio temporale del firmware. Ciò consente all'host di calcolare quanto tempo fa si è verificato l'evento.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
Batch_scan_opcode | 1 ottetto | 0x03 [Imposta parametri 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 | Modalità troncata: Indirizzo[0]: 6 ottetti Address_Type[0]: 1 ottetto Tx_Pwr[0]: 1 ottetto RSSI[0]: 1 ottetto Timestamp[0]: 2 ottetti [più record ( num_of_records ) con il formato sopra]Modalità completa: Indirizzo[0]: 6 ottetti Address_Type[0]: 1 ottetto 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 ottetti Scan_data_resp_len[0]: 1 ottetto Scan_data_resp[0]: ottetti Scan_data_resp [più record con il formato precedente ( num_of_records )] |
Filtro contenuto pacchetto pubblicitario
Utilizzarlo per abilitare/disabilitare/configurare il filtro del contenuto del pacchetto pubblicitario (APCF) nel controller. APCF filtra i report pubblicitari nel controller ma non filtra la pubblicità periodica.
LE_APCF_Comando
OCF: 0x157
Parametro di comando | Misurare | Scopo |
---|---|---|
APCF_opcode | 1 ottetto | 0x00 - Abilita APCF 0x01 - APCF Imposta i parametri di filtraggio 0x02 - Indirizzo dell'emittente APCF 0x03 - UUID del servizio APCF 0x04 - UUID di sollecitazione del servizio APCF 0x05: nome locale APCF 0x06: dati del produttore APCF 0x07 - Dati servizio APCF 0x08: servizio di rilevamento del trasporto APCF 0x09: filtro tipo AD APCF 0x10 ~ 0xAF - Riservato per uso futuro 0xB0 ~ 0xDF - Riservato al fornitore 0xE0 ~ 0xFE - Riservato per uso futuro 0xFF - APCF Leggi funzionalità estese |
Verrà generato un evento Comando completo per questo comando.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato reso |
APCF_opcode | 1 ottetto | 0x00 - Abilita APCF 0x01 - APCF Imposta i parametri di filtraggio 0x02 - Indirizzo dell'emittente APCF 0x03 - UUID del servizio APCF 0x04 - UUID di sollecitazione del servizio APCF 0x05: nome locale APCF 0x06: dati del produttore APCF 0x07 - Dati servizio APCF 0x08: servizio di rilevamento del trasporto APCF 0x09: filtro tipo AD APCF 0x10 ~ 0xAF - Riservato per uso futuro 0xB0 ~ 0xDF - Riservato al fornitore 0xE0 ~ 0xFE - Riservato per uso futuro 0xFF - APCF Leggi funzionalità estese |
Comando_LE_APCF: Enable_sub_cmd
OCF secondario: 0x00
Parametro del sottocomando | Misurare | Scopo |
---|---|---|
APCF_enable | 1 ottetto | 0x01 - Abilita la funzione APCF 0x00: disabilita la funzionalità APCF |
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
APCF_opcode | 1 ottetto | 0x0 - APCF abilitato |
APCF_Enable | 1 ottetto | Abilita/disabilita viene impostato tramite APCF_enable |
LE_APCF_Command: set_filtering_parameters_sub_cmd
Questo sottocomando viene utilizzato per aggiungere o eliminare una specifica di filtro o cancellare un elenco di filtri per il filtraggio su chip.
OCF secondario: 0x01
Parametro del sottocomando | Misurare | Scopo |
---|---|---|
APCF_Action | 1 ottetto | 0x00 - Aggiungi 0x01 - Elimina 0x02 - Cancella Elimina cancellerà il filtro specifico insieme alle voci delle funzionalità associate in altre tabelle. Cancella cancellerà tutti i filtri e le voci associate in altre tabelle. |
APCF_Filter_Index | 1 ottetto | Indice filtro (0, max_filter-1 ) |
APCF_Feature_Selection | 2 ottetti | Maschere di bit per le funzionalità selezionate: Bit 0: impostare per abilitare il filtro dell'indirizzo di trasmissione Bit 1: impostare per abilitare il filtro Modifica dati servizio Bit 2: impostare per abilitare il controllo UUID del servizio Bit 3: impostare per abilitare il controllo UUID della richiesta di servizio Bit 4: impostare per abilitare il controllo del nome locale Bit 5: impostare per abilitare il controllo dei dati del produttore Bit 6: impostare per abilitare il controllo dei dati di servizio Bit 7: impostare per abilitare il controllo del servizio di rilevamento del trasporto Bit 8: impostare per abilitare il controllo del tipo AD |
APCF_List_Logic_Type | 2 ottetti | Operazione logica per ogni selezione di funzionalità (posizione per bit) specificata in APCF_Feature_Selection .Valido solo quando una funzionalità è abilitata. Valore della posizione del bit: 0: OPPURE 1: E 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: O 0x01: E 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 è considerato visto solo se il segnale è superiore alla soglia alta RSSI. Altrimenti il firmware deve comportarsi come se non lo 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 che il firmware si soffermi e raccolga ulteriori annunci pubblicitari prima di segnalare. |
onfound_timeout_cnt | 1 ottetto | Valido solo se delivery_mode è on_found .[contare] Se un annuncio pubblicitario in onFound rimane nel firmware per la durata onfound_timeout , raccoglierà alcuni annunci pubblicitari e il conteggio verrà controllato. Se il conteggio supera onfound_timeout_cnt , viene segnalato OnFound immediatamente dopo. |
rssi_low_thresh | 1 ottetto | Valido solo se delivery_mode è on_found .[in dBm] Il pacchetto inserzionista viene considerato non visto se l'RSSI del pacchetto ricevuto non è superiore alla soglia RSSI bassa. |
onlost_timeout | 2 ottetti | Valido solo se delivery_mode è on_found .[in millisecondi] Se un annuncio, dopo essere stato trovato, non viene visto in modo contiguo per il periodo lost_timeout , verrà immediatamente segnalato come perso. |
num_of_tracking_entries | 2 ottetti | Valido solo se delivery_mode è on_found .[contare] Numero totale di inserzionisti da monitorare per filtro. |
I valori RSSI devono utilizzare il complemento a 2 per rappresentare valori negativi.
L'host dovrà essere in grado di configurare più filtri con APCF_Application_Address_type
impostato su 0x02 (per tutti gli indirizzi dell'emittente) per gestire varie combinazioni di filtri.
Filtraggio, batch e reporting sono concetti correlati. Ogni annuncio pubblicitario e la relativa risposta di scansione dovranno passare attraverso tutti i filtri, uno dopo l'altro. Pertanto, le azioni risultanti ( delivery_mode
) sono strettamente legate al filtraggio. Le modalità di consegna sono le seguenti: report_immediately
, batch
e onFound
. Il valore OnLost
è correlato a OnFound
nel senso che verrà dopo OnFound
in caso di smarrimento.
Questo flusso di elaborazione descrive il modello concettuale:
Quando viene ricevuto un frame di annuncio (o risposta di scansione), viene applicato a tutti i filtri in ordine seriale. È possibile che un annuncio possa causare una segnalazione immediata basata su un filtro e il raggruppamento dello stesso a causa di una diversa azione del filtro.
Le soglie del livello RSSI (alta e bassa) danno la possibilità 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 consegna sia impostata su immediata o batch, l'RSSI di un frame viene considerato per l'ulteriore elaborazione del controller. App diverse richiedono comportamenti di reporting e batch diversi. Ciò consente a più app di avere rapporti diretti e/o raggruppare i risultati nel firmware, contemporaneamente. Un esempio è il caso in cui una scansione batch è attiva da un'app e successivamente viene emessa una scansione LE regolare da un'altra app. Prima che venga emessa una scansione batch, il framework/l'app imposta i filtri appropriati. Successivamente, quando la seconda app esegue una scansione regolare, il batch precedente continua. Tuttavia, a causa della scansione regolare, è come aggiungere concettualmente un filtro nullo (insieme a tutti i filtri esistenti) insieme al comando LE scan. I parametri del comando di scansione LE hanno la precedenza quando sono attivi. Quando la scansione LE regolare è disabilitata, il controller tornerà alla scansione batch precedente, se esisteva.
La modalità di consegna OnFound
si basa sui filtri configurati. Una combinazione che fa sì che l'azione di un filtro abbia successo è considerata l'entità da tracciare per onLost
. L'evento corrispondente è il sottoevento di tracciamento LE Advt.
La transizione OnFound/OnLost
per un filtro (se abilitato) sarà simile alla seguente:
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
APCF_opcode | 1 ottetto | 0x01 - APCF imposta i parametri di filtraggio |
APCF_Action | 1 ottetto | Echo back del comando APCF_Action |
APCF_AvailableSpaces | 1 ottetto | Numero di voci disponibili nella tabella dei filtri |
Comando_LE_APCF: broadcast_address_sub_cmd
Questo sottocomando viene utilizzato per aggiungere o eliminare l'indirizzo di un inserzionista o per cancellare l'elenco degli indirizzi degli inserzionisti per il filtraggio su chip.
OCF secondario: 0x02
Parametro del sottocomando | Misurare | Scopo |
---|---|---|
APCF_Action | 1 ottetto | 0x00 - Aggiungi 0x01 - Elimina 0x02 - Cancella Elimina eliminerà l'indirizzo dell'emittente specificato nel filtro specificato. Cancella cancellerà tutti gli indirizzi delle emittenti nel filtro specificato. |
APCF_Filter_Index | 1 ottetto | Indice filtro (0, max_filter-1 ) |
APCF_Broadcaster_Address | 6 ottetto | Indirizzo del dispositivo a 6 byte da aggiungere o eliminare dall'elenco degli indirizzi dell'emittente |
APCF_Application_Address_type | 1 ottetto | 0x00: pubblico 0x01: casuale 0x02: NA (tipo di indirizzo non applicabile) |
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
APCF_opcode | 1 ottetto | 0x02 - Indirizzo dell'emittente APCF |
APCF_Action | 1 ottetto | Echo back del comando APCF_Action |
APCF_AvailableSpaces | 1 ottetto | Numero di voci libere ancora disponibili nella tabella Indirizzo broadcast |
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 filtraggio su chip.
OCF secondario: 0x03
Parametro del sottocomando | Misurare | Scopo |
---|---|---|
APCF_Action | 1 ottetto | 0x00 - Aggiungi 0x01 - Elimina 0x02 - Cancella Elimina eliminerà l'indirizzo UUID del servizio specificato nel filtro specificato. Cancella cancellerà tutti gli UUID del servizio nel filtro specificato. |
APCF_Filter_Index | 1 ottetto | Indice filtro (0, max_filter -1) |
APCF_UUID | 2,4,16 ottetto | L'UUID del servizio (16 bit, 32 bit o 128 bit) per l'aggiunta o l'eliminazione 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. Dovrebbe avere la stessa lunghezza di APCF_UUID. |
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
APCF_opcode | 1 ottetto | 0x03 - UUID del servizio APCF |
APCF_Action | 1 ottetto | Echo back del comando APCF_Action |
APCF_AvailableSpaces | 1 ottetto | Numero di voci libere ancora disponibili nella tabella UUID del servizio |
LE_APCF_Command: sollecitation_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 filtraggio su chip.
OCF secondario: 0x04
Parametro del sottocomando | Misurare | Scopo |
---|---|---|
APCF_Action | 1 ottetto | 0x00 - Aggiungi 0x01 - Elimina 0x02 - Cancella Elimina eliminerà l'indirizzo UUID della richiesta nel filtro specificato. Cancella cancellerà tutti gli UUID di sollecitazione nel filtro specificato. |
APCF_Filter_Index | 1 ottetto | Indice filtro (0, max_filter -1) |
APCF_UUID | 2,4,16 ottetto | L'UUID della sollecitazione (16 bit, 32 bit o 128 bit) da aggiungere o eliminare dall'elenco. |
APCF_UUID_MASK | 2,4,16 ottetto | La maschera UUID di sollecitazione (16 bit, 32 bit o 128 bit) da aggiungere all'elenco. Dovrebbe avere la stessa lunghezza di APCF_UUID . |
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
APCF_opcode | 1 ottetto | 0x04 - UUID di sollecitazione APCF |
APCF_Action | 1 ottetto | Echo back del comando APCF_Action |
APCF_AvailableSpaces | 1 ottetto | Numero di voci gratuite ancora disponibili nella tabella UUID di sollecitazione |
Comando_LE_APCF: nome_locale_sub_cmd
Questo sottocomando viene utilizzato per aggiungere o eliminare una stringa di nomi locali o per cancellare l'elenco di stringhe di nomi locali per il filtraggio su chip.
OCF secondario: 0x05
Parametro del sottocomando | Misurare | Scopo |
---|---|---|
APCF_Action | 1 ottetto | 0x00 - Aggiungi 0x01 - Elimina 0x02 - Cancella Elimina eliminerà la stringa del nome locale specificata nel filtro specificato. Cancella cancellerà tutte le stringhe di nomi locali nel filtro specificato. |
APCF_Filter_Index | 1 ottetto | Indice filtro (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData | Dimensione variabile | Una stringa di caratteri per il nome locale. Appunti:
|
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
APCF_opcode | 1 ottetto | 0x05: nome locale APCF |
APCF_Action | 1 ottetto | Echo back del comando APCF_Action |
APCF_AvailableSpaces | 1 ottetto | Numero di voci libere 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 delle stringhe di dati del produttore per il filtraggio su chip.
OCF secondario: 0x06
Parametro del sottocomando | Misurare | Scopo |
---|---|---|
APCF_Action | 1 ottetto | 0x00 - Aggiungi 0x01 - Elimina 0x02 - Cancella Elimina eliminerà la stringa di dati del produttore specificata nel filtro specificato. Cancella cancellerà tutte le stringhe di dati del produttore nel filtro specificato. |
APCF_Filter_Index | 1 ottetto | Indice filtro (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData | Dimensione variabile | Una stringa di caratteri per i dati del produttore. Appunti:
|
APCF_ManData_Mask | Dimensione variabile | La maschera dati di fabbricazione da aggiungere alla lista. Dovrebbe avere la stessa lunghezza di APCF_LocName_or_ManData_or_SerData . |
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
APCF_opcode | 1 ottetto | 0x06: dati del produttore APCF |
APCF_Action | 1 ottetto | Echo back del comando APCF_Action |
APCF_AvailableSpaces | 1 ottetto | Numero di voci gratuite ancora disponibili nella tabella Dati 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 il filtraggio su chip.
OCF secondario: 0x07
Parametro del sottocomando | Misurare | Scopo |
---|---|---|
APCF_Action | 1 ottetto | 0x00 - Aggiungi 0x01 - Elimina 0x02 - Cancella Elimina eliminerà la stringa di dati del servizio specificata nel filtro specificato. Cancella cancellerà tutte le stringhe di dati del servizio nel filtro specificato. |
APCF_Filter_Index | 1 ottetto | Indice filtro (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData | Dimensione variabile | Una stringa di caratteri per i dati del servizio. Appunti:
|
APCF_LocName_Mandata_or_SerData_Mask | Dimensione variabile | La maschera dati del servizio da aggiungere all'elenco. Dovrebbe avere la stessa lunghezza di APCF_LocName_or_ManData_or_SerData. |
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
APCF_opcode | 1 ottetto | 0x07 - Dati servizio APCF |
APCF_Action | 1 ottetto | Echo back del comando APCF_Action |
APCF_AvailableSpaces | 1 ottetto | Numero di voci libere 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 AD o per cancellare un elenco di tipi AD per il filtraggio su chip. Utilizzare read_extended_features_sub_cmd
per verificare se questo comando è supportato o meno.
OCF secondario: 0x09
Parametro del sottocomando | Misurare | Scopo |
---|---|---|
APCF_Action | 1 ottetto | 0x00 - Aggiungi 0x01 - Elimina 0x02 - Cancella Elimina eliminerà il tipo di annuncio specificato nel filtro specificato. Cancella cancellerà tutti i tipi di annunci nel filtro specificato. |
APCF_Filter_Index | 1 ottetto | Indice filtro (0, max_filter -1) |
APCF_AD_TYPE | 1 ottetto | Il tipo di annuncio per l'aggiunta o l'eliminazione dall'elenco. Ignora quando APCF_Action è 0x02 (Cancella) |
APCF_AD_DATA_Length | Dimensione variabile | 0x00: significa non filtrare il contenuto dei dati Ignora quando APCF_Action è 0x02 (Cancella) |
APCF_AD_DATA | Dimensione variabile | Ignora quando APCF_Action è 0x02 (Cancella) |
APCF_AD_DATA_MASK | Dimensione variabile | Ignora quando APCF_Action è 0x02 (Cancella) Dovrebbe avere la stessa lunghezza di APCF_AD_DATA . |
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
APCF_opcode | 1 ottetto | 0x09: tipo di annuncio APCF |
APCF_Action | 1 ottetto | Echo back del comando APCF_Action |
APCF_AvailableSpaces | 1 ottetto | Numero di voci libere ancora disponibili nella tabella Tipo AD |
LE_APCF_Command: read_extended_features_sub_cmd
Questo sottocomando viene utilizzato per leggere le funzionalità APCF estese.
OCF secondario: 0xFF
Parametro del sottocomando | Misurare | Scopo |
---|---|---|
Non applicabile | Parametro di comando vuoto. |
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del 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
|
Attività del controller e comando delle informazioni sull'energia
L'obiettivo di queste informazioni è che le funzioni superiori del sistema host analizzino le attività totali di tutti i componenti, incluso il controller BT e il suo stato macro, insieme a ciò che accade nelle app e nel framework. A tale scopo, sono necessarie le seguenti informazioni dallo stack BT e dal controller:
- Stack BT: riporta lo stato macrooperativo corrente del controller
- Firmware: reporting dell'attività aggregata e delle informazioni sull'energia
Stati delle macro dello stack host BT, come determinato a livello utente:
- Inattivo: [scansione pagina, annuncio LE, scansione richiesta]
- Scansione: [cercapersone/richiesta/tentativo di connessione]
- Attivo: [collegamento ACL attivo, collegamento SCO in corso, modalità sniff]
Le attività di cui il controller tiene traccia nel corso della sua vita sono il tempo Tx, il tempo Rx, il tempo di inattività e l'energia totale consumata. Vengono cancellati quando vengono letti dall'host.
LE_Get_Controller_Activity_Energy_Info
Questo è un comando specifico del fornitore.
OCF: 0x159
Parametro del sottocomando | Misurare | Scopo |
---|---|---|
N / A | Parametri di comando vuoti |
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
total_tx_time_ms | 4 ottetti | Tempo totale di esecuzione della trasmissione |
total_rx_time_ms | 4 ottetti | Tempo totale di esecuzione della Rx |
total_idle_time_ms | 4 ottetti | Tempo totale di inattività (stati di basso consumo non in modalità sospensione) |
total_energy_used | 4 ottetti | Energia totale utilizzata [prodotto di corrente (mA), tensione (V) e tempo (ms)] |
LE comando esteso dei parametri di scansione del set
Questo comando può essere utilizzato per abilitare una finestra e un intervallo di scansione più ampi nel controller. Secondo la specifica BT Core 5.2, una finestra di scansione e un intervallo hanno un limite superiore di 10,24 secondi, il che ostacola gli intervalli di scansione più lunghi delle applicazioni oltre 10,24 secondi.
Riferimento di base: Specifiche BT Core 5.2, pagina 2493 (comando LE Imposta parametri di scansione)
OCF: 0x15A
Parametro di comando | Misurare | Scopo |
---|---|---|
LE_Ex_Scan_Type | 1 ottetto | 0x00 - Scansione passiva. Non verrà inviato alcun pacchetto SCAN_REQ (impostazione predefinita).0x01 - Scansione attiva. I pacchetti SCAN_REQ possono essere inviati. |
LE_Ex_Scan_Interval | 4 ottetti | Definito come l'intervallo di tempo da quando il controller ha avviato l'ultima scansione LE fino all'inizio della successiva scansione LE. Intervallo: da 0x0004 a 0x00FFFFFF Impostazione predefinita: 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 Impostazione predefinita: 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 del dispositivo pubblico (predefinito) 0x01 - Indirizzo dispositivo casuale |
LE_Ex_Scan_Filter_Policy | 0x00: accetta tutti i pacchetti pubblicitari (impostazione predefinita). I pacchetti pubblicitari diretti che non sono indirizzati a questo dispositivo verranno ignorati. 0x01 - Ignora i pacchetti pubblicitari provenienti da dispositivi non presenti nell'elenco Solo lista bianca. I pacchetti pubblicitari diretti che non sono indirizzati a questo dispositivo verranno ignorati. |
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
Ottieni il comando delle informazioni di debug del controller
L'obiettivo di questo elemento informativo è acquisire informazioni di debug del controller da un host, in formato binario, per la post-elaborazione e l'analisi. Ciò aiuta a eseguire il debug dei problemi sul campo e fornisce agli ingegneri un kit di strumenti per registrare le informazioni per l'analisi. Un controller può fornire le informazioni quando richiesto da un host tramite l'evento (sottoevento Controller Debug Info) o autonomamente quando richiesto dal controller. Esempi di utilizzo potrebbero essere quello di riportare informazioni sullo stato del firmware, informazioni sul dump di arresto anomalo del sistema, informazioni di registrazione, ecc.
OCF: 0x15B
Parametro di comando | Misurare | Scopo |
---|---|---|
N / A | Elenco dei parametri di comando vuoto |
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
Supporto per l'offload dell'hardware A2DP
La funzione A2DP Offload supporta l'offload del processo di codifica audio A2DP su un processore audio collegato al controller BT. Il flusso di dati audio codificati passa direttamente dal processore audio al controller BT senza il coinvolgimento 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 l'offload A2DP (legacy)
OCF secondario: 0x01
Utilizzare questo comando sia per configurare il processo di offload A2DP sia per avviare il flusso A2DP.
Parametro di comando | Misurare | Scopo |
---|---|---|
Codec | 4 ottetti | Specifica il tipo di codec 0x01 - SBC 0x02 - CAA 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 | Ottetto 0: flag che consente l'aggiunta dell'intestazione SCMS-T.
Ottetto 1: valore per l'intestazione SCMS-T, quando è abilitato. |
Sampling_Frequency | 4 ottetti | 0x01 - 44100 Hz 0x02 - 48000Hz 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 | La velocità in bit dell'audio codificato in bit al secondo secondo. 0x00000000: il bitrate audio non è specificato/non utilizzato. 0x00000001 - 0x00FFFFFF - Bitrate audio codificato 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 sul codec. Codec SBC: Fare riferimento agli elementi informativi specifici del codec SBC in A2DP v1.3. Codec AAC: Fare riferimento agli elementi informativi specifici del codec AAC in A2DP v1.3 Codec LDAC: Ottetto 0-3: ID fornitore Ottetto 4-5: ID codec Ottetto 6: Indice bitrate: Ottetto 7: modalità canale LDAC Ottetto 8-31: riservato Tutti gli altri codec: Ottetto 0-31: riservato |
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
Sub_Opcode | 1 ottetto | 0x01: avvia lo scaricamento A2DP |
Avvia lo scaricamento A2DP
OCF secondario: 0x03
Utilizzare questo comando sia per configurare il processo di offload A2DP sia per avviare il flusso A2DP.
Parametro di comando | Misurare | Scopo |
---|---|---|
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 (origine/unione AVDTP) 0x01 - Ingresso (AVDTP sink/diviso) |
Peer_MTU | 2 ottetti | Dimensione massima dei pacchetti L2CAP, negoziata con il peer. |
CP_Enable_SCMS_T | 1 ottetto | 0x00: disabilita l'intestazione di protezione del contenuto SCMS-T 0x01: abilita l'intestazione di protezione del contenuto SCMS-T |
CP_Header_SCMS_T | 1 ottetto | Quando l'intestazione di protezione del contenuto SCMS-T è abilitata ( CP_SCMS_T_Enable impostato su 0x01), definisce il valore dell'intestazione che precede il contenuto audio (fare riferimento a A2DP, sezione 3.2.1-2) come definito da Numeri assegnati Bluetooth, sezione 6.3.2.Ignorato quando la protezione del contenuto SCMS-T non è abilitata. |
Vendor_Specific_Parameters_Length | 1 ottetto | Lunghezza dei parametri specifici del fornitore, nell'intervallo da 0 a 128. Il valore 0 viene utilizzato quando non vengono forniti parametri aggiuntivi. |
Vendor_Specific_Parameters | 0-128 ottetti | Parametri specifici del fornitore forniti dall'HAL audio Bluetooth, CodecParameters.vendorSpecificParameters[] . |
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
Sub_Opcode | 1 ottetto | 0x03: avvia lo scaricamento A2DP |
Interrompere l'offload A2DP (legacy)
OCF secondario: 0x02
Questo comando viene utilizzato per interrompere il flusso A2DP Offload.
Parametro di comando | Misurare | Scopo |
---|---|---|
N / A | Elenco dei parametri di comando vuoto. |
Nessun parametro definito per questo comando.
Per questo comando verrà generato un evento Comando completo.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato di completamento del comando |
Sub_Opcode | 1 ottetto | 0x02: interrompe lo scaricamento A2DP |
Arresta lo scaricamento A2DP
OCF secondario: 0x04
Questo comando viene utilizzato per interrompere il flusso A2DP Offload.
Parametro di comando | Misurare | Scopo |
---|---|---|
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 (origine/unione AVDTP) 0x01 - Ingresso (AVDTP sink/diviso) |
Un evento completo di comando verrà generato per questo comando.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato completo del comando |
Sub_Opcode | 1 ottetto | 0x04 - Stop A2DP Offload |
Bluetooth Quality Report Command
La funzione di comando del report di 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 sotto-evento BQR relativo al collegamento all'host.
- Avvicinamento a LSTO: se non vengono ricevuti pacchetti dal dispositivo BT collegato per un valore più lungo della metà del timeout di supervisione del collegamento (LSTO), il controller riporta un evento LSTO in avvicinamento all'host.
- A2DP Audio Chioppy: quando il controller rileva i fattori che causano audio mosso, il controller riporta un evento A2DP Audio Chioppy all'host.
- (E) SCO Voice Choppy: quando il controller rileva i fattori che causano voce muta, il controller riporta un evento mosso (e) SCO Voice all'host.
- Infiammazione delle root: questo evento viene inviato dal controller allo stack quando HAL o il controller incontra un errore fatale e deve riavviare Bluetooth.
- Traccia del messaggio LMP/LL: il controller invia la stretta di mano LMP/LL con il dispositivo remoto all'host.
- Traccia di pianificazione multi-profilo/coex Bluetooth: il controller invia le informazioni di pianificazione sulla gestione di più profili Bluetooth e coesistenza wireless nella banda da 2,4 GHz all'host.
- Meccanismo delle informazioni sul debug del controller: quando abilitato, il controller può segnalare autonomamente le informazioni di registrazione del debug attraverso il sotto-evento delle informazioni di debug controller nell'host.
OCF: 0x15e
Parametro di comando | Misurare | Scopo |
---|---|---|
BQR_Report_Action | 1 ottetto | Azione per aggiungere / eliminare i report di eventi di qualità impostati nel parametro BQR_QUILITY_EVENT_MASK o cancellare tutto. 0x00 - Aggiungi Elimina eliminerà gli eventi di qualità specifici. |
BQR_Quality_Event_Mask | 4 ottetti | Maschere bit per il report eventi di qualità selezionato. Bit 0: impostare per abilitare la modalità di monitoraggio della qualità. |
BQR_Minimum_Report_Interval | 2 ottetti | Definire l'intervallo di tempo minimo dei report eventi di qualità per gli eventi di qualità selezionati. Il firmware del controller non deve segnalare il prossimo evento entro l'intervallo di tempo definito. L'impostazione dell'intervallo deve essere rispettivamente e dedicata per gli eventi di qualità che vengono aggiunti. Unità: MS |
BQR_Vendor_Specific_Quality_Event_Mask | 4 ottetti | Maschere bit per il report eventi di qualità specifico per il fornitore selezionato. 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 bit per il report di traccia specifico del fornitore selezionato. Questo parametro è valido solo quando è impostato il bit 31 di BQR_Quality_Event_Mask .Bit 0 ~ 31: riservato. |
Un evento completo di comando verrà generato per questo comando.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato completo del comando |
Current_Quality_Event_Mask | 4 ottetti | Indica l'impostazione della maschera bit corrente. Bit 0: la modalità di monitoraggio della qualità è abilitata. Bit 1: è abilitato l'avvicinarsi del report di eventi LSTO. Bit 2: il reporting A2DP Audio Chioppy è abilitato. Bit 3: (e) SCO Voice Choppy Event Reporting è abilitato. Bit 4: il reporting per eventi di infiammazione root è abilitato. Bit 5: la modalità di monitoraggio energetico è abilitata. BIT 6: il report evento bernutico LE è abilitato. Bit 7: Connect Fail Event. Bit 8 ~ 14: riservato. BIT 15: il reporting per eventi di qualità specifico del fornitore è abilitato. Bit 16: LMP/LL Message Trace è abilitato. Bit 17: la traccia di pianificazione multi-link/coex Bluetooth è abilitata. Bit 18: il meccanismo di informazione del debug controller è abilitato. Bit 19 ~ 30: riservato. Bit 31: la traccia specifica del fornitore è abilitata. |
Current_Vendor_Specific_Quality_Event_Mask | 4 ottetti | Indica l'impostazione della maschera bit corrente. |
Current_Vendor_Specific_Trace_Mask | 4 ottetti | Indica l'impostazione della maschera bit corrente. |
Comando dinamico del buffer audio
Il tampone audio dinamico riduce gli anomalie audio modificando la dimensione del tampone audio nel controller Bluetooth in base a vari scenari.
OCF: 0x15f
Ottieni capacità di tempo del buffer audio
Sub OCF: 0x01
Utilizzare questo comando per ottenere la capacità di tempo del buffer audio dal controller Bluetooth.
Parametro di comando | Misurare | Scopo |
---|---|---|
N / A | Elenco parametri di comando vuoto |
Un evento completo di comando verrà generato per questo comando.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato completo del comando |
Dynamic_Audio_Buffer_opcode | 1 ottetto | 0x01 - Ottieni tempo di buffer audio |
Audio_Codec_Type_Supported | 4 ottetti | Maschere bit per i tipi di codec supportati Bit 0 - SBC Bit 1 - AAC Bit 2 - aptx Bit 3 - APTX HD Bit 4 - LDAC 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_Supportated. 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 minimo del buffer del tipo di codec Bit 0 specificato in Audio_Codec_Type_Supportated. 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_Supportated. 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 minimo del buffer del tipo di codec Bit 1 specificato in Audio_Codec_Type_Supportated. 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 minimo del buffer del tipo di codec Bit 31 specificato in Audio_Codec_Type_Supportated. Questo valore deve essere 0 se il tipo di codec Bit 31 non è supportato. Unità: MS |
Imposta il tempo del buffer audio
Sub OCF: 0x02
Utilizzare questo comando per impostare il tempo del buffer audio sul controller Bluetooth.
Parametro di comando | Misurare | Scopo |
---|---|---|
Audio_Codec_Buffer_Time | 2 ottetti | Tempo di buffer audio richiesto per il codec utilizzato corrente. Unità: MS |
Un evento completo di comando verrà generato per questo comando.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato completo del comando |
Dynamic_Audio_Buffer_opcode | 1 ottetto | 0x02 - Imposta tempo di buffer audio |
Audio_Codec_Buffer_Time | 2 ottetti | Tempo di buffer audio corrente nel controller Bluetooth. Unità: MS |
Evento HCI (specifico del fornitore)
In alcuni casi sono richiesti eventi HCI specifici del fornitore. Fare riferimento alla Figura 5.4 a pagina 1897 della specifica BT Core 5.2. Il parametro dell'evento 0 conterrà sempre il primo codice sotto-evento, in base al quale viene decodificato il resto dell'evento HCI.
Parametro dell'evento | Misurare | Scopo |
---|---|---|
HCI_vendor_specific_event_code | 1 ottetto | 0xff |
sub_event_code | 1 ottetto | Un codice di sotto-evento avrà una dimensione di 1 ottetto, il byte immediatamente seguente la lunghezza dei parametri nel pacchetto di eventi HCI. |
Sub-evento della soglia di archiviazione
Questo evento indica che la soglia di archiviazione è stata violata.
Codice sub-evento = 0x54
Parametro sub-evento | Misurare | Scopo |
---|---|---|
Nessuno |
LE MULTI-ADVERTING STATO CAMBIAMENTO SUB-EVENT
Questo evento indica che un'istanza pubblicitaria ha cambiato il suo stato. Al momento, questo evento viene utilizzato solo per indicare quale istanza pubblicitaria è stata fermata a seguito di una connessione.
Codice sub-evento = 0x55
Parametro sub-evento | Misurare | Scopo |
---|---|---|
Advertising_instance | 1 ottetto | Identifica l'istanza pubblicitaria specifica I valori validi sono da 0 a max_advt_instances -1 |
State_Change_Reason | 1 ottetto | 0x00: connessione ricevuta |
Connection_handle | 2 ottetti | Identifica la connessione che ha causato il disabilitato dell'istanza advt (0xFFFF se non valido) |
LE PUNZIONE PER MONOSCIMENTO SUB-EVENT
Questo evento indica quando un inserzionista viene trovato o perso.
Codice evento sub = 0x56
Parametro sub-evento | Misurare | Scopo |
---|---|---|
APCF_Filter_Index | 1 ottetto | Filtro Index (0, max_filter -1) |
Advertiser_State | 1 ottetto | 0x00: inserzionista trovato 0x01: inserzionista perso |
Advt_Info_Present | 1 ottetto | 0x00: Inserzionista Informazioni ( Advt_Info ) Presente0x01: Inserzionista Informazioni ( Advt_Info ) Non presente |
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 OCTETSScan_data_resp_len[0] : 1 ottettoScan_data_resp[0] : Scan_data_resp ottetti |
Controller Debug Info Sub-Event
Questo evento viene utilizzato da un controller per fornire informazioni binarie di debug a un host.
Sub-Event Code = 0x57
Parametro sub-evento | Misurare | Scopo |
---|---|---|
debug_block_byte_offset_start | 2 ottetti | Offset byte a blocchi di debug dall'inizio |
last_block | 1 ottetto | 0x00: altri dati di debug presenti 0x01: ultimo blocco binario; Niente più dati di debug |
cur_pay_load_sz | 2 ottetti | Dimensione del blocco binario in un evento attuale |
Debug_Data | Variabile | Dati di debug di cur_payload_sz |
Sub-evento del rapporto di qualità Bluetooth
Questo evento indica uno dei seguenti: si è verificato un evento di qualità Bluetooth, il controller ha caricato la traccia di messaggi LMP/LL e la traccia di pianificazione multi-link/coex Bluetooth o i dati delle informazioni di debug del controller.
Sub-event Code = 0x58 [Quality_report_id = 0x01 ~ 0x04, evento relativo alla qualità del collegamento]
Parametro sub-evento | Misurare | Scopo |
---|---|---|
Quality_Report_Id | 1 ottetto | 0x01: Rapporti di qualità in modalità monitoraggio. 0x02: avvicinamento a LSTO. 0x03: A2DP Audio Chioppy. 0x04: (e) SCO Voice Choppy. 0x05 ~ 0x06: riservato. 0x07: Leudio meli. 0x08: Connetti Fail. 0x09 ~ 0xFF: riservato. |
Packet_Types | 1 ottetto | 0x01: id 0x02: null 0x03: sondaggio 0x04: FHS 0x05: Hv1 0x06: Hv2 0x07: Hv3 0x08: dv 0x09: EV3 0x0a: EV4 0x0B: EV5 0x0c: 2-EV3 0x0d: 2-EV5 0x0e: 3-EV3 0x0f: 3-EV5 0x11: Dh1 0x12: DM3 0x13: Dh3 0x14: DM5 0x15: Dh5 0x16: Aux1 0x17: 2-DH1 0x18: 2-DH3 0x19: 2-DH5 0x1a: 3-DH1 0x1b: 3-DH3 0x1c: 3-DH5 0x1d ~ 0x50: riservato 0x51: pacchetto ISO 0x52 ~ 0xff: riservato |
Connection_Handle | 2 ottetti | ACL/(E) Handle di connessione SCO/ISO. |
Connection_Role | 1 ottetto | Eseguire il ruolo per la connessione. 0x00: centrale 0x01: periferico 0x02 ~ 0xFF: riservato. |
TX_Power_Level | 1 ottetto | TRASFERIMENTO DI CORRENTE TRASFERIMENTO LIVELLO DI PROPRIETÀ PER LA CONNESSIONE_SUNCIFICAZIONE. Questo valore sarà lo stesso del controllo del controller al comando HCI_Read_Transmit_Power_Level. |
RSSI | 1 ottetto | [in DBM] Valore indicativo di resistenza del segnale ricevuta (RSSI) per la connessione_handle specificata. |
SNR | 1 ottetto | [in db] Valore rapporto segnale-rumore (SNR) per la connessione_handle specificata. |
Unused_AFH_Channel_Count | 1 ottetto | Indica il numero di canali non utilizzati in AFH_Channel_map. 0x4f ~ 0xff: riservato. |
AFH_Select_Unideal_Channel_Count | 1 ottetto | Indica il numero dei canali che sono interferiti e hanno una cattiva qualità, ma sono ancora selezionati per AFH. Il numero minimo di canali consentiti dalla specifica Bluetooth è 20, quindi anche se tutti i 79 canali sono interferiti e hanno una cattiva qualità, il controller deve ancora scegliere almeno 20 canali per AFH. |
LSTO | 2 ottetti | Impostazione timeout di supervisione del collegamento corrente. Tempo = n * 0,625 ms Intervallo di tempo: 0,625 ms a 40,9 s |
Connection_Piconet_Clock | 4 ottetti | Piconet Clock per la connessione specificata_handle. Questo valore deve essere lo stesso del comando HCI_Read_Clock HCI con il parametro "Wha_Clock" di 0x01 (orologio piconet). Unità: N * 0,3125 ms (1 orologio Bluetooth) |
Retransmission_Count | 4 ottetti | Il numero di ritrasmissioni dall'ultimo evento. Questo conteggio deve essere ripristinato dopo aver riferito all'host. |
No_RX_Count | 4 ottetti | Nessun conteggio RX dall'ultimo evento. Il conteggio aumenta quando non viene ricevuto alcun pacchetto nella fascia oraria programmata o il pacchetto ricevuto è corrotto. Questo conteggio deve essere ripristinato dopo aver riferito all'host. |
NAK_Count | 4 ottetti | Nak (negativo riconoscimento) conta dall'ultimo evento. Questo conteggio deve essere ripristinato dopo aver riferito all'host. |
Last_TX_ACK_Timestamp | 4 ottetti | Timestamp dell'ultimo TX Ack. 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 flusso (fermata) dall'ultimo evento. Questo conteggio deve essere ripristinato dopo aver riferito all'host. |
Last_Flow_On_Timestamp | 4 ottetti | Timestamp dell'ultimo flusso-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] Conta di overflow del buffer dall'ultimo evento. |
Buffer_Underflow_Bytes | 4 ottetti | [in byte] Conta di underflow buffer dall'ultimo evento. |
bdaddr | 6 ottetti | Indirizzo del dispositivo remoto |
cal_failed_item_count | 1 ottetto | Il conteggio degli oggetti non riusciti di calibrazione |
TX_Total_Packets | 4 ottetti | Il numero di pacchetti che vengono inviati. |
TX_UnAcked_Packets | 4 ottetti | Il numero di pacchetti che non ricevono un riconoscimento. Questo conteggio viene ripristinato dopo aver riferito all'host. |
TX_Flushed_Packets | 4 ottetti | Il numero di pacchetti che non vengono inviati dal suo punto di scarico. Questo conteggio viene ripristinato dopo aver riferito all'host. |
TX_Last_Subevent_Packets | 4 ottetti | Il numero di pacchetti che collegano il livello trasmette una PDU di dati della CSI nell'ultimo sottovento di un evento CIS. Questo conteggio viene ripristinato dopo aver riferito 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 ripristinato dopo aver riferito all'host. |
RX_Duplicate_Packets | 4 ottetti | Il numero di pacchetti duplicati (ritrasmissione) ricevuti dall'ultimo evento. Questo conteggio viene ripristinato dopo aver riferito all'host. |
Parametro specifico del fornitore | (Parametro Lunghezza totale - TBD) * Ottetti | Per il fornitore del controller per ottenere parametri specifici più fornitori. |
Sub-event Code = 0x58 [Quality_report_id = 0x05, evento di infiammazione root]
Questo evento indica che Bluetooth Hal o il controller hanno riscontrato un errore fatale e necessita di uno stack Bluetooth per registrare questa situazione e riavviare. Il controller deve inviare uno stack root_infiammation_event allo stack Bluetooth prima di inviare il primo frammento degli eventi di informazioni di debug in ogni caso.
Il parametro Error_Code contiene un codice di errore riportato da HAL/controller, 0 se si tratta di un errore specifico del fornitore di chipset. Vendor_Specific_error_code contiene un codice di errore specifico del fornitore di chipset da HAL/controller. Dovrebbe impostare come 0 se il parametro Error_Code non è 0. I parametri ERROR_CODE e VENDOR_SPECIFIC_ERROR_CODE non dovrebbero essere entrambi 0.
Parametro sub-evento | Misurare | Scopo |
---|---|---|
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 di chipset. 0x01 ~ 0xFF: si è verificato un errore del controller. Vedere Bluetooth Spec [Vol 2] Parte D, Codici di errore per un elenco di codici di errore e 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 | (Parametro Lunghezza totale - 4) * Ottetti | Per il fornitore del controller per ottenere parametri specifici più fornitori. |
Sub-event Code = 0x58 [Quality_Report_id = 0x11 ~ 0x13, Evento correlato del dump log]
Parametro sub-evento | Misurare | Scopo |
---|---|---|
Quality_Report_Id | 1 ottetto | 0x00 ~ 0x10: riservato. 0x11: traccia di messaggio LMP/LL. 0x12: traccia di pianificazione multi-link/coex Bluetooth. 0x13: dump dati di debug per il debug del controller. 0x14 ~ 0xff: riservato. |
Connection_Handle | 2 ottetti | MANUSA DI CONNEGGIO. |
Parametro specifico del fornitore | (Parametro Lunghezza totale - 4) * Ottetti | Formato specifico del fornitore di traccia di messaggi LMP, traccia bluetooth multi-link/coex di pianificazione e dump dati di debug per il debug. |
Supporto multi-avvocato
Gli obiettivi del supporto multi-avvistamento sono i seguenti:
- Capacità di supportare più pubblicità (
max_advt_instances
) - Diversi poteri di trasmissione per consentire un intervallo variabile
- Contenuti pubblicitari diversi
- Una risposta personalizzata per ogni inserzionista
- Privacy (non trackabile) per ogni inserzionista
- Collegabile
Per mantenere questa specifica vicina agli standard esistenti, vengono forniti i seguenti comandi specifici del fornitore. Sono derivati dalla specifica Bluetooth Core 4.1.
Le_multi_advt_command
OCF: 0x154
Parametro di comando | Misurare | Scopo |
---|---|---|
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 |
Un evento completo di comando verrà generato per questo comando.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato completo del 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: Bluetooth Core 4.1 Specifica, pagina 964 (comando parametro pubblicitario set Le set)
Sub OCF: 0x01
Parametro sub-comando | Misurare | Scopo |
---|---|---|
Advertising_Interval_Min | Per specifico | Per specifico |
Advertising_Interval_Max | Per specifico | Per specifico |
Advertising_Type | Per specifico | Per specifico |
Own_Address_Type | Per specifico | Per specifico |
Own_Address | Per specifico | Per specifico |
Direct_Address_Type | Per specifico | Per specifico |
Direct_Address | Per specifico | Per specifico |
Advertising_Channel_Map | Per specifico | Per specifico |
Adverstising_Filter_Policy | Per specifico | Per specifico |
Advertising_Instance | 1 ottetto | Specifica l'applicabilità dei parametri di cui sopra in un'istanza |
Tx_power | 1 ottetto | Transmit_Power Unità - in DBM (intero firmato) Intervallo (da -70 a +20) |
Il parametro Own_Address
potrebbe essere un indirizzo configurato con l'host al momento della configurazione di questa istanza multi-pubblicazione. Ciò fornisce la possibilità di avere un indirizzo privato risolvibile al momento della trasmissione del primo faro. La pubblicità su un'istanza continuerà indipendentemente dalla connessione. Lo stack BT host potrebbe emettere un comando per avviare la pubblicità su un'istanza, pubblicare connessione.
Un evento completo di comando verrà generato per questo comando come specificato nella specifica Bluetooth Core 4.1, secondo il comando sopra. Il controller risponderà con un codice non di successo (parametro non valido) se l'istanza pubblicitaria o i parametri Tx_Power
non sono validi.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato completo del 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: Bluetooth Core 4.1 Specifica, pagina 969 (comando dati pubblicitario set Le set)
Sub OCF: 0x02
Parametro sub-comando | Misurare | Scopo |
---|---|---|
Advertising_Data_Length | Per specifico | Per specifico |
Advertising_Data | Per specifico | Per specifico |
Advertising_Instance | 1 ottetto | Specifica l'applicabilità dei parametri di cui sopra in un'istanza |
Un evento completo di comando verrà generato per questo comando come specificato nella specifica Bluetooth Core 4.1, secondo il comando sopra. Il controller risponderà con un codice non di successo se l'istanza pubblicitaria o i parametri Tx_Power
non sono validi.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato completo del 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: Bluetooth Core 4.1 Specifica, pagina 970 (comando dati di risposta scansione set Le)
Sub OCF: 0x03
Parametro sub-comando | Misurare | Scopo |
---|---|---|
Scan_Response_Data_Length | Per specifico | Per specifico |
Scan_Response_Data | Per specifico | Per specifico |
Advertising_Instance | 1 ottetto | Specifica l'applicabilità dei parametri di cui sopra in un'istanza |
Un evento completo di comando verrà generato per questo comando come specificato nella specifica Bluetooth Core 4.1, secondo il comando sopra. Il controller risponderà con un codice non di successo (parametro non valido) se l'istanza pubblicitaria o i parametri Tx_Power
non sono validi.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato completo del 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: Bluetooth Core 4.1 Specifica, pagina 963 (comando di indirizzo casuale Le set)
Sub OCF: 0x04
Parametro sub-comando | Misurare | Scopo |
---|---|---|
Indirizzo casuale | Per specifico | Per specifico |
Advertising_Instance | 1 ottetto | Specifica l'applicabilità dei parametri di cui sopra in un'istanza |
Un evento completo di comando verrà generato per questo comando.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato completo del comando |
Multi_advt_opcode | 1 ottetto | 0x04 [ Set_Random_Addr_Multi_Sub_Cmd] |
Le_multi_advt_command: set_advt_enable_multi_sub_cmd
Riferimento di base: Bluetooth Core 4.1 Specifica, pagina 971 (Le set pubblicizzare il comando in quella specifica principale)
OCF: 0x05
Parametro sub-comando | Misurare | Scopo |
---|---|---|
Advertising_Enable | 1 ottetto | Un valore di 1 mezzi abilita. Qualsiasi altro valore significa disabilitare. |
Advertising_Instance | 1 ottetto | Specifica l'applicabilità dei parametri di cui sopra in un'istanza. Istanza 0 indica un'istanza HCI standard. |
Un evento completo di comando verrà generato per questo comando.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato completo del comando |
Multi_advt_opcode | 1 ottetto | 0x05 [ Set_Advt_Enable_Multi_Sub_Cmd] |
Risoluzione scaricata dell'indirizzo privato
Questa funzione risolve un indirizzo privato nel firmware o nell'hardware del controller, che offre i seguenti vantaggi:
- Latenza coinvolta con l'host nella risoluzione di un indirizzo privato
- Risparmio di potenza astenendosi dal risveglio dell'host
Le_set_rpa_timeout
OCF: 0x15c
Parametro di comando | Misurare | Scopo |
---|---|---|
LE_local_IRK | 16 Ottetto | L'irk del dispositivo locale utilizzato per generare l'indirizzo risolvibile casuale (ES). |
tRPA_min | 2 ottetti | Il timeout minimo di generazione RPA in pochi secondi. Il controller deve generare nuovi indirizzi risolvibili per eventuali eventi di pubblicità/scansione/connessione su o dopo questo timeout. Intervallo valido: 300-1800 |
tRPA_max | 2 ottetti | Il timeout di generazione RPA massimo in pochi secondi. Il controller deve generare nuovi indirizzi risolvibili per eventuali eventi di pubblicità/scansione/connessione entro o prima di questo timeout. Intervallo valido: tRPA_min -1800 |
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Lo stato del comando. Valori di stato HCI suggeriti: 0x00 successo 0x01 Comando sconosciuto (se non supportato) 0x12 Parametri di comando non validi (se qualche parametri non è al di fuori dell'intervallo dato) |
Le_rpa_offload_command
OCF: 0x155
Parametro di comando | Misurare | Scopo |
---|---|---|
RPA_offload_opcode | 1 ottetto | 0x1 - Abilita la funzione specifica del cliente 0x2 - Aggiungi Irk all'elenco 0x3 - Rimuovere l'Irk dall'elenco 0x4 - Cancella Elenco Irk 0x5 - Leggi la voce dell'elenco Irk |
Un evento completo di comando verrà generato per questo comando.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato completo del comando |
Event_RPA_offload_opcode | 1 ottetto | 0x1 - Abilita la funzione specifica del cliente 0x2 - Aggiungi Irk all'elenco 0x3 - Rimuovere l'Irk dall'elenco 0x4 - Cancella Elenco Irk 0x5 - Leggi la voce dell'elenco Irk |
Le_rpa_offload: abilita_cust_specific_sub_command
Sub OCF: 0x01
Parametro sub-comando | Misurare | Scopo |
---|---|---|
enable_customer_specific_feature_set | 1 ottetto | 0x01 - Abilita la funzione RPA scaricata 0x00 - Disabilita la funzione RPA scaricata |
L'offload RPA deve essere abilitato dall'host, in base alla capacità del chip. Fare riferimento a LE_Get_Vendor_Capabilities_Command
. Ogni chip può avere un max_irk_list_sz
variabile nel firmware.
Un evento completo di comando verrà generato per questo comando.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato completo del comando |
Event_cust_specific_feature_opcode | 1 ottetto | 0x01 [Abilita funzione specifica del cliente] |
Le_rpa_offload: add_irk_to_list_sub_command
Sub OCF: 0x02
Parametro sub-comando | Misurare | Scopo |
---|---|---|
LE_IRK | 16 ottetti | Le Irk (1 ° byte LSB) |
Address_Type | 1 ottetto | 0: indirizzo pubblico 1: indirizzo casuale |
LE_Device_Address | 6 ottetti | Indirizzo pubblico o casuale associato all'Irk (1 ° byte LSB) |
Un evento completo di comando verrà generato per questo comando.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato completo del comando |
Event_cust_specific_feature_opcode | 1 ottetto | 0x02 [Aggiungi Irk all'elenco] |
LE_IrkList_AvailableSpaces | 1 ottetto | Voci di elenco IRL disponibili dopo l'operazione corrente |
Le_rpa_offload: remove_irk_to_list_sub_command
Sub OCF: 0x03
Parametro sub-comando | Misurare | Scopo |
---|---|---|
Address_Type | 1 ottetto | 0: indirizzo pubblico 1: indirizzo casuale |
LE_Device_Address | 6 ottetti | Indirizzo pubblico o casuale che si associa all'irk |
Un evento completo di comando verrà generato per questo comando.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato completo del comando |
Event_cust_specific_feature_opcode | 1 ottetto | 0x03 [Rimuovi l'IRK dall'elenco] |
LE_IrkList_AvailableSpaces | 1 ottetto | Voci di elenco IRL disponibili dopo l'operazione corrente |
Le_rpa_offload: clear_irk_list_sub_command
Sub OCF: 0x04
Parametro sub-comando | Misurare | Scopo |
---|---|---|
Nessuno |
Un evento completo di comando verrà generato per questo comando.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato completo del comando |
Event_cust_specific_feature_opcode | 1 ottetto | 0x04 [Clear Irk List] |
LE_IrkList_AvailableSpaces | 1 ottetto | Voci di elenco IRL disponibili dopo l'operazione corrente [ max_irk_list_sz] |
Le_rpa_offload: read_irk_list_sub_command
Sub OCF: 0x05
Parametro sub-comando | Misurare | Scopo |
---|---|---|
LE_read_IRK_list_entry-index | 1 ottetto | Indice dell'elenco Irk [0, max_irk_list_sz-1] |
Un evento completo di comando verrà generato per questo comando.
Parametro di ritorno | Misurare | Scopo |
---|---|---|
Status | 1 ottetto | Stato completo del comando |
Event_cust_specific_feature_opcode | 1 ottetto | 0x05 [Leggi la voce dell'elenco Irk] |
LE_Read_IRK_List_entry | 1 ottetto | Indice dell'Irk che l'host vuole leggere indietro (la dimensione massima dell'elenco dell'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 risolto corrente di questo Irk |