Ble utvikling: Hva er GATT og hvordan fungerer det?
Konseptet med Gatt
Å utføre BLE-relatert utvikling, Vi må ha visse grunnleggende kunnskaper, selvfølgelig, Det må være veldig enkelt.
GATT Enhetsrolle :
Den første tingen å forstå er at skillet mellom disse to rollene er på maskinvarenivå, Og de er relative konsepter som vises parvis:
“Sentral enhet”: relativt kraftig, brukes til å skanne og koble til perifere enheter, for eksempel mobiltelefoner, tabletter, osv.
“Perifer enhet”: Funksjonen er relativt enkel, Strømforbruket er lite, og den sentrale enheten er koblet til for å gi data, for eksempel armbånd, Smarte termometre, osv.
Faktisk, på det mest grunnleggende nivået, Det skal være et skille mellom forskjellige roller i prosessen med å etablere en forbindelse. Vi vet at hvis en Bluetooth -enhet ønsker å gi andre beskjed om dens eksistens, det må kontinuerlig kringkaste til omverdenen, Mens den andre parten trenger å skanne og svare på kringkastingspakken, slik at forbindelsen kan etableres. I denne prosessen, Personen som er ansvarlig for kringkasting er perifert , og Central er ansvarlig for skanning.
Merk om tilkoblingsprosessen mellom de to:
Den sentrale enheten kan koble seg til flere perifere enheter samtidig. Når den perifere enheten er tilkoblet er tilkoblet, Det vil slutte å kringkaste umiddelbart, og fortsett å kringkaste etter frakobling. Bare en enhet kan prøve å koble til når som helst, Kø tilkoblinger.
GATT protokoll
BLE -teknologi kommuniserer basert på GATT. GATT er en attributtoverføringsprotokoll. Det kan betraktes som en applikasjonslagsprotokoll for attributtoverføring.
Strukturen er veldig enkel:

Du kan forstå det som XML:
Hver GATT er sammensatt av tjenester som utfører forskjellige funksjoner;
Hver tjeneste er sammensatt av forskjellige karakteristiske;
Hver karakteristikk består av en verdi og en eller flere beskrivelser;
Tjeneste og karakteristikk tilsvarer tagger (Tjenesten tilsvarer kategorien, og karakteristikk tilsvarer navnet), Mens verdien faktisk inneholder data, og deskriptor er en forklaring og beskrivelse av denne verdien. Selvfølgelig, Vi kan beskrive og beskrive det fra forskjellige vinkler. Beskrivelse, Så det kan være flere beskrivelser.
For eksempel:Det vanlige Xiaomi Mi -båndet er en BLE -enhet, (antatt) Den inneholder tre tjenester, som er tjenesten som gir enhetsinformasjon, Tjenesten som gir trinn, og tjenesten som oppdager hjertefrekvens;
Karakteristikken i tjenesten til enhetsinformasjonen inkluderer produsentinformasjon, Maskinvareinformasjon, versjonsinformasjon, etc.; Pulstjenesten inkluderer hjertefrekvens karakteristisk, etc., og verdien i hjertefrekvensegenskapen inneholder faktisk hjertefrekvensdataene, Og beskrivelsen er verdien. Beskrivelse, for eksempel verdienheten, beskrivelse, tillatelse, osv.
GATT C/S.
Med en foreløpig forståelse av GATT, Vi vet at GATT er en typisk C/S -modus. Siden det er C/S, Det er nødvendig for oss å skille mellom server og klient.
“GATT -server” vs. “GATT -klient”. Scenen der disse to rollene eksisterer er etter at forbindelsen er etablert, og de skilles ut etter dialogens status. Det er lett å forstå at festen som holder dataene kalles GATT -serveren, og partiet som får tilgang til dataene kalles GATT -klienten.
Dette er et konsept på et annet nivå enn enhetsrollen vi nevnte før, og det er nødvendig å skille det. La oss bruke et enkelt eksempel for å illustrere:
Ta eksemplet på en mobiltelefon og en klokke for å illustrere. Før forbindelsen mellom mobiltelefonen og mobiltelefonen er etablert, Vi bruker Bluetooth -søkefunksjonen til mobiltelefonen for å søke etter Bluetooth -enheten til klokken. Under denne prosessen, Det er åpenbart at klokken kringkaster Ble slik at andre enheter vet at dens eksistens. , Det er perifert rolle i denne prosessen, og mobiltelefonen er ansvarlig for skanneoppgaven, og spiller naturlig rollen som sentrum; Etter at de to har etablert en GATT -forbindelse, Når mobiltelefonen trenger å lese sensordata som antall trinn fra klokken, De to de interaktive dataene lagres i klokken, Så på dette tidspunktet er klokken rollen som GATT -serveren, Og mobiltelefonen er naturlig GATT -klienten; Og når klokken vil lese SMS -samtaler og annen informasjon fra mobiltelefonen, Dataens verge blir mobiltelefon, Så mobiltelefonen er serveren på dette tidspunktet, Og klokken er klienten.
Service/karakteristikk
Vi har allerede hatt en perseptuell forståelse av dem ovenfor, Og så har vi litt praktisk informasjon:
- Karakteristikk er den minste logiske dataenhet.
- Analysen av data lagret i verdi og deskriptor bestemmes av serveringeniøren, Det er ingen spesifikasjoner.
- Service/karakteristikk har en unik UUID -identifikasjon, UUID har både 16-biters og 128-bit, Det vi trenger å forstå er at 16-biters UUID er sertifisert av Bluetooth-organisasjonen og må kjøpes, Selvfølgelig er det noen vanlige 16-biters UUID. For eksempel, UUID for hjertefrekvensjenesten er 0x180d, som uttrykkes som 0x00001800-0000-1000-8000-00805F9B34FB i koden, og andre biter er fikset. 128-biters UUID kan tilpasse.
- GATT -tilkoblinger er eksklusive.