Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Bluetooth i Java Czyli JSR-82 w akcji Sławomir Brański Mail: Skype: branskislawomir.

Podobne prezentacje


Prezentacja na temat: "Bluetooth i Java Czyli JSR-82 w akcji Sławomir Brański Mail: Skype: branskislawomir."— Zapis prezentacji:

1 Bluetooth i Java Czyli JSR-82 w akcji Sławomir Brański Mail: Skype: branskislawomir

2 Agenda Bluetooth – krótka historia powstania, Warstwa sprzętowa, wspierane profile, JSR-82 – krótka historia i specyfikacja specyfikacja standardu, Przykład implementacji JSR-82 - Stos Bluecove: Klasa LocalDevice oraz DiscoveyAgent czyli wykrywanie innych urządzeń, Klasy RemoteDevice i ServiceRecord - pobieranie informacji o dostępnych serwisach Bluetooth, Model połączenia szeregowego – RFCONN typu serwer- klient, Model połączenia typu OBEX Push

3 Bluetooth – historia powstania

4

5 1994 A.D.

6 Bluetooth – historia powstania Alternatywy? Używa fal podczerwieni do komunikacji: Nadajnik i odbiornik muszą się fizycznie widzieć (zero przeszkód na linii), Zasięg - teoretycznie do kilku metrów, w praktyce – metr, Niskie przepustowości (tak naprawdę „pod maską” kryje się UART) ówczesnych urządzeń, Ale pewien fragment specyfikacji idealnie nadawał się do wykorzystania w Bluetooth,

7 Bluetooth – historia powstania 1998 A.D. Rolą tej grupy było opracowanie i ustandaryzowanie nowej technologii, W skład grupy wchodziły początkowo: Ericsson, Intel, Nokia, Toshiba Obecnie członków grupy jest ponad 20,000!

8 Bluetooth – historia powstania 1999 A.D. – Bluetooth 1.0 Pierwsza wersja technologii, Wprowadza model tak zwanej pikosieci (jedno urządzenie MASTER obsługujące kilka urządzeń slave), Ustanowiono trzy rodzaje mocy nadajników (lepszy dobór modułów do zastosowań) Została zdefiniowana warstwa sprzętowa oraz pierwsze profile wspieranych urządzeń.

9 Bluetooth – pikosieci

10 Bluetooth – podział urządzeń ze względu na moc LevelPower (mW)Theoretical Range (meters) ,

11 Bluetooth – warstwa sprzętowa

12 Bluetooth – przykład ramki (pakietu)

13 Bluetooth – profile urządzeń Jest to nic innego jak zestaw połączeń oraz ustawień udostępniany przez urządzenie, za pomocą którego realizowana jest pewna funkcjonalność określana przez standard. Aby profil mógł być używany zarówno master, jak i slave muszą go wspierać! -> przykłady profilów

14 Bluetooth – profile urządzeń A teraz pytanie – w jaki sposób określić, czy dany profil jest wspierany przez urządzenie?

15 Bluetooth – UUID universally unique identifier (UUID) – To 128 bitowy numer pozwalający na jednoznaczne określenie serwisów udostępnianych przez urządzenie. Bluetooth SIG określił UUID dla poszczególnych profilów. Bazowy UUID to F9B34FB, do którego aby określić usługę należy dodać 16 bitowy numer (short UUID). https://www.bluetooth.org/en-us/specification/assigned-numbers/service-discoveryhttps://www.bluetooth.org/en-us/specification/assigned-numbers/service-discovery -> lista UUID określających usługi poszczególnych profilów Bluetooth.

16 JSR-82 - standard Marzec, 2002 A.D. – pierwsza oficjalna wersja JSR-82 Wrzesień, 2000 A.D. – zgłoszenie JSR-82

17 JSR-82 - standard Główne zastosowanie – oczywiście wszechobecna wtedy Java ME, Wsparcie dla wersji 1.2 Bluetooth (niestety – nie są wspierane profile audio oraz komendy AT), Ale – trafił też do Java SE 1.1! Całość opiera się na udostepnieniu pewnych klas bazowych oraz interfejsów – w wypadku chęci wykorzystania należy zaimplementować własną logikę (niestety – brak jest referencyjnej implementacji SUN/Oracle…) https://docs.oracle.com/javame/config/cldc/opt- pkgs/api/bluetooth/jsr082/https://docs.oracle.com/javame/config/cldc/opt- pkgs/api/bluetooth/jsr082/ -> JSR-82 javadoc htmlhttp://www.oracle.com/technetwork/articles/javame/index html -> opis działania

18 JSR-82 - standard A teraz pytanie – skoro JVM gwarantuje, że kod nie dostanie się do urządzeń w sposób bezpośredni, to jak mamy dostać się do modułów Bluetooth na naszych maszynach?

19 JSR-82 - standard Odpowiedź -> JNI (czyli Java Native Interface). Krótko mówiąc – jest to architektura pozwalająca na wykonywanie z poziomu kodu Javy metod napisanych w „czystym” C/C++ (coś jak „wstawki” assemblera w kodzie C/C++, tylko bardziej skomplikowane w użyciu). W wypadku bluetooth’a należy się w jakiś sposób dostać do funkcji systemu operacyjnego, które odpowiadają za obsługę urządzeń.

20 BlueCove – implementacja JSR-82 Bluecove jest jedyną (przynajmniej znaną mi…) biblioteką Javy, która dość dobrze wspiera najpopularniejsze systemy operacyjne (Windows/MAC OS X/Linux) będąc przy tym oparta na licencji GPL. Minus – nie jest praktycznie rozwijana….

21 BlueCove – możliwości Zgodnie z wytycznymi standardu JSR-82 Bluecove udostępnia następujące funkcjonalności: Zarządzanie lokalnymi urządzeniami Bluetooth, Wyszukiwanie zdalnych urządzeń Bluetooth, Pobieranie informacji o serwisach udostępnianych przez zdalne urządzenia, Nawiązywanie i kończenie połączeń ze zdalnymi urządzeniami Bluetooth, Przekazywanie danych między połączonymi ze sobą urządzeniami, Tworzenie i udostępnianie serwisów widocznych dla innych urządzeń.

22 BlueCove – Zarządzanie lokalnymi urządzeniami (LocalDevice)

23 BlueCove – Wykrywanie dostępnych urządzeń (DiscoveryAgent/DiscoveryListener)

24

25 BlueCove – Wykrywanie dostępnych profilów Za wykrywanie dostępnych serwisów również odpowiada DiscoveryListener, Metoda servicesDiscovered() będzie zawierała tablicę obiektów klasy ServiceRecord, Każdy obiekt jest reprezentacją jednego serwisu jaki jest udostępniany przez urządzenie z którym chcemy się połączyć, Tak naprawdę ogranicza się on do listy parametrów, które służą do zestawienia połączenia z danym serwisem.

26 BlueCove – Tworzenie własnych serwisów Nic nie stoi na przeszkodzie, żeby zaimplementować własny serwis, który będzie udostępniany dla innych urządzeń. Wystarczy tylko pamiętać o kilku rzeczach: Serwis – jako master – odpowiada za nasłuchiwanie próśb połączeń przychodzących oraz ich ewentualną akceptację, W związku z tym klasa realizująca serwis MUSI albo dziedziczyć po klasie Thread albo implementować interfejs Runnable (Zagadka – dlaczego ?), Należy brać pod uwagę z jakiego protokołu będziemy korzystać (trochę inaczej wyglądają serwisy dla RFCOMM a inaczej te bazujące na OBEX Push).

27 BlueCove – Nawiązywanie połączenia ze zdalnymi serwisami Nawiązywanie połączenia z serwisem nie różni się zbytnio od udostępniania połączenia przez serwis.

28 Materiały dodatkowe

29 Pytania ?

30 DZIĘKUJĘ ZA UWAGĘ


Pobierz ppt "Bluetooth i Java Czyli JSR-82 w akcji Sławomir Brański Mail: Skype: branskislawomir."

Podobne prezentacje


Reklamy Google