Rozwój BLE: Co to jest Gatt i jak to działa?
Koncepcja gatt
To carry out Ble-related development, Musimy mieć pewną podstawową wiedzę, Oczywiście, To musi być bardzo proste.
Gatt Rola urządzenia :
Pierwszą rzeczą do zrozumienia jest to, że rozróżnienie między tymi dwiema ról jest na poziomie sprzętowym, i są to względne pojęcia, które pojawiają się w parach:
“Urządzenie centralne”: stosunkowo potężny, Służy do skanowania i łączenia urządzeń peryferyjnych, takie jak telefony komórkowe, tabletki, itp.
“Urządzenie peryferyjne”: Funkcja jest stosunkowo prosta, zużycie energii jest małe, a urządzenie centralne jest podłączone do dostarczania danych, takie jak opaski na rękę, Inteligentne termometry, itp.
W rzeczywistości, na najbardziej podstawowym poziomie, Powinno to być rozróżnienie między różnymi rolami w procesie nawiązania połączenia. We know that if a Bluetooth device wants to let others know its existence, musi ciągle nadawać do świata zewnętrznego, podczas gdy druga strona musi zeskanować i odpowiedzieć na pakiet transmisji, Aby połączenie można było nawiązać. W tym procesie, Osoba odpowiedzialna za nadawanie jest peryferyjna , A Central jest odpowiedzialny za skanowanie.
Uwaga: proces połączenia między nimi:
Urządzenie centralne może jednocześnie łączyć się z wieloma urządzeniami peryferyjnymi., natychmiast przestanie nadawać transmisję, i kontynuuj transmisję po odłączeniu. tylko jedno urządzenie może próbować połączyć się w dowolnym momencie, Połączenia w kolejce.
Gatt protokół
Ble technology communicates based on Gatt. Gatt is an attribute transmission protocol. Można to uznać za protokół warstwy aplikacji do transmisji atrybutów.
Jego struktura jest bardzo prosta:

Możesz to zrozumieć jako xml:
Each Gatt is composed of Services that perform different functions;
Każda usługa składa się z innej cechy;
Każda cecha składa się z wartości i jednego lub więcej deskryptorów;
Obsługa i charakterystyczne są równoważne znacznikom (Obsługa jest równoważna jej kategorii, a charakterystyka jest równoważna jej nazwie), podczas gdy wartość faktycznie zawiera dane, a deskryptor to wyjaśnienie i opis tej wartości. Oczywiście, Możemy to opisać i opisać z różnych stron. Opis, Więc może być wiele deskryptorów.
Na przykład:The common Xiaomi Mi Band is a Ble urządzenie, (przypuszczalny) Zawiera trzy usługi, które są usługą, która dostarcza informacji o urządzeniu, Usługa, która zapewnia kroki, i usługa wykrywa tętno;
Charakterystyka zawarta w obsłudze informacji o urządzeniu obejmuje informacje o producencie, Informacje o sprzęcie, Informacje o wersji, itp.; Usługa tętna obejmuje charakterystykę tętna, itp., a wartość charakterystyki tętna faktycznie zawiera dane tętna, a deskryptor to wartość. Opis, takie jak jednostka wartości, opis, pozwolenie, itp.
Gatt C/s
Z wstępnym zrozumieniem GATT, Wiemy, że GATT jest typowym trybem C/S. Ponieważ jest to C/s, Konieczne jest rozróżnienie serwera od klienta.
“Serwer GATT” vs.. “Klient GATT”. Etap, w którym istnieją te dwie role, jest po ustanowieniu połączenia, i wyróżniają się zgodnie ze statusem dialogu. Łatwo jest zrozumieć, że strona przechowująca dane nazywa się serwerem GATT, a strona, która uzyskuje dostęp do danych, nazywa się klientem GATT.
Jest to koncepcja na innym poziomie niż rola urządzenia, o której wspominaliśmy wcześniej, i konieczne jest go odróżnić. Użyjmy prostego przykładu do zilustrowania:
Weźmy przykład telefonu komórkowego i zegarka do zilustrowania. Przed nawiązaniem połączenia między telefonem komórkowym a telefonem komórkowym, we use the Bluetooth search function of the mobile phone to search for the Bluetooth device of the watch. Podczas tego procesu, Oczywiste jest, że zegarek jest nadawany, aby inne urządzenia znały swoje istnienie. , jest to rola peryferyjnego w tym procesie, A telefon komórkowy jest odpowiedzialny za zadanie skanowania, i naturalnie odgrywa rolę centrum; Po dwóch nawiązania połączenia GATT, Kiedy telefon komórkowy musi odczytać dane czujnika, takie jak liczba kroków z zegarka, Dwa interaktywne dane są zapisywane w zegarku, W tej chwili zegarek jest rolą serwera GATT, A telefon komórkowy jest oczywiście klientem GATT; A kiedy zegarek chce przeczytać połączenia SMS i inne informacje z telefonu komórkowego, Strażnik danych staje się telefonem komórkowym, Tak więc telefon komórkowy jest w tej chwili serwer, A zegarek jest klientem.
Usługa/charakterystyka
Mieliśmy już percepcyjne zrozumienie ich powyżej, A potem mamy praktyczne informacje:
- Charakterystyka to najmniejsza logiczna jednostka danych.
- Analiza danych przechowywanych pod względem wartości i deskryptora jest określana przez inżyniera serwera, Nie ma specyfikacji.
- Serwis/charakterystyka ma unikalną identyfikację UUID, UUID ma zarówno 16-bitowy, jak i 128-bitowy, Musimy zrozumieć, że 16-bitowy UUID jest certyfikowany przez organizację Bluetooth i należy go kupić, Oczywiście istnieją niektóre wspólne 16-bitowe uuid. Na przykład, UUID usługi tętna wynosi 0x180d, który jest wyrażony jako 0x00001800-0000-1000-8000-00805f9b34fb w kodzie, a inne bity są ustalone. 128-bitowy UUID można dostosować.
- Połączenia GATT są wyłączne.