El concepto de gatt

Para llevar a cabo el desarrollo relacionado con BLE, Debemos tener ciertos conocimientos básicos, por supuesto, Debe ser muy simple.

Gatte Rol de dispositivo:

Lo primero que debe entender es que la distinción entre estos dos roles está a nivel de hardware, y son conceptos relativos que aparecen en parejas:

“Dispositivo central”: relativamente poderoso, Se utiliza para escanear y conectar dispositivos periféricos, como teléfonos móviles, tabletas, etc..

“Dispositivo periférico”: la función es relativamente simple, El consumo de energía es pequeño, y el dispositivo central está conectado para proporcionar datos, como pulseras, termómetros inteligentes, etc..

De hecho, en el nivel más fundamental, Debe ser una distinción entre diferentes roles en el proceso de establecer una conexión. Sabemos que si un dispositivo Bluetooth quiere hacer que otros sepan su existencia, necesita transmitir continuamente al mundo exterior, Mientras que la otra parte necesita escanear y responder al paquete de transmisión, para que la conexión se pueda establecer. En este proceso, La persona responsable de la transmisión es periférica , y Central es responsable de escanear.

Nota sobre el proceso de conexión entre los dos:

El dispositivo central puede conectarse a múltiples dispositivos periféricos al mismo tiempo. Una vez que el dispositivo periférico está conectado, dejará de transmitir de inmediato, y continúe transmitiendo después de la desconexión. Solo un dispositivo puede intentar conectarse en cualquier momento, conexiones de colas.

Gatte protocolo

La tecnología BLE se comunica en base a GATT. Gatt es un protocolo de transmisión de atributos. Se puede considerar como un protocolo de capa de aplicación para la transmisión de atributos.

Su estructura es muy simple:   

1671506971 1

Puedes entenderlo como xml:

Cada GATT está compuesto por servicios que realizan diferentes funciones;

Cada servicio está compuesto de diferentes características;

Cada característica consta de un valor y uno o más descriptores;

El servicio y las características son equivalentes a las etiquetas (El servicio es equivalente a su categoría, y la característica es equivalente a su nombre), mientras que el valor realmente contiene datos, y el descriptor es una explicación y una descripción de este valor. Por supuesto, Podemos describirlo y describirlo desde diferentes ángulos. Descripción, Entonces puede haber múltiples descriptores.

Por ejemplo:La banda de Xiaomi Mi Common es un dispositivo BLE, (ficticio) Contiene tres servicios, cuáles son el servicio que proporciona información del dispositivo, el servicio que proporciona pasos, y el servicio que detecta la frecuencia cardíaca;

La característica contenida en el servicio de la información del dispositivo incluye información del fabricante, información de hardware, información de la versión, etc.; El servicio de frecuencia cardíaca incluye la característica de la frecuencia cardíaca, etc., y el valor en la característica de la frecuencia cardíaca en realidad contiene los datos de la frecuencia cardíaca, y el descriptor es el valor. Descripción, como la unidad de valor, descripción, permiso, etc..

Gatt C/S

Con una comprensión preliminar de Gatt, Sabemos que Gatt es un modo C/S típico. Ya que es c/s, Es necesario que distinguemos entre el servidor y el cliente.

“Servidor gatt” VS. “Cliente gatt”. La etapa donde existen estos dos roles es después de que se establece la conexión, y se distinguen de acuerdo con el estado del diálogo. Es fácil entender que la parte que contiene los datos se llama servidor GATT, y la parte que accede a los datos se llama cliente GATT.

Este es un concepto a un nivel diferente del papel del dispositivo que mencionamos antes., y es necesario distinguirlo. Usemos un ejemplo simple para ilustrar:

Tome el ejemplo de un teléfono móvil y un reloj para ilustrar. Antes de establecer la conexión entre el teléfono móvil y el teléfono móvil, Utilizamos la función de búsqueda Bluetooth del teléfono móvil para buscar el dispositivo Bluetooth del reloj. Durante este proceso, Es obvio que el reloj está transmitiendo BLE para que otros dispositivos conozcan su existencia. , Es el papel de periférico en este proceso, y el teléfono móvil es responsable de la tarea de escaneo, y naturalmente juega el papel del centro; Después de que los dos establecen una conexión GATT, Cuando el teléfono móvil necesita leer datos del sensor, como la cantidad de pasos del reloj., los dos los datos interactivos se guardan en el reloj, Entonces, en este momento, el reloj es el papel del servidor GATT, y el teléfono móvil es naturalmente el cliente gatt; y cuando el reloj quiere leer llamadas de SMS y otra información del teléfono móvil, El guardián de los datos se convierte en un teléfono móvil, Entonces el teléfono móvil es el servidor en este momento, y el reloj es el cliente.

Servicio/característica

Ya hemos tenido una comprensión perceptiva de ellos arriba, Y luego tenemos información práctica:

  1. Característica es la unidad lógica de datos más pequeña.
  2. El análisis de los datos almacenados en valor y descriptor está determinado por el ingeniero del servidor, no hay especificaciones.
  3. El servicio/característica tiene una identificación UUID única, UUID tiene tanto de 16 bits como de 128 bits, Lo que debemos entender es que el UUID de 16 bits está certificado por la organización Bluetooth y debe comprarse, Por supuesto que hay algunos UUID de 16 bits comunes. Por ejemplo, El UUID del servicio de frecuencia cardíaca es 0x180d, que se expresa como 0x00001800-0000-1000-8000-00805F9B34FB en el código, y otros bits son fijos. El UUID de 128 bits se puede personalizar.
  4. Las conexiones GATT son exclusivas.