-
Data: 2017-08-22 23:14:01
Temat: Re: Bluetooth: profile, atrybuty, charakterystyki
Od: "Grzegorz Niemirowski" <g...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Marek <t...@f...pl> napisał(a):
> Witajcie,
> znacie jakąś fajną stronę lub PDF nt bluetooth, na której będzie po
> ludzku wytłumaczone, co to są te profile, atrybuty, charakterystyki.
> Przeglądałem sporo dokumentacji i dla mnie te pojęcia i ich
> przeznaczenie to jakaś abstrakcja. Szczególnie interesuje mnie przesyłanie
> danych z dongle'a BLED112 na UART-owe porty RxD i TxD modułu BMD-300
> (Nordick'a).
Takiej naprawdę dobrej strony chyba nie ma, informacje na temat BLE są
porozrzucane. Możesz zacząć od:
https://www.safaribooksonline.com/library/view/getti
ng-started-with/9781491900550/ch04.html
Ogólnie korzystasz z profilu Generic Attributes (GATT).
Tak jak napisał Paweł, charakterystyki można porównać do rejestrów. Ponieważ
są one zorganizowane wewnątrz usług, bardziej byłbym skłonny porównać
charakterystyki do plików a usługi do folderów. Gdy połączysz się z
urządzeniem, możesz wylistować dostępne na nim usługi i charakterystyki.
Standardowe usłgi znajdziesz na stronie
https://www.bluetooth.com/specifications/gatt/servic
es Klikając w daną
usługę zobaczysz jakie są w niej charakteystyki
(https://www.bluetooth.com/specifications/gatt/chara
cteristics). Te
standardowe mają 16-bitowe UUIDy. Wymyślając swoje usługi i charakterystyki
zwykle używa się 128-bitowych charakterystyk. UUIDy pozwalają nam
zorientować się jakie usługi i charakterystyki są na urządzeniu. Np. czy ma
ono usługę Battery Service z charakterystyką Battery Level, z której
będziesz mógł odczytać stan baterii. Gdy już mamy nawiązane połączenie,
korzystamy z uchwytów. Nie trzeba więc ciągle odwoływać się do długich
UUIDów. Uchwyty to kolejne liczby identyfikujące usługi, charakterystyki
oraz deskryptory charakterystyk, np.:
1 usługa pierwsza
2 pierwsza charakterystyka pierwszej usługi
3 wartość charakterystyki
4 deskryptor charakterystyki
5 druga charakterystyka pierwszej usługi
6 wartość drugiej charakterystyki pierwszej usługi
7 deskryptor tej charakterystyki
8 druga usługa
9 pierwsza charakterystyka drugiej usługi
10 wartość charakterystyki
11 deskryptor
Atrybuty to m.in. R,W ale też notify i indicate, dzięki którym urządzenie
może Cię informować o tym, że zmieniła się wartość charakterystyki.
Trzeba dobrze zrozumieć na czym polega filozofia GATT. Urządzenie wystawia
Ci charakterystyki, które można porównać do małych plików lub rejestrów.
Jeśli kojarzysz Modbus, to jest tu pewna analogia. Z tym, że tutaj dodatkowo
jest to zorganizowane w usługi. Masz więc ustrukturyzowane dane, które
możesz odczytywać i zapisywać. Możesz też dostawać powiadomienia o zmianach.
Nie ma czegoś takiego jak port szeregowy, że leci Ci dwustronny strumień
bajtów. Jak ktoś chce, może sobie port szeregowy symulować. Wystarczy
zapisywać dane do wybranej charakterystyki i odbierać je przez notify albo
indicate. W GATT założenie jest inne, jest określona struktura punktów
wymiany konkretnych danych, takich jak stan baterii, czas, ciśnienie,
wilgotność, temperatura czy waga. Lub też dowolne inne. Dobrym przykładem
możesz być tutaj Apple Notification Center Service
(https://developer.apple.com/library/content/documen
tation/CoreBluetooth/Reference/AppleNotificationCent
erServiceSpecification/Specification/Specification.h
tml).
Usługa ta posiada 3 charakterystyki, za pomocą których iPhone może
powiadamiać Twoje urządzenie o notyfikacjach. Warto popatrzeć m.in. na
struktury danych.
--
Grzegorz Niemirowski
http://www.grzegorz.net/
Następne wpisy z tego wątku
- 23.08.17 00:00 Marek
- 23.08.17 00:24 Grzegorz Niemirowski
- 23.08.17 16:56 Marek
- 23.08.17 07:51 Pawel
- 23.08.17 18:43 Marek
- 23.08.17 08:36 Pawel
- 24.08.17 07:52 Marek
- 24.08.17 07:56 Marek
- 24.08.17 11:43 J.F.
- 24.08.17 15:36 wchpikus
- 24.08.17 17:49 Marek
Najnowsze wątki z tej grupy
- Digikey, SN74CBT3253CD, FST3253, ktoś ma?
- Szukam: czujnik ruchu z możliwością zaączenia na stałe
- kabelek - kynar ?
- Podnieść masę o 0.6V
- Moduł BT BLE 5.0
- Pomiar amplitudy w zegarku mechanicznym
- ale zawziętość i cierpliwość
- Chiński elektrolizer tester wody
- Dzisiaj Bentlejem czyli przybieżeli sześciu Króli do Rysia na kasie
- ciekawy układ magnetofonu
- Mikroskop 3D
- Jak być bezpiecznym z Li-Ion?
- Szukam monitora HDMI ok. 4"
- Obcinaczki z łapaczem
- termostat do lodowki
Najnowsze wątki
- 2025-01-01 Już nie płoną
- 2025-01-01 Digikey, SN74CBT3253CD, FST3253, ktoś ma?
- 2025-01-01 Co tam u Was
- 2025-01-01 Koder szuka pracy. Koduję w j.: Asembler, C, C++ (z bibl. Qt) i D.
- 2025-01-01 Gdańsk => Delphi Programmer <=
- 2025-01-01 Łódź => Programista Full Stack .Net <=
- 2025-01-01 Żerniki => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-01 Wrocław => Specjalista ds. Sprzedaży <=
- 2024-12-31 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-31 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-01 Przypomnienie: Mini Netykieta polskich grup dyskusyjnych wer. 3.2.2
- 2024-12-31 Zamykanie konta dziecka.
- 2024-12-31 Czy apka bankowa to gra komputerowa?
- 2024-12-31 Szukam: czujnik ruchu z możliwością zaączenia na stałe
- 2024-12-31 Warszawa => Solution Architect (Java background) <=