O Android 16 lançou o módulo de alcance. Essa especificação de protocolo e payload define a sequência de mensagens e o payload da comunicação fora de banda (OOB) usada para trocar configurações de alcance e iniciar e interromper o alcance entre o iniciador e o dispositivo de resposta que participam do alcance. O Android 17 introduz a versão 3 dessa especificação.
Esta página permite que provedores de dispositivos que não são Android implementem essa especificação para que os dispositivos deles sejam compatíveis com dispositivos Android.
Uma implementação dessa especificação na Linguagem de descrição de pacotes (PDL) do Google está disponível no GitHub. Com essa implementação, o compilador de PDL pode gerar código de serialização e desserialização para as mensagens definidas nessa especificação. Essa especificação é compatível com várias linguagens de destino, incluindo C++, Rust e Java.
Novidades da versão 3
A versão 3 da especificação OOB apresenta as seguintes mudanças:
- Notificação de movimento:uma mensagem que o dispositivo do anunciante usa para notificar o dispositivo iniciador sobre uma mudança de movimento.
- Configuração de intervalo:inclui um novo campo
Motion supportpara informar ao iniciador que notifique o respondente sobre qualquer mudança no movimento periférico do respondente. - Adicione suporte a novas tecnologias de PD Wi-Fi em Capacidade de alcance e Configuração de alcance.
- Descontinuar os campos
Supported BandwidtheSupported number of Receive chainsemWi-Fi NAN RTT Ranging Capability.
Endianness
A menos que especificado de outra forma, todos os campos numéricos de vários bytes nas mensagens estão em ordem little-endian.
Mensagens e sequência de mensagens
Nesta seção, descrevemos as mensagens e a sequência da troca de mensagens.
A tabela a seguir mostra todas as mensagens presentes na troca OOB:
| Mensagem | ID da mensagem |
|---|---|
Ranging Capability Request |
0x0 |
Ranging Capability Response |
0x1 |
Ranging Configuration |
0x2 |
Ranging Configuration Response (opcional) |
0x3 |
Stop Ranging |
0x6 |
Stop Ranging Response (opcional) |
0x7 |
Motion Notification |
0x8 |
As figuras 1 e 2 ilustram como a troca de mensagens é acionada para diferentes canais de comunicação.
Para canais de comunicação baseados em conexão, como BLE GATT, a troca de mensagens começa com o dispositivo iniciador enviando Ranging Capability Request para o dispositivo de resposta. O dispositivo do atendente responde enviando Ranging
Capability Response, conforme mostrado na Figura 1:
Figura 1. Troca de mensagens fora de banda usando um canal de comunicação baseado em conexão.
Para canais de comunicação baseados em publicidade, o dispositivo do respondente começa anunciando Ranging Capability Response. Nesse caso, o dispositivo iniciador
não envia Ranging Capability Request. Em vez disso, depois de detectar o
anúncio, quando o dispositivo iniciador (scanner inicial) estiver pronto, ele
vai responder anunciando Ranging Configuration como a primeira mensagem, conforme mostrado
na Figura 2:
Figura 2. Troca de mensagens fora de banda usando uma comunicação baseada em publicidade.
O restante da troca de mensagens é igual nos dois casos. O dispositivo de resposta
começa a variar imediatamente após receber a mensagem Ranging Configuration.
O dispositivo de resposta para de medir o alcance depois de receber ou detectar a mensagem Stop
Ranging.
No fluxo baseado em conexão, o dispositivo de resposta preenche os recursos apenas das tecnologias de alcance solicitadas na mensagem Ranging Capability Request. Já no fluxo de publicidade, o dispositivo de resposta precisa listar todos os recursos porque não há uma mensagem de solicitação de recursos anterior.
O dispositivo iniciador presume que vai receber apenas uma resposta para qualquer mensagem
de solicitação enviada. O dispositivo de resposta não pode fazer nenhuma dessas suposições para
poder responder a qualquer solicitação em qualquer ordem. Isso verifica se o dispositivo de resposta
pode responder a várias mensagens Ranging Capability Request
consecutivas ou a qualquer outra mensagem fora de ordem do dispositivo iniciador.
Transição tecnológica
A versão OOB permite que os dispositivos façam a transição dinâmica entre diferentes tecnologias de alcance durante uma sessão. Para facilitar isso, o iniciador pode:
- Envie várias mensagens
Ranging Configurationpara iniciar novas tecnologias. - Envie várias mensagens
Stop Rangingpara interromper as tecnologias ativas.
A ordem dessas mensagens varia de acordo com o esquema de transição compatível com o responder:
- Interromper antes de criar:o iniciador só pode fazer a transição para uma nova tecnologia
interrompendo a primeira com uma mensagem
Stop Rangingantes de iniciar a segunda com uma mensagemRanging Configuration. - Make-before-break:o iniciador pode começar a usar uma nova tecnologia com uma mensagem
Ranging Configurationantes de interromper as tecnologias atuais com uma mensagemStop Ranging.
O responder precisa implementar o suporte a um desses esquemas de transição de acordo com o valor do campo supported technology transitioning no Ranging Capability Response.
IDs de tecnologia de alcance
Os IDs das tecnologias de alcance estão listados na tabela a seguir:
| Tecnologia de alcance | ID |
|---|---|
| UWB | 0x0 |
| CS | 0x1 |
| RTT do NAN Wi-Fi | 0x2 |
| RSSI | 0x3 |
| DP do Wi-Fi | 0x4 |
| RFU | 0x5 - 0xFF |
Esses IDs são usados nas tabelas a seguir, em que o ID da tecnologia de alcance é obrigatório. Para campos que contêm a tecnologia de alcance bitfield, um bit correspondente ao índice do ID da tecnologia é definido quando essa tecnologia é incluída no bitfield.
Por exemplo, o RSSI tem um valor de ID 3, mas se ele for incluído no campo de bits da tecnologia de alcance, o bit com a posição do ID (3) precisará ser ativado (o primeiro bit está na posição 0), o que torna o valor resultante do campo de bits 0x8. Se UWB e RSSI estiverem incluídos, o valor do campo de bits será 0x0A (bits 0 e 3 ativados).
Formato de mensagem
Cada mensagem consiste em um cabeçalho e um payload.
Figura 3. Formato da mensagem.
Cabeçalho
Tamanho:2 bytes
Descrição:comum a todas as mensagens, o cabeçalho é a primeira parte que entra em uma mensagem. O cabeçalho contém uma versão e o ID do tipo de mensagem. O campo "version" especifica a versão desta especificação a que o conteúdo da mensagem está em conformidade. Para mais informações sobre como o controle de versões é usado entre dispositivos em versões diferentes, consulte Controle de versões. O cabeçalho permanece compatível com versões anteriores em diferentes versões, o que significa que o caso de uso sempre pode analisá-lo para determinar a versão e o ID da mensagem.
O cabeçalho está resumido na tabela a seguir:
| Octet | Tipo de dado | Descrição | Valor |
|---|---|---|---|
| 0 | uint8 | Versão |
|
| 1 | uint8 | ID da mensagem |
|
Payload
Tamanho:varia (depende do tipo de mensagem)
Descrição:o payload é a última parte da mensagem, depois do cabeçalho. O payload depende do tipo da mensagem. O formato do payload de cada tipo de mensagem individual é definido nas seções a seguir.
Payload da mensagem de solicitação de capacidade de alcance
Tamanho (tamanho do cabeçalho não incluído): 2 bytes
Descrição:enviado pelo dispositivo iniciador para iniciar a troca de mensagens.
Essa mensagem é opcional quando o canal de comunicação é baseado em publicidade. Nesse caso, o dispositivo do usuário precisa anunciar uma mensagem Ranging
Capability Response como primeira etapa. O dispositivo iniciador (scanner inicial)
lê o anúncio e responde diretamente com uma mensagem Ranging Capability Request, evitando a necessidade dessa mensagem.
O payload da mensagem Ranging Capability Request está resumido na tabela a seguir:
| Octet | Tipo de dado | Descrição | Valor |
|---|---|---|---|
| 0 | uint8*2 | Bitmask das tecnologias de alcance solicitadas |
|
Payload da mensagem de resposta da capacidade de alcance
Tamanho (tamanho do cabeçalho não incluído): varia (parte comum de 2 bytes mais o tamanho de cada byte de tecnologia de alcance incluído).
Descrição:enviada pelo participante como resposta a uma mensagem Ranging Capability
Request. O payload da mensagem consiste na parte comum e em partes específicas da tecnologia de alcance (BLE CS, Wi-Fi NAN RTT, BLE RSSI), conforme mostrado nas tabelas a seguir. Cada parte específica da tecnologia de alcance só precisa ser adicionada se o dispositivo de resposta for compatível com ela e se ela for solicitada na mensagem Ranging Capability Request. No caso de um canal de comunicação de publicidade, todas as tecnologias de alcance compatíveis precisam ser incluídas.
O payload de mensagem Ranging Capability Response comum é resumido na tabela a seguir:
| Octet | Tipo de dado | Descrição | Valor |
|---|---|---|---|
| 0 | uint8*2 | Bitmask de tecnologias de alcance compatíveis. Indica o conjunto de recursos de tecnologias de alcance que seguem no restante do payload. |
|
| 2 | matriz de bytes | Bytes de capacidade de tecnologia de intervalo. | Blocos repetidos de structs definidos por tecnologia. |
| Varia | uint8 | Indica suporte para transição de tecnologia. |
|
| Varia | uint16 | Indica o tipo do dispositivo de resposta. |
|
O payload da mensagem UWB Ranging Capability Response está resumido na
tabela a seguir:
| Octet | Tipo de dado | Descrição | Valor |
|---|---|---|---|
| 0 | uint8 | ID da tecnologia de alcance | 0x0: UWB |
| 1 | uint8 | Tamanho | Tamanho dos bytes de recursos de UWB (incluindo os campos ID da tecnologia e Tamanho) em bytes. |
| 2 | uint8*2 | Endereço UWB | Endereço UWB do dispositivo de 2 bytes. |
| 4 | uint8*4 | Bitmask de canais compatíveis | Bitfield de canais compatíveis. O bit definido como 0 indica que não há suporte, e 1 indica que há suporte. O bit 0 corresponde ao canal 0.LSB == channel 0MSB == channel 31 |
| 8 | uint8*4 | Bitfield de índice de pré-âmbulo compatível | Bitfield de índices de preâmbulo compatíveis. O bit definido como 0 indica que não há suporte, e 1 indica que há suporte. O bit 0 corresponde ao índice de pré-âmbulo 1.LSB == preamble index 1MSB == preamble index 32 |
| 12 | uint8*4 | Bitmask de IDs de configuração compatíveis | Campo de bits dos IDs de configuração de UWB compatíveis. O bit definido como 0 indica indisponível, e 1 indica que há suporte.LSB == config Id 0MSB == config Id 31 |
| 16 | uint8*2 | Intervalo mínimo de alcance compatível | Indica o intervalo de alcance mais rápido compatível em milissegundos. Valores permitidos (em ms):
|
| 18 | uint8 | Duração mínima do intervalo aceita | Indica a menor duração de slot aceita em milissegundos. Por exemplo, se o dispositivo retornar 1 ms, presume-se que ele também seja compatível com durações de slot de 2 ms ou mais. Valores permitidos (em ms):
|
| 19 | Bitfield de função de dispositivo UWB compatível | Campo de bits das funções de UWB compatíveis. Por exemplo, se ambos forem compatíveis, o valor do campo final será 0x3.
|
O payload da mensagem BLE CS Ranging Capability Response está resumido na
tabela a seguir:
| Octet | Tipo de dado | Descrição | Valor |
|---|---|---|---|
| 0 | uint8 | ID da tecnologia de alcance | 0x1: BLE CS |
| 1 | uint8 | Tamanho | Tamanho dos bytes de recursos de CS BLE (incluindo os campos ID da tecnologia e Tamanho) em bytes. |
| 2 | uint8 | Bitmask de tipo de segurança compatível | Campo de bits dos tipos de segurança compatíveis com o BLE CS.
|
| 3 | uint8*6 | Endereço do dispositivo | O endereço do dispositivo usado para BLE CS, em ordem big-endian. |
O payload da mensagem RTT do Wi-Fi NAN Ranging Capability Response está resumido na tabela a seguir:
| Octet | Tipo de dado | Descrição | Valor |
|---|---|---|---|
| 0 | uint8 | ID da tecnologia de alcance | 0x2: Wi-Fi NAN RTT |
| 1 | uint8 | Tamanho | Tamanho dos bytes de recursos de RSSI BLE (incluindo os campos ID da tecnologia e Tamanho) em bytes. |
| 2 | uint8 | Bitmask de recursos compatíveis | Campo de bits de recursos compatíveis.
|
| 3 | uint8 | Aceita intervalos periódicos |
|
| 4 | uint8 | Largura de banda compatível | DESCONTINUADO: essas informações ajudam a derivar a precisão de alcance possível usando o NAN Wi-Fi e podem ajudar os apps a determinar se devem usar UWB, BLE CS, BLE RSSI ou NAN Wi-Fi para alcance.
|
| 5 | uint8 | Número compatível de cadeias de recebimento | DESCONTINUADO: essas informações ajudam a derivar a precisão de alcance possível usando o NAN Wi-Fi e podem ajudar os apps a determinar se devem usar UWB, BLE CS, BLE RSSI ou NAN Wi-Fi para alcance.
|
O payload da mensagem BLE RSSI Ranging Capability Response está resumido na
tabela a seguir:
| Octet | Tipo de dado | Descrição | Valor |
|---|---|---|---|
| 0 | uint8 | ID da tecnologia de alcance | 0x3: BLE RSSI |
| 1 | uint8 | Tamanho | O tamanho dos bytes de recursos de RSSI BLE (incluindo os campos ID da tecnologia e Tamanho) em bytes. |
| 2 | uint8*6 | Endereço do dispositivo | O endereço do dispositivo usado para RSSI BLE, em ordem big-endian. |
O payload da mensagem de PD do Wi-Fi Ranging Capability Response está resumido na
tabela a seguir:
| Octet | Tipo de dado | Descrição | Valor |
|---|---|---|---|
| 0 | uint8 | ID da tecnologia de alcance | 0x4: Wi-Fi PD |
| 1 | uint8 | Tamanho | O tamanho dos bytes de recursos de PD Wi-Fi (incluindo os campos ID da tecnologia e Tamanho) em bytes. |
| 2 | uint8 | Recursos compatíveis | Bitmap
|
| 3 | uint8 | PansMode | Bitmap
|
| 4 | uint8*6 | Endereço do dispositivo | O endereço do dispositivo usado para PD Wi-Fi, em ordem big-endian. |
| 10 | uint8*2 | Intervalo mínimo de alcance 802.11mc | Intervalo mínimo de alcance compatível no formato big-endian para 11mc |
| 12 | uint8*2 | Intervalo mínimo de alcance 802.11az | Intervalo mínimo de alcance compatível no formato big-endian para 11az |
| 14 | uint8 | Tipo de pré-âmbulo máximo |
|
| 15 | uint8 | Largura máxima do canal |
|
| 16 | uint8*2 | Frequência de canal compatível |
|
Payload da mensagem de configuração de alcance
Tamanho (tamanho do cabeçalho não incluído): varia (parte comum de 4 bytes mais o tamanho de cada byte de tecnologia de alcance incluído).
Descrição:essa mensagem é enviada pelo iniciador e contém as configurações que cada tecnologia de alcance pode usar para iniciar o alcance. O dispositivo de resposta precisa tentar iniciar a estimativa de alcance com cada tecnologia indicada ao receber essa mensagem. O payload da mensagem consiste na parte comum e em partes específicas da tecnologia de alcance (UWB, BLE CS, Wi-Fi NAN RTT, BLE RSSI), conforme mostrado nas tabelas a seguir.
O payload de mensagem Ranging Configuration comum é resumido na tabela a seguir:
| Octet | Tipo de dado | Descrição | Valor |
|---|---|---|---|
| 0 | uint8*2 | Bitfield do conjunto de configuração de tecnologias de alcance | Bitfield de tecnologias de alcance para as quais esta mensagem contém dados de configuração e para as quais os parâmetros de configuração precisam ser definidos.
|
| 2 | uint8*2 | Bitfield | RFU. Precisa ser definido com o mesmo valor do campo Bitfield do conjunto de configuração de tecnologias de alcance. |
| 4 | matriz de bytes | Bytes de configurações de tecnologias de intervalo | Blocos repetidos de structs definidos por tecnologia |
| varia | uint8 | Suporte a movimento | Motion Notification solicitou
|
O payload da mensagem UWB Ranging Configuration está resumido na tabela a seguir:
| Octet | Tipo de dado | Descrição | Valor |
|---|---|---|---|
| 0 | uint8 | ID da tecnologia de alcance | 0x0: UWB |
| 1 | uint8 | Tamanho | Tamanho da configuração UWB (incluindo os campos ID da tecnologia e Tamanho) em bytes |
| 2 | uint8*2 | Endereço UWB | Endereço UWB do dispositivo de 2 bytes |
| 4 | uint8*4 | ID da sessão | ID da sessão gerado. O ID da sessão é um identificador exclusivo para a sessão de alcance entre o smartphone e o dispositivo periférico. |
| 8 | uint8 | ID da configuração selecionada | Número do ID da configuração selecionado em número inteiro. O ID de configuração especifica os parâmetros de tempo e o tipo de segurança que deve ser usado na sessão de alcance UWB. |
| 9 | uint8 | Canal selecionado | Canal selecionado para a sessão de alcance UWB |
| 10 | uint8 | Índice do preâmbulo selecionado | Índice de pré-âmbulo selecionado para a sessão de alcance UWB. |
| 11 | uint8*2 | Intervalo de variação selecionado | Taxa de intervalo de variação selecionada em milissegundos. Valores permitidos (em ms):
|
| 13 | uint8 | Duração do horário selecionado | Duração do slot selecionado em milissegundos. Valores permitidos (em ms):
|
| 14 | uint8 | Duração da chave de sessão | Comprimento da chave de sessão em bytes |
| 15 | matriz de bytes | Chave de sessão | Chave de sessão. Se o S-STS for usado, os dois primeiros bytes serão o ID do VENDEDOR, e os seis bytes seguintes serão o IV do STS estático. Se o P-STS for usado, será uma chave de sessão de 16 ou 32 bytes. O tipo de segurança usado é determinado pelo ID da configuração. |
| varia | uint8*2 | Código do país | Código do país ISO 3166-1 alfa-2, representado por dois caracteres ASCII. |
| varia | uint8 | Função do dispositivo selecionada |
|
| varia | uint8 | Modo do dispositivo selecionado |
|
O payload da mensagem BLE CS Ranging Configuration está resumido na
tabela a seguir:
| Octet | Tipo de dado | Descrição | Valor |
|---|---|---|---|
| 0 | uint8 | ID da tecnologia de alcance | 0x1: BLE CS |
| 1 | uint8 | Tamanho | Tamanho da configuração do BLE CS (incluindo os campos ID da tecnologia e Tamanho) em bytes. |
| 2 | uint8 | Tipo de segurança selecionado | Tipo de segurança selecionado. Valores permitidos:
|
| 3 | uint8*6 | Endereço do dispositivo | O endereço do dispositivo usado para BLE CS, em ordem big-endian. |
O payload da mensagem de RTT do Wi-Fi NAN Ranging Configuration está resumido na
tabela a seguir:
| Octet | Tipo de dado | Descrição | Valor |
|---|---|---|---|
| 0 | uint8 | ID da tecnologia de alcance | 0x2: Wi-Fi NAN RTT |
| 1 | uint8 | Tamanho | Tamanho da configuração de RTT do Wi-Fi NAN (incluindo os campos ID da tecnologia e Tamanho) em bytes. |
| 2 | uint8 | Comprimento do nome do serviço | Tamanho do campo "Nome do serviço" em bytes. Consulte a especificação do Wi-Fi Aware v4.0, seção 1.3.3, Tabela 1. Definições. |
| 3 | matriz de bytes | Nome do serviço | Nome do serviço. Consulte a especificação do Wi-Fi Aware v4.0, seção 1.3.3, Tabela 1. Definições. |
| varia | uint8 | Função do dispositivo |
|
| varia | uint8 | Usar intervalos periódicos |
|
O payload da mensagem BLE RSSI Ranging Configuration está resumido na
tabela a seguir:
| Octet | Tipo de dado | Descrição | Valor |
|---|---|---|---|
| 0 | uint8 | ID da tecnologia de alcance | 0x3: BLE RSSI |
| 1 | uint8 | Tamanho | Tamanho da configuração de RSSI BLE (incluindo os campos ID da tecnologia e Tamanho) em bytes |
| 2 | uint8*6 | Endereço do dispositivo | O endereço do dispositivo usado para RSSI BLE, em ordem big-endian. |
O payload da mensagem de PD do Wi-Fi Ranging Configuration está resumido na
tabela a seguir:
| Octet | Tipo de dado | Descrição | Valor |
|---|---|---|---|
| 0 | uint8 | ID da tecnologia de alcance | 0x4: Wi-Fi PD |
| 1 | uint8 | Tamanho | Tamanho da configuração de PD do Wi-Fi NAN (incluindo os campos ID da tecnologia e Tamanho) em bytes. |
| 2 | uint8 | Recurso |
|
| 3 | uint8*6 | Endereço MAC | Endereço MAC do iniciador |
| 9 | uint8*2 | Intervalo de alcance | Intervalo de alcance em ms |
| 11 | uint8 | Pré-âmbulo selecionado |
|
| 12 | uint8 | Largura do canal selecionado |
|
| 13 | uint8 | Canal selecionado |
|
| 14 | uint8 | Modo PASN selecionado |
|
| 15 | matriz de bytes | Chave de identificador do dispositivo | Matriz fixa de 16 bytes Observação:esse campo é válido apenas para o modo PASN autenticado e não pode ser definido para o modo PASN não autenticado. |
| 31 | uint8 | Tamanho da senha | Tamanho da senha. Observação:esse campo é válido apenas para o modo PASN autenticado e não pode ser definido para o modo PASN não autenticado. |
| varia | matriz de bytes | Senha | Senha como matriz de bytes.
Observação:esse campo é válido apenas para o modo PASN autenticado e não pode ser definido para o modo PASN não autenticado. |
Payload da mensagem de resposta da configuração de intervalo
Tamanho (tamanho do cabeçalho não incluído): 2 bytes
Descrição:essa mensagem é enviada pelo participante como resposta à mensagem
Ranging Configuration. Essa mensagem é opcional. Ela só é obrigatória quando o canal de comunicação usado exige uma resposta explícita para cada solicitação.
O payload da mensagem Ranging Configuration Response está resumido na
tabela a seguir:
| Octet | Tipo de dado | Descrição | Valor |
|---|---|---|---|
| 0 | uint8*2 | Bitmask de configuração de tecnologias de alcance definido com sucesso. | Campo de bits de tecnologias de alcance que foram definidas. O campo de bits define o bit da tecnologia de alcance como 1 se a tecnologia foi solicitada e definida com sucesso, e 0 caso contrário.
|
Payload da mensagem de interrupção de alcance
Tamanho (tamanho do cabeçalho não incluído): 2 bytes
Descrição:essa mensagem é enviada pelo dispositivo iniciador quando é hora de parar o alcance com a tecnologia especificada.
O payload da mensagem Stop Ranging está resumido na tabela a seguir:
| Octet | Tipo de dado | Descrição | Valor |
|---|---|---|---|
| 0 | uint8*2 | Tecnologias de intervalo para parar o bitfield | Bitfield de tecnologias de alcance que precisam parar de medir. O bit definido como 1 indica que a tecnologia de alcance precisa parar de medir, e 0 indica que ela não estava medindo ou que precisa continuar medindo se já estava fazendo isso. Para algumas tecnologias de alcance (como CS), isso não faz nada porque o alcance é iniciado e interrompido apenas no lado do iniciador.
|
Payload da mensagem de resposta de interrupção de alcance
Tamanho (tamanho do cabeçalho não incluído): 2 bytes
Descrição:essa mensagem é enviada pelo participante como resposta à mensagem
Stop Ranging. Essa mensagem é opcional e só é necessária quando o canal de comunicação usado exige uma resposta explícita para cada solicitação.
O payload da mensagem Stop Ranging Response está resumido na tabela a seguir:
| Octet | Tipo de dado | Descrição | Valor |
|---|---|---|---|
| 0 | uint8*2 | Bitmask de tecnologias de alcance interrompidas | Campo de bits de tecnologias de alcance que pararam de funcionar. O campo de bits define o bit da tecnologia de alcance como 1 se a tecnologia foi solicitada para ser interrompida e se ela foi interrompida com êxito. Caso contrário, é 0.
|
Payload da mensagem de notificação de movimento
Tamanho (tamanho do cabeçalho não incluído): 1 byte
Descrição:o dispositivo de resposta envia essa mensagem para informar o dispositivo iniciador sobre mudanças no status de movimento.
| Octet | Tipo de dado | Descrição | Valor |
|---|---|---|---|
| 0 | uint8 | Movimento |
|
Controle de versões
A versão da especificação está no cabeçalho de cada mensagem. Esta seção define como a comunicação é realizada quando um dos dispositivos (o iniciador ou o respondedor) está em uma versão mais antiga do que o outro.
Caso 1: canal de comunicação baseado em conexão
Esta seção descreve casos que usam um canal de comunicação baseado em conexão,
em que Ranging Capability Request é a primeira mensagem enviada pelo dispositivo
iniciador.
Caso 1.a: o iniciador é compatível com uma versão mais recente, e o destinatário, com uma versão mais antiga da especificação.
O dispositivo iniciador envia a mensagem Ranging Capability Request com a versão mais recente. O dispositivo de resposta só é compatível com a versão mais antiga. Portanto, ele responde com essa versão, que é usada para o restante da troca de mensagens. Isso significa que a mensagem Ranging Capability Request precisa ser compatível com versões anteriores.
Caso 1.b: o iniciador é compatível com uma versão mais antiga, e o destinatário é compatível com uma versão mais recente da especificação.
O dispositivo de resposta percebe que o dispositivo iniciador não é capaz de usar a versão mais recente e envia mensagens apenas usando a versão mais antiga solicitada inicialmente pelo dispositivo iniciador.
Caso 2: canal de comunicação baseado em publicidade
Esta seção descreve casos que usam um canal de comunicação
baseado em publicidade, em que o dispositivo de resposta anuncia Ranging Capability Request
diretamente, sem uma solicitação inicial.
Caso 2.a: o iniciador é compatível com uma versão mais recente, e o destinatário é compatível com uma versão mais antiga da especificação.
A versão mais antiga definida no anúncio Ranging Capability Response é usada
no restante da comunicação.
Caso 2.b: o iniciador é compatível com uma versão mais antiga, e o destinatário é compatível com uma versão mais recente da especificação.
A versão mais recente do anúncio Ranging Capability Response precisa ser
compatível com versões anteriores para que o dispositivo iniciador possa ler a mensagem mesmo
usando uma versão mais recente. Em seguida, o dispositivo iniciador envia a mensagem Ranging
Configuration usando a versão mais antiga compatível. Essa é a versão
usada no restante da comunicação.
Para garantir a compatibilidade com versões anteriores do Ranging Capability Response, todos os novos campos adicionados à próxima versão dessa especificação no payload da mensagem Ranging
Capability Response precisam ser anexados ao final do payload, e nenhum dos campos atuais pode ser modificado. Ao analisar a configuração, se o tamanho indicado for maior do que o esperado, os campos extras deverão ser ignorados por qualquer dispositivo que possa entender apenas a versão mais antiga da especificação.
Fragmentação
Essa especificação é independente do canal de comunicação. Portanto, ela não define como fragmentar a carga útil da mensagem em casos em que uma única mensagem é muito grande para caber em um pacote de transferência do canal de comunicação usado. O módulo de intervalo espera receber cada mensagem na íntegra. A responsabilidade pela fragmentação é do implementador do canal de comunicação OOB.
Ranging-technology-specifics
Esta seção contém detalhes específicos da tecnologia de alcance.
Especificações da banda ultralarga (UWB)
Esta seção descreve detalhes específicos da banda ultralarga.
IDs de configuração
Os dados de configuração fora da banda trocados por UWB não contêm um conjunto completo de parâmetros configuráveis disponíveis que a UWB exige para iniciar uma sessão de intervalo de UWB. Isso acontece porque alguns parâmetros são selecionados implicitamente pelo ID de configuração escolhido.
Cada ID de configuração é um conjunto de parâmetros de configuração UWB predefinidos documentados em
UwbRangingParams. O
dispositivo de resposta envia uma lista de todos os IDs de configuração compatíveis como parte dos
IDs de configuração compatíveis com supports_technology_transitioning
que são usados. Isso permite que um conjunto menor de parâmetros de configuração seja trocado durante a OOB. Ele também limita a quantidade de combinações possíveis de parâmetros que podem ser usadas para alcance com UWB, o que torna possível testar apenas as combinações permitidas de parâmetros.
Solicitar recursos após cada sessão de UWB
Depois de interromper uma sessão UWB e antes de iniciar uma nova, o dispositivo iniciador precisa solicitar os recursos do dispositivo de resposta e definir os parâmetros de configuração novamente, porque o endereço UWB pode mudar assim que a sessão de alcance atual terminar.
Especificidades da sondagem de canal (CS) BLE
Esta seção descreve detalhes específicos da sondagem de canal.
Conexão necessária entre dispositivos
É necessário ter uma vinculação entre o dispositivo iniciador e o dispositivo de resposta para que a estimativa de alcance usando a sondagem de canal funcione. Essa especificação não oferece uma maneira de criar uma vinculação entre dispositivos. O usuário das APIs Ranging precisa estabelecer essa conexão entre os dispositivos.
Ação necessária do lado do atendimento ao cliente
Na UWB, os dois dispositivos precisam chamar explicitamente as APIs de início e fim de alcance da UWB. Já para o CS, apenas o dispositivo iniciador precisa
iniciar o alcance do CS chamando a pilha Bluetooth (BT). O restante da
inicialização no lado do responder acontece em banda pelo BT. Isso significa que,
ao receber a mensagem Ranging Configuration ou a mensagem Stop Ranging
para CS, o lado do responder não precisa fazer nada se o BT estiver ativado. O
dispositivo de resposta pode usar essas mensagens como um gatilho para atualizar a interface ou, por
exemplo, piscar os LEDs do dispositivo.