Sviluppo BLE: Cos’è il GATT e come funziona?
Il concetto di GATT
Da eseguire BLE-relativo sviluppo, dobbiamo avere alcune conoscenze di base, Ovviamente, deve essere molto semplice.
GATT Ruolo del dispositivo:
La prima cosa da capire è che la distinzione tra questi due ruoli è a livello hardware, e sono concetti relativi che compaiono in coppia:
“Dispositivo centrale”: relativamente potente, utilizzato per scansionare e collegare dispositivi periferici, come i telefoni cellulari, compresse, ecc.
“Dispositivo periferico”: la funzione è relativamente semplice, il consumo energetico è ridotto, e il dispositivo centrale è collegato per fornire dati, come i braccialetti, termometri intelligenti, ecc.
Infatti, al livello più fondamentale, dovrebbe essere una distinzione tra diversi ruoli nel processo di creazione di una connessione. Sappiamo che se a Bluetooth dispositivo vuole far conoscere agli altri la sua esistenza, ha bisogno di trasmettere continuamente al mondo esterno, mentre l'altra parte deve scansionare e rispondere al pacchetto trasmesso, in modo che sia possibile stabilire la connessione. In questo processo, il responsabile della trasmissione è Periferico , e Central è responsabile della scansione.
Nota sul processo di connessione tra i due:
Il dispositivo centrale può connettersi a più dispositivi periferici contemporaneamente. Una volta collegato il dispositivo periferico, interromperà immediatamente la trasmissione, e continuare a trasmettere dopo la disconnessione. Solo un dispositivo alla volta può tentare di connettersi, connessioni in coda.
GATT protocollo
BLE la tecnologia comunica in base a GATT. GATT è un protocollo di trasmissione degli attributi. Può essere considerato un protocollo del livello applicativo per la trasmissione degli attributi.
La sua struttura è molto semplice:

Puoi capirlo come xml:
Ogni GATT è composto da Servizi che svolgono diverse funzioni;
Ogni Servizio è composto da diverse Caratteristiche;
Ciascuna Caratteristica è composta da un valore e da uno o più Descrittori;
Servizio e Caratteristica sono equivalenti ai tag (Il servizio è equivalente alla sua categoria, e Caratteristica è equivalente al suo nome), mentre il valore contiene effettivamente dati, e Descriptor è una spiegazione e descrizione di questo valore. Ovviamente, possiamo descriverlo e descriverlo da diverse angolazioni. Descrizione, quindi possono esserci più descrittori.
Per esempio:La Xiaomi Mi Band comune è una BLE dispositivo, (assunto) contiene tre Servizi, che sono il Servizio che fornisce informazioni sul dispositivo, il Servizio che fornisce i passaggi, e il Servizio che rileva la frequenza cardiaca;
La caratteristica contenuta nel servizio delle informazioni sul dispositivo include le informazioni sul produttore, informazioni sull'hardware, informazioni sulla versione, ecc.; il Servizio frequenza cardiaca comprende la caratteristica della frequenza cardiaca, ecc., e il valore nella caratteristica della frequenza cardiaca contiene effettivamente i dati sulla frequenza cardiaca, e il descrittore è il valore. Descrizione, come unità di valore, descrizione, permesso, ecc.
GATT C/S
Con una conoscenza preliminare del GATT, sappiamo che il GATT è una tipica modalità C/S. Poiché è C/S, è necessario per noi distinguere tra Server e client.
“server GATT” contro. “Cliente del GATT”. La fase in cui esistono questi due ruoli è dopo che è stata stabilita la connessione, e si distinguono in base allo status del dialogo. È facile capire che la parte che detiene i dati si chiama server GATT, e la parte che accede ai dati è chiamata cliente GATT.
Questo è un concetto a un livello diverso rispetto al ruolo del dispositivo di cui abbiamo parlato prima, ed è necessario distinguerlo. Usiamo un semplice esempio per illustrare:
Prendiamo l'esempio di un telefono cellulare e di un orologio per illustrare. Prima che venga stabilita la connessione tra il telefono cellulare e il telefono cellulare, usiamo il Bluetooth funzione di ricerca del telefono cellulare per cercare il file Bluetooth dispositivo dell'orologio. Durante questo processo, è ovvio che l'orologio trasmette BLE in modo che altri dispositivi ne conoscano l'esistenza. , è il ruolo della periferia in questo processo, e il telefono cellulare è responsabile dell'attività di scansione, e svolge naturalmente il ruolo di Centro; dopo che i due stabiliscono una connessione GATT, quando il telefono cellulare deve leggere i dati del sensore come il numero di passi dall'orologio, i due I dati interattivi vengono salvati nell'orologio, quindi in questo momento l'orologio ha il ruolo del server GATT, e il telefono cellulare è naturalmente il cliente del GATT; e quando l'orologio vuole leggere le chiamate SMS e altre informazioni dal telefono cellulare, il custode dei dati diventa Cellulare, quindi il telefono cellulare è il server in questo momento, e l'orologio è il cliente.
Servizio/caratteristica
Ne abbiamo già avuto una comprensione percettiva sopra, e poi abbiamo alcune informazioni pratiche:
- La caratteristica è la più piccola unità logica di dati.
- L'analisi dei dati memorizzati in valore e descrittore è determinata dall'ingegnere del server, non c'è alcuna specifica.
- Il servizio/caratteristica ha un'identificazione UUID univoca, L'UUID ha sia 16 bit che 128 bit, quello che dobbiamo capire è che l'UUID a 16 bit è certificato dall'organizzazione Bluetooth e deve essere acquistato, ovviamente ce ne sono alcuni comuni UUID a 16 bit.Ad esempio, l'UUID del servizio Heart Rate è 0X180D, che è espresso come 0X00001800-0000-1000-8000-00805f9b34fb nel codice, e altri bit sono fissi. L'UUID a 128 bit può essere personalizzato.
- Le connessioni GATT sono esclusive.