Requisitos de HCI

A Host Controller Interface (HCI) é usada para interagir com um controlador Bluetooth.

Este documento fornece uma lista de requisitos de HCI para Bluetooth (BT) e Bluetooth Low Energy (BLE). O objetivo é que os fornecedores de pilha Host BT e os fornecedores de controladores BT estejam em conformidade com esses requisitos de plataforma para usar o conjunto de recursos descrito abaixo.

Este documento refere-se à especificação Bluetooth Core 5.2 como "especificação". A especificação Bluetooth Core 5.2 está disponível no site da Bluetooth SIG junto com outros documentos adotados.

Visão geral do projeto

Capacidades e configuração do chip

Como uma plataforma aberta, o Android possui uma matriz de lançamentos de software, OEMs, fornecedores e recursos de plataforma e chip.

Para gerenciar o cenário variado e gerenciar migrações, uma filosofia de design que permite aos controladores BT expor suas capacidades (além da especificação Bluetooth Core 5.2 padrão) é descrita neste documento. A pilha BT do host pode então usar esses recursos para determinar quais recursos ativar.

Apoiando padrões abertos

Um dos objetivos do Android é oferecer suporte a padrões abertos após a ratificação de uma especificação Bluetooth. Se um recurso descrito abaixo estiver disponível nos métodos HCI padrão em uma especificação Bluetooth futura, tenderemos a tornar essa abordagem o padrão.

Capacidades específicas do fornecedor

Comando específico do fornecedor: LE_Get_Vendor_Capabilities_Command

Campo de comando OpCode (OCF): 0x153

Parâmetro de comando Tamanho Propósito
N / D Lista de parâmetros de comando vazia

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
max_advt_instances
(Descontinuada)
1 octeto Número de instâncias de anúncio suportadas.

Reservado após v0.98.
Este parâmetro foi descontinuado na especificação de recursos do Google v0.98 e superior em favor do LE Extended Advertising disponível na especificação BT versão 5.0 e superior.
offloaded_resolution_of_private-address
(Descontinuada)
1 octeto Capacidade de chip BT de RPA.
Se for suportado por um chip, ele precisa ser habilitado pelo host.
0 = Não é capaz
1 = Capaz

Reservado após v0.98.
Este parâmetro foi descontinuado na especificação de recursos do Google v0.98 e superior em favor do recurso Privacidade disponível na especificação BT versão 4.2 e superior.
total_scan_results_storage 2 octetos Armazenamento para resultados de verificação em bytes
max_irk_list_sz 1 octeto Número de entradas IRK suportadas no firmware
filtering_support 1 octeto Suporte para filtragem no controlador
0 = Não suportado
1 = Suportado
max_filter 1 octeto Número de filtros suportados
activity_energy_info_support 1 octeto Suporta relatórios de atividades e informações de energia
0 = Não é capaz
1 = Capaz
version_supported 2 octetos Especifica a versão da especificação de recurso do Google compatível
byte[0] = número principal
byte[1] = número menor

v1.04
byte[0] = 0x01
byte[1] = 0x04
total_num_of_advt_tracked 2 octetos Número total de anunciantes rastreados para fins OnLost / OnFound
extended_scan_support 1 octeto Suporta janela e intervalo de varredura estendidos
debug_logging_supported 1 octeto Suporta registro de informações de depuração binária do controlador
LE_address_generation_offloading_support
(Descontinuada)
1 octeto 0 = Não suportado
1 = Suportado

Reservado após v0.98.
Este parâmetro foi descontinuado na especificação de recursos do Google v0.98 e superior em favor do recurso Privacidade disponível na especificação BT versão 4.2 e superior.
A2DP_source_offload_capability_mask 4 octetos Máscaras de bits para tipos de codec suportados
Bit 0 - SBC
Bit 1 - AAC
Bit 2 - APTX
Bit 3 - APTX HD
Bit 4 - LDAC
Bit 5-31 são reservados
bluetooth_quality_report_support 1 octeto Suporta relatórios de eventos de qualidade Bluetooth
0 = Não é capaz
1 = Capaz
dynamic_audio_buffer_support 4 octetos Suporta buffer de áudio dinâmico no controlador Bluetooth
Máscaras de bits para tipos de codec suportados
Bit 0 - SBC
Bit 1 - AAC
Bit 2 - APTX
Bit 3 - APTX HD
Bit 4 - LDAC
Bit 5-31 são reservados
a2dp_offload_v2_support 1 octeto Suporta comandos A2dp Offload v2 no controlador Bluetooth (consulte Iniciar A2DP Offload , Parar A2DP Offload )
0 = Não suportado
1 = Suportado

Lote de resultados de verificação

Um objetivo do design é aprimorar a forma como as notificações de eventos de resposta de varredura do Bluetooth LE são entregues ao host, a fim de economizar energia no host.

Ao reduzir a frequência com que o controlador notifica o processador do aplicativo host para verificar os resultados, o processador do aplicativo host pode permanecer inativo/hiberno por mais tempo. Isso reduz o consumo de energia no host. O parâmetro de retorno total_scan_results_storage de LE_Get_Vendor_Capabilities_Command indica a capacidade do chip para armazenamento dos resultados da varredura.

Este recurso se concentra no gerenciamento e configuração do recurso de armazenamento LE Scan Results no controlador Bluetooth. O armazenamento é usado para agrupar temporariamente dados de anúncio e digitalizar dados e metadados que são recebidos pelo controlador para entrega posterior ao host.

O firmware deve suportar dois tipos de lote, que podem ser ativados simultaneamente:

  • Truncado. Contém os seguintes elementos de informação: {MAC, TX Power, RSSI, Timestamp}
  • Completo. Contém os seguintes elementos de informação: {MAC, TX Power, RSSI, Timestamp, Adv Data, Scan Response}

LE_Batch_Scan_Command

OCF: 0x156

Parâmetro de comando Tamanho Propósito
Batch_Scan_opcode 1 octeto 0x1 – Habilitar recurso específico do cliente
0x2 - Definir parâmetros de armazenamento de digitalização em lote
0x3 - Definir parâmetros de digitalização em lote
0x4 - Ler parâmetros do resultado da verificação em lote

Um evento Command Complete será gerado para este comando. A ativação do recurso específico do cliente não inicia a verificação.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
Batch_Scan_opcode 1 octeto 0x1 – Habilitar recurso específico do cliente
0x2 - Definir parâmetros de armazenamento de digitalização em lote
0x3 - Definir parâmetros de digitalização em lote
0x4 - Ler parâmetros do resultado da verificação em lote

LE_Batch_Scan_Command: Habilitar recurso específico do cliente

Sub OCF: 0x01

Parâmetro de subcomando Tamanho Propósito
enable_customer_specific_feature_set 1 octeto 0x01 - Habilitar recurso de digitalização em lote
0x00 - Desativar recurso de digitalização em lote

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
Batch_Scan_opcode 1 octeto 0x1 – Habilitar recurso específico do cliente
0x2 - Definir parâmetros de armazenamento de digitalização em lote
0x3 - Definir parâmetros de digitalização em lote
0x4 - Ler parâmetros do resultado da verificação em lote

LE_Batch_Scan_Command: Definir subcomando parâmetro de armazenamento de digitalização em lote

Sub OCF: 0x02

Parâmetro de subcomando Tamanho Propósito
Batch_Scan_Full_Max 1 octeto Espaço máximo de armazenamento (em%) alocado para estilo completo
[Intervalo: 0-100]
Batch_Scan_Truncated_Max 1 octeto Espaço máximo de armazenamento (em%) alocado para estilo truncado
[Intervalo: 0-100]
Batch_Scan_Notify_Threshold 1 octeto Nível de notificação de configuração (em%) para pool de armazenamento individual
[Intervalo: 0-100]
Definir como 0 desativará a notificação. O evento HCI específico do fornecedor é gerado (subevento de violação do limite de armazenamento)

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
Batch_scan_opcode 1 octeto 0x02 [Definir parâmetros de digitalização em lote]

LE_Batch_Scan_Command: Definir subcomando Parâmetro de digitalização em lote

Sub OCF: 0x03

Parâmetro de subcomando Tamanho Propósito
Batch_Scan_Mode 1 octeto 0x00 – A verificação em lote está desativada
0x01 – O modo truncado está habilitado
0x02 – O modo completo está ativado
0x03 – Os modos Truncado e Completo estão habilitados
Duty_cycle_scan_window 4 octetos Tempo de varredura da varredura em lote (nº de slot)
Duty_cyle_scan_interval 4 octetos Período de intervalo de varredura em lote (nº de slot)
own_address_type 1 octeto 0x00 - Endereço do dispositivo público
0x01 - Endereço aleatório do dispositivo
Batch_scan_Discard_Rule 1 octeto 0 - Descartar anúncio mais antigo
1 – Descarte propaganda com RSSI mais fraco

Este subcomando iniciará a digitalização em lote, se habilitado. Na verificação truncada, os resultados são armazenados em formato truncado, onde a chave exclusiva para o estilo truncado = { BD_ADDR, scan_interval}. Isto significa que apenas um BD_ADDR will gravado para cada intervalo de varredura. O registro a ser mantido para o modo Truncado é o seguinte: { BD_ADDR , Tx Power, RSSI, Timestamp}

Quando o modo Completo estiver ativado, a verificação ativa será usada e as respostas da verificação serão registradas. A chave exclusiva de estilo completo = {MAC, pacote de anúncios}, independentemente do intervalo de varredura. O registro a ser mantido no modo Completo é { BD_ADDR , Tx Power, RSSI, Timestamp, Ad packet, Scan Response}. No estilo Full, o mesmo pacote AD, quando visto diversas vezes em diferentes intervalos de varredura, é registrado apenas uma vez. Entretanto, no modo Truncado, é a visibilidade de BA_ADDR em diferentes intervalos de varredura que é de interesse (uma vez por intervalo de varredura). O RSSI é o valor médio de todas as duplicatas de um anúncio exclusivo dentro de um intervalo de varredura.

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
Batch_scan_opcode 1 octeto 0x03 [Definir parâmetros de digitalização em lote]

LE_Batch_Scan_Command: subcomando Ler resultados da verificação em lote

Sub OCF: 0x04

Parâmetro de subcomando Tamanho Propósito
Batch_Scan_Data_read 1 octeto 0x01 – Dados do modo truncado
0x02 – Dados de modo completo

Um evento Command Complete será gerado para este comando. Quando o host emite esse comando, todos os resultados no controlador podem não caber em um evento Command Complete. O host irá iterar emitindo este comando até que os resultados correspondentes no evento Command Complete indiquem 0 no número de registros, o que indica que o controlador não possui mais registros para comunicar ao host. Cada evento Command Complete pode conter vários registros de apenas um tipo de dados (Completo ou Truncado).

As referências de horário do controlador e do host não estão sincronizadas. A unidade do carimbo de data/hora é 50ms. O valor do carimbo de data/hora é baseado em quando Read_Batch_Scan_Results_Sub_cmd é fornecido pelo host. Se a hora de chegada de um comando for T_c no firmware, a hora real em que o carimbo de data/hora foi obtido no firmware será T_fw . O horário do relatório será: ( T_c - T_fw ). T_c e T_fw estão no domínio de tempo do firmware. Isso permite que o host calcule há quanto tempo o evento aconteceu.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
Batch_scan_opcode 1 octeto 0x03 [Definir parâmetros de digitalização em lote]
Batch_Scan_data_read 1 octeto Identifica o formato (Truncado ou Completo)
num_of_records 1 octeto Número de registros de Batch_Scan_data_read
format_of_data Variável Modo truncado:
Endereço[0]: 6 octetos
Address_Type[0]: 1 octeto
Tx_Pwr[0]: 1 octeto
RSSI[0]: 1 octeto
Timestamp[0]: 2 octetos
[múltiplos registros ( num_of_records ) com formato acima]

Modo Completo:
Endereço[0]: 6 octetos
Address_Type[0]: 1 octeto
Tx_Pwr[0]: 1 octeto
RSSI[0]: 1 octeto
Timestamp[0]: 2 octetos
Adv packet_len[0]: 1 octeto
Adv_packet[0]: octetos Adv_packet_len
Scan_data_resp_len[0]: 1 octeto
Scan_data_resp[0]: octetos Scan_data_resp
[vários registros com formato acima ( num_of_records )]

Filtro de conteúdo de pacote publicitário

Use isto para ativar/desativar/configurar o Filtro de Conteúdo de Pacote de Publicidade (APCF) no controlador. A APCF filtra relatórios de publicidade no controlador, mas não filtra publicidade periódica.

LE_APCF_Command

OCF: 0x157

Parâmetro de comando Tamanho Propósito
APCF_opcode 1 octeto 0x00 - Ativar APCF
0x01 - APCF Definir parâmetros de filtragem
0x02 - Endereço da emissora APCF
0x03 - UUID do serviço APCF
0x04 - UUID de solicitação de serviço APCF
0x05 - Nome Local APCF
0x06 - Dados do fabricante APCF
0x07 - Dados de serviço APCF
0x08 - Serviço de descoberta de transporte APCF
0x09 - Filtro de tipo AD APCF
0x10 ~ 0xAF – Reservado para uso futuro
0xB0 ~ 0xDF – Reservado para fornecedor
0xE0 ~ 0xFE – Reservado para uso futuro
0xFF - Recursos estendidos de leitura APCF

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status de devolução
APCF_opcode 1 octeto 0x00 - Ativar APCF
0x01 - APCF Definir parâmetros de filtragem
0x02 - Endereço da emissora APCF
0x03 - UUID do serviço APCF
0x04 - UUID de solicitação de serviço APCF
0x05 - Nome Local APCF
0x06 - Dados do fabricante APCF
0x07 - Dados de serviço APCF
0x08 - Serviço de descoberta de transporte APCF
0x09 - Filtro de tipo AD APCF
0x10 ~ 0xAF – Reservado para uso futuro
0xB0 ~ 0xDF – Reservado para fornecedor
0xE0 ~ 0xFE – Reservado para uso futuro
0xFF - Recursos estendidos de leitura APCF

LE_APCF_Command: Enable_sub_cmd

Sub OCF: 0x00

Parâmetro de subcomando Tamanho Propósito
APCF_enable 1 octeto 0x01 - Habilitar recurso APCF
0x00 - Desativar recurso APCF

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
APCF_opcode 1 octeto 0x0 - Ativar APCF
APCF_Enable 1 octeto Ativar/desativar é definido via APCF_enable

LE_APCF_Command: set_filtering_parameters_sub_cmd

Este subcomando é usado para adicionar ou excluir uma especificação de filtro ou limpar uma lista de filtros para filtragem no chip.

Sub OCF: 0x01

Parâmetro de subcomando Tamanho Propósito
APCF_Action 1 octeto 0x00 - Adicionar
0x01 - Excluir
0x02 - Limpar
Excluir limpará o filtro específico junto com as entradas de recursos associadas em outras tabelas.
Limpar limpará todos os filtros e entradas associadas em outras tabelas.
APCF_Filter_Index 1 octeto Índice de filtro (0, max_filter-1 )
APCF_Feature_Selection 2 octetos Máscaras de bits para os recursos selecionados:
Bit 0: definido para ativar o filtro de endereço de transmissão
Bit 1: definido para ativar o filtro de alteração de dados de serviço
Bit 2: definido para ativar a verificação de UUID de serviço
Bit 3: definido para ativar a verificação UUID de solicitação de serviço
Bit 4: definido para ativar a verificação do nome local
Bit 5: definido para ativar a verificação de dados do fabricante
Bit 6: definido para ativar a verificação de dados de serviço
Bit 7: definido para ativar a verificação do serviço de descoberta de transporte
Bit 8: definido para ativar a verificação de tipo de AD
APCF_List_Logic_Type 2 octetos Operação lógica para cada seleção de recurso (posição por bit) especificada em APCF_Feature_Selection .
Válido somente quando um recurso está habilitado.
Valor da posição do bit:
0: OU
1: E
Se a lógica "AND" for selecionada, um pacote ADV passará pelo filtro somente se contiver TODAS as entradas na lista.
Se a lógica "OR" for selecionada, um pacote ADV passará no filtro se contiver alguma das entradas na lista.
APCF_Filter_Logic_Type 1 octeto 0x00: OU
0x01: E
Nota: O tipo de lógica é N/A para os três primeiros campos de APCF_Feature_Selection , que é sempre lógica "AND". Eles são aplicáveis ​​apenas para (Bit 3 - Bit 6) quatro campos de APCF_Feature_Selection .
rssi_high_thresh 1 octeto [em dBm]
O anunciante é considerado visto apenas se o sinal for superior ao limite alto do RSSI. Caso contrário, o firmware deverá se comportar como se nunca tivesse visto.
delivery_mode 1 octeto 0x00 - immediate
0x01 on_found
0x02 - batched
onfound_timeout 2 octetos Válido somente se delivery_mode for on_found .
[em milissegundos]
É hora do firmware demorar e coletar anúncios adicionais antes de reportar.
onfound_timeout_cnt 1 octeto Válido somente se delivery_mode for on_found .
[contar]
Se um anúncio no onFound permanecer no firmware durante onfound_timeout , ele coletará alguns anúncios e a contagem será verificada. Se a contagem exceder onfound_timeout_cnt , será relatado OnFound imediatamente em seguida.
rssi_low_thresh 1 octeto Válido somente se delivery_mode for on_found .
[em dBm]
O pacote do anunciante é considerado não visto se o RSSI do pacote recebido não estiver acima do limite baixo de RSSI.
onlost_timeout 2 octetos Válido somente se delivery_mode for on_found .
[em milissegundos]
Se um anúncio, após ser encontrado, não for visto de forma contígua durante o período lost_timeout , ele será imediatamente reportado como perdido.
num_of_tracking_entries 2 octetos Válido somente se delivery_mode for on_found .
[contar]
Número total de anunciantes a serem rastreados por filtro.

Os valores RSSI devem usar complemento de 2 para representar valores negativos.

O host deverá ser capaz de configurar vários filtros com APCF_Application_Address_type definido como 0x02 (para todos os endereços de radiodifusor) para gerenciar várias combinações de filtros.

Filtragem, lote e relatórios são conceitos inter-relacionados. Cada anúncio e resposta de verificação relacionada terão que passar por todos os filtros, um após o outro. Assim, as ações resultantes ( delivery_mode ) estão intimamente ligadas à filtragem. Os modos de entrega são os seguintes: report_immediately , batch e onFound . O valor OnLost está relacionado ao OnFound no sentido de que virá depois OnFound quando for perdido.

Este fluxo de processamento descreve o modelo conceitual:

Quando um quadro de anúncio (ou resposta de varredura) é recebido, ele é aplicado a todos os filtros em ordem serial. É possível que um anúncio gere relatórios imediatos com base em um filtro e lote do mesmo devido a uma ação de filtro diferente.

Os limites de nível RSSI (alto e baixo) permitem controlar quando o quadro está visível para processamento de filtro, mesmo quando um pacote válido é recebido pelo controlador. No caso do modo de entrega ser definido como imediato ou em lote, o RSSI de um quadro é considerado para processamento posterior do controlador. Aplicativos diferentes precisam de relatórios e comportamentos de lote diferentes. Isso permite que vários aplicativos tenham relatórios diretos e/ou lotes de resultados no firmware, simultaneamente. Um exemplo é o caso em que uma verificação em lote está ativa em um aplicativo e, posteriormente, uma verificação LE regular é emitida por outro aplicativo. Antes de uma verificação em lote ser emitida, a estrutura/aplicativo define os filtros apropriados. Mais tarde, quando o segundo aplicativo emitir uma verificação regular, o lote anterior continuará. No entanto, devido à verificação regular, é semelhante a adicionar conceitualmente um filtro nulo (junto com todos os filtros existentes) junto com o comando LE scan. Os parâmetros do comando LE scan têm precedência quando ativos. Quando a varredura LE regular é desativada, o controlador reverterá para uma varredura em lote anterior, se ela existir.

O modo de entrega OnFound é baseado em filtros configurados. Uma combinação que aciona o sucesso da ação de um filtro é considerada a entidade a ser rastreada para onLost . O evento correspondente é o subevento de rastreamento LE Advt.

A transição OnFound/OnLost para um filtro (se habilitado) terá a seguinte aparência:

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
APCF_opcode 1 octeto 0x01 - APCF define parâmetros de filtragem
APCF_Action 1 octeto Ecoar APCF_Action do comando back
APCF_AvailableSpaces 1 octeto Número de entradas disponíveis na tabela de filtros

LE_APCF_Command: broadcast_address_sub_cmd

Este subcomando é usado para adicionar ou excluir um endereço de anunciante ou para limpar a lista de endereços do anunciante para filtragem no chip.

Sub OCF: 0x02

Parâmetro de subcomando Tamanho Propósito
APCF_Action 1 octeto 0x00 - Adicionar
0x01 - Excluir
0x02 - Limpar
Excluir excluirá o endereço da emissora especificado no filtro especificado.
Limpar limpará todos os endereços de emissoras no filtro especificado.
APCF_Filter_Index 1 octeto Índice de filtro (0, max_filter-1 )
APCF_Broadcaster_Address 6 octeto Endereço de dispositivo de 6 bytes para adicionar ou excluir da lista de endereços da emissora
APCF_Application_Address_type 1 octeto 0x00: Público
0x01: Aleatório
0x02: NA (tipo de endereço não aplicável)

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
APCF_opcode 1 octeto 0x02 - Endereço da emissora APCF
APCF_Action 1 octeto Ecoar APCF_Action do comando back
APCF_AvailableSpaces 1 octeto Número de entradas gratuitas ainda disponíveis na tabela de endereços de transmissão

LE_APCF_Command: service_uuid_sub_cmd

Este subcomando é usado para adicionar ou excluir um UUID de serviço ou para limpar uma lista de UUID de serviço para filtragem no chip.

Sub OCF: 0x03

Parâmetro de subcomando Tamanho Propósito
APCF_Action 1 octeto 0x00 - Adicionar
0x01 - Excluir
0x02 - Limpar
Excluir excluirá o endereço UUID de serviço especificado no filtro especificado.
Limpar limpará todos os UUIDs de serviço no filtro especificado.
APCF_Filter_Index 1 octeto Índice de filtro (0, max_filter -1)
APCF_UUID 2,4,16 octeto O UUID de serviço (16 bits, 32 bits ou 128 bits) para adicionar ou excluir da lista.
APCF_UUID_MASK 2,4,16 octeto A máscara UUID de serviço (16 bits, 32 bits ou 128 bits) a ser adicionada à lista. Deve ter o mesmo comprimento que APCF_UUID.

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
APCF_opcode 1 octeto 0x03 - UUID do serviço APCF
APCF_Action 1 octeto Ecoar APCF_Action do comando back
APCF_AvailableSpaces 1 octeto Número de entradas gratuitas ainda disponíveis na tabela UUID de serviço

LE_APCF_Command: solicitação_uuid_sub_cmd

Este subcomando é usado para adicionar ou excluir um UUID de solicitação ou para limpar uma lista de UUID de solicitação para filtragem no chip.

Sub OCF: 0x04

Parâmetro de subcomando Tamanho Propósito
APCF_Action 1 octeto 0x00 - Adicionar
0x01 - Excluir
0x02 - Limpar
Excluir excluirá o endereço UUID da solicitação no filtro especificado.
Limpar limpará todos os UUIDs de solicitação no filtro especificado.
APCF_Filter_Index 1 octeto Índice de filtro (0, max_filter -1)
APCF_UUID 2,4,16 octeto O UUID de solicitação (16 bits, 32 bits ou 128 bits) a ser adicionado ou excluído da lista.
APCF_UUID_MASK 2,4,16 octeto A máscara UUID de solicitação (16 bits, 32 bits ou 128 bits) a ser adicionada à lista. Deve ter o mesmo comprimento que APCF_UUID .

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
APCF_opcode 1 octeto 0x04 - UUID de solicitação APCF
APCF_Action 1 octeto Ecoar APCF_Action do comando back
APCF_AvailableSpaces 1 octeto Número de entradas gratuitas ainda disponíveis na tabela UUID de Solicitação

LE_APCF_Command: local_name_sub_cmd

Este subcomando é usado para adicionar ou excluir uma sequência de nomes locais ou para limpar a lista de sequências de nomes locais para filtragem no chip.

Sub OCF: 0x05

Parâmetro de subcomando Tamanho Propósito
APCF_Action 1 octeto 0x00 - Adicionar
0x01 - Excluir
0x02 - Limpar
Excluir excluirá a sequência de nome local especificada no filtro especificado.
Limpar limpará todas as sequências de nomes locais no filtro especificado.
APCF_Filter_Index 1 octeto Índice de filtro (0, max_filter -1)
APCF_LocName_Mandata_or_SerData Tamanho variável Uma sequência de caracteres para o nome local.

Notas:
  • Atualmente o número máximo de caracteres em uma string de nome local é 29
  • Não aplicável quando a ação é "Limpar" (0x2)

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
APCF_opcode 1 octeto 0x05 - Nome Local APCF
APCF_Action 1 octeto Ecoar APCF_Action do comando back
APCF_AvailableSpaces 1 octeto Número de entradas gratuitas ainda disponíveis na tabela de nomes locais

LE_APCF_Command: manf_data_sub_cmd

Este subcomando é usado para adicionar ou excluir uma sequência de dados do fabricante ou para limpar a lista de sequências de dados do fabricante para filtragem no chip.

Sub OCF: 0x06

Parâmetro de subcomando Tamanho Propósito
APCF_Action 1 octeto 0x00 - Adicionar
0x01 - Excluir
0x02 - Limpar
Excluir excluirá a sequência de dados do fabricante especificada no filtro especificado.
Limpar limpará todas as sequências de dados do fabricante no filtro especificado.
APCF_Filter_Index 1 octeto Índice de filtro (0, max_filter -1)
APCF_LocName_Mandata_or_SerData Tamanho variável Uma sequência de caracteres para dados do fabricante.

Notas:
  • Atualmente o número máximo de caracteres em uma string de nome local é 29
  • Não aplicável quando a ação é "Limpar" (0x2)
APCF_ManData_Mask Tamanho variável A máscara de dados de fabricação a ser adicionada à lista. Deve ter o mesmo comprimento que APCF_LocName_or_ManData_or_SerData .

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
APCF_opcode 1 octeto 0x06 - Dados do fabricante APCF
APCF_Action 1 octeto Ecoar APCF_Action do comando back
APCF_AvailableSpaces 1 octeto Número de entradas gratuitas ainda disponíveis na tabela Dados do Fabricante

LE_APCF_Command: service_data_sub_cmd

Este subcomando é usado para adicionar ou excluir uma sequência de dados de serviço ou para limpar a lista de sequências de dados de serviço para filtragem no chip.

Sub OCF: 0x07

Parâmetro de subcomando Tamanho Propósito
APCF_Action 1 octeto 0x00 - Adicionar
0x01 - Excluir
0x02 - Limpar
Excluir excluirá a sequência de dados de serviço especificada no filtro especificado.
Limpar limpará todas as sequências de dados de serviço no filtro especificado.
APCF_Filter_Index 1 octeto Índice de filtro (0, max_filter -1)
APCF_LocName_Mandata_or_SerData Tamanho variável Uma sequência de caracteres para dados de serviço.

Notas:
  • Atualmente o número máximo de caracteres em uma string de nome local é 29
  • Não aplicável quando a ação é "Limpar" (0x2)
APCF_LocName_Mandata_or_SerData_Mask Tamanho variável A máscara de dados de serviço a ser adicionada à lista. Deve ter o mesmo comprimento que APCF_LocName_or_ManData_or_SerData.

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
APCF_opcode 1 octeto 0x07 - Dados de serviço APCF
APCF_Action 1 octeto Ecoar APCF_Action do comando back
APCF_AvailableSpaces 1 octeto Número de entradas gratuitas ainda disponíveis para tabela de dados de serviço

LE_APCF_Command: ad_type_sub_cmd

Este subcomando é usado para adicionar ou excluir um tipo de AD ou para limpar uma lista de tipos de AD para filtragem no chip. Use read_extended_features_sub_cmd para verificar se este comando é compatível ou não.

Sub OCF: 0x09

Parâmetro de subcomando Tamanho Propósito
APCF_Action 1 octeto 0x00 - Adicionar
0x01 - Excluir
0x02 - Limpar
Excluir excluirá o tipo de AD especificado no filtro especificado.
Limpar limpará todos os tipos de AD no filtro especificado.
APCF_Filter_Index 1 octeto Índice de filtro (0, max_filter -1)
APCF_AD_TYPE 1 octeto O tipo de AD para adicionar ou excluir da lista. Ignorar quando APCF_Action for 0x02 (Limpar)
APCF_AD_DATA_Length Tamanho variável 0x00 - significa não filtrar o conteúdo dos dados
Ignorar quando APCF_Action for 0x02 (Limpar)
APCF_AD_DATA Tamanho variável Ignorar quando APCF_Action for 0x02 (Limpar)
APCF_AD_DATA_MASK Tamanho variável Ignorar quando APCF_Action for 0x02 (Limpar)
Deve ter o mesmo comprimento que APCF_AD_DATA .

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
APCF_opcode 1 octeto 0x09 - Tipo de anúncio APCF
APCF_Action 1 octeto Ecoar APCF_Action do comando back
APCF_AvailableSpaces 1 octeto Número de entradas gratuitas ainda disponíveis na tabela Tipo de AD

LE_APCF_Command: read_extended_features_sub_cmd

Este subcomando é usado para ler recursos APCF estendidos.

Sub OCF: 0xFF

Parâmetro de subcomando Tamanho Propósito
Não aplicável Parâmetro de comando vazio.

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
APCF_opcode 1 octeto 0xFF -APCF_Read_Extended_Features
APCF_extended_features 2 octetos

Máscaras de bits para recursos estendidos suportados:

  • Bit 0: filtro de serviço de descoberta de transporte de suporte
  • Bit 1: Suporte a filtro de tipo de anúncio
  • Bit 2 ~15: Reservado para uso futuro

Valor do bit

  • 0 = Não suportado
  • 1 = Suportado

Atividade do controlador e comando de informações de energia

O objetivo destas informações é que funções superiores do sistema host analisem as atividades totais de todos os componentes, incluindo o controlador BT e seu estado macro, em conjunto com o que está acontecendo nos aplicativos e na estrutura. Para fazer isso, as seguintes informações são necessárias da pilha BT e do controlador:

  • Pilha BT: relatando o estado macrooperacional atual do controlador
  • Firmware: Relatório de atividades agregadas e informações de energia

Estados da macro da pilha de host BT, conforme determinado no nível do usuário:

  • Inativo: [varredura de página, LE advt, varredura de consulta]
  • Digitalizar: [paginação/consulta/tentando conectar]
  • Ativo: [link ACL ativado, link SCO em andamento, modo sniff]

As atividades que o controlador acompanha ao longo de sua vida são tempo Tx, tempo Rx, tempo ocioso e energia total consumida. Eles são apagados quando lidos no host.

LE_Get_Controller_Activity_Energy_Info

Este é um comando específico do fornecedor.

OCF: 0x159

Parâmetro de subcomando Tamanho Propósito
N / D Parâmetros de comando vazios

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
total_tx_time_ms 4 octetos Tempo total realizando Tx
total_rx_time_ms 4 octetos Tempo total realizando Rx
total_idle_time_ms 4 octetos Tempo total em modo inativo (estados de baixo consumo de energia sem suspensão)
total_energy_used 4 octetos Energia total utilizada [produto de corrente (mA), tensão (V) e tempo (ms)]

Comando de configuração estendida de parâmetros de varredura LE

Este comando pode ser usado para ativar uma janela e intervalo de varredura maiores no controlador. De acordo com a especificação BT Core 5.2, uma janela e intervalo de varredura têm um limite superior de 10,24 segundos, o que dificulta intervalos de varredura mais longos dos aplicativos, além de 10,24 segundos.

Referência base: Especificação BT Core 5.2, página 2493 (comando LE Set Scan Parameters)

OCF: 0x15A

Parâmetro de comando Tamanho Propósito
LE_Ex_Scan_Type 1 octeto 0x00 - Verificação passiva. Nenhum pacote SCAN_REQ deve ser enviado (padrão).
0x01 - Verificação ativa. Pacotes SCAN_REQ podem ser enviados.
LE_Ex_Scan_Interval 4 octetos Definido como o intervalo de tempo desde o momento em que o Controlador iniciou sua última varredura LE até iniciar a varredura LE subsequente.
Faixa: 0x0004 a 0x00FFFFFF
Padrão: 0x0010 (10ms)
Tempo = N * 0,625ms
Intervalo de tempo: 2,5 ms a 10.442,25 segundos
LE_Ex_Scan_Window 4 octetos A duração da varredura LE. LE_Scan_Window deve ser menor ou igual a LE_Scan_Interval .
Faixa: 0x0004 a 0xFFFF
Padrão: 0x0010 (10ms)
Tempo = N * 0,625ms
Intervalo de tempo: 2,5 ms a 40,95 segundos
Own_Address_Type 1 octeto 0x00 - Endereço de dispositivo público (padrão)
0x01 - Endereço aleatório do dispositivo
LE_Ex_Scan_Filter_Policy 0x00 – Aceita todos os pacotes de anúncios (padrão). Pacotes de publicidade direcionada que não sejam endereçados para este dispositivo serão ignorados.
0x01 - Ignora pacotes de anúncios de dispositivos que não estão na lista Somente Lista Branca. Pacotes de publicidade direcionada que não sejam endereçados para este dispositivo serão ignorados.

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando

Obtenha o comando de informações de depuração do controlador

O objetivo deste elemento de informação é adquirir informações de depuração do controlador por um host, em formato binário, para pós-processamento e análise. Isso ajuda a depurar problemas em campo e fornece aos engenheiros um kit de ferramentas para registrar informações para análise. Um Controlador pode fornecer as informações quando solicitado por um host através do evento (subevento Controller Debug Info) ou de forma autônoma quando desejado pelo controlador. Exemplos de uso podem ser para relatar informações de estado de firmware, informações de crash dump, informações de registro, etc.

OCF: 0x15B

Parâmetro de comando Tamanho Propósito
N / D Lista de parâmetros de comando vazia

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando

Suporte para descarregamento de hardware A2DP

O recurso A2DP Offload suporta o descarregamento do processo de codificação de áudio A2DP para um processador de áudio conectado ao controlador BT. O fluxo de dados de áudio codificado passa diretamente do processador de áudio para o controlador BT sem o envolvimento do host BT. O BT Host ainda é responsável pela configuração e controle da sessão A2DP. Duas versões dos comandos estão disponíveis. Os comandos legados com Sub OCF 0x01-0x02 suportam apenas codecs de código aberto. As versões com Sub-OCF 0x02-0x03 são independentes do codec configurado.

FCO: 0x15D

Iniciar descarregamento A2DP (legado)

Sub OCF: 0x01

Use este comando para configurar o processo de descarregamento A2DP e para iniciar o fluxo A2DP.

Parâmetro de comando Tamanho Propósito
Codec 4 octetos Especifica o tipo de codec
0x01 - SBC
0x02 - AAC
0x04 - APTX
0x08 - APTXHD
0x10-LDAC
Max_Latency 2 octetos Latência máxima permitida (em ms). Um valor zero desativa a liberação.
SCMS-T_Enable 2 octetos Octeto 0: Flag que permite adição de cabeçalho SCMS-T.
  • 0x00 - Cabeçalho SCMS-T não incluído.
  • 0x01 - Cabeçalho SCMS-T incluído.

Octeto 1: Valor do cabeçalho SCMS-T, quando habilitado.

Sampling_Frequency 4 octetos 0x01 - 44100Hz
0x02 - 48.000Hz
0x04 - 88.200Hz
0x08 - 96.000Hz
Bits_Per_Sample 1 octeto 0x01 - 16 bits por amostra
0x02 - 24 bits por amostra
0x04 - 32 bits por amostra
Channel_Mode 1 octeto 0x01 - Mono
0x02 - Estéreo
Encoded_Audio_Bitrate 4 octetos A taxa de bits de áudio codificado em bits por segundo.
0x00000000 - A taxa de bits de áudio não foi especificada/não utilizada.
0x00000001 - 0x00FFFFFF - Taxa de bits de áudio codificada em bits por segundo.
0x01000000 - 0xFFFFFFFF - Reservado.
Connection_Handle 2 octetos Identificador de conexão da conexão A2DP sendo configurada
L2CAP_Channel_ID 2 octetos ID do canal L2CAP a ser usado para esta conexão A2DP
L2CAP_MTU_Size 2 octetos Tamanho máximo do L2CAP MTU contendo pacotes de áudio codificados
Codec_Information 32 octetos Informações específicas do codec.

Codec SBC:

Consulte os elementos de informação específicos do Codec SBC no A2DP v1.3.
Octeto 0: Comprimento do bloco | Subbandas | Método de Alocação
Octeto 1: valor mínimo do Bitpool
Octeto 2: Valor máximo do Bitpool
Octeto 3: Frequência de Amostragem | Modo de canal
Octeto 4-31: reservado

Codec AAC:

Consulte os elementos de informação específicos do Codec AAC em A2DP v1.3
Octeto 0: Tipo de objeto
Octeto 1; b7: VBR
Octeto 2-31: reservado

Codec LDAC:

Octeto 0-3: ID do fornecedor
0x0000012D

Octeto 4-5: ID do Codec
0x00AA-LDAC
Todos os outros valores são reservados

Octeto 6: Índice de taxa de bits:
0x00 - Alto
0x01 - Meio
0x02 - Baixo
0x03 - 0x7E - Reservado
0x7F - ABR (taxa de bits adaptativa)
0x80 - 0xFF - Reservado

Octeto 7: Modo de canal LDAC
0x01 - Estéreo
0x02 - Dupla
0x04 - Mono
Outros são reservados

Octeto 8-31: reservado

Todos os outros codecs:

Octeto 0-31: reservado

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
Sub_Opcode 1 octeto 0x01 - Iniciar descarregamento A2DP

Iniciar descarregamento A2DP

Sub OCF: 0x03

Use este comando para configurar o processo de descarregamento A2DP e para iniciar o fluxo A2DP.

Parâmetro de comando Tamanho Propósito
Connection Handle 2 octetos Identificador da conexão HCI ativa
L2CAP_Channel_ID 2 octetos Identificador do canal L2CAP aberto para streaming A2DP
Data_Path_Direction 1 octeto 0x00 - Saída (Fonte/Mesclagem AVDTP)
0x01 - Entrada (coletor/divisão AVDTP)
Peer_MTU 2 octetos Tamanho máximo dos pacotes L2CAP, negociados com o peer.
CP_Enable_SCMS_T 1 octeto 0x00 - Desativar cabeçalho de proteção de conteúdo SCMS-T
0x01 - Habilitar cabeçalho de proteção de conteúdo SCMS-T
CP_Header_SCMS_T 1 octeto Quando o cabeçalho de proteção de conteúdo SCMS-T está habilitado ( CP_SCMS_T_Enable definido como 0x01), define o valor do cabeçalho que precede o conteúdo de áudio (consulte A2DP, seção 3.2.1-2) conforme definido por Bluetooth Assigned Numbers, seção 6.3.2.
Ignorado quando a proteção de conteúdo SCMS-T não está habilitada.
Vendor_Specific_Parameters_Length 1 octeto Comprimento dos Parâmetros Específicos do Fornecedor, na faixa de 0 a 128.
O valor 0 é usado quando nenhum parâmetro adicional é fornecido.
Vendor_Specific_Parameters 0-128 octetos Parâmetros específicos do fornecedor fornecidos pelo HAL de áudio Bluetooth, CodecParameters.vendorSpecificParameters[] .

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
Sub_Opcode 1 octeto 0x03 - Iniciar descarregamento A2DP

Interromper o descarregamento de A2DP (legado)

Sub OCF: 0x02

Este comando é usado para interromper o fluxo de descarregamento A2DP.

Parâmetro de comando Tamanho Propósito
N / D Lista de parâmetros de comando vazia.

Nenhum parâmetro está definido para este comando.

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
Sub_Opcode 1 octeto 0x02 - Parar descarregamento A2DP

Interromper o descarregamento A2DP

Sub OCF: 0x04

Este comando é usado para interromper o fluxo de descarregamento A2DP.

Parâmetro de comando Tamanho Propósito
Connection Handle 2 octetos Identificador da conexão HCI ativa
L2CAP_Channel_ID 2 octetos Identificador do canal L2CAP aberto para streaming A2DP
Data_Path_Direction 1 octeto 0x00 - Saída (Fonte/Mesclagem AVDTP)
0x01 - Entrada (coletor/divisão AVDTP)

Um evento Command Complete será gerado para este comando.

Parâmetro de retorno Tamanho Propósito
Status 1 octeto Status completo do comando
Sub_Opcode 1 octeto 0x04 - Parar descarregamento A2DP

Comando Relatório de qualidade Bluetooth

O recurso de comando BT Quality Report inicia o mecanismo no controlador Bluetooth para relatar eventos de qualidade Bluetooth ao host. Você pode ativar quatro opções:

  • Modo de monitoramento de qualidade: O controlador envia periodicamente um subevento BQR relacionado à qualidade do link para o host.
  • Approaching LSTO: Se nenhum pacote for recebido do dispositivo BT conectado por mais da metade do valor Link Supervision TimeOut (LSTO), o controlador reportará um evento Approaching LSTO ao host.
  • A2DP Audio Choppy: Quando o controlador detecta fatores que causam áudio instável, o controlador relata um evento A2DP Audio Choppy ao host.
  • (e)SCO Voice Choppy: Quando o controlador detecta fatores que causam voz instável, o controlador relata um evento (e)SCO Voice Choppy ao host.
  • Inflamação de raiz: Este evento é enviado pelo controlador para a pilha quando o HAL ou o controlador encontra um erro fatal e precisa reiniciar o Bluetooth.
  • Rastreio de mensagem LMP/LL: O controlador envia a mensagem de manutenção da mensagem LMP/LL com o dispositivo remoto para o host.
  • Bluetooth Multi-Profile/Coex Scheduling Rastrear: O controlador envia suas informações de agendamento sobre como lidar com vários perfis Bluetooth e coexistência sem fio na banda de 2,4 GHz para o host.
  • Mecanismo de informação de depuração do controlador: Quando ativado, o controlador pode relatar informações de log de depuração autonomamente por meio da sub-evento do Controller Debug Info para o host.

OCF: 0x15E

Parâmetro de comando Tamanho Propósito
BQR_Report_Action 1 octeto Ação para adicionar / excluir relatórios de eventos de qualidade definidos no parâmetro bqr_quality_event_mask ou limpe tudo.

0x00 - Adicionar
0x01 - Exclua
0x02 - Limpar

A Excluir limpará os relatórios de qualidade específicos da qualidade.
Clear Cleará todos os relatórios de eventos de qualidade (o parâmetro bqr_quality_event_mask pode ser ignorado).

BQR_Quality_Event_Mask 4 octetos Máscaras de bits para os relatórios de eventos de qualidade selecionados.

Bit 0: Defina para ativar o modo de monitoramento de qualidade.
Bit 1: defina para ativar o evento LSTO abordando (para ACL/(e) SCO/ISO).
Bit 2: Defina para ativar o evento agitado de áudio A2DP.
Bit 3: Defina para ativar (e) Evento SCO Voice Chappy.
Bit 4: defina para ativar o evento de inflamação raiz.
Bit 5: defina para ativar o modo de monitoramento de energia.
Bit 6: defina para ativar o evento de áudio.
Bit 7: defina para ativar o evento de falha de conexão.
Bit 8 ~ 14: Reservado.
Bit 15: defina para ativar eventos de qualidade específicos do fornecedor.
Bit 16: Defina para ativar o rastreamento da mensagem LMP/LL.
Bit 17: Defina para ativar o rastreamento de agendamento Bluetooth Multi-Link/Coex.
Bit 18: defina para ativar o mecanismo de informação de depuração do controlador.
Bit 19 ~ 30: Reservado.
Bit 31: defina para ativar rastreamento específico do fornecedor.

BQR_Minimum_Report_Interval 2 octetos Defina o intervalo de tempo mínimo dos relatórios de eventos de qualidade para os eventos de qualidade selecionados. O firmware do controlador não deve relatar o próximo evento dentro do intervalo de tempo definido. A configuração de intervalo deve ser respectiva e dedicada aos eventos de qualidade (s) que estão sendo adicionados.

Unidade: MS
Padrão: 0 (sem limitação para o intervalo.)
Faixa: 0 ~ 65535 ms

BQR_Vendor_Specific_Quality_Event_Mask 4 octetos Máscaras de bits para os relatórios de eventos de qualidade específicos do fornecedor selecionados.
Este parâmetro é válido apenas quando o bit 15 de BQR_Quality_Event_Mask estiver definido.

Bit 0 ~ 31: Reservado.

BQR_Vendor_Specific_Trace_Mask 4 octetos Máscaras de bits para os relatórios de rastreamento específicos do fornecedor selecionados.
Este parâmetro é válido apenas quando o bit 31 de BQR_Quality_Event_Mask estiver definido.

Bit 0 ~ 31: Reservado.

Um evento completo de comando será gerado para este comando.

Retornar parâmetro Tamanho Propósito
Status 1 octeto Comando status completo
Current_Quality_Event_Mask 4 octetos Indica a configuração atual da máscara de bits.
Bit 0: o modo de monitoramento de qualidade está ativado.
Bit 1: Aproximando -se de relatórios de eventos LSTO está ativado.
BIT 2: A2DP Relatórios de eventos agitados de áudio está ativado.
Bit 3: (e) Sco Voice Chappy Event Relatórios está ativado.
Bit 4: Relatórios de eventos de inflamação raiz estão ativados.
Bit 5: o modo de monitoramento de energia está ativado.
Bit 6: LE Audio Choppy Event Reporting está ativado.
Bit 7: Connect Fail Event.
Bit 8 ~ 14: Reservado.
Bit 15: Os relatórios de eventos de qualidade específicos do fornecedor estão ativados.
BIT 16: O rastreamento da mensagem LMP/LL está ativado.
BIT 17: O rastreamento de agendamento Bluetooth Multi-Link/Coex está ativado.
Bit 18: o mecanismo de informação de depuração do controlador está ativado.
Bit 19 ~ 30: Reservado.
BIT 31: O rastreamento específico do fornecedor está ativado.
Current_Vendor_Specific_Quality_Event_Mask 4 octetos Indica a configuração atual da máscara de bits.
Current_Vendor_Specific_Trace_Mask 4 octetos Indica a configuração atual da máscara de bits.

Comando de buffer de áudio dinâmico

O buffer de áudio dinâmico reduz as falhas de áudio, alterando o tamanho do buffer de áudio no controlador Bluetooth com base em vários cenários.

OCF: 0x15f

Obtenha capacidade de tempo de buffer de áudio

Sub OCF: 0x01

Use este comando para obter a capacidade de tempo do buffer de áudio do controlador Bluetooth.

Parâmetro de comando Tamanho Propósito
N / D Lista de parâmetros de comando vazia

Um evento completo de comando será gerado para este comando.

Retornar parâmetro Tamanho Propósito
Status 1 octeto Comando status completo
Dynamic_Audio_Buffer_opcode 1 octeto 0x01 - Obtenha tempo de buffer de áudio
Audio_Codec_Type_Supported 4 octetos Máscaras de bits para os tipos de codec suportados
Bit 0 - SBC
Bit 1 - AAC
Bit 2 - Aptx
Bit 3 - Aptx HD
Bit 4 - LDAC
Bit 5-31 são reservados
Audio_Codec_Buffer_Default_Time_For_Bit_0 2 octetos Hora do buffer padrão do tipo de codec bit 0 especificado em audio_codec_type_supported.
Este valor deve ser 0 se o tipo de codec bit 0 não for suportado.
Unidade: MS
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 2 octetos Tempo máximo de buffer do tipo de codec bit 0 especificado em audio_codec_type_supported.
Este valor deve ser 0 se o tipo de codec bit 0 não for suportado.
Unidade: MS
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 2 octetos Tempo mínimo de buffer do tipo de codec bit 0 especificado em AUDIO_CODEC_TYPE_SUPPORTED.
Este valor deve ser 0 se o tipo de codec bit 0 não for suportado.
Unidade: MS
Audio_Codec_Buffer_Default_Time_For_Bit_1 2 octetos Hora do buffer padrão do tipo Bit 1 Codec especificado em AUDIO_CODEC_TYPE_SUPPORTED.
Este valor deve ser 0 se o tipo de codec bit 1 não for suportado.
Unidade: MS
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 2 octetos Tempo máximo de buffer do tipo Bit 1 Codec especificado em AUDIO_CODEC_TYPE_SUPPORTED.
Este valor deve ser 0 se o tipo de codec bit 1 não for suportado.
Unidade: MS
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 2 octetos Tempo mínimo do buffer do tipo Bit 1 Codec especificado em AUDIO_CODEC_TYPE_SUPPORTED.
Este valor deve ser 0 se o tipo de codec bit 1 não for suportado.
Unidade: MS
...... ...... ......
Audio_Codec_Buffer_Default_Time_For_Bit_31 2 octetos Hora do buffer padrão do tipo Bit 31 Codec especificado em AUDIO_CODEC_TYPE_SUPPORTED.
Este valor deve ser 0 se o tipo de codec de bit 31 não for suportado.
Unidade: MS
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 2 octetos Tempo máximo de buffer do tipo 31 de codec especificado em AUDIO_CODEC_TYPE_SUPPORTED.
Este valor deve ser 0 se o tipo de codec de bit 31 não for suportado.
Unidade: MS
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 2 octetos Tempo mínimo do buffer do tipo 31 de codec especificado em audio_codec_type_supported.
Este valor deve ser 0 se o tipo de codec de bit 31 não for suportado.
Unidade: MS

Defina o tempo de buffer de áudio

Sub OCF: 0x02

Use este comando para definir o tempo de buffer de áudio para o controlador Bluetooth.

Parâmetro de comando Tamanho Propósito
Audio_Codec_Buffer_Time 2 octetos Solicitado tempo de buffer de áudio para o codec usado atual.
Unidade: MS

Um evento completo de comando será gerado para este comando.

Retornar parâmetro Tamanho Propósito
Status 1 octeto Comando status completo
Dynamic_Audio_Buffer_opcode 1 octeto 0x02 - Defina o tempo de buffer de áudio
Audio_Codec_Buffer_Time 2 octetos Tempo atual de buffer de áudio no controlador Bluetooth.
Unidade: MS

Evento HCI (específico do fornecedor)

Os eventos HCI específicos do fornecedor são necessários em alguns casos. Consulte a Figura 5.4 na página 1897 da especificação BT Core 5.2. O parâmetro de evento 0 sempre conterá o primeiro código de sub-evento, com base no qual o restante do evento HCI é decodificado.

Parâmetro de evento Tamanho Propósito
HCI_vendor_specific_event_code 1 octeto 0xFF
sub_event_code 1 octeto Um código de sub-evento terá 1 octeto em tamanho, o byte imediatamente após o comprimento do parâmetro no pacote de eventos HCI.

Limite de armazenamento Sub-evento de violação

Este evento indica que o limite de armazenamento foi violado.

Código do Sub-evento = 0x54

Parâmetro sub-evento Tamanho Propósito
Nenhum

Sub-evento de mudança de estado de multi-advertência

Este evento indica que uma instância de publicidade mudou seu estado. No momento, este evento é usado apenas para indicar qual instância de publicidade foi interrompida como resultado de uma conexão.

Código do Sub-evento = 0x55

Parâmetro sub-evento Tamanho Propósito
Advertising_instance 1 octeto Identifica a instância de publicidade específica
Os valores válidos são 0 através max_advt_instances -1
State_Change_Reason 1 octeto 0x00: conexão recebida
Connection_handle 2 octetos Identifica a conexão que fez com que a instância advt fosse desativada (0xffff se inválido)

Sub-evento de rastreamento de anúncios

Este evento indica quando um anunciante é encontrado ou perdido.

Código do Sub Evento = 0x56

Parâmetro sub-evento Tamanho Propósito
APCF_Filter_Index 1 octeto Índice de filtro (0, max_filter -1)
Advertiser_State 1 octeto 0x00: anunciante encontrado
0x01: Anunciante perdido
Advt_Info_Present 1 octeto 0x00: Informações do anunciante ( Advt_Info ) presentes
0x01: Informações do anunciante ( Advt_Info ) não presentes
Advertiser_Address 6 octetos Endereço público ou aleatório
Advertiser_Address_Type 1 octeto 0x00: endereço público
0x01: endereço aleatório
Advt_Info Tx_Pwr[0] : 1 octeto
RSSI[0] : 1 octeto
Timestamp[0] : 2 octetos
Adv packet_len[0] : 1 octeto
Adv_packet[0] : Adv_packet_len Octes
Scan_data_resp_len[0] : 1 octeto
Scan_data_resp[0] : Scan_data_resp OCTETOS

Sub-evento de informações de depuração do controlador

Este evento é usado por um controlador para fornecer informações de depuração binária a um host.

Sub-evento Código = 0x57

Parâmetro sub-evento Tamanho Propósito
debug_block_byte_offset_start 2 octetos Debug Block Byte Offset desde o início
last_block 1 octeto 0x00: mais dados de depuração presentes
0x01: último bloco binário; Não há mais dados de depuração
cur_pay_load_sz 2 octetos Tamanho do bloco binário em um evento atual
Debug_Data Variável Dados de depuração de cur_payload_sz

Sub-evento do relatório de qualidade Bluetooth

Este evento indica um dos seguintes: Ocorreu um evento de qualidade Bluetooth, o controlador enviou o rastreamento da mensagem LMP/LL e o rastreamento de agendamento multi-link/coex bluetooth, ou o controlador despejou dados de informações de depuração.

Parâmetro sub-evento Tamanho Propósito
Quality_Report_Id 1 octeto 0x01: Relatórios de qualidade no modo de monitoramento.
0x02: Aproximando -se de Lsto.
0x03: áudio A2DP Chappy.
0x04: (e) Sco Voice Chappy.
0x05 ~ 0x06: Reservado.
0x07: le áudio agitado.
0x08: Connect Fail.
0x09 ~ 0xFF: Reservado.
Packet_Types 1 octeto 0x01: id
0x02: nulo
0x03: Enquete
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: reservado
0x51: ISO Packet
0x52 ~ 0xff: reservado
Connection_Handle 2 octetos ACL/(E) SCO/ISO ISO INSULTRA.
Connection_Role 1 octeto Desempenhando o papel da conexão.
0x00: Central
0x01: periférico
0x02 ~ 0xFF: Reservado.
TX_Power_Level 1 octeto Nível de potência de transmissão atual para a conexão especificada_handle.

Este valor deve ser o mesmo que a resposta do controlador ao comando hci_read_transmit_power_level hci.

RSSI 1 octeto [em DBM]

RSSI (RSSI) Valor da força de força do sinal (RSSI) para a conexão especificada_handle.
Este valor deve ser um valor absoluto de força do sinal do receptor.
Intervalo: -127 a +20

SNR 1 octeto [em db]

Valor da relação sinal-ruído (SNR) para a conexão especificada_handle.
O controlador deve fornecer o SNR médio de todos os canais usados ​​pelo link.

Unused_AFH_Channel_Count 1 octeto Indica o número de canais não utilizados em AFH_CHANNEL_MAP.
0x4f ~ 0xff: reservado.
AFH_Select_Unideal_Channel_Count 1 octeto Indica o número de canais que são interferidos e têm má qualidade, mas ainda são selecionados para AFH.
O número mínimo de canais permitidos pela especificação Bluetooth é 20, portanto, mesmo que todos os 79 canais sejam interferidos e tenham má qualidade, o controlador ainda precisa escolher pelo menos 20 canais para AFH.
LSTO 2 octetos Configuração atual do tempo limite da supervisão do link.
Tempo = n * 0,625 ms
Intervalo de tempo: 0,625 ms a 40,9 s
Connection_Piconet_Clock 4 octetos Relógio Piconet para o Connection_handle especificado.
Este valor deve ser o mesmo que a resposta do controlador ao comando hci_read_clock hci com parâmetro "que_clock" de 0x01 (relógio Piconet).
Unidade: N * 0,3125 ms (1 relógio Bluetooth)
Retransmission_Count 4 octetos O número de retransmissões desde o último evento.
Esta contagem será redefinida após relatar ao host.
No_RX_Count 4 octetos Sem contagem de RX desde o último evento.
A contagem aumenta quando nenhum pacote é recebido no horário programado ou o pacote recebido é corrompido.
Esta contagem será redefinida após relatar ao host.
NAK_Count 4 octetos Nak (reconhecimento negativo) contam desde o último evento.
Esta contagem será redefinida após relatar ao host.
Last_TX_ACK_Timestamp 4 octetos Timestamp do último TX ACK. É baseado no relógio Bluetooth do Central Piconet (CLK).
Unidade: N * 0,3125 ms (1 relógio Bluetooth)
Flow_Off_Count 4 octetos O número de vezes que o controlador recebe fluxo (parada) desde o último evento.
Esta contagem será redefinida após relatar ao host.
Last_Flow_On_Timestamp 4 octetos Timestamp do último fluxo (GO). É baseado no relógio Bluetooth do Central Piconet (CLK).
Unidade: N * 0,3125 ms (1 relógio Bluetooth)
Buffer_Overflow_Bytes 4 octetos [In Byte]

Contagem de transbordamento de buffer desde o último evento.
O controlador conta quantos bytes de dados são retirados.
Esta contagem será redefinida após o relatório ao host.

Buffer_Underflow_Bytes 4 octetos [In Byte]

Contagem de subfluxo de buffer desde o último evento.
Esta contagem será redefinida após o relatório ao host.

bdaddr 6 octetos Endereço do dispositivo remoto
cal_failed_item_count 1 octeto A contagem de itens com falha na calibração
TX_Total_Packets 4 octetos O número de pacotes que são enviados.
TX_UnAcked_Packets 4 octetos O número de pacotes que não recebem um reconhecimento.
Esta contagem é redefinida após se reportar ao host.
TX_Flushed_Packets 4 octetos O número de pacotes que não são enviados pelo seu ponto de descarga.
Esta contagem é redefinida após se reportar ao host.
TX_Last_Subevent_Packets 4 octetos O número de pacotes que vinculam a camada transmite um PDU de dados CIS no último subevent de um evento CIS.
Esta contagem é redefinida após se reportar ao host.
O valor é zero se não houver valor válido para o link.
CRC_Error_Packets 4 octetos O número de pacotes recebidos com erro de CRC desde o último evento.
Esta contagem é redefinida após se reportar ao host.
RX_Duplicate_Packets 4 octetos O número de pacotes duplicados (retransmissão) recebidos desde o último evento.
Esta contagem é redefinida após se reportar ao host.
Parâmetro específico do fornecedor (Parâmetro Comprimento total - TBD) * Octetos Para o fornecedor do controlador obter mais parâmetros específicos do fornecedor.

Sub-evento Código = 0x58 [Quality_report_id = 0x05, evento de inflamação raiz]

Este evento indica que o Bluetooth HAL ou o controlador encontrou um erro fatal e precisa de pilha Bluetooth para gravar essa situação e reiniciar. O controlador deve enviar uma pilha root_inflammation_event para o Bluetooth antes de enviar o primeiro fragmento dos eventos de informações de depuração em qualquer caso.

O parâmetro ERROR_CODE contém um código de erro relatado no HAL/Controller, 0 se for um erro específico do fornecedor do chipset. O Vendor_Specific_error_code contém um código de erro específico do fornecedor do chipset do HAL/Controller. Ele deve definir como 0 se o parâmetro error_code não for 0. Os parâmetros error_code e vendor_specific_error_code não devem ser 0.

Parâmetro sub-evento Tamanho Propósito
Quality_Report_Id 1 octeto 0x00 ~ 0x04: Reservado.
0x05: inflamação da raiz.
0x06 ~ 0xFF: Reservado.
Error_Code 1 octeto 0x00: o código de erro específico do fornecedor do chipset está incluído.
0x01 ~ 0xff: falha do controlador ocorreu. Consulte a especificação Bluetooth [VOL 2] Parte D, códigos de erro para uma lista de códigos e descrições de erro.
Vendor_Specific_Error_Code 1 octeto 0x00: nenhum código de erro específico do fornecedor do chipset está incluído.
0x01 ~ 0xFF: Código de erro específico do fornecedor do chipset.
Parâmetro específico do fornecedor (Parâmetro Comprimento total - 4) * Octetos Para o fornecedor do controlador obter mais parâmetros específicos do fornecedor.
Parâmetro sub-evento Tamanho Propósito
Quality_Report_Id 1 octeto 0x00 ~ 0x10: Reservado.
0x11: rastreamento da mensagem LMP/LL.
0x12: rastreamento de agendamento multi-link/coex bluetooth/coex.
0x13: despejo de dados de informações de depuração do controlador.
0x14 ~ 0xFF: Reservado.
Connection_Handle 2 octetos Identificador de conexão.
Parâmetro específico do fornecedor (Parâmetro Comprimento total - 4) * Octetos Formato específico do fornecedor do rastreamento da mensagem LMP, Bluetooth Multi-Link/Coex Scheduling Trace e Data Information Data Dump.

Suporte multi-advertido

Os objetivos do suporte a vários advertências são os seguintes:

  • Capacidade de suportar vários anúncios ( max_advt_instances )
  • Diferentes poderes de transmissão para permitir uma faixa variável
  • Conteúdo de publicidade diferente
  • Uma resposta individualizada para cada anunciante
  • Privacidade (não rastreável) para cada anunciante
  • Conectável

Para manter essa especificação próxima aos padrões existentes, são fornecidos os seguintes comandos específicos do fornecedor. Eles são derivados da especificação Bluetooth Core 4.1.

LE_MULTI_ADVT_COMMAND

OCF: 0x154

Parâmetro de comando Tamanho Propósito
Multi_advt_opcode 1 octeto 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

Um evento completo de comando será gerado para este comando.

Retornar parâmetro Tamanho Propósito
Status 1 octeto Comando status completo
Multi_advt_opcode 1 octeto 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

Referência de base: especificação Bluetooth Core 4.1, página 964 (LE Set Publicidade Parâmetro Comando)

Sub OCF: 0x01

Parâmetro de subcomando Tamanho Propósito
Advertising_Interval_Min Por espec Por espec
Advertising_Interval_Max Por espec Por espec
Advertising_Type Por espec Por espec
Own_Address_Type Por espec Por espec
Own_Address Por espec Por espec
Direct_Address_Type Por espec Por espec
Direct_Address Por espec Por espec
Advertising_Channel_Map Por espec Por espec
Adverstising_Filter_Policy Por espec Por espec
Advertising_Instance 1 octeto Especifica a aplicabilidade dos parâmetros acima para uma instância
Tx_power 1 octeto Potência de transmissão
Unidade - em DBM (número inteiro assinado)
Intervalo (-70 a +20)

O parâmetro Own_Address pode ser um endereço configurado no host no momento da configuração desta instância de multi-advertência. Isso fornece a capacidade de ter um endereço privado resolvível no momento da transmissão do primeiro farol. O anúncio em uma instância continuará independentemente da conexão. A pilha BT do host pode emitir um comando para iniciar o anúncio em uma instância, Post Connection.

Um evento completo de comando será gerado para este comando, conforme especificado na especificação Bluetooth Core 4.1, de acordo com o comando acima. O controlador responderá com um código não sucedido (parâmetro inválido) se a instância de publicidade ou os parâmetros Tx_Power forem inválidos.

Retornar parâmetro Tamanho Propósito
Status 1 octeto Comando status completo
Multi_advt_opcode 1 octeto 0x01 [ Set_Advt_Param_Multi_Sub_Cmd]

LE_MULTI_ADVT_COMMAND: SET_ADVT_DATA_MULTI_SUB_CMD

Referência base: especificação Bluetooth Core 4.1, página 969 (LE Set Publisity Data Command)

Sub OCF: 0x02

Parâmetro de subcomando Tamanho Propósito
Advertising_Data_Length Por espec Por espec
Advertising_Data Por espec Por espec
Advertising_Instance 1 octeto Especifica a aplicabilidade dos parâmetros acima para uma instância

Um evento completo de comando será gerado para este comando, conforme especificado na especificação Bluetooth Core 4.1, de acordo com o comando acima. O controlador responderá com um código não-sucesso se a instância de publicidade ou os parâmetros Tx_Power forem inválidos.

Retornar parâmetro Tamanho Propósito
Status 1 octeto Comando status completo
Multi_advt_opcode 1 octeto 0x02 [ Set_Advt_Data_Multi_Sub_Cmd]

LE_MULTI_ADVT_COMAND: SET_SCAN_RESP_DATA_MULTI_SUB_CMD

Referência de base: especificação Bluetooth Core 4.1, página 970 (comando de dados de resposta do conjunto de varredura)

Sub OCF: 0x03

Parâmetro de subcomando Tamanho Propósito
Scan_Response_Data_Length Por espec Por espec
Scan_Response_Data Por espec Por espec
Advertising_Instance 1 octeto Especifica a aplicabilidade dos parâmetros acima para uma instância

Um evento completo de comando será gerado para este comando, conforme especificado na especificação Bluetooth Core 4.1, de acordo com o comando acima. O controlador responderá com um código não-sucesso (parâmetro inválido) se a instância de publicidade ou os parâmetros Tx_Power forem inválidos.

Retornar parâmetro Tamanho Propósito
Status 1 octeto Comando status completo
Multi_advt_opcode 1 octeto 0x03 [ Set_Scan_Resp_Data_Multi_Sub_Cmd]

LE_MULTI_ADVT_COMMAND: SET_RANDOM_ADDR_MULTI_SUB_CMD

Referência base: especificação Bluetooth Core 4.1, página 963 (LE Set Random Endereço Comando)

Sub OCF: 0x04

Parâmetro de subcomando Tamanho Propósito
Endereço aleatório Por espec Por espec
Advertising_Instance 1 octeto Especifica a aplicabilidade dos parâmetros acima para uma instância

Um evento completo de comando será gerado para este comando.

Retornar parâmetro Tamanho Propósito
Status 1 octeto Comando status completo
Multi_advt_opcode 1 octeto 0x04 [ Set_Random_Addr_Multi_Sub_Cmd]

LE_MULTI_ADVT_COMMAND: SET_ADVT_ENABLE_MULTI_SUB_CMD

Referência de base: especificação Bluetooth Core 4.1, página 971 (LE Set Anuncie Enable Command nessa especificação principal)

OCF: 0x05

Parâmetro de subcomando Tamanho Propósito
Advertising_Enable 1 octeto Um valor de 1 significa ativar. Qualquer outro valor significa desativar.
Advertising_Instance 1 octeto Especifica a aplicabilidade dos parâmetros acima em uma instância. Instância 0 significa uma instância HCI padrão.

Um evento completo de comando será gerado para este comando.

Retornar parâmetro Tamanho Propósito
Status 1 octeto Comando status completo
Multi_advt_opcode 1 octeto 0x05 [ Set_Advt_Enable_Multi_Sub_Cmd]

Resolução descarregada do endereço privado

Esse recurso resolve um endereço privado no firmware ou hardware do controlador, que fornece os seguintes benefícios:

  • Latência envolvida com o host na resolução de um endereço privado
  • Economizando o poder, abstendo -se de acordar o host

Le_set_rpa_timeout

OCF: 0x15C

Parâmetro de comando Tamanho Propósito
LE_local_IRK 16 octeto O dispositivo local Irk usado para gerar os endereços resolvíveis aleatórios.
tRPA_min 2 octetos O tempo de tempo de geração RPA mínima em segundos. O controlador deve gerar novos endereços resolvíveis para quaisquer eventos de publicidade/digitalização/conexão no ou após esse tempo limite.
Faixa válida: 300-1800
tRPA_max 2 octetos O tempo limite máximo de geração de RPA em segundos. O controlador deve gerar novos endereços resolvíveis para quaisquer eventos de publicidade/varredura/conexão no ou antes deste tempo limite.
Faixa válida: tRPA_min -1800
Retornar parâmetro Tamanho Propósito
Status 1 octeto O status do comando.

Valores de status HCI sugeridos:
0x00 sucesso
0x01 Comando desconhecido (se não for suportado)
0x12 parâmetros de comando inválidos (se algum parâmetros estiver fora do intervalo especificado)

LE_RPA_OFFLOOFLOAD_COMAND

OCF: 0x155

Parâmetro de comando Tamanho Propósito
RPA_offload_opcode 1 octeto 0x1 - Ativar recurso específico do cliente
0x2 - Adicione Irk à lista
0x3 - Remova a Irk da lista
0x4 - Lista de Irk Clear
0x5 - Leia a entrada da lista IRK

Um evento completo de comando será gerado para este comando.

Retornar parâmetro Tamanho Propósito
Status 1 octeto Comando status completo
Event_RPA_offload_opcode 1 octeto 0x1 - Ativar recurso específico do cliente
0x2 - Adicione Irk à lista
0x3 - Remova a Irk da lista
0x4 - Lista de Irk Clear
0x5 - Leia a entrada da lista IRK

LE_RPA_OFFLOAD: enable_cust_specific_sub_command

Sub OCF: 0x01

Parâmetro de subcomando Tamanho Propósito
enable_customer_specific_feature_set 1 octeto 0x01 - Ativar recurso RPA descarregado
0x00 - Desativar o recurso RPA descarregado

É necessário que o RPA descarregue o host, com base na capacidade do chip. Consulte o LE_Get_Vendor_Capabilities_Command . Cada chip pode ter um max_irk_list_sz variado no firmware.

Um evento completo de comando será gerado para este comando.

Retornar parâmetro Tamanho Propósito
Status 1 octeto Comando status completo
Event_cust_specific_feature_opcode 1 octeto 0x01 [Ativar recurso específico do cliente]

LE_RPA_OFFLOAD: add_irk_to_list_sub_command

Sub OCF: 0x02

Parâmetro de subcomando Tamanho Propósito
LE_IRK 16 octetos Le Irk (1º byte LSB)
Address_Type 1 octeto 0: endereço público
1: endereço aleatório
LE_Device_Address 6 octetos Endereço público ou aleatório associado à IRK (1º byte LSB)

Um evento completo de comando será gerado para este comando.

Retornar parâmetro Tamanho Propósito
Status 1 octeto Comando status completo
Event_cust_specific_feature_opcode 1 octeto 0x02 [Adicione Irk à lista]
LE_IrkList_AvailableSpaces 1 octeto Entradas de lista IRL disponível após a operação atual

LE_RPA_OFFLOAD: RETROTIVO_IRK_TO_LIST_SUB_COMMAND

Sub OCF: 0x03

Parâmetro de subcomando Tamanho Propósito
Address_Type 1 octeto 0: endereço público
1: endereço aleatório
LE_Device_Address 6 octetos Endereço público ou aleatório que se associa à Irk

Um evento completo de comando será gerado para este comando.

Retornar parâmetro Tamanho Propósito
Status 1 octeto Comando status completo
Event_cust_specific_feature_opcode 1 octeto 0x03 [Remova Irk da lista]
LE_IrkList_AvailableSpaces 1 octeto Entradas de lista IRL disponível após a operação atual

LE_RPA_OFFLOAD: CLEAR_IRK_LIST_SUB_COMAND

Sub OCF: 0x04

Parâmetro de subcomando Tamanho Propósito
Nenhum

Um evento completo de comando será gerado para este comando.

Retornar parâmetro Tamanho Propósito
Status 1 octeto Comando status completo
Event_cust_specific_feature_opcode 1 octeto 0x04 [Clear IRK List]
LE_IrkList_AvailableSpaces 1 octeto Entradas da lista IRL disponível após a operação atual [ max_irk_list_sz]

LE_RPA_OFFLOAD: read_irk_list_sub_command

Sub OCF: 0x05

Parâmetro de subcomando Tamanho Propósito
LE_read_IRK_list_entry-index 1 octeto Índice da lista IRK [0, max_irk_list_sz-1]

Um evento completo de comando será gerado para este comando.

Retornar parâmetro Tamanho Propósito
Status 1 octeto Comando status completo
Event_cust_specific_feature_opcode 1 octeto 0x05 [Leia a entrada da lista IRK]
LE_Read_IRK_List_entry 1 octeto Índice da IRK que o host deseja ler de volta (o tamanho máximo da lista IRK é 32)
LE_IRK 16 octetos Valor Irk
Address_Type 1 octeto 0: endereço público
1: endereço aleatório
LE_Device_Address 6 octetos Endereço público ou aleatório associado à Irk
LE_Resolved_Private_Address 6 octetos Endereço privado resolvido resolvido