Desenvolvimento: O que é Gatt e como funciona?
O conceito de gatt
Para realizar o desenvolvimento relacionado à BLE, Devemos ter certos conhecimentos básicos, claro, deve ser muito simples.
Gatt Função do dispositivo:
A primeira coisa a entender é que a distinção entre essas duas funções está no nível do hardware, E eles são conceitos relativos que aparecem em pares:
“Dispositivo central”: relativamente poderoso, usado para digitalizar e conectar dispositivos periféricos, como telefones celulares, comprimidos, etc..
“Dispositivo periférico”: A função é relativamente simples, O consumo de energia é pequeno, e o dispositivo central está conectado para fornecer dados, como pulseiras, Termômetros inteligentes, etc..
Na verdade, no nível mais fundamental, deve ser uma distinção entre diferentes papéis no processo de estabelecer uma conexão. Sabemos que, se um dispositivo Bluetooth deseja que os outros saibam sua existência, ele precisa transmitir continuamente para o mundo exterior, Enquanto a outra parte precisa digitalizar e responder ao pacote de transmissão, para que a conexão possa ser estabelecida. Neste processo, A pessoa responsável pela transmissão é periférica , e Central é responsável pela digitalização.
Note sobre o processo de conexão entre os dois:
O dispositivo central pode se conectar a vários dispositivos periféricos ao mesmo tempo., vai parar de transmitir imediatamente, e continue a transmissão após a desconexão. Somente um dispositivo pode tentar se conectar a qualquer momento, conexões de fila.
Gatt protocolo
A tecnologia BLE se comunica com base no GATT. Gatt é um protocolo de transmissão de atributos. Pode ser considerado como um protocolo de camada de aplicação para transmissão de atributos.
Sua estrutura é muito simples:

Você pode entender isso como xml:
Cada gatt é composto por serviços que desempenham funções diferentes;
Cada serviço é composto de características diferentes;
Cada característica consiste em um valor e um ou mais descritores;
Serviço e característica são equivalentes a tags (O serviço é equivalente à sua categoria, e característica é equivalente ao seu nome), Enquanto o valor realmente contém dados, e o descritor é uma explicação e descrição desse valor. Claro, Podemos descrevê -lo e descrevê -lo de diferentes ângulos. Descrição, Portanto, pode haver vários descritores.
Por exemplo:A banda Xiaomi Mi comum é um dispositivo ble, (assumido) Ele contém três serviços, que são o serviço que fornece informações do dispositivo, o serviço que fornece etapas, e o serviço que detecta freqüência cardíaca;
A característica contida no serviço das informações do dispositivo inclui informações do fabricante, Informações sobre hardware, Informações da versão, etc.; O serviço de frequência cardíaca inclui a característica da frequência cardíaca, etc., e o valor na característica da frequência cardíaca realmente contém os dados da freqüência cardíaca, e o descritor é o valor. Descrição, como a unidade de valor, descrição, permissão, etc..
Gatt c/s
Com um entendimento preliminar de Gatt, Sabemos que Gatt é um modo C/S típico. Já que é c/s, é necessário distinguir entre servidor e cliente.
“Servidor Gatt” vs.. “Cliente gatt”. O estágio em que essas duas funções existem é depois que a conexão é estabelecida, e eles são distinguidos de acordo com o status do diálogo. É fácil entender que a parte que mantém os dados é chamada de servidor GATT, e a parte que acessa os dados é chamada de cliente GATT.
Este é um conceito em um nível diferente da função de dispositivo que mencionamos antes, e é necessário distingui -lo. Vamos usar um exemplo simples para ilustrar:
Veja o exemplo de um telefone celular e um relógio para ilustrar. Antes da conexão entre o telefone celular e o telefone celular é estabelecido, Usamos a função de pesquisa bluetooth do telefone celular para pesquisar o dispositivo Bluetooth do relógio. Durante esse processo, É óbvio que o relógio está transmitindo BLE para que outros dispositivos saibam sua existência. , É o papel do periférico nesse processo, e o telefone celular é responsável pela tarefa de digitalização, e naturalmente desempenha o papel do centro; Depois que os dois estabelecem uma conexão GATT, Quando o telefone celular precisa ler dados do sensor, como o número de etapas do relógio, os dois os dados interativos são salvos no relógio, Então, neste momento, o relógio é o papel do servidor GATT, E o telefone celular é naturalmente o cliente GATT; E quando o relógio deseja ler chamadas SMS e outras informações do telefone celular, O guardião dos dados se torna telefone celular, Então o telefone celular é o servidor neste momento, e o relógio é o cliente.
Serviço/característica
Já tivemos um entendimento perceptivo deles acima, E então temos algumas informações práticas:
- Característica é a menor unidade lógica de dados.
- A análise dos dados armazenados em valor e descritor é determinada pelo engenheiro do servidor, não há especificação.
- Serviço/característica tem uma identificação UUID única, Uuid tem 16 bits e 128 bits, O que precisamos entender é que o UUID de 16 bits é certificado pela organização Bluetooth e precisa ser comprado, Claro que existem alguns uuid de 16 bits comuns. Por exemplo, O UUID do serviço de frequência cardíaca é 0x180d, que é expresso como 0x00001800-0000-1000-8000-00805f9b34fb no código, e outros bits são fixos. O UUID de 128 bits pode ser personalizado.
- As conexões GATT são exclusivas.