-
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
- System operacyjny dla 6800?
- Przyłączenie działki do sieci elektrycznej
- Działalność nierejestrowana/definicja sprzętu elektronicznego/misie i kolejki
- Smukły, długi ściągacz izolacji do kynaru
- rezystor 3 omy 400W
- [newbie] Jaki multimetr za 2-4 stówy?
- szafka sieciowa
- Raspberry Pi 5 + dyski SATA
- lutownica na węgiel
- Znów czary (albo niewiedza) - tym razem fotowoltaika
- Chess
- Vitruvian Man - parts 7-11a
- przeźroczyste koszulki
- Re: Win 10/11 nie lubi OKI
- Programator czasowy TUYA.
Najnowsze wątki
- 2024-05-18 Warszawa => Mid PHP Developer (Laravel) <=
- 2024-05-18 Warszawa => Software .Net Developer <=
- 2024-05-18 Warszawa => Mid/Senior QA Engineer <=
- 2024-05-18 Ulm => Solution Architect (sichere Kommunikation und IoT-Loesungen <=
- 2024-05-18 Katowice => Head of Virtualization Platform Management and Operating S
- 2024-05-18 Warszawa => SAP WM Consultant / Execution <=
- 2024-05-18 Wrocław => Consultant/Implementer Comarch ERP XL <=
- 2024-05-18 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-05-18 Warszawa => Account Manager (Recruitment Services) <=
- 2024-05-18 Łódź => Salesperson - CRM Systems <=
- 2024-05-18 Łódź => Handlowiec - Systemy CRM <=
- 2024-05-17 ZŁOMNIK o pracy w TVN TURBO, nowych przepisach i współczesnej motoryzacji. Turbo Taryfa!
- 2024-05-17 Białystok => DevOps Engineer Conexa First (Contractor) <=
- 2024-05-17 Warszawa => Starszy inżynier oprogramowania (Rust) <=
- 2024-05-17 Zabrze => Junior HelpDesk <=