Informações do dispositivo

Os provedores podem notificar um solicitante sobre as informações do dispositivo pelo fluxo de mensagens.

Nome do grupo de mensagens Valor
Evento de informações do dispositivo 0x03
Nome do código de informações do dispositivo Valor
ID do modelo 0x01
Endereço BLE atualizado 0x02
Bateria atualizada 0x03
Tempo restante da bateria 0x04
Solicitação de componentes ativos 0x05
Resposta de componentes ativos 0x06
Recursos (descontinuados) 0x07
Tipo de plataforma 0x08
Versão do firmware 0x09
Identificador temporário atual do FHN 0x0B

ID do modelo

As informações do ID do modelo (para escrever a chave da conta de forma retroativa) precisam ser enviadas ao Seeker quando o RFCOMM se conectar. Por exemplo, 0x03010003AABBCC seria:

  • 0x03: Evento de informações do dispositivo
  • 0x01: valor do ID do modelo
  • 0x0003: dados adicionais, comprimento 3
  • 0xAABBCC: dados adicionais, ID do modelo

Endereço BLE

As informações de endereço BLE (para gravação retroativa da chave de conta) , se disponíveis, também precisam ser enviadas ao Seeker quando o RFCOMM se conecta e sempre que o endereço é alternado. Por exemplo, 0x03020006AABBCCDDEEFF seria:

  • 0x03: Evento de informações do dispositivo
  • 0x02: valor do endereço BLE
  • 0x0006: dados adicionais, comprimento 6
  • 0xAABBCCDDEEFF: dados adicionais, endereço BLE

Bateria atualizada

Para provedores que oferecem suporte a notificações de bateria, as informações de bateria também podem ser enviadas por RFCOMM. Quando o RFCOMM se conecta ou o valor da bateria muda, uma atualização precisa ser enviada. A seção de dados adicionais do pacote precisa conter dados idênticos aos bytes s + 2, s + 3 e s + 4 ao anunciar dados da bateria pelo BLE. Por exemplo,0x0303000357417F seria:

  • 0x03: Evento de informações do dispositivo
  • 0x03: Valor da bateria
  • 0x0003: dados adicionais, comprimento 3
  • 0x57417F: dados adicionais, valores da bateria
    • 0x57: Valor do fone esquerdo, não está carregando, 87% de bateria
    • 0x41: Valor do fone direito, não está carregando, 65% de bateria
    • 0x7F: valor do caso, não está carregando, bateria desconhecida

Os provedores também podem atualizar o tempo restante da bateria (se conhecido). Por exemplo, 0x03040001F0 seria:

  • 0x03: Evento de informações do dispositivo
  • 0x04: Tempo de bateria restante
  • 0x0001: dados adicionais, comprimento 1 (pode ser 2 para uint16, se necessário).
  • 0xF0: dados adicionais, tempo de bateria restante em minutos, 240 minutos

Componentes ativos

Às vezes, os usuários podem querer saber quais componentes estão ativos no momento, ou seja, se é possível realizar uma ação neles (consulte Ações do dispositivo). Quando o provedor recebe uma solicitação contendo o código solicitação de componentes ativos (0x05), uma resposta precisa ser retornada em 1 segundo indicando o estado atual do provedor. A resposta vai usar o código resposta de componentes ativos (0x06) e conter outros dados indicando quais componentes estão disponíveis.

Para um provedor com um único componente, os dados adicionais precisam ser definidos como 0x00 se não estiverem disponíveis. Um exemplo disso é um modo de baixo consumo de energia em que a reprodução de mídia não é realizada. Caso contrário, os dados adicionais precisam ser definidos como 0x01.

Para fones de ouvido com vários componentes (por exemplo, um fone de ouvido esquerdo e direito), cada bit nos dados adicionais representa se esse componente está ativo. Um exemplo de componente inativo pode ser um botão que está no estojo e não está em uso. Especificamente para os estojos dos fones de ouvido esquerdo e direito:

  • 0x00 (0b00000000): nenhum dos fones está ativo
  • 0x01 (0b00000001): fone direito ativo, esquerdo inativo
  • 0x02 (0b00000010): fone de ouvido esquerdo ativo, direito inativo
  • 0x03 (0b00000011): ambos os fones de ouvido estão ativos

Tipo de plataforma

Os provedores podem querer ter um desempenho diferente com base na plataforma à qual estão conectados. No momento, o Par rápido só é realizado pelo Android, mas o suporte pode ser expandido no futuro.

A mensagem vai conter um primeiro byte que identifica o tipo de plataforma nos dados adicionais:

Nome da plataforma Valor
Android 0x01

O segundo byte será personalizado por plataforma. No Android, ele se refere à versão do SDK. Por exemplo, o Android Pie terá um valor de 28 (0x1C).

Versão do firmware

A versão do firmware do provedor como uma string na codificação UTF-8. São as mesmas informações da característica de revisão do firmware.

Identificador temporário atual do FHN

Os provedores que anunciam frames de FHN precisam informar o identificador efetivo (EID, na sigla em inglês) de FHN com o valor atual do relógio para sincronizar com o Seeker em caso de deriva do relógio (por exemplo, devido à bateria descarregada).

Exemplo:

  • 0x03: Evento de informações do dispositivo
  • 0x0B: mensagem do identificador efémero atual do FHN
  • 0x0018: dados adicionais, comprimento 24 ou 36 bytes
  • 0x13F9EA80: outros dados (valor do relógio; 4 bytes)
  • 0x1122334455667788990011223344556677889900: dados adicionais (EID atual; 20 ou 32 bytes)