Praktyczne podejście do problemu Home Automation Zastosowanie jako urządzeń sterujących popularnych telefonów wyposażonych w OS Symbian.

Wielkość: px
Rozpocząć pokaz od strony:

Download "Praktyczne podejście do problemu Home Automation Zastosowanie jako urządzeń sterujących popularnych telefonów wyposażonych w OS Symbian."

Transkrypt

1 Sławomir Jaros praca dyplomowa magisterska ( inżynierska ) Praktyczne podejście do problemu Home Automation Zastosowanie jako urządzeń sterujących popularnych telefonów wyposażonych w OS Symbian. Promotor: Dr inż. Michał Morawski Dyplomant: Sławomir Jaros nr albumu Łódź, r. 1

2 SPIS TREŚCI Wykaz skrótów...4 Wykaz rysunków...6 Wykaz tabel WSTĘP Idea Inteligentnego Budynku Definicja Inteligentnego Budynku Historia powstania i ewaluacja Inteligentnego Budynku Cel i zakres pracy Inteligentny Budynek Inteligentny Budynek zastosowanie Sieci domowe w kontekście Inteligentnego Budynku Podział sieci domowych ze względy na użyte medium Sieci z nowym okablowaniem Sieci bez nowego okablowania Sieci bezprzewodowe IrDA HomeRF ZigBee (IEEE ) Bluetooth Symbian system operacyjny Informacja ogólne Dlaczego Symbian? Interfejsy w Symbianie SDK i dostępne IDE pod Symbiana Podstawy Symbiana (różnice pomiędzy Symbianem a C++) Podstawowe typy danych Nazewnictwo klas Łańcuchy tekstowe i deskryptory Mechanizm opuszczeń (Leaves) Projekt Idea projektu Budowa projektu Aplikacja na telefon komórkowy Budowa i elementy składające się na aplikację Struktura katalogów projektu Podział aplikacji na podstawowe pliki Rodzaje plików w projekcie System identyfikatorów UID Zasada działania aplikacji Bezpieczeństwo Identyfikator UUID Protokoły wyszukiwania usług Aplikacja na PC Aplikacja na Game Board Profile zastosowań Bluetooth Instrukcja obsługi Wymagania sprzętowe

3 Instalacja Opis szczegółowy Standardy Bluetooth na komputery PC Dlaczego C Dalsze kierunki rozwoju Wnioski i podsumowanie...70 BIBLIOGRAFIA...72 Dodatek A...75 Zawartość nośnika CD-ROM...75 Dodatek B...76 Raport skrócony wygenerowany przez System Antyplagiatowy Plagiat.pl, za pomocą witryny 3

4 Wykaz skrótów HVAC - heating, ventilation and air conditioning EIBG - European Intelligent Building Group IrDA - Infrared Data Association VFIR - Very Fast Infrared FIR - Fast Infrared SIR - Serial Infrared AIr - Advanced Infrared. HomeRF - Home Radio Frequency HomePNA - Home PhoneLine Alliance CEBus - Customer Electronic Bus RF - Radio Frequency PLC - PowerLine Communication EIB - European Installation Bus EIBA - European Installation BUS Association CRC - Cyclic Redundancy Check IrLAP - Infrared Link Access Protocol IrLMP - Infrared Link Management Protocol IAS - Intention Access Service IrOBEX - Object Exchange Protocol IrLAN - Local Area Network IrMC - Infrared Mobile Communications IrTran-P - Infrared Transfer Picture SWAP - Shared Wireless Access Protocol CSMA/CA - Carrier Sense Multiple Access/Collision Avoidance PDA - Personal Digital Assistant CSMA/CA - Carrier Sense Multiple Access With Collision Avoidance MAC - Medium Access Control TDMA - Time Division Multiple Access ADS - Asynchronous Data Service PADS - Priority Asynchronous Data Service DSSS - Direct Sequence Spread Spectrum SSCS - Service-Specific Convergence Sublayer 4

5 LLC - Link Layer Control LR - WPAN - Low-Rate Wireless Personal Area Networks IG - Special Interest Group ISM - Industrial Scientific Medical TDD - Time Division Duplex CRC - Cyclic Redundancy Check HCI - Host Control Interface TCS - Telephony Control Specification RFCOMM Serial Port Emulation SDP - Service Discovery Protocol IDE - Integrated Development Environment SDK - Software Development Kit AIF - Application Information File MIME - Multipurpose Internet Mail Extension MBM - Multi Bitmap UID - Unique Identification Number URL - Uniform Resource Locator UUID - Universally Unique Identifier SLM - Salutation Manager SLP2 - Service Location Protocol, Version 2 SSDP - Simple Service Discovery Protocol PDP - Pervasive Discovery Protocol SSDS - Secure Service Discovery Service PDU - Protocol Data Unit SDDB - Service Discovery Database SPP - Serial Port Profile GCC - GNU Compiler Collection PIN - Personal Identification Number DAC - Device Access Code GOEP - Generic Object Exchange Profile FTP - File Transfer Profile OPP - Object Push Profile SP - Synchronization Profile 5

6 Wykaz rysunków 1. Schemat ideowy Inteligentnego Budynku 2 Schemat przedstawiający podsystemy Inteligentnego Budynku 3. Wykaz technologii dla sieci domowych 4. Przekrój przewodu komunikacyjnego w EIB 5.Możliwe topologie w EIB 6. Idea sieci HomePNA 7. Prędkości transmisji w porównaniu z odległościami w IrDA i Bluetooth 8. Stos protokołów IrDA 9. Specyfikacja HomeRF 10. Ulokowanie kanałów standardu Stos protokołów ZigBee 12. Topologie sieci ZigBee 13. Rozmieszczenie kanałów w systemie Bluetooth 14. Pikosieć: Jedno urządzenie Master (M) i cztery urządzenia Slave (S) 15. Dwie pikosieci mogą występować na jednym obszarze, nie zakłócając się nawzajem. 16. Pikosieci mogą tworzyć sieci rozproszone (scatternet). 17. Stos protokołów Bluetooth 18. Typy deskryptorów w Symbianie 19. Idea projektu 20. Budowa typowej aplikacji na Symbian OS 21. Proces powstawania pliku SIS 22. Wymiana klucza 23. Protokoły uczestniczące w transakcji SDP 24. LPC2104 Color LCD Game Board 25. Wariant rozbudowy projektu 6

7 Wykaz tabel Tab.1 Podstawowe parametry standardu ZigBee Tab.2 Przepustowość kanałów transmisyjnych Tab.3. Środowiska programistyczne pod Symbian OS (IDE) Tab.4. Podstawowe typy danych w systemie Symbian 7

8 1 WSTĘP 1.1 Idea Inteligentnego Budynku Coraz częściej usłyszeć można o zastosowaniach nowoczesnej technologii w różnych dziedzinach przemysłu. Bardzo szybko rozwijająca się technika pozwala zastosować innowacyjne technologie w budynkach, w których, na co dzień przebywamy. Poprawia to komfort codziennego życia, nasze bezpieczeństwo a także daje to oszczędność w eksploatacji. Jeszcze kilkanaście lat temu instalacja pozwalająca na inteligentne sterowanie urządzeniami znajdującymi się w budynku była mało realna. Obecnie tradycyjne rozwiązania powoli zostają wypychane przez standardy umożliwiające inteligentne sterowanie budynkiem (rozdz. 2). Wyobraźmy sobie sytuację, jak po trudach codziennej pracy wracamy do domu. Po wejściu, włącza się przyjemne oświetlenie, włącza się muzyka, film lub jakiś inny stosowany program TV dostosowany do naszego gustu. Temperatura w całym domu wyregulowana jest na optymalną wartość, odpowiadającą wszystkim mieszkańcom domu. Nie jest ani za zimno ani za gorąco. Zasiadając przy telewizorze w naszym ulubionym salonie, nie musimy martwić się o to, że poziom natężenia światła jest niezadowalający, wystarczy jedno naciśnięcie przycisku tryb wieczorowy na pilocie, komórce lub innym urządzeniu sterującym lub nawet jedno słowo żeby włączyć wcześniej zdefiniowaną wartość natężenia światła powodując natychmiastową zmianę klimatu w pokoju. Żaluzje okienne przysłonią się automatycznie w zależności od nasłonecznienia pokoju [3, 4]. W dzisiejszych czasach mało kto ma czas na pielęgnację własnego ogródka, a w szczególności na jego codzienne podlewanie. Nie musimy się już o to martwić, gdyż w zależności od panujących warunków pogodowych, dom sam o to zadba. Wychodząc z domu, przekręcając klucz w naszych drzwiach automatycznie włącza się system alarmowy, opuszczają się rolety w oknach, obniża się temperatura w poszczególnych pokojach, niezgaszone lampy same się wyłączają, sprzęt AGD i RTV zostaje automatycznie wyłączony [4]. Oprócz wygody, tego typu czynności pozwalają nam zaoszczędzić znaczną ilość energii, co nie jest wcale bez znaczenia w dzisiejszych czasach. Te wszystkie zautomatyzowane czynności to właśnie idea Inteligentnego Domu. 8

9 Rys.1 Schemat ideowy Inteligentnego Budynku [http://dqm.pl/_img/inteligentny_bud.jpg] 1.2 Definicja Inteligentnego Budynku Inteligentny budynek (również inteligentny dom, system zarządzania budynkiem) jest określeniem wysoko zaawansowanego technicznie budynku. Zdefiniowanie samego pojęcia nie jest rzeczą prostą i spotkać można wiele określeń. [2].Według EIBG Budynek Inteligentny to budynek, który maksymalizuje efektywność osób go wykorzystujących i pozwala efektywnie zarządzać zasobami przy minimalnych kosztach [2]. Według innej definicji Budynek Inteligentny posiada zdolność adaptacji do nowej technologii i zmieniających się potrzeb organizacji jego użytkowników [2]. Jeszcze inni uważają, że Inteligentny Budynek to taki, w którym można kontrolować cały budynek za pomocą kilku przycisków lub pilota. Uogólniając temat definicji Inteligentnego Budynku uważam, że Inteligentne Budynki powinny mieć następujące cechy: Integracja systemów teletechnicznych w budynku Centralny system zarządzania i nadzoru Kanał komunikacyjny umożliwiający sterowanie urządzeniami w budynku 9

10 Efektywne zarządzanie przestrzenią budynku w celu minimalizacji kosztów eksploatacji 1.3 Historia powstania i ewaluacja Inteligentnego Budynku Zagadnienie sterowania różnymi urządzeniami zarówno w danym pomieszczeniu jak i jego otoczeniu jest znane od dawna [2]. Sam pomysł Inteligentnych Budynków wywodzi się ze Stanów Zjednoczonych. Początki rozwoju przypadają na wczesne lata 70- te. W tym okresie poddano elektronicznym udoskonaleniom systemy ogrzewania, wentylacji i klimatyzacji (ang. HVAC) oraz systemy oświetleniowe. Głównymi powodami tych zmian były względy ekonomiczne, tj. konieczność ograniczenia zużycia energii oraz usprawnienie obsługi nowo powstających, coraz to większych biurowców [2]. Sprecyzowane pojecie Inteligentnego Budynku pojawiło się 10 lat później, w latach 80-tych, gdzie nastąpiła stopniowa automatyzacja różnych systemów, tj. system kontroli dostępu, system przeciwpożarowy, system sterowania windami itp.[2]. Zaczęto intensywnie myśleć nad koordynacją działania elementów poszczególnych systemów. Sukcesywna integracja różnych technologii w latach 90-tych doprowadziła do powstania współczesnych Budynków Inteligentnych. Obecnie wszystkie systemy w budynku mają strukturę sieciową. Trzeba powiedzieć o tym, że niektóre systemy bywają celowo rozdzielone, jednak są kontrolowane przez jeden centralny punkt, aby ułatwić ich współdziałanie. Przykładami takich systemów zajmę się w rozdziale 3. 10

11 2 Cel i zakres pracy Cel pracy można podzielić na dwie części. Część pierwsza to poznanie systemu operacyjnego Symbian OS, który obok Windows Mobile jest najbardziej rozpowszechnionym systemem operacyjnym na telefony komórkowe. Precyzując ten rozległy temat, celem jest zapoznanie ze sposobami tworzenia i uruchamiania oprogramowania na tym systemie. Druga część polega na wykorzystaniu napisanego oprogramowania do sterowania urządzeniami w oparciu o protokół (Bluetooth). Zakres pracy obejmuje opisanie zasady tworzenia aplikacji komunikacyjnych dla OS Symbian, zapoznanie się z protokołem Bluetooth, oraz opracowanie protokołu wymiany informacji pomiędzy różnego typu urządzeniami wyposażonymi w interfejs Bluetooth ze szczególnym uwzględnieniem problemów niezawodności i bezpieczeństwa transmisji, ale także wygody użytkownika systemu. 11

12 3 Inteligentny Budynek 3.1 Inteligentny Budynek zastosowanie Można budować całe systemy złożone z przeróżnych sensorów, czujników. Oczywiście można to wszystko usystematyzować, w poszczególne podsystemy, które w krótki sposób postaram się scharakteryzować. Rys.2 Schemat przedstawiający podsystemy Inteligentnego Budynku [http://www.mikroenergetyka.com.pl/images/systemy/eib2.jpg] Do najbardziej popularnych podsystemów zalicza się: System sterowania ogrzewaniem Zastosowanie takiego systemu jest dosyć oczywiste. Jego zadaniem jest odpowiednia reakcja na zbyt niską lub zbyt wysoką temperaturę panującą w danym pomieszczeniu. Polega to na podgrzewaniu względnie obniżaniu temperatury poszczególnych pokoi 12

13 [6]. Nie trudno wyobrazić sobie sytuację gdzie dwa pokoje usytuowane są w różnych częściach domu, jeden od wschodu słońca, a drugi od zachodu. Wydawałoby się, że temperatura w tych pomieszczeniach musi być różna, uzależniona od położenia tych pokoi. Wcale nie musi tak być, gdyż taki system zadba o to, aby temperatura we wszystkich pokojach była taka sama, dostosowana do naszych wymagań. [4] System sterowania oświetleniem We wstępie mojej pracy wspomniałem o tym systemie, który jest odpowiedzialny za automatyczną regulację oświetlenia zgodną z upodobaniami mieszkańców. Najprostsze systemy tego typu umożliwiają zaprogramowanie kilku nastrojów oświetleniowych w poszczególnych pomieszczeniach [6]. Zaawansowane systemy umożliwiają jeszcze bardziej fantazyjne rozwiązania [5]. Możemy zaprogramować ściemnianie lamp, tak żeby w określonych godzinach wieczorowych światło na korytarzu nie oślepiało nas. Często zdarza się, że wracając z zakupów, wchodząc do domu mamy zajęte ręce. Otwierając zamek w drzwiach, system automatycznie wykryje naszą obecność i podejmie stosowną decyzję o włączeniu światła w pokoju, w którym się znaleźliśmy [5][6]. System symulacji obecności Jest to jeden z najbardziej popularnych sposobów wykorzystania systemu inteligentnego domu [6]. Wyjeżdżając na zasłużony wakacyjny wypoczynek, nasz dom staje się potencjalnym celem dla złodzieja. Posiadanie takiego systemu zmniejsza ryzyko nieproszonych gości. Wystarczy, że odpowiedni moduł systemu nagrywa poczynania domowników przez pewien okres czasu i odtwarza nagrane czynności symulując obecność w budynku (chodzi głównie o zapalanie i gaszenie światła w poszczególnych pomieszczeniach, włączanie muzyki) [6]. Bardziej wyrafinowane systemy wykorzystują do tego celu większość urządzeń zintegrowanych z systemem, tj. telewizora, telefonu, lub innych podsystemów, które skutecznie mogą odstraszyć włamywacza [6]. 13

14 System alarmowy Pożar, powódź i inne żywioły są największymi zagrożeniami dla budynku a przede wszystkim dla ludzi tam przebywających. Nie można też zapomnieć o wrogu, jakim jest włamywacz. Wczesne wykrycie zagrożenia i możliwość zapobiegnięciu niebezpieczeństwa jest podstawowym celem takiego systemu [6]. Dzięki czujnikom i detektorom takim, jak chociażby detektor ruchu możliwa jest reakcja systemu na próby włamania [10]. Reakcje systemu mogą być bardzo różne [9], od włączenia alarmu, który sygnałem dźwiękowym zwróci uwagę osób trzecich, po automatyczne poinformowanie policji o zaistniałych okolicznościach. Bardzo często taki system jest połączony z innymi systemami, tj. systemem kamer, który może okazać się kluczowym zagadnieniem dla policji, czy systemem przeciwpożarowym, który w kilku zdaniach omawiam poniżej. System przeciwpożarowy Tak jak wspomniałem wcześniej, jest on istotnym systemem z punktu widzenia systemu alarmowego, gdyż bardzo często jest on uruchamiany za jego pośrednictwem. Zadaniem tego podsystemu jest oczywiście ochrona budynku przed pożarem wraz z jego mieszkańcami. Taki system najczęściej składa się z dwóch części: sieci czujników temperatury i dymu oraz bezpośredniej sieci przeciwpożarowej, czyli sieci różnego typu spryskiwaczy [9] [10]. System kontroli dostępu Jeden z bardziej skomplikowanych systemów. Ma zastosowanie przede wszystkim w biurowcach i jest oparty najczęściej o system personalizacji. Osoba z grupy osób, która ma dostęp do wybranego budynku chcąc wejść do niego musi być rozpoznana przez system personalizacji, który w następstwie informuje system kontroli, że dana osoba ma prawo wejścia do budynku. Wspomniany system personalizacji zajmuje się dostosowywaniem wymagań poszczególnych osób w inteligentnych budynkach. Idea jest taka, żeby osoby znajdujące się w grupie objętej dostępem do budynku, mające różne upodobania miały 14

15 możliwość zdefiniowania systemu tak żeby funkcje systemu realizowane automatycznie odpowiadały ich wymaganiom. [10] System pogodowy System, na który składa się szereg czujników, które decydują o zamknięciu okien na wypadek deszczu. Czujniki takie mogą również spowodować przejście na niezależne zasilanie podczas burzy. Powyżej wymieniłem tylko podstawowe podsystemy, które wchodzą w skład systemu zarządzania budynkiem. Trzeba mieć świadomość, że podobnych podsystemów jest bardzo wiele [6]. 3.2 Sieci domowe w kontekście Inteligentnego Budynku Całkiem nie dawno temat sieci domowych nie cieszył się tak dużą popularnością jak dzisiaj. Na skutek bardzo szybkiego rozwoju Inteligentnego Budynku, zainteresowanie sieciami domowymi diametralnie wzrosło. Termin Sieć Domowa ( Home Network) wygląda dosyć niewinnie, w rzeczywistości można powiedzieć, że jest to sieć składająca się z wielu komputerów i urządzeń peryferyjnych, które połączone są ze sobą istniejącą instalacją telefoniczną i elektryczną lub bezprzewodową. [11]. W odniesieniu do Inteligentnego domu, sieci domowe można podzielić na dwie podsieci: komputerowe (HomePNA, HomeRF, inne) i sieci sterujące urządzeniami peryferyjnymi (EIB, X10, PLC, Lonworks, CEBus, Echonet, technologie bezprzewodowe). Oczywiście obie te podsieci muszą umieć rozmawiać ze sobą. 15

16 Rys3. Wykaz technologii dla sieci domowych [11] 3.3 Podział sieci domowych ze względy na użyte medium Sieci z nowym okablowaniem Ethernet 10Base-T HAVi (Home Audio Video interoperability) EIB (European Installation Bus) USB (Universal Serial Bus) Protokół IEEE 1394 (Fireware) Ethernet Najważniejszą z tych sieci jest oczywiście sieć Ethernet. Zalety takiej sieci są powszechnie znane, czyli niezawodność i szybkość przesyłania danych. Dużą wadą, hamującą rozwój tej sieci jest konieczność dodatkowego okablowania oraz dosyć duży stopień komplikacji [7]. Nie będę opisywał tego protokołu, gdyż jest on powszechnie znany i informacje o nim są ogólnie dostępne. HAVi Komunikacja wszystkich urządzeń w tej sieci odbywa się za pośrednictwem jednego urządzenia sterującego. Nośnikiem sprzęgającym jest IEEE Dużą zaletą jest to, że 16

17 HAVi może operować na urządzeniach od różnych producentów [19]. System z definicji ma być bardzo łatwy w obsłudze i dlatego, kiedy zostanie dołączone jakieś nowe urządzenie, takie jak faks, czy drukarka, to system sam je skonfiguruje. Więcej na ten temat można dowiedzieć się ze strony internetowej EIB Opracowany został przez czołowych europejskich producentów systemów elektroinstalacyjnych w 1990 roku [21]. W Polsce pojawił się 6 lat później. Instalacja EIB pozwala na swobodne zarządzanie budynkiem, czyli służy do szeroko rozumianego sterowania urządzeniami elektrycznymi stosowanymi w budownictwie [21]. Jest ona bardzo konkurencyjną instalacją dla klasycznej instalacji elektrycznej. Tradycyjne elementy sterownicze zostały zastąpione urządzeniami wykonanymi w technice cyfrowej, które potrafią wymieniać informacje za pomocą jednego, łączącego wszystkie urządzenia elektryczne przewodu magistralnego. Przekrój takiego przewodu przedstawia rysunek numer 4. Jest to dwuparowa skrętka o przekroju żyły 0,8mm, zasilanej napięciem stałym 24 V. Do transmisji wykorzystywana jest tylko jedna para przewodów, druga służy jako rezerwa. Rys.4 Przekrój przewodu komunikacyjnego w EIB [http://www.e-instalacje.pl/artykul_zdjecia/instabus_art3.jpg] Z punktu widzenia bezpieczeństwa, wielką zaletą jest fakt, iż przez ten przewód płynie bezpieczne napięcie 24V. Napięcie 230 V owszem występuję, jednak doprowadzone jest tylko i bezpośrednio do odbiorników prądu (gniazdka elektryczne itp.) [22]. 17

18 W krajach Unii Europejskiej EIB jest jednym z najszybciej rozwijających się standardów automatyki. Szacuje się, że 70% nowo budowanych budynków w Niemczech będzie posiadało system EIB [21]. Sieć komunikacyjna, EIB jest siecią typu peer to peer, w której może funkcjonować do urządzeń [21]. Wszystkie te urządzenia mają równe prawa dostępu do medium komunikacyjnego. Wynika to bezpośrednio z protokołu CSMA/CA [20]. Możliwe topologie EIB przedstawia rysunek numer 5. Więcej informacji na temat EIB można dowiedzieć się ze strony internetowej Rys 5. Możliwe topologie w EIB [http://upload.wikimedia.org/wikipedia/commons/b/b4/topologia_eib.png] Sieci bez nowego okablowania HomePNA (Home PhoneLine Alliance) - standardy sieci oparte na skrętce telefonicznej; PLC (PowerLine Communication) sieć szerokopasmowa oparta na zewnętrznym okablowaniu energoelektrycznym PLC (PowerLine Communication) sieć wąskopasmowa oparta na wewnętrznym okablowaniu elektroenergetycznym. Do najczęstszych protokołów własnych 18

19 należą: X10, CEBus, Lonworks, PLT, PLUG-IN, Echonet. Do tej grupy zaliczają się sieci oparte o już istniejące okablowanie elektroenergetyczne i telefoniczne na skrętce UTP. HomePNA Jest to sieć, w której urządzenia połączone są za pomocą skrętki telefonicznej. Obecnie przepływność sieci wynosi 100 Mb/s. Specjalne konsorcjum o tej samej nazwie, co protokół zajmuje się standaryzacją tego typu systemów sieciowych. Do grupy założycieli należą największe firmy na świecie z branży IT, tj.:3com, IBM, INEL, Hewlett-Packard i wiele innych [11]. Obecnie sieć obsługuje do 25 urządzeń. Poniżej przedstawiam rysunek, obrazujący idee takiej sieci. Rys 6. Idea sieci HomePNA [http://www.domotica.nl/images/standaard-homepna.jpg] Więcej na temat tego standardu można dowiedzieć się na stronie internetowej PLC Komunikacja w tej sieci oparta jest o linie elektroenergetyczne. Rozróżnić można dwa rodzaje takich sieci: szerokopasmową i wąskopasmową. Mnie w szczególności interesuje 19

20 sieć wąskopasmowa, która korzysta jedynie z domowego okablowania elektroenergetycznego, które służy do komunikacji urządzeń elektrycznych. Urządzenia w takiej sieci działają w oparciu o różne standardy (protokoły). Postaram się wymienić te najbardziej popularne i mające przyszłość i w kilku zdaniach je omówić [11]. X10 Protokół ten znany jest już od około 25 lat i z założenia przeznaczony jest do sterowania urządzeniami domowymi, tj.: oświetleniem, czy ogrzewaniem i wentylacją [11, 13]. Największą popularność zyskał w USA, jednak technologia X10 zaczyna się też cieszyć dużą popularnością na innych kontynentach [13]. Ważną rzeczą jest to, aby jak największa ilość urządzeń przeznaczonych dla Inteligentnych Budynków umiało obsługiwać ten protokół. Obliczono, że na rynku światowym jest już ponad 10 milionów urządzeń obsługujących ten protokół. Rozbudowa takiej sieci jest rzeczą niebywale prostą, gdyż wymaga jedynie włączenia nowego urządzenia do jakiegoś gniazdka prądowego lub zamontowania go na szynie DIN (takiej jak przy bezpiecznikach) [13]. Transmisja danych cyfrowych przez przewody instalacji elektrycznej odbywa się przy użyciu modulacji amplitudowej. Dane przesyłane są w specjalnych ramkach po detekcji przejścia napięcia przemiennego przez zero [13]. Więcej informacji na temat X10 znaleźć można na witrynie LonWorks Jeden z bardziej wyrafinowanych protokołów komunikacyjnych. Standard ten jest silnie wspierany przez największe koncerny w USA, a także w Europie. Technologia LonWorks umożliwia łączenie różnorodnych urządzeń nie tylko po przewodach zasilających. Kanałem komunikacyjnym równie dobrze może być skrętka telefoniczna, fale radiowe czy podczerwień [15]. Komunikacja jest odporna na zakłócenia dzięki specjalnym systemom kontroli błędów, które są wbudowane w urządzenia obsługujące ten standard. Jak podaje Echelon (firma zajmująca się tym protokołem), w skład systemu może wchodzić maksymalnie 32 tysiące urządzeń [15]. Wąskopasmowe urządzenia PLC pracujące w omawianym systemie składają się typowo z kilku komponentów: zasilacza, mikroprocesora, transceivera, oraz elementu sprzęgającego sygnał danych z siecią 20

21 energetyczną. Więcej informacji na ten temat można znaleźć na witrynie CEBus i PLUG-IN Urządzenia produkowane przez firmę Intellon, która promuje system CEBus posiadają układ nadawczo-odbiorczy oraz mikrokontroler. Szybkość transmisji dochodzi do 10kb/s z wykorzystaniem techniki rozpraszania widma [11]. Jest to otwarty standard, który zapewnia specyfikację oddzielnej warstwy fizycznej dla komunikacji liniami elektroenergetycznymi, światłowodami, skrętkami, podczerwienią oraz RF [13]. Specyfikacja definiuje wspólną składnię komend, dzięki której następuje komunikacja (jest to tzw. język CAL, ang. Common Application Language) [13]. Więcej informacji na temat tego protokołu znaleźć można na stronie internetowej firmy Intellon ( ). Protokół PLUG-IN w pełni odnosi się do warstwowego modelu OSI. Zostały w nim zdefiniowane wszystkie warstwy oprócz sesji i prezentacji [11]. Protokół PLUG-IN jest podobny do CEBus. Różnica jest taka, że Intelogis (firma upowszechniająca PLUG-IN) promuje model klient/serwer, a nie model peer to peer [17]. Dużą wadą obu standardów (w porównaniu do standardu X10) jest wysoka cena urządzeń obsługujących te standardy. ECHONET Echonet wywodzi się z Japonii i jest jedną z najnowszych technologii sieci domowych. Oprócz obsługi linii energetycznych, specyfikacja umożliwia wykorzystanie łączy bezprzewodowych a także łączy IrDA [11]. Patrząc na ten protokół z punktu widzenia modelu OSI, warstwę fizyczną sieci można rozszerzać na inne media, chociażby takie jak Bluetooth oczywiście przez dodanie odpowiednich sterowników. Echonet cechuje otwarta architektura. Producenci mogą więc dodawać własne usługi. Więcej na ten temat można dowiedzieć się ze strony internetowej Współczesne standardy PLC Obecnie standardami PLC zajmuje się kilka organizacji na świecie. Na kontynencie europejskim najważniejszą jest Open PLC European Research Alliance (OPERA), która częściowo finansowana jest przez Komisję Europejską [16]. Produkty oparte na 21

22 specyfikacji tego standardu będą w stanie przesłać dane z prędkością 200 Mb/s [16]. Więcej informacji na jego temat można znaleźć na Inne gremium standaryzacyjne, Home Plug Alliance zajmuje się specyfikacją HomePlug AV, która teoretycznie oferuje transfer do 200 Mb/s (podobnie jak OPERA), lecz w praktyce jest trochę inaczej. W rzeczywistości sieć oparta o ten standard umożliwia przesyłanie danych z prędkością rzędu 14 Mb/s (HomePlug 1.1) i 85 Mb/s (HomePlug Highspeed) [18]. Specyfikacja opisuje HD-PLC, która umożliwia prędkość przesyłania danych na poziomie 170 Mb/s, lecz na razie jest to rozwiązanie czysto teoretyczne. Również teoretyczna jest możliwość podłączenie 253 adapterów maszyn, gdyż producenci nie zalecają wykorzystywania więcej niż dziesięciu jednocześnie [18]. Jednak istotną rzeczą jest to, iż nowy standard zapewnia szyfrowanie transmitowanych danych [16]. Zainteresowanie standardem jest dosyć duże, gdyż można zaobserwować powiększającą się listę certyfikowanych przez HomePlug Alliance urządzeń. Niestety zdecydowana większość produktów przeznaczona jest na rynek amerykański, gdzie napięcie w instalacjach elektrycznych wynosi 110V. Warto również zauważyć, że specyfikacja opisująca ten standard nie jest ujawniona. Więcej informacji można znaleźć na firmowej stronie internetowej firmy dostarczającej układy scalone dla urządzeń zgodnych z tym standardem Oprócz OPERY i HomePlug dwie grupy producentów zawiązały współpracę w celu stworzenia standardu PLC. Pierwszą jest United Powerline Association (w skład której wchodzi m.in. Ascom), oraz CE-Powerline Communications Alliance (w skład której wchodzą m.in. Panasonic i Sony). Wspomniana przeze mnie firma Ascom posiada swój własny system PLC (ASCOM PLC), który składa się z systemów zewnątrzbudynkowego (outdoor) i wewnątrzbudynkowego (indoor). Mnie interesuje ten drugi. System wewnątrzbudynkowy rozsyła sygnał do wszystkich gniazdek w budynku. Umożliwia przesyłanie danych przez sieć energetyczną niskiego napięcia z szybkością 4,5 Mb/s [17]. Producent podaje jednak, że praktyczna wartość tego parametru to 3 Mbit/s. Urządzenie końcowe podłączone do gniazdka to samokonfigurujący się adapter z wbudowanymi interfejsami 10Base-T i USB [17]. Adapter może również posiadać złącze telefoniczne a/b, dzięki któremu możliwe jest podłączenie telefonu analogowego. System umożliwia także stworzenie sieci domowej, do której dostęp jest zapewniony z każdego gniazdka elektrycznego w budynku [17]. 22

23 Omawiany system charakteryzuje się ograniczonym zasięgiem, co oznacza, iż długość linii dystrybucyjnej pomiędzy stacją transformatorową a budynkiem odbiorcy energii nie może przekroczyć 350 m, a długość przewodów domowej instalacji elektrycznej łączącej urządzenia w sieć lokalną nie powinna być większa niż 70 m [17]. Więcej informacji można się dowiedzieć ze strony internetowej Największą konkurencją dla systemu oferowanego przez firmę Ascom jest rozwiązanie PLUS (Power Line Ultimate System) izraelskiej firmy Main.net. Niestety producent nie podaje dokładnych parametrów technicznych produkowanych urządzeń. Maksymalna szybkość transmisji oferowana przez system nie przekracza 2,5 Mbit/s [14]. Na szczególną uwagę zasługuje internetowy terminal HotPLUS, który po podłączeniu do dowolnego gniazdka zasilającego w budynku umożliwia dostęp do różnorodnych usług, takich jak: poczta elektroniczna, wideo-konferencje, oraz telefonia pakietowa [14]. Szczegółowe informacje na jego temat można znaleźć na stronie internetowej firmy MainNet Communications Podsumowując bardzo rozległy temat jakim jest PLC, warto zauważyć że problemem PLC nie jest brak standardów, lecz paradoksalnie ich nadmiar. W przyszłości może powstanie jedna, ale za to dopracowana specyfikacja, która ułatwi rozwój tego standardu Sieci bezprzewodowe IrDA HomeRF ZigBee Bluetooth IrDA Jest protokołem transmisji cyfrowych w podczerwieni, który powstanie zawdzięcza normalizacji dotyczącej pilotów do telewizorów i magnetowidów. Protokół ten jest silnie wspierany przez największe firmy na świecie. Na razie IrDA zapewnia transmisję typu 23

24 punkt-punkt na odległość ok. 1 m w zakresie falowym nm. [23]. Osiągane prędkości przepływu danych dochodzą do 16 Mb/s, ale kąt transmisji nie może przekroczyć 30 [23]. Prędkość transmisji jest ściśle związana z odległością komunikujących się urządzeń. Wystarczy że odległość tą zwiększymy do 5 m, wówczas szybkości transmisji spadnie do 75 kb/s. Dobrze ilustruje to rysunek numer 7 [23]. Patrząc na ten rysunek można zauważyć: IrDA-Data, IrDA-Control oraz AIr. Są to standardy komunikacji za pośrednictwem fal podczerwonych. IrDA DATA przeznaczony jest dla transmisji danych (VFIR, FIR, SIR) [23], IrDa Control obejmuje aspekty sterowania a AIr jest jeszcze na etapie rozwoju. Rys. 7 Prędkości transmisji w porównaniu z odległościami w IrDa i Bluetooth [12] Architektura tego standardu składa się z kilku protokołów i pokazuje to rysunek nr.8. Protokoły te podzielone są na warstwy spełniające wiele funkcji. A warstwy można podzielić na 3 podgrupy [11]: - protokoły implementowane obowiązkowo - protokoły opcjonalne - protokoły multimedialne 24

25 Rys. 8 Stos protokołów IrDA [12] W skład pierwszej podgrupy (protokołów obowiązkowych) wchodzą: Warstwa fizyczna (Physical Layer) - tutaj następuje kodowanie danych, synchronizacja ramek, oraz sprawdzanie bitu nadmiarowości CRC [12]. IrLAP - jest to protokół dostępu do łącza i odpowiada za niezawodny transfer danych. Jej zadaniem jest m.in. zawiadamianie warstw wyższych o zaistniałych problemach, tj. przerwanie wiązki światła itp. Jeśli taka sytuacja ma miejsce wówczas użytkownik może otrzymać stosowny komunikat informujący o problemie. Trzeba nadmienić że wszystko to odbywa się bez przerwania połączenia i utraty transmitowanych danych [12]. IrLMP - protokół zarządzania łączem, który odpowiada za multipleksowanie usług i aplikacji [12]. IAS - protokół dostępu do informacji [12]. 25

26 Zastosowanie protokołów opcjonalnych zależy od konkretnej aplikacji. Do tej podgrupy należą [12]: IrTTP - protokół transportowy, pełni bardzo ważną funkcję, gdyż zapewnia sterowanie strumieniem w kanale. Funkcja ta jest często rekomendowana dla wielu aplikacji. IrOBEX - ułatwia transfer plików oraz innych obiektów danych. protokół ten określa zasady wymiany obiektów (pliki, wszelkiego rodzaju informacje sterujące) pomiędzy stacjami (komputery klasy PC, urządzenia telekomunikacyjne, sprzęt gospodarstwa domowego, itp.) IrCOMM - jego zadaniem jest emulowanie portów szeregowych i równoległych. IrLAN - określa zasady współpracy z sieciami lokalnymi (zapewnia urządzeniom, przykładowo notebookom, dostęp do sieci lokalnej za pośrednictwem podczerwieni). Protokoły multimedialne zaliczające się do grupy protokołów opcjonalnych to: IrMC - jego zadaniem jest określenie zasad współpracy ze sprzętem telekomunikacyjnym (telefony komórkowe, itp.) IrTran-P - określa zasady przesyłu i reprezentacji obrazów cyfrowych. Dodając protokół warstwy aplikacyjnej w bardzo łatwy sposób mamy możliwość uzyskania dodatkowej usługi [23]. Ponadto standard ten cechuje możliwość zwiększania szybkości w następnych wersjach, nie tracąc jednocześnie kompatybilności ze starszymi. Poprzez implementowanie tylko niektórych wybranych protokołów (z puli protokołów opcjonalnych) możemy uzyskać pewnego rodzaju oszczędność (przykładowo aparaty cyfrowe z IrDA nie musza implementować protokołu dostępu do sieci LAN ) [12]. 26

27 HomeRF Protokół ten wyróżnia się tym z pośród innych, że równocześnie zapewnia: szerokopasmowy dostęp do Internetu, współdzieli zasoby, wiele sesji strumieni medialnych a także kilka wysokiej jakości połączeń głosowych [12]. Dobrze to uwidacznia rysunek numer 9, gdzie przedstawiłem stos protokołów. Rys. 9 Specyfikacja HomeRF [12] Urządzenia HomeRF operują w globalnie otwartym paśmie 2,4 GHz, czyli w takim samym co Bluetooth i kuchenki mikrofalowe [12]. Stosują technologię skoków po częstotliwościach - od 50 do 100 skoków na sekundę. Problem utraty pakietów wiąże się z interferencjami wywołanymi przez inne urządzenia działające w tym samym paśmie lub inne sieci bezprzewodowe [12]. W HomeRF zaimplementowano kilka mechanizmów które zwalczają ten problem. Pakiety z danymi podlegają ADS [24], czyli mechanizmowi pozwalającemu uniknąć kolizji. Jeśli węzeł nie otrzyma potwierdzenia odbioru pakietu, wówczas przed próbą powtórnego wysłania pakietu odczeka jakiś zadany okres czasu, odpowiadający pewnej liczbie szczelin czasowych. Innym mechanizmem który został zaimplementowany w HomeRF jest mechanizm o nazwie PADS [24]. Jest to metoda która pozwala przypisać konkretnym pakietom priorytet dostępu do kanału komunikacyjnego (mechanizm przydatny np. w sesjach wideo). 27

28 Kilka informacji o stosie protokołów HomeRF. Za szybkość przesyłania danych odpowiada oczywiście warstwa fizyczna. Warstwa wyższa (czyli MAC) odpowiada za bezpieczeństwo, oraz definiuje typy obsługi danych (np. video) [12]. Trzeba wspomnieć o najważniejszym protokole, który został zdefiniowany w HomeRF, czyli o SWAP [24] (umiejscowiony w warstwie MAC). Umożliwia on przenoszenie zarówno głosu jak i danych. Interaktywne transakcje głosowe wykorzystują TDMA, natomiast transakcje asynchroniczne (usługi bezpołączeniowe, używane typowo w ruchu TCP/IP) wymagają CSMA/CA [24]. W porównaniu z Ethernetem, można powiedzieć, że HomeRF jest jego przeciwieństwem ponieważ używa dwóch oddzielnych protokołów dostępu do medium. Wybiegając w przyszłość, zagrożeniem z punktu widzenia firm które są mocno związane z rozwojem tego standardu są technologie HomePNA i PLC. Kto zwycięży, dowiemy się w niedalekiej przyszłości ZigBee (IEEE ) Promocją tego standardu zajmuje się grupa ZigBee Alliance, do której należą największe firmy zajmujące się oprogramowaniem i produkcją sprzętu elektronicznego. Najważniejszą cechą tego standardu, którą należy wymienić w pierwszej kolejności jest niski pobór energii urządzeń które się ze sobą komunikują. Inną zaletą jest prostota budowy sieci opartej o ZigBee [25]. Urządzenia pracujące w takiej sieci działają w zakresach częstotliwości które nie wymagają pozwolenia [26]. Dobrze to obrazuje rysunek numer

29 Rys. 10 Ulokowanie kanałów standardu [25] We wszystkich 27 kanałach komunikacyjnych wykorzystuje się proste rozpraszanie widma DSSS [26]. Pozostałe parametry tego standardu pokazuje tabela numer 1 Pasmo 868/915 MHz (11 kanałów), 2,4 GHz (16 kanałów) Zasięg m Opóźnienie 15 ms Adresowanie 8 lub 64 bity Dostęp do kanału CSMA-CA Przepływność 868 MHz: 20kb/s; 915 MHz: 40kb/s; 2,4 GHz: 250kb/s Temperatura pracy Od -40 do 85 C Tab.1 Podstawowe parametry standardu ZigBee Stos protokołów w ZigBee przedstawia rysunek na następnej stronie. 29

30 Rys.11 Stos protokołów ZigBee [25] Na uwagę zasługuje jedynie warstwa łącza danych, w której znajduje się specjalna podwarstwa zbieżności SSCS [26] odpowiedzialna za współpracę z logiczną kontrolą łącza zgodną z SSCS zapewnia kompatybilność pomiędzy różnymi implementacjami LLC. ZigBee przewidział w swojej specyfikacji specjalny tryb pracy dla aplikacji które wymagają małych, stałych opóźnień. Wówczas ustalony koordynator koordynuje pracę urządzeń mu podległych. Realizuje to poprzez wysyłanie w odpowiednim czasie specjalnych ramek kontrolnych. Odstęp między nimi może wynosić od 15 ms do 245 s. Dostęp do szczelin czasowych w których można coś wysłać odbywa się na zasadzie rywalizacji, lecz urządzenie koordynujące ma możliwość przypisania szczeliny czasowej urządzeniu, które wymagać będzie określonego pasma i opóźnienia [25]. Który mechanizm zostanie użyty, zależy od topologii sieci. Możliwe topologie przedstawia rysunek numer12. Rys.12 Topologie sieci ZigBee [25] 30

31 Obecnie ZigBee jest silną konkurencją dla standardu X10 czy LonWorks, które w dużej mierze ograniczone są przez kable. Największym rywalem jest jednak Bluetooth, który opisuję szerzej w następnym podrozdziale. Dużą zaletą ZigBee w odniesieniu do Bluetooth jest zasięg między węzłami, który jest rzędu ok. 100m. Inną pozytywną cechą tego standardu jest to, że urządzenia pracujące w standardzie Bluetooth muszą być ładowane co kilka lub kilkanaście dni. ZigBee przewyższa pod tym względem Bluetooth, uwzględniono w nim bardzo niski pobór mocy (urządzenia korzystające z pary baterii AAA mogą wytrzymać nawet 2 lata) [25]. Wynika to z charakteru transmisji (urządzenie wysyłają informacje tylko wtedy kiedy wymaga tego aplikacja dostęp do kanału jest więc tylko chwilowy) Bluetooth Technologia ta jest pomysłem inżynierów szwedzkiej firmy Ericsson. Prowadząc kilkuletnie badania nad komunikacją bezprzewodową, zaprosili oni do współpracy kilka innych firm. Firmy te założyły w 1998 roku grupę Bluetooth Special Interest Group (SIG), która funkcjonuje do tej pory i zajmuje się rozwijaniem tej technologii [12]. System Bluetooth pracuje na częstotliwości 2,4 GHz, w jednym z trzech pasm ISM. Pasma ISM zostały udostępnione na całym świecie systemom radiowym o małej mocy. Pasma te w większości państw nie są licencjonowane. Rys.13 Rozmieszczenie kanałów w systemie Bluetooth Jak widać z powyższego rysunku, kanał radiowy zajmuje 1 MHz, a liczba kanałów wynosi 79. Dopuszczalne odchylenie od częstotliwości nośnej nie może być większe ani mniejsze od 75 khz [27]. 31

32 Twórcy systemu Bluetooth ze względu na różnego rodzaju zakłócenia generowane przez urządzenia działające w tym samym paśmie zastosowali technikę rozpraszania widma sygnału z pseudolosowym przeskokiem częstotliwości. Liczba skoków w ciągu sekundy wynosi Różnica między częstotliwościami po skokach jest całkowitą krotnością 1 MHz. Sens działania mechanizmu jest taki, że nadajnik nie pracuje na jednej częstotliwości zmienia ją z odpowiednią częstotliwością zgodnie z pewną sekwencją skoków. W bardzo podobny sposób pracuje odbiornik, który nie dostraja się do stałej jednej częstotliwości lecz zmienia ją ze znaną sekwencją [27]. Z punktu widzenia bezpieczeństwa, rozwiązanie to wydaje się być interesujące, gdyż odbiornik który nie będzie znał odpowiedniej sekwencji nie będzie mógł odebrać przesyłanego sygnału Ale czy jest to mechanizm wystarczający? Na to pytanie odpowiem w dalszej części pracy. Sekwencja przeskoków jest unikalna w obrębie jednej sieci i określona przez BD_ADDR (adres ten jest odpowiednikiem adresu MAC elementów sieci LAN) [27].Z liczby przeskoków częstotliwości w ciągu jednej sekundy można wyliczyć czas pracy jednej szczeliny czasowej równej 625us [27]. Urządzenia typu Master przesyłają pakiety w parzystych szczelinach czasowych, natomiast urządzenia typu Slave zarezerwowane mają nieparzyste szczeliny czasowe. Kilka słów o urządzeniach typu Master (urządzenia nadrzędne) i typu Slave (urządzenia podrzędne). Zgodnie ze specyfikacją każde urządzenie w sieci Bluetooth może pełnić dowolną z tych ról [27]. Oczywiście są pewne zasady co do tego. Załóżmy, że mamy pikosieć składającą się z: urządzenia typu Master jakim może być przykładowo komputer i urządzenia typu Slave jakim może być klawiatura. Do istniejącej sieci chcemy dołączyć mysz. Podłączając ją do zasilania, automatycznie powodujemy utworzenie tymczasowej nowej pikosieci, w której urządzeniem Master staje się to nowo przyłączone urządzenie. W tym momencie następuje realizacja procedury PAGE, która inicjowana jest zawsze przez urządzenie Master [27]. Nadajnik (mysz) nie wie na jakiej sekwencji kanałów będzie mógł odbierać dane odbiornik, ponieważ ich zegary nie są jeszcze zsynchronizowane. Dlatego następuje wysyłanie 16 identycznych ciągów wiadomości (tzw. kodów DAC) na 16 różnych częstotliwościach, słuchając w przerwach czy nie nadchodzi odpowiedź. Jeśli nie otrzyma odpowiedzi wchodzi w stan uśpienia na 1,28 s. Po tym czasie wysyła wiadomości na kolejnych 16 częstotliwościach [27]. Czyli maksymalny czas po którym nastąpi komunikacja to 2,56 s. Aby odbiornik (komputer) poprawnie zinterpretował wiadomość, co 1,28 s. wykonuje procedurę PAGE SCAN (co pewien określony czas urządzenie nasłuchuje na jednym z 32 kanałów nadejścia swojego kodu 32

33 DAC). Po odbiorze własnego kodu DAC urządzenie (odbiornik) przechodzi w tryb PAGE RESPONSE, czyli pakiety potwierdzające, przesyłane są na tej samej częstotliwości na której zostały odebrane (bo nie ma jeszcze synchronizacji zegarów). Dopiero po odebraniu kodu DAC, wysłaniu potwierdzenia, otrzymaniu pakietu FHS 1, wysłaniu kolejnego potwierdzenia, następuje synchronizacja zegarów [27]. Należy zauważyć, iż komputer w tej sytuacji pełni zarówno rolę Master (gdyż jest połączony z klawiaturą) i na krótko rolę Slave (dla myszy). Przyłączanie się nowych urządzeń do komputera, nie powoduje żadnej przerwy w istniejącym połączeniu pomiędzy komputerem a klawiaturą. Po synchronizacji zegarów, mysz przechodzi w stan w którym pełni rolę urządzenia Slave [27]. W momencie gdy mamy zestawione już połączenie, po opisanej powyżej operacji, każde kolejne urządzenie dołączając się do połączonych urządzeń staje się urządzeniem typu Slave tworząc tym samym pikosieć z jednym elementem nadrzędnym [27]. Rys.14 Pikosieć: Jedno urządzenie Master (M) i cztery urządzenia Slave (S) Pikosieć tworzona jest tylko wtedy, gdy istnieje potrzeba komunikacji między urządzeniami i wówczas gdy taka potrzeba zostaje zaspokojona, pikosieć przestaje istnieć. Dzięki mechanizmowi przeskoków po częstotliwościach możliwa jest sytuacja w której na jednym obszarze będą współistnieć dwie lub więcej pikosieci [27]. 1 Pakiet FHS - służy do synchronizowaniu zegarów i przekazania sekwencji przeskoków po kanałach 33

34 Rys.15 Dwie pikosieci mogą występować na jednym obszarze, nie zakłócając się nawzajem. Może się jeszcze zdarzyć sytuacja w której urządzenie w jednej pikosieci pełni rolę master a w drugiej pikosieci rolę Slave. Wówczas mamy do czynienia z połączeniem dwóch pikosieci w sieć zwaną scatternetem (siecią rozproszoną) [27]. Rys.16 Pikosieci mogą tworzyć sieci rozproszone (scatternet). Są dwa rodzaje połączeń w systemie Bluetooth, które można podzielić na: SCO (Synchronous Connection Oriented) protokół transmisji dźwięku ACL (Asynchronous Connectionless Links) protokół transmisji danych Transmisja dźwięku różni się od transmisji danych tym, że jest synchroniczna, jej pakiety nie zawierają CRC i nie są retransmitowane [27]. Pasmo podstawowe Bluetooth jest w 34

35 stanie równocześnie obsługiwać jedno łącze asynchroniczne dla transmisji danych i do trzech synchronicznych dla transmisji głosu (połączenia mogą być zestawione z tym samym lub różnymi urządzeniami Slave) [27]. SCO ACL asynchroniczna Transmisja synchroniczna symetryczna asymetryczna 721 kb/s w jedną Połączenie Do 3 równoległych kanałów po 433 kb/s w każdą stronę i 57,6 kb/s 64 kb/s w każdą stronę stronę w drugą. Tab.2 Przepustowość kanałów transmisyjnych Specyfikacja Bluetooth dzieli urządzenia na trzy klasy: Klasa mw, zasięg 100m Klasa 2-2,5 mw, zasięg 10m Klasa 3-1 mw, zasięg 1m Większość urządzeń należy do klasy 2 lub 3. Stos protokołów przedstawia poniższy rysunek. Rys.17 Stos protokołów Bluetooth 35

36 Jak widać na powyższym rysunku stos protokołów można podzielić na 3 grupy: Grupa protokołów transportowych Zadaniem tej grupy protokołów jest zestawienie fizycznych i logicznych połączeń między urządzeniami, umożliwiają również wzajemną lokalizację. W skład tej grupy wchodzą: protokoły radiowe, protokoły pasma podstawowego, menedżera połączeń, kontrolera hosta i połączenia logicznego, a także HCI (interfejs kontrolera hosta) [8]. Grupa protokołów pośredniczących Protokoły z tej grupy umożliwiają poprawną współpracę urządzeń Bluetooth z innymi standardami przemysłowymi. W skład tej grupy wchodzą: protokół emulujący port szeregowy (RFCOMM), protokół poszukiwania usług (SDP), protokół sterowania telefonem (TCS) [8]. Grupa aplikacji (oprogramowanie) Jest to grupa, która nie ukazała się w specyfikacji. SIG nie zajmuje się tymi protokołami [8]. Celem pracy nie jest dogłębne przedstawienie protokołu jakim jest Bluetooth, jednak z uwagi na to że jest ważną częścią mojego projektu, wchodzącego w zakres tej pracy, wiedza na temat protokołów pośredniczących wydaje się niezbędna w celu dogłębnego zrozumienia zasady działania całej aplikacji. W części poświęconej praktycznej części pracy staram się omówić najważniejsze aspekty związane z tymi protokołami, jednak szczegółowe informacje na ten temat można znaleźć w oficjalnej specyfikacji Bluetooth [27]. 36

37 4 Symbian system operacyjny 4.1 Informacja ogólne Każdy, nawet najprostszy model telefonu komórkowego posiada system operacyjny. Im bardziej zaawansowana konstrukcja, tym bardziej rozbudowany system. Telefon komórkowy można porównywać w pewien sposób do komputera. Posiada wyświetlacz, klawiaturę, pamięć, procesor. Zazwyczaj wszystko to rozmieszczone jest na kilku układach scalonych. Aby wszystko ze sobą współgrało niezbędny jest system operacyjny [30]. Większość systemów na telefon komórkowy ma zasadniczą wadę, otóż aplikacje przeznaczone dla jednego modelu nie działają na innym. Istniejący problem zmusił producentów telefonów do opracowania uniwersalnego systemu na który zostanie napisanych wiele aplikacji i w ten sposób telefony zyskają na popularności [30]. Pierwszym takim systemem jest Palm OS. Niestety telefony wyposażone w ten system straciły na użyteczności, gdyż przestały być intuicyjne w obsłudze, korzystanie z nich przypomina obsługę komputera. W chwili obecnej system ten jest używany zasadniczo na palmtopach (mały, przenośny komputer osobisty, w skrócie PDA) [30]. W 2000 roku na rynku pojawił się pierwszy model telefonu komórkowego z systemem Symbian 5.0 [30]. Rok później pojawił się już telefon z systemem Symbian 6.0, jednak o kompatybilności obu systemów nie było mowy. Dopiero w następnych modelach z Symbianem można docenić przenośność aplikacji pomiędzy różnymi komórkami [30]. W tej chwili na rynku jest już kilka wersji tego najpopularniejszego systemu operacyjnego przeznaczonego w głównej mierze na telefony komórkowe (ma zastosowanie również w PDA) [29]. Omawiam je w następnym podrozdziale. Od powstania Symbiana sprzedano już ponad 126 milionów aparatów w niego wyposażonych i z każdym dniem ta liczba rośnie [29]. Ze strony Microsoftu odpowiedzią na Symbiana był i jest do tej pory system Pocket PC: Phone Edition, jednak nie znalazł większego uznania gdyż podobnie jak Palm OS jest mało intuicyjny. Następca tego systemu, mowa o systemie z rodziny Windows Mobile jest już godnym konkurentem Symbiana. Jednak nie będę zajmował się omawianiem tego systemu z uwagi na to, iż nie wchodzi on w zakres mojej pracy. Informacje na jego temat można znaleźć na oficjalnej stronie Microsoftu 37

38 4.2 Dlaczego Symbian? Można zadać pytanie dlaczego w swojej aplikacji użyłem telefonu komórkowego z systemem operacyjnym Symbian OS? Nim odpowiem na to pytanie pozwolę sobie zauważyć, iż inne systemy są równie dobre z punktu widzenia funkcjonowania telefonu komórkowego jako urządzenia sterującego innymi urządzeniami w Inteligentnym Budynku. Windows Mobile jest rozwiązaniem alternatywnym. Silnie wspieranym przez Microsoft i kreowanym na lidera systemów operacyjnych wśród telefonów komórkowych w przyszłości. Za Symbianem przemawiają jednak pewne liczby. Otóż warto wiedzieć, że w pierwszym kwartale 2007 roku sprzedano 15.9 milionów telefonów z Symbianem (wzrost o 35.9% w stosunku do pierwszego kwartału 2006) [29]. Obecnie dostępnych jest ponad 7478 różnego rodzaju programów dla tego systemu operacyjnego [29]. Na chwilę obecną istnieje już 55 różnych modeli telefonów opartych na Symbianie. System ten dominuje na rynku telefonów inteligentnych mając 70% udziałów, Linux ma 20% a Microsoft i Palm OS tylko 10% [29]. 4.3 Interfejsy w Symbianie Symbian OS dostarczany jest przez producenta z podstawowym interfejsem użytkownika. Producenci telefonów zmieniają go mniej lub bardziej modyfikując. W ten sposób powstały następujące wersje tego systemu [31]: S60 (dostarcza najwięcej swoistych cech i rozwiązań spośród wszystkich rodzajów interfejsów) o S60 1 edycji (obecna w najstarszych modelach telefonów z Symbianem) o S60 2 edycji o S60 3 edycji (używana w najnowszym modelach Noki) UIQ (przeznaczony dla urządzeń z dużym ekranem dotykowym, obsługiwanym przy użyciu rysika) o UIQ 2 edycji UIQ 2.0 (system wykorzystany w części praktycznej) UIQ 2.1 o UIQ 3 edycji UIQ

39 UIQ 3.1 Series80 (urządzenia typu Communicator) aktualnie nierozwijany Series90 (tablety internetowe) aktualnie nierozwijany NTT DoCoMo's MOAP dostępny tylko w Japonii 4.4 SDK i dostępne IDE pod Symbiana SDK to zestaw narzędzi, plików danych, programów, które pozwalają na tworzenie oprogramowania. Dla różnych wersji Symbiana jak i dla różnych wersji interfejsu użytkownika istnieją różne, osobne SDK [29]. Do poprawnego działania każde SDK potrzebuje: Active Perl JRE W większości dostępnych wersjach instalacyjnych zawiera w sobie potrzebne komponenty. Każde SDK zawiera również emulator systemu operacyjnego Symbian. Emulator jest kompilacją całego systemu operacyjnego Symbian dla Windows. Większość funkcji korzystających bezpośrednio z zasobów udostępnianych przez telefon zostało zastąpionych analogicznymi funkcjami z Windows. Napisałem większość, gdyż obsługa Bluetooth czy IrDA jest niestety pominięta. Aby generować kod wykonywalny programu który chcemy uruchomić na komórce, potrzebny jest oczywiście kompilator. W przypadku Symbiana kod wykonywalny na telefon kompilowany jest przez darmowy gcc. Warto jeszcze powiedzieć o tym, że SDK dostarczane jest w kilku wersjach w zależności jaki kompilator został użyty do skompilowania emulatora [29]: WINS kod jest generowany przez Microsoft Visual Studio WINSCW kod jest generowany przez Code Warriora Stworzenie całego projektu od samego początku byłoby rzeczą bardzo pracochłonną [31]. Z pomocą programistom przychodzą narzędzia do ich automatycznego generowania. Samo SDK nie dostarcza tzw. wizardów, które potrafią tworzyć aplikacje. Jednak praktycznie każde narzędzie IDE, na którym można kompilować kod dla Symbiana potrafi ekspresowo stworzyć aplikację, która może być punktem wyjścia dla naszego programu [31]. Wszystkie dostępne IDE wymieniam w tabeli numer 3. 39

40 Środowisko Komercyjny Debugowanie na telefonie Microsoft Visual C++ (6.0, TAK NIE 7.0, 2005) Microsoft Windows SDK NIE NIE CodeWarrior for TAK TAK w wersji Professional i SymbianOS OEM Carbide C++ Express NIE NIE Borland C++ Builder X TAK/darmowy w wersji 1.5 NIE Tab3. Środowiska programistyczne pod Symbiana (IDE) 4.5 Podstawy Symbiana (różnice pomiędzy Symbianem a C++) Nie ulega wątpliwości, że programowanie w C++ pod Symbianem jest podobne do programowania w C++ pod inne systemy jak np. Windows [31]. Oczywiście różnice są i staram się je pokazać w następnych podrozdziałach Podstawowe typy danych W trochę zmienionej formie istnieją int, long czy real. Zabieg taki ma na celu uchronić programistę przed różnymi kompilatorami. Pisząc programy na Symbiana zamiast klasycznych typów danych, tj.: int, char używa się TInt, TChar, itp., typy które są zdefiniowane w standardowych plikach nagłówkowych Symbiana [1]. Podstawowe typy, to: sized - znany jest ich dokładny rozmiar (np. TInt8) unsized - nieznany jest ich dokładny rozmiar (np. TInt) Prawdziwe wielkości typów określanych jako unsized mogą zmieniać się zależnie od kompilatora, wówczas gdy te określane jako sized prawa takiego nie mają [31]. Typy signed mają liczbę bitów w nazwie, dzięki temu w łatwy sposób można je zidentyfikować[1]. Warto wiedzieć o typie TBool którego wartościami mogą być: ETrue i EFalse. Wszystkie typy danych umieściłem w tabeli numer 5 [1]. 40

41 Nazwa: Typ: Rozmiar: TInt Integer przynajmniej 32 bity TUint Unsigned integer przynajmniej 32 bity TInt8 Integer 8 bitów TInt16 Integer 16 bitów TInt32 Integer 32 bity TUInt16 Unsigned Integer 16 bitów TUInt32 Unsigned Integer 32 bity TReal Real przynajmniej 64 bity TReal32 Real przynajmniej 32 bity TReal64 Real przynajmniej 64 bity TRealX Real rozszerzona precyzja TText Character przynajmniej 16 bitów (unicode) TText8 Character przynajmniej 8 bitów (ascii) TText16 Character przynajmniej 16 bitów TChar Character przynajmniej 32 bity (extended unicode ) TBool ETrue lub EFalse 32 bity TAny Używane jako TAny* Tab.4 Podstawowe typy danych w systemie Symbian Nazewnictwo klas Konwencja nazw, czyli tak na prawdę system przedrostków jest ważnym elementem całego systemu. Dzięki temu, w bardzo łatwy sposób można dowiedzieć się jakie funkcje pełni obiekt danej klasy [1]. Pierwsze litery w nazwach klas wskazują podstawowe jej własności. Ze względu na ten podział można rozróżnić następujące typy klas: Klasy T. Są to proste klasy nieposiadające ani konstruktora ani destruktora. Pamięć dla obiektów tych klas jest alokowana na stosie. Przykładami takich klas są: TDesC, TPoint, TFileName [1]. Podczas programowania dla Symbiana obiekty tych klas pojawiają się niemal na każdym kroku. Klasy C. Każda taka klasa dziedziczy z CBase i obiekt tej klasy zawsze jest alokowany na stercie. Klasy C posiadają zarówno konstruktor jak i destruktor. Konstruktor z klasy nadrzędnej (klasy CBase) dba o to, by wszystkie pola znajdujące się w klasie odpowiednio wyzerować [1]. Przykładami tej klasy są: CConsoleBase, CActive, CBase. 41

42 Klasy R. Obiekty tej klasy mają dostęp do zewnętrznych zasobów, tj.: plików, gniazd sieciowych, itp. Zazwyczaj wykorzystywane są w aplikacjach typu Klient- Serwer, jednak nie jest to regułą [1]. Zazwyczaj posiadają funkcje: o przydzielające pamięć (Open(), Create(), Allocate(), itp.) o zwalniające pamięć (Close(), Destroy(), Free(), itp.) Przykładami tej klasy są: RFile, RTimer, RWriteStream. Klasy M. Klasy abstrakcyjne, które posiadają jedynie metody wirtualne. Ich implementacja pojawia się dopiero w klasach z niej dziedziczących [1]. Przykłady takich klas to: MGraphicsDevice-Map, MEikMenuObserver. Warto jeszcze wiedzieć, że obowiązują również konwencje w nazewnictwie nazw obiektów [1]. E używany przy typach wyliczeniowych (np. Eteru, EFalse, EMonday, itp.) K - Używany przy stałych (np. KErrNone, KMaxFileName) i Zmienne jako pola w klasach a Zmienne deklarowane jako argumenty w funkcjach Łańcuchy tekstowe i deskryptory Można powiedzieć że jest to specjalność Symbiana. Jednak niestety nie jest to takie proste jak w C, gdyż wszystko wygląda o wiele bardziej skomplikowanie. Wyróżnić można 5 typów deskryptorów: TBuf TBufC TPtr TPtrC HBufC Jak widać niektóre nazwy zakończone są literą C, otóż oznacza to, że taki deskryptor jest stały, o określonej stałej długości i wszystkie jego funkcje są typu const (ang. constans). Dane przechowywane przez jakikolwiek deskryptor mogą znajdować się we wszelkich możliwych rodzajach pamięci (ROM, RAM, stos, sterta) [31]. 42

43 TBuf i TBufC - patrząc na te deskryptory z perspektywy języka C, można powiedzieć, że są to tak naprawdę tablice stringów (łańcuchy tekstowe). W nomenklaturze symbianowej mówi się o nich, że są to deskryptory bufora. Dane stanowią część obiektu deskryptora, który umieszczony jest na stosie. Jak widać na rysunku numer 18, długość tych tablic ustawia się za pomocą specyficznych widełek. TBufC<5> hellostack( hello ); Tak jak pisałem wcześniej, na takim obiekcie można wywołać jedynie funkcje typu const. Jeśli mielibyśmy następującą definicję: TBuf<5> helloworld( hello );,wówczas taki bufor jest modyfikowalną tablicą stringów, gdzie można bez problemów modyfikować tekst (np. metodą Append()). HBufC są to deskryptory sterty, dane stanowią część obiektu deskryptora, który umieszczony jest na stercie. TPtr i TPtrC to deskryptory wskaźnika, gdzie obiekt deskryptora oddzielony jest od danych. [1]. Rysunek numer 18 przedstawia hierarchie możliwych deskryptorów w Symbianie. Rys18. Typy deskryptorów w Symbianie 43

44 TDesC i Des są klasami abstrakcyjnymi. Z tego względu mogą zostać wykorzystane tylko jako argumenty funkcji, których celem są dowolne działania na łańcuchach tekstowych bądź innych danych [31]. Wszystkie deskryptory posiadają kilka odmian (TDesC8, TDesC16, TBuf8, TBuf16, TDes8, TDes16, itp.). Liczba w nazwie informuje o tym ilu bitowymi danymi może operować dany deskryptor [1, 31] Mechanizm opuszczeń (Leaves) Jest to jeden z najważniejszych mechanizmów Symbiana. Litera L na końcu nazwy funkcji informuje, że dana funkcja może zgłosić opuszczenie W większości współczesnych języków programowania istnieje możliwość obsłużenia błędów (tak jak się to dzieje np. w Javie, gdzie obsługa błędów odbywa się za pomocą konstrukcji try-catch) lub przekazania ich na wyższy poziom hierarchii wywołań [34]. W Symbianie jest to rozwiązane przez konstrukcję Leave-Trap (w wolnym tłumaczeniu, opuszczenie-złapanie). Opuszczenie (symbianowy odpowiednik wyjątku) może się zdarzyć w wielu sytuacjach. Dobrym przykładem może być brak pamięci na załadowanie grafiki lub nie znalezienie potrzebnego pliku [34]. Najczęściej nie obsługuje się własnoręcznie błędu, gdyż przekazuje się go po prostu systemowi, który wyświetli stosowny komunikat [1]. Jednak można zaimplementować odpowiednią obsługę błędu za pomocą stosownej pułapki (instrukcji TRAP). Wówczas gdy wyrzucamy wyjątek, sterowanie programu przechodzi do miejsca najbliższego TRAPa [31]. Czyli można to nazwać złapaniem wyjątku. W tym momencie wywoływane są destruktory obiektów, których wskaźniki odłożone są na Cleanup Stacku 2 (oczywiście tylko tych obiektów, które stworzyliśmy po wejściu do TRAP) [31]. Jeżeli wskaźnika obiektu, który zaalokował pamięć, nie ma na tym stosie, nie mamy już możliwości usunięcia tego obiektu w żaden sposób i w tym momencie pamięć zajmowana przez ten obiekt jest tracona (czyli mamy do czynienia z klasycznym wyciekiem pamięci) [31]. Aby przeciwdziałać takim wyciekom pamięci, wskaźnik nowo utworzonego obiektu powinno się odkładać na Cleanup Stacku [31]. Mechanizm opuszczania jest o tyle ważny, że firma Symbian stworzyła bardzo przydatny program sprawdzający, czy konwencja nazewnictwa jest przestrzegana w plikach 2 Cleanup Stack - stos wskaźników do obiektów. Więcej na jego temat można znaleźć w literaturze [1]. 44

45 źródłowych projektu [34]. Nazwa tego narzędzia to LeaveScan i jest nawet wbudowane w niektóre wersje SDK. 5 Projekt 5.1 Idea projektu Idea całego projektu oparta jest o komunikację pomiędzy urządzeniami znajdującymi się w budynku przy wykorzystaniu protokołu Bluetooth. W moim przypadku jest to telefon komórkowy, komputer PC i urządzenie LPC2104 Color LCD Game Board. Równie dobrze mogłyby to być inne urządzenia, jednak z uwagi na posiadanie wyżej wymienionych urządzeń zdecydowałem się na skorzystanie właśnie z nich. Celem pracy było skonstruowanie takiego systemu, w którym człowiek posiadający klucz ( w moim projekcie jest to telefon komórkowy ) będzie mógł sterować innymi urządzeniami w budynku. Bardzo ważną rzeczą jest to, iż użytkownik mając telefon komórkowy, po wejściu w zasięg Bluetootha konkretnego urządzenia nawiąże z nim automatycznie połączenie i wysyłając stosowne polecenia zrealizuje z góry przypisane mu zadanie. Natomiast jeśli opuści zasięg danego urządzenia, urządzenie również musi zareagować w pewien ustalony sposób. Cała ta operacja ma się odbyć bez ingerencji osoby posiadającej klucz. Można sobie wyobrazić sytuację, w której podjeżdżamy samochodem do swojego domu, a dokładniej pod bramę swojej posesji i bez jakiejkolwiek reakcji z naszej strony brama otwiera się. Po wjechaniu samochodem, opuszczeniu garażu, brama automatycznie ma się zamknąć. Oczywiście warto sobie zadać pytanie na jakiej zasadzie brama nas słucha, czy każdy może otworzyć i zamknąć naszą bramę. Na to pytanie odpowiem w dalszej części pracy, gdyż jest to bardzo ważny aspekt patrząc na to z punktu widzenia bezpieczeństwa (rozdz ). Idea całego projektu jest więc bardzo przejrzysta. Wszystkie komunikujące się urządzenia posiadają Bluetootha, dzięki któremu następuje wymiana danych. Całe zagadnienie dobrze ilustruje rysunek numer

46 Rys.19 Idea projektu [11] 5.2 Budowa projektu Projekt powinien składać się z 3 odrębnych aplikacji. Jeden napisany na telefon komórkowy z systemem Symbian 7.0 z interfejsem UIQ 2.0. Drugi napisany na komputer klasy PC. A trzeci zaimplementowany na LPC2104 Color LCD Game Board. Niestety musiałem zrezygnować z wdrożenia Game Board a do działającej sieci urządzeń. Powodem była niekompatybilność stosów Bluetooth dla tego urządzenia i telefonu komórkowego. Sytuacja z którą się zetknąłem jest dosyć skomplikowana. Otóż istnieją dwie procedury zapytań o serwisy (przypomnę tylko że łącząc się z urządzeniem Bluetooth tak naprawdę łączymy się z jakimś serwisem dostępnym na tym urządzeniu) [39]. Jedna procedura to SDP_ServiceSearchAttributeRequest, a druga SDP_ServiceSearchRequest [39]. Problem polega na tym, iż urządzenie Game Board umie obsługiwać tylko pierwsze zapytanie, czyli SDP_ServiceSearchAttributeRequest. Niestety telefon komórkowy wykorzystuje drugą procedurę do odszukania serwisu i w ten sposób dochodzi do braku kompatybilności. Problem można by było rozwiązać używając innego modelu telefonu komórkowego (przynajmniej wszystko na to wskazuje), jednak nie zdecydowałem się na taki krok, gdyż wiązałoby się to z dosyć dużym nakładem finansowym. 46

47 5.2.1 Aplikacja na telefon komórkowy Budowa i elementy składające się na aplikację Jeśli chodzi o budowę napisanej przeze mnie aplikacji to jest ona zgodna z wszelkimi zasadami które obowiązują w tworzeniu tego typu programów i dlatego na podstawie tej aplikacji omówię jednocześnie budowę typowych aplikacji na system operacyjny Symbian OS. Na poniższym rysunku prezentuję budowę takiej właśnie aplikacji, połączenia między jej elementami, oraz przepływ informacji. Rys.20 Budowa typowej aplikacji na Symbian OS Podstawowe elementy składające się na aplikację niezależnie od używanej wersji SDK są widoczne na rysunku numer 20 i są następujące: Aplikacja jest to podstawowy element, który pozwala na wykorzystanie biblioteki Uikon. Zawiera również interfejs do plików z zasobami, oraz tworzy dokument. Klasa aplikacji dziedziczy z klasy CQikApplication. (Dla programu pisanego pod telefon komórkowy z interfejsem S60, klasa ta powinna dziedziczyć z klasy CAknApplication) [1] Dokument jest to pośrednia warstwa pomiędzy kontrolerem i modelem a plikiem, z którego korzysta model. Dokument tworzy kontroler aplikacji (APP UI). Klasa dokumentu dziedziczy z CQikDocument (dla S60 dziedziczyłaby z klasy 47

48 CAknDocument). Tak naprawdę dokument wykorzystywany jest tylko do tworzenia kontrolera. Dzieje się tak w wypadku gdy aplikacja nie zapisuje i odczytuje danych z systemu plików [31]. Kontroler (APP UI) jest to element który obsługuje wszystkie sprawy związane z interfejsem użytkownika, takie jak: menu, paski narzędziowe, kończenie aplikacji, itp. Kontroler odpowiedzialny jest za obsługę komend wysyłanych z menu, a także za współpracę z serwerem okien [31]. Kontroler dziedziczy po klasie CQikAppUi (dla S60 byłaby to klasa CAknAppUi). Model jest to klasa która odpowiedzialna jest za mechanizm działania aplikacji. Model powinien być tworzony przez dokument, a kontroler i widok aplikacji powinny mieć do niego bezpośredni dostęp (poprzez referencję lub wskaźnik). Widok odpowiada za prezentację danych dla użytkownika oprogramowania [1]. Widok prezentuje specyficzne ujęcie danych w modelu i posiada bezpośredni dostęp do modelu, żeby wizualizować dane w nim zawarte. (Aplikacja może posiadać wiele widoków, przykładowo kalendarz ma widok tygodnia, miesiąca, roku.) Klasa widoku dziedziczy bezpośrednio po klasie CCoeControl. (W przypadku S60 byłaby to klasa CAknView) Struktura katalogów projektu Po utworzeniu nowego projektu, w określonym przez użytkownika miejscu na dysku tworzy się struktura katalogów charakterystyczna dla projektów Symbiana. W zależności od użytego wizarda ta struktura może się nieznacznie różnić. Zarówno moja struktura jak i standardowa struktura aplikacji składa się z następujących katalogów [1, 31]: Group - tutaj znajdują się najważniejsze pliki wchodzące w skład całego projektu. Są to: plik MMP określający zawartość projektu (.mmp), plik RRS z zasobami (.rss), oraz plik definicji komponentów (bld.inf) Inc - w tym katalogu znajdują się wszystkie pliki nagłówkowe aplikacji (.h), pliki z typami numerycznymi projektu (.hrh), pliki definiujące kody Panic codes (.pan), oraz plik adresów dla plików binarnych dla komponentów interfejsu użytkownika (generowany automatycznie -.rsg) Src - tutaj znajdują się wszystkie pliki źródłowe projektu (.cpp) 48

49 Sis - w tym katalogu znajduje się plik.pkg określający wersję instalacyjną programu na telefon, służący do tworzenia pliku instalacyjnego dla aplikacji (.sis) Podział aplikacji na podstawowe pliki Każda aplikacja dla systemu operacyjnego Symbian, z punktu widzenia podziału na podstawowe pliki składa się z [1, 31]: Plik APP w pliku tym znajduje się skompilowany kod aplikacji, jest to biblioteka polimorficzna udostępniająca tylko jedną funkcję tworzącą instancję aplikacji. Jest to niezbędny plik do działania całej aplikacji [1]. Warto wiedzieć, że po skompilowaniu całego projektu w CodeWarrior plik ten jest tworzony w specyficznym miejscu na dysku. Ścieżka katalogu w którym tworzone są pliki tego typu jest następująca: C:\Symbian\UIQ_70\epoc32\release\armi\urel\CLIENTBT.APP Plik RSC zadaniem tego pliku jest dostarczanie informacji o zasobach w trakcie działania aplikacji. Chodzi o to, żeby podczas działania programu nie ładować wszystkich zasobów do pamięci, a tylko te które są aktualnie potrzebne [31]. W ten sposób następuje oszczędność pamięci, gdyż niezbędne zasoby są doładowywane wtedy, gdy są potrzebne. Plik ten zawiera wszystkie zasoby związane z językiem aplikacji (definicje komponentów interfejsu, napisy używane w programie, itp.) Bardzo dużą zaletą tego pliku jest fakt, że można go podmienić bez konieczności ponownej kompilacji całej aplikacji [31]. Można więc zrobić kilka plików z różnymi wersjami językowymi i podczas uruchomienia programu ładować odpowiedni język (w zależności od wyboru użytkownika). Plik ten jest niezbędny do działania całej aplikacji. Ścieżka katalogu w którym tworzony jest taki plik jest następująca: C:\Symbian\UIQ_70\epoc32\data\z\system\APPS\CLIENTBT\ClientBT.RSC Plik AIF służy do przetrzymywania podstawowych informacji o aplikacji takich jak ikony, obsługiwane typy MIME, itp. Plik MBM przechowuje dowolną ilość ikon, które podczas działania programu mogą zostać załadowane i wyświetlone w postaci zwykłych obrazków czy przycisków. 49

50 Rodzaje plików w projekcie Rodzaje plików w projekcie są następujące: plik MMP, który określa zawartość projektu. Definiuje on typ projektu (aplikacja wykonywalna, biblioteka itp.), plik z zasobami, pliki z kodem C++, użyte biblioteki, język, ścieżki systemowe, ścieżki do plików nagłówkowych, itp.. Określa także identyfikator aplikacji (UID), o którym więcej pisze w rozdziale W mojej aplikacji plik ten nosi nazwę ClientBT.mmp. Plik Bld.inf definiuje komponenty wchodzące w skład projektu. Wszystkie pliki MMP, które wchodzą w skład aplikacji są wymienione w tym pliku [31]. W moim przypadku jest to tylko jeden plik. W pliku tym powinny być również wpisy z nazwami używanych bibliotek dynamicznych (plików DLL), jeżeli takich używamy [1]. Z punktu widzenia budowania aplikacji, a także budowania pliku instalacyjnego plik ten jest niezbędny. Plik RSS jest to plik zasobów aplikacji. Tutaj zdefiniowane i umieszczone są wszystkie definicje komponentów użytkownika (menu, dialogi, itp.). Aplikacja używa tego pliku do zbudowania aktualnie wymaganego komponentu podczas działania programu. Plik HRH - zawiera typy numeryczne wykorzystywane w aplikacji. Mówiąc bardziej obrazowo, to tutaj zdefiniowane są typy numeryczne m.in. dla opcji z menu. Pliki CPP i H pliki źródłowe projektu. Omawiając wszystkie pliki nie można zapomnieć o pliku instalacyjnym, o którym już wcześniej wspomniałem. Jest to plik który umożliwia zainstalowanie aplikacji na telefon komórkowy. 50

51 Rys.21 Proces powstawania pliku SIS [http://developer.uiq.com/devlib/uiq_30/sdkdocumentation/sdl/n10012/3-building.html] Do utworzenia pliku instalacyjnego niezbędny jest plik PKG, w którym definiuje się przede wszystkim ścieżki źródłowe jak i docelowe dla pliku APP i RSC. Mając dobrze zdefiniowany taki plik, używając programu MakeSIS.exe wbudowany w każde SDK otrzymujemy niepodpisany plik instalacyjny. Na tym etapie można już poprzestać, gdyż telefony komórkowe wyposażone w Symbian 7.0 i starsze nie wymagają podpisywania tych plików. Niestety telefony z Symbianem nowszym od 7.0 wymagają tej operacji System identyfikatorów UID Każdy plik wykonywany w systemie Symbian OS jest identyfikowany przez dwa identyfikatory (są to liczby 32 bitowe bez znaku), które dokładnie identyfikują dany plik [1]. Pierwszy identyfikator określa typ pliku i przykładowo dla wszystkich tzw. GUI aplikacji jest on określony liczbą 0x100039ce. Drugi powinien być nabyty bezpośrednio od firmy Symbian. Można to zrobić a nawet trzeba wysyłając maila na adres o tytule UID request, w treści podając ile chce się nabyć identyfikatorów [1]. Ja jednak skorzystałem z eksperymentalnych identyfikatorów, które są udostępnione przez Symbiana. Ich zakres wynosi od 0x do 0x0fffffff. To pozwala Symbianowi na odróżnienie plików powiązanych z tą daną aplikacją od plików skojarzonych z inną aplikacją [1]. 51

52 Zasada działania aplikacji Aby móc zagłębić się w szczegóły implementacyjne zarówno po stronie klienta (aplikacja na telefonie komórkowy) jak i serwera (aplikacja na komputerze PC) trzeba zaznajomić się dosyć szczegółowo z protokołem Bluetooth. Jak powszechnie wiadomo w aplikacjach klient serwer, klient żąda od serwera wykonania pewnych usług. Mówiąc o usługach, trzeba wprowadzić bardzo ważne pojęcie jakim jest serwis, słowo którego używałem wcześniej, a w specyfikacji Bluetooth pojawia się niemal od samego początku. Najkrócej mówiąc serwis jest usługą realizowaną przez serwer. Pierwszą rzeczą jaką należy poruszyć omawiając moją aplikację pod Symbianem pod względem implementacji jest nawiązanie połączenia pomiędzy dwoma urządzeniami. Nim nastąpi połączenie, wcześniej realizowanych jest kilka bardzo ważnych zadań. Podstawowe działania klienta zmierzające do nawiązania połączenia z serwerem można podzielić na: Odszukanie urządzenia z którym klient chce nawiązać połączenie (Device Discovery) Odszukanie serwisów działających na znalezionym urządzeniu (Service Discovery) Pobranie URL serwisu Odszukanie urządzenia jest o tyle ułatwione, iż znam wszystkie urządzenia z którymi mogę i mam możliwość nawiązania połączenia. Dlatego w swojej aplikacji używam specjalnej struktury (TBTDevAddr tabdevices []), która zawiera adresy MAC urządzeń z którymi mogę się połączyć. Do odszukiwania serwisów na zdalnym urządzeniu używam obiektu klasy CSdpAgent. Obiekt ten można nazwać agentem, który wykorzystuje do wyszukania serwisów Service Discovery Protocol (SDP), który omawiam w rozdziale Zgodnie z profilem zastosowań SDP, aplikacja wyszukująca usługi na urządzeniu zdalnym powinna obsługiwać trzy rodzaje zapytań o usługi: Szukanie usług należących do danej klasy usług, Szukanie usług o podanych atrybutach, Przeszukiwanie dostępnych usług. 52

53 Skorzystałem z pierwszej funkcjonalności jaką daje profil zastosowań SDP, czyli szukanie usług należących do danej klasy usług. Obiekt CSdpAgent posiada wiele różnorodnych funkcji. Chcę wspomnieć tylko o dwóch które z punktu widzenia uruchomienia całego mechanizmu szukania serwisów są kluczowe. Jedna z nich to SetRecordFilterL( CSdpSearchPattern pattern ), która to właśnie ma możliwość ustawienia klasy usługi którą chcemy znaleźć [35]. W mojej aplikacji klasa usługi którą szukam to Serial Port (Dlaczego akurat takiego serwisu szukam piszę w rozdziale 5.2.4). Każda taka klasa ma przypisaną 16 bitową liczbę (tzw. UUID o którym szerzej napiszę w rozdziale ), Dla ścisłości, usługa Serial Port jest określona przez liczbę 0x1101. Drugą funkcją jest NextRecordRequestL(), która jest asynchroniczną funkcją inicjalizującą szukanie (można powiedzieć że zwraca uchwyt do serwisu) [35]. Po ukończeniu tej funkcji, zostaje wywołany ciąg innych funkcji, które doprowadzają do stanu w którym telefon komórkowy albo nawiąże połączenie z urządzeniem peryferyjnym albo nie. Jak wygląda kwestia związana z bezpieczeństwem nawiązywania połączenia? Otóż oparłem się o znany i zaimplementowany już mechanizm parowania urządzeń (Bluetooth Pairing). Aplikacja jest napisana w ten sposób, że parowanie urządzeń wymusza serwer, który może pracować w 3 trybach zabezpieczeń (niskim, średnim i wysokim), ale o tym piszę szerzej w rozdziale poświęconym aplikacji serwera (rozdział 5.2.2). Wspomnę tylko, iż uruchamiając serwer należy włączyć średni tryb zabezpieczenia, którego zadaniem jest wymuszanie wymiany tego samego klucza hasła po obydwu stronach połączenia jeśli dwa urządzenia są łączone po raz pierwszy lub jeśli występuje brak zaufanych relacji pomiędzy dwoma urządzenia. Po tej wymianie klucze haseł nie będą już wymagane do dalszej komunikacji pomiędzy urządzeniami. 53

54 Rys.22 Wymiana klucza po stronie klienta Przyjmując że operacja nawiązania połączenia powiodła się, wówczas automatycznie zostaje wysłane określone polecenie do zdalnego urządzenia. Po poprawnym wysłaniu tego polecenia i odebraniu potwierdzenia, połączenie zostaje zakończone. Dzieje się tak, gdyż musi być możliwość łączenia się z innymi urządzeniami, które znajdą się w zasięgu naszego klucza. Po udanym nawiązaniu połączenia i wysłaniu stosownego komunikatu, nie można skorzystać z sytuacji, w której połączenie byłoby utrzymywane w sposób sztuczny (np. za pomocą mechanizmu znanego jako keep-alive ), co byłoby z jednej strony bardzo wygodne, gdyż po automatycznym wysłaniu jednego komunikatu, byłaby możliwość wysyłania innych. Jednak w takiej sytuacji byłby ogromny problem z obsłużeniem więcej niż jednego urządzenia znajdującego się w zasięgu użytkownika posiadającego klucz. Z założenia wynika, że w pomieszczeniu może znajdować się większa ilość urządzeń peryferyjnych i dlatego zdecydowałem się na wariant z każdorazowym wykonywaniem funkcji Disconnect, aby umożliwić poprawną pracę całego systemu. Można sobie zadać pytanie, co nastąpi jeśli będziemy przebywać w otoczeniu aktywnego urządzenia Bluetooth przez dłuższy okres czasu. Czy polecenie zostanie wysłane bliżej nieokreśloną ilość razy? Odpowiedzią jest oczywiście nie. Aplikacja sprawdza czy polecenie zostało już wysłane w czasie przebywania w zasięgu danego urządzenia. Jeśli tak, wówczas następuje wysyłanie komunikatów informujących o tym, że polecenie zostało wykonane i ponowny komunikat zostanie wysłany tylko wtedy gdy opuścimy 54

55 zasięg działania tego urządzenia i z powrotem się w nim pojawimy. Jeśli urządzenie sterujące opuści zasięg urządzenia z którym miało połączenie i wymieniało komunikaty, wówczas następuje powiadomienie o tym po stronie urządzenia aktywnego (peryferyjnego) Bezpieczeństwo W opisie idei projektu, wspomniałem o kwestii bezpieczeństwa związanej z działaniem aplikacji przeznaczonej na telefon komórkowy, obsługującej otwieranie bramy garażowej. Otwieraniem bramy zajmuje się aplikacja na komputerze PC. Pytanie, które zadałem we wstępnej części rozdziału 5.1 brzmi, czy każdy może otworzyć moją bramę do garażu (korzystając z urządzenia z Bluetooth). Oczywiście nie każdy może otworzyć bramę. Aby móc dokonać takiej operacji, po pierwsze zdalne urządzenie musi znać format polecenia (pisze o nim w rozdziale 5.2.2), a po drugie zdalne urządzeni musi być sparowane z komputerem PC. Na czym polega ta operacja? Proces sparowania polega na wygenerowaniu klucza inicjalizacyjnego i użyciu go do uwierzytelnienia urządzeń. Rezultatem jest utworzenie dla nich stałego klucza połączenia. Klucz ten generowany jest poprzez wprowadzenie w obu urządzeniach kodu PIN, który z kolei generuje klucz tymczasowy. (Ani klucze ani PIN nie są przesyłane drogą radiową w formie otwartego tekstu). Wygenerowane w ten sposób klucze tymczasowe muszą być sobie równe [27]. Pisząc ten projekt założyłem że jeśli dwa urządzenia nawiązują ze sobą po raz pierwszy połączenie, wówczas wymuszana jest wspomniana operacja sparowania. Z opisu wynika, że wiąże się to z manualnym wpisaniem hasła zarówno po stronie klienta jak i serwera. I tak właśnie się dzieje. Zdaję sobie sprawę z tego, że zabezpieczenie na poziomie sparowania urządzeń komunikujących się nie jest jakimś wyrafinowanym rozwiązaniem i w rzeczywistości dla osoby próbującej złamać klucz sparowania nie jest rzeczą trudną złamanie takiego klucza. Używając ogólnie dostępnego oprogramowania pod nazwą BTCrack, złamanie najdłuższego klucza to kwestia kilkudziesięciu sekund. Wspomniany program opiera się na brutalnym ataku, analizując przechwycone pakiety. Dla celów demonstrujących szybkie łamanie klucza, program można ściągnąć ze strony Dlatego też, chcąc w lepszy sposób zabezpieczyć się przed atakami, nadmieniam w jaki sposób można lepiej to zrobić, zabezpieczając komunikację. Otóż rozwiązaniem jest 55

56 dodanie szyfrowania na poziomie protokołu komunikacyjnego. Szyfrowanie, które w znaczący sposób poprawi bezpieczeństwo komunikacji może opierać się o znane algorytmy szyfrowania, takie jak MD5, czy SHA2. Warto byłoby wymusić uwierzytelnianie, które mogłoby dokonywać się przy każdorazowym przesyłaniu komunikatów, przykładowo mogłaby być wykonywana taka operacja: LOGIN + MAC address klienta MD KLIENT Klient posiadając bazę loginów, odszyfrowując komunikat, dopuszczałaby do wymiany danych lub nie. Taki sposób zapewniłby znacznie lepszą ochronę niż mechanizm sparowania urządzeń Identyfikator UUID Celem było stworzenie takiego identyfikatora, który mógłby jednoznacznie identyfikować informację w systemach rozproszonych, bez używania centralnej bazy danych umożliwiających ich przechowywanie. Cel został osiągnięty wprowadzając standard uniwersalnie unikatowego identyfikatora jakim jest UUID, który jest 128 bitową pseudolosową liczbą [37]. Oczywiście od razu powstało wiele algorytmów generowania tych liczb. Prawdopodobieństwo wygenerowania dwóch takich samych identyfikatorów jest bliskie zeru, pozwolono zredukować go do 32-cyfrowej liczby szesnastkowej gdyż jest to wystarczająco długa liczba by nie pozwolić na dwa takie same identyfikatory [37]. Zaistniała potrzeba zarezerwowania pewnej liczby identyfikatorów na potrzeby Bluetooth SDP, SIG (o której pisałem w rozdziale o Bluetooth) postanowiła zdefiniować krótsze UUID aby ułatwić urządzeniom używanie identyfikatorów często używanych usług [37]. Wobec tego powstały identyfikatory 16- i 32-bitowe UUID. Oczywiście z krótkich UUID można wyliczyć długie, 32-bitowe. 56

57 Protokoły wyszukiwania usług Powstało wiele protokołów wyszukiwania usług. Różnią się między sobą, gdyż są przeznaczone do stosowania w różnych urządzeniach i w różnych środowiskach. Najpopularniejsze protokoły są następujące: SLP2 (Service Location Protocol, Version 2) jest to najpowszechniejszy protokół wyszukiwania usług. Jest w stanie obsłużyć bardzo rozbudowane sieci dzięki zastosowaniu katalogu usług [36]. Aplikacja poszukująca usług nazywana jest User Agent, dostawcą usług jest Service Agent, a Direktory Agent pełni rolę katalogu usług [36]. W niedużych sieciach można pominąć katalog usług, wówczas zapytanie od User Agent a wysyłane jest multicastowo do wszystkich Service Agent ów. Jednak jeśli User Agent ma świadomość istnienia w sieci katalogu usług, wtedy zapytanie wysyła tylko do Direktory Agent a (unicast) [36]. Więcej na temat tego protokołu można dowiedzieć się ze strony Jini technologia, która jest rozszerzeniem języka Java na systemy rozproszone. Każde urządzenie działające w tym środowisku umie interpretować kod Java. Nawet jeśli nie potrafi, wówczas ma swojego Proxy, który zrobi to za niego [38]. Więcej o tym protokole można dowiedzieć się ze strony Salutation można powiedzieć że jest to mechanizm wykrywania i uzyskiwania dostępu do usług w dużych sieciach o zróżnicowanym medium. W tej technologii występuje pośrednik między klientem a usługą, tzw. Salutation Manager (SLM) [33]. Każdy klient chcący skorzystać z jakiejkolwiek usługi musi wysłać zapytanie do lokalnego SLM (najczęściej znajduje się on fizycznie na tej samej maszynie co klient) Ten po konsultacjach z innymi wysyła wynik do klienta. Po uzyskaniu odpowiedzi mówiącej o dostępności danej usługi, klient może zażądać wykonania usługi za pomocą SLM [33]. Może się zdarzyć, iż lokalny SLM nie będzie dysponował wymaganą przez klienta usługą. Wtedy SLM komunikuje się z innymi SLM ami [33]. Salutation można porównać z Jini, gdyż jest bardzo podobny w sposobie działania. Jest jednak bardziej uniwersalny. Więcej informacji na stronie SSDP-UPnP (Simple Service Discovery Protocol) służy do automatycznego wykrywania, konfiguracji i kontroli usług w niedużych sieciach LAN [32]. Po nazwie można dojść, że jest to protokół dosyć prosty. Zrezygnowano z katalogu 57

58 usług, skorzystano z multicast u. W ten sposób system wykrywania usług nie wymaga konfiguracji. W jaki sposób klient może dowiedzieć się o istniejącej usłudze? Otóż na dwa sposoby. Pierwszy to bierne nasłuchiwanie, które tutaj ma sens, gdyż aktywne usługi rozsyłają swoje ogłoszenia. Znaleziony serwis zostaje zapisany w lokalnej bazie danych [32]. Drugi sposób polega na wysyłaniu multicast owego zapytania (zapytanie do wszystkich). Urządzenie posiadające stosowny serwis, odpowiada na zapytanie [32]. Więcej na stronie PDP (Pervasive Discovery Protocol) protokół skupiający się na decentralizacji mechanizmu wyszukiwania usług. Więcej informacji na ten temat na stronie DEAPspace opiera się o rozgłaszanie broadcast owe informacji o usługach w całej sieci. SSDS - (Secure Service Discovery Service). Zawiera metody uwierzytelniania i wymiany kluczy na potrzeby wykrywania usług. Więcej informacji znaleźć można na SDP jest to protokół z którego skorzystałem w swoim projekcie. Największą zaletą tego protokołu, która przemówiła za tym aby z niego skorzystać jest niewątpliwie fakt, iż jest on zaimplementowany we wszystkich urządzeniach wykorzystujących technologię Bluetooth. Pisząc aplikacje, miałem na uwadze uniwersalność programów, które z założenia mają działać na jak największej ilości urządzeń. Obecność klienta lub serwera SDP w urządzeniach z Bluetooth jest obowiązkowa. Dostawca usługi musi mieć funkcjonalność serwera SDP, a klient usługi klienta SDP [27]. Trzeba pamiętać, że funkcja klienta i serwera SDP jest niezależna od tego, które urządzenie jest w danym połączeniu urządzeniem Master, a które Slave [27]. Transakcję SDP bardzo dobrze obrazuje obrazek numer

59 Rys 23. Protokoły uczestniczące w transakcji SDP [www.bluetooth.org/spec/] Po wywołaniu żądania zapytania o usługę, następuje wygenerowanie PDU przez klienta SDP, który przekazywany jest niższym warstwom. Każde zapytanie i każda odpowiedź składa się z jednego PDU. Przez interfejs radiowy, odpowiednio zapakowany wysyłany jest do urządzenia zdalnego, gdzie po dekapsulacji i scalaniu trafia do serwera SDP. Serwer posiada swoistą bazę danych o usługach (SDDB), na jej podstawie generuje odpowiedź, która wraca do klienta SDP [27] Aplikacja na PC Aplikacja na komputerze klasy PC pełni rolę serwera. W dużej części oparta jest o oprogramowanie dostarczane wraz z urządzeniem Bluetooth ze stosem protokołów BlueSoleil. Po instalacji oprogramowania BlueSoleil mamy dostęp do API, z którego można korzystać w swoich aplikacjach. Dzięki temu moja aplikacja może wykonywać podstawowe operacje, typu: start serwis, stop serwis, itp. 4 pliki zostały dostarczone projektantom i programistom w celu kompilowania, linkowania i uruchamiania aplikacji: plik DLL btfunc.dll, biblioteka btfunc.lib i dwa pliki nagłówkowe bt_ui.h, bt_def.h. btfunc.dll implementacja API do Bluetooth. W momencie instalacji BlueSoleil, biblioteka ta jest instalowana w systemie Windows 59

60 btfunc.lib zawiera adresy funkcji, biblioteka którą trzeba dołączyć do pisanego programu bt_ui.h plik nagłówkowy w którym zdefiniowane są stałe, struktury bt_def.h plik nagłówkowy w którym zdefiniowane są typedef y i klasy Bluetooth Aplikacja oferuje 3 poziomy zabezpieczeń połączenia pomiędzy urządzeniami: Niski - brak zabezpieczenia. Procedury zabezpieczenia nie są wymagane dla połączeń. Inne urządzenia mają swobodny dostęp do serwera bez konieczności wprowadzania klucza hasła. Średni - uwierzytelnianie lub autoryzacja są wymagane przy dostępie do określonej usługi przez inne urządzenia. Jeśli dwa urządzenia nawiązują ze sobą po raz pierwszy połączenie, wówczas taki tryb wymusza wymianę tego samego klucza hasła między nimi. Wysoki wymuszone zabezpieczenie. Jeśli mamy uruchomiony ten tryb, wówczas uwierzytelnianie jest wymagane przy każdym inicjowaniu połączenia pomiędzy dwoma urządzeniami z obsługą Bluetooth. Do dokończenia procesu uwierzytelniania wymagane jest dostarczenie klucza hasła obydwu stronom. Skoro aplikacja ta pełni rolę serwera, to musi być na niej uruchomiony co najmniej jeden serwis (w moim przypadku jest to Serial Port ), który nasłuchuje na połączenia przychodzące od innych urządzeń. Każde przychodzące połączenie obsługiwane jest przez nowy wątek. Aby serwis spełniał założone przeze mnie zadanie, przed jego uruchomieniem należy zarejestrować funkcję CallBack() (z dostępnych poleceń wybrać należy cyfrę 10), która w pośredni sposób odpowiada za zdarzenia związane z nadchodzącymi ze zdalnych urządzeń poleceniami. Wszystkie możliwe polecenia które mogą napłynąć od zdalnych urządzeń są oczywiście znane i odpowiednio zdefiniowane w aplikacji. Przyjąłem zasadę, iż każde polecenie składa się z 3 liter, które są w pełni wystarczające aby zdefiniować wszystkie potrzebne zadania. Polecenia mogą być dłuższe, jednak trzeba pamiętać, że identyfikacja następuje po 3 ostatnich literach. Oprócz tego, każde poprawne polecenie musi się kończyć sekwencją AT\r. Każdorazowe prawidłowe przetworzenie odpowiedniego polecenia wymusza na aplikacji wysyłanie stosownego potwierdzenia. 60

61 Dla celów pokazowych komunikaty będące poleceniami użytkownika, serwer realizuje w postaci głosowych zadań, które w łatwy sposób mogą być modyfikowane, w zależności od potrzeb Aplikacja na Game Board Tak jak pisałem wcześniej, nie udało się wdrożyć tego urządzenia do działającego systemu inteligentnych urządzeń. Istotę problemu opisałem w rozdziale 5.2. Jednak urządzenie to jest o tyle ciekawe, że warto przedstawić jego istotne cechy. W rzeczywistości Game Board to nic innego jak mikrokontroler. Jego najważniejsze cechy są następujące [40]: posiada 128 kb pamięci Flash i 16 SRAM 130 x 130 pixel kolorowy wyświetlacz LCD Obecność Bluetootha opartego o Philips BGB203-S06 z zaimplementowanym profilem SPP, czyli Serial Port 5-cio funkcyjny joystick odpowiedzialny za interakcje z użytkownikiem. Zasilany przez USB Wymiary mikrokontrolera to 90x90mm. Rys.24 LPC2104 Color LCD Game Board [40] 61

62 W jaki sposób połączyć się z urządzeniem przez USB? Przede wszystkim trzeba zainstalować stosowne sterowniki, gdyż po podłączeniu urządzenia do komputera PC za pomocą wspomnianego USB, komputer prosi o sterowniki. Po prawidłowym zainstalowaniu tych sterowników, tworzony jest COM port służący do komunikacji (USB Serial Port) [40]. Ustawienia dla tego portu są następujące: - szybkość transmisji b/s - bity danych 8 - brak parzystości - bity stopu 1 - brak sterowania przepływem Zauważyć można że są to standardowe ustawienia portu, którym łączymy się z routerami. Przydzielony numer portu powinien mieścić się w zakresie od 1 do 5 [40], ponieważ tego wymaga Philips FLASH Utility program, którego używałem do wgrywania oprogramowania. Alternatywnym programem do rozmieszczania oprogramowania jest lpc21isp dostarczany z biblioteką LPC2xxx-gcc-newlib-v2_3_0_0. Przewagą pierwszego programu jest bardzo przyjazny interfejs graficzny, który w prosty sposób umożliwia przesłanie napisanego oprogramowania na urządzenie. W tym momencie należy poruszyć temat związany ze zworkami, które są obecne na urządzeniu. Jest to bardzo istotne zagadnienie, ponieważ wspomniane zworki muszą znajdować się w odpowiednim ustawieniu aby umożliwić wgrywanie nowego oprogramowania. Jednak nie będę się nimi szczegółowo zajmował, ponieważ informacje na ten temat znaleźć można w literaturze [44, 45]. Mówiąc o wgrywaniu gotowych aplikacji, trzeba powiedzieć w jaki sposób powstaje plik, który można przesłać do mikrokontrolera. Plik ma określony format, jest to plik HEX. Aby móc skompilować napisany przez siebie program niezbędne jest odpowiednie środowisko wraz z kompilatorem (GCC), który to umożliwi [41]. Środowisko to jest oczywiście dostarczane przez producenta i dostępne na stronie Bardzo ważne zadanie pełni plik makefile. Określa parametry kompilowania i linkowania, a także jakie pliki wchodzą w skład programu, jakie biblioteki, jaki będzie wynik kompilacji (jakiego typu będzie plik wynikowy), itp.. Ponieważ modelów mikrokontrolerów jest bardzo dużo na rynku, to w pliku tym określa się również model mikrokontrolera na jaki kompilujemy program [41]. Jeśli chodzi o Bluetootha, to trzeba pamiętać o włączeniu aktywnego trybu, który powoduje możliwość wykrycia naszego urządzenia przez innych. 62

63 Do uruchomiania serwisu nasłuchującego na przychodzące połączenia, użyłem Hyper Terminala i następującego polecenia: AT+BTSRV=<Port>, <Service Name> Powyższe polecenie wystarcza do tego, aby serwis zaczął nasłuchiwać. Wracając do problemu z którym zetknąłem się podczas implementacji projektu i o którym pisałem w rozdziale 5.2, warto zauważyć, że komunikacja pomiędzy mikrokontrolerem a komputerem PC doszła do skutku. Niestety taka opcja była mało zadawalająca ze względu na założone cele, w których klientem poszukującym serwisu miał być telefon komórkowy. Więcej informacji o tym urządzeniu można znaleźć na stronie Profile zastosowań Bluetooth Profile są bardzo istotnym zagadnieniem w standardzie Bluetooth od których w dużej mierze zależy dalszy rozwój tej technologii. Ich celem jest zapewnienie kompatybilności pomiędzy aplikacjami i urządzeniami pochodzącymi od różnych producentów [8]. Najogólniej, profile można podzielić na 4 grupy [8]: Profile ogólne Profile portu szeregowego Profile telefonii Profile pracy sieciowej Do profili ogólnych zalicza się profil ogólnego dostępu (GAP Generic Access Profile), który jest podstawą dla wszystkich pozostałych profili i jest obecny w każdym urządzeniu wyposażonym w Bluetooth [8]. Drugim profilem ogólnym jest profil aplikacji wyszukiwania usług (SDPAM Service Discovery Application Protocol). Profil GAP określa jednakowe zasady korzystania z protokołów transportowych dla wszystkich profili, określa funkcję, które są obowiązkowe dla wszystkich urządzeń Bluetooth. Natomiast profil SDPAM tworzy zasady korzystania z protokołu SDP [8]. Do rodziny profilu portu szeregowego, z którego bezpośrednio korzystałem w swoim projekcie, zalicza się następujące profile [8]: Profil portu szeregowego (SPP) Profil ogólnej wymiany obiektów (GOEP) 63

64 Profil transferu plików (FTP) Profil wypychania obiektów (OPP) Profil synchronizacji danych (SP) Ze względu na założenie w którym napisane przeze mnie aplikacje mają działać na jak największej ilości urządzeń, skorzystanie z profilu SPP wydaje się oczywiste, gdyż jest on najczęściej implementowanym profilem [8]. Pozwala na zestawienie wirtualnego portu szeregowego pomiędzy dwoma urządzeniami Bluetooth. Profil ten odwołuje się bezpośrednio do protokołu RFCOMM, co nie jest w cale bez znaczenia. Przewagą RFCOMM nad innymi protokołami pośredniczącymi jest fakt, iż w urządzeniu posiadającym Bluetooth jest on zaimplementowany zawsze, natomiast inne tego typu protokoły niekoniecznie [8]. Trzeba pamiętać, że do ustanowienia bezprzewodowego połączenia szeregowego, oprócz wszystkich protokółów transportowych do warstwy L2CAP włącznie (rysunek numer 17) potrzebne są 2 protokoły pośredniczące: wspomniany RFCOMM i SDP. Więcej na ten temat można dowiedzieć się ze specyfikacji Bluetooth i z literatury [8]. Chcę zauważyć, że inne profile, niektóre o wiele bardziej wyrafinowane byłyby również dobre, jednak z uwagi na fakt, iż urządzenie wyposażone w Bluetooth nie musi ich posiadać, tracą trochę na użyteczności. Nie będę opisywał pozostałych profili, gdyż zajęłoby to wiele stron, a nie to jest celem pracy. Wszystkie opisy dostępnych profili znajdują się w literaturze [8]. Aby uzupełnić rodziny profili, wspomnę jeszcze o profilach telefonii i pracy sieciowej, w skład pierwszej grupy wchodzą [8]: Profil telefonii bezprzewodowej Profil Interkomu Profil zestawu słuchawkowego Do rodziny profili pracy sieciowej zalicza się [8]: Profil pracy sieciowej z połączeniem komutowanym Profil dostępu do LAN Profil faksu 64

65 5.2.5 Instrukcja obsługi Wymagania sprzętowe Telefon komórkowy z systemem Symbian 7.0 z interfejsem UIQ 2.0 Komputer PC: o Procesor: Intel Celeron/ Pentium III/ Pentium IV; AMD Duron/ Athlon o System operacyjny: Microsoft Windows 98 SE/ME/2000/XP o Pamięć RAM: co najmniej 32MB o Wolne miejsce na dysku: 11,5MB Bluetooth USB Dongle z API BlueSoleil Instalacja Instalacja aplikacji na komputerze PC Mając w napędzie CD-ROM płytkę CD dołączoną wraz z tą pracą, należy podłączyć Bluetooth USB Dongle. Automatycznie zostanie wykryty nowy sprzęt, system operacyjny Windows poprosi nas o zainstalowanie sterowników, które dostępne są w katalogu SterownikiBlueSoleil. Po ukończeniu instalacji, program w katalogu AplikacjaNaPc\EXE jest gotowy do uruchomienia. Instalacja aplikacji na telefonie komórkowym z Symbianem Instalacja napisanej przeze mnie aplikacji może przebiegać na różne sposoby. Przedstawię najłatwiejszy, ten z którego sam korzystałem. Otóż wystarczy przegrać plik instalacyjny SIS do pamięci telefonu (plik instalacyjny znajduje się w katalogu AplikacjaNaTelKom\SIS). Można to zrobić za pośrednictwem karty SD, w którą wyposażonych jest większość telefonów (np. Motorola A920, A925), lub nawiązując połączenie Bluetooth z telefonem komórkowym i przesyłając stosowny plik. Sama instalacja jest trywialna, wymaga jedynie kilkukrotnego kliknięcia OK. Po ukończonej instalacji, program jest gotowy do uruchomienia. 65

66 Opis szczegółowy Aplikacja na komputerze PC Po uruchomieniu aplikacji, na ekranie pojawia się główne menu, które zawiera numerowane akcje. Do poprawnego działania wymagane jest włączenie SDK_BtRegisterCallBack, czyli akcja numer 10 (jest to funkcja która odpowiada za zdarzenia). Następnie trzeba podać na jakie zdarzenia ma reagować, więc należy podać EVENT_CONNECTION_STATUS (akcja numer 3). Aby wyjść z tego poziomu i wrócić do głównego menu należy podać w linii poleceń -1. Po tej operacji pozostaje tylko uruchomienie serwisu nasłuchującego na połączenia, co czyni akcja 12 (SDK_BtStartSPPExService). Po tych czynnościach aplikacja czeka na pojawienie się w zasięgu Bluetooth urządzenia zdefiniowanego w pliku BlueSoleilClient.ini. W pliku tym znajduje się MAC adres urządzenia posiadającego dostęp do wysłania stosownych komunikatów. Po pojawieniu się danego urządzenia w zasięgu, aplikacja na komputerze PC stosownym komunikatem głosowym powiadamia o tym zdarzeniu. Tak samo dzieje się w przypadku, gdy dane urządzenie opuszcza zasięg, Aplikacja na telefonie komórkowym Po uruchomieniu aplikacji, z menu górnego należy wybrać polecenie Commands, a następnie z rozwijanej listy poleceń Start. Niestety dostępne urządzenia z którymi telefon komórkowy może nawiązać komunikację są zapisane w postaci struktury w pliku źródłowym aplikacji (w pliku ClientBT_MsgClient.cpp). Aby zmienić MAC adresy tych urządzeń, trzeba przekompilować cały projekt. Aby zatrzymać działanie aplikacji, trzeba wybrać z menu polecenie Stop. Zasadę działania aplikacji opisuję w rozdziale

67 5.3 Standardy Bluetooth na komputery PC Na rynku jest kilka standardów Bluetooth, są to: JSR 82 + Java API. Specyfikacja standaryzująca zbiór wywołań API, które pozwalają na wykorzystanie Bluetootha w aplikacjach napisanych w Javie. Link do strony z której można ściągnąć niezbędne biblioteki wraz ze specyfikacją to Widcomm, obecnie Broadcom. Są dwie wersje SDK: jedna do pisania pod PC (Windows 98, ME, 2000, XP), druga na Windows Mobile Pocket PC (wspierane są HP, ipaq's, Dell, Axim, X30, X50, Acer, n50, n300, Asus, A636, A716, A730, Windows Mobile Pocket PC ze zintegrowanym Bluetooth). Link do tego standardu jest następujący Toshiba, SDK dostępne na stronie Wspierane platformy to: Win 95A, Win 95B, Win 98, Win 98SE, Win ME, Win NT 4.0, Win 2K, Win XP, Win Server 2K3, Win Vista. Informacje na temat tego standardu można uzyskać ze strony Microsoft Bluetooth i jego API, które zawiera niezbędne biblioteki. Windows zapewnia dwa sposoby dostępu do Bluetooth: - poprzez użycie Windows Sockets Interface - zarządzanie urządzeniem bezpośrednio, bez użycia Sockets BlueSoleil (w kilku zdaniach opisuje jego API w rozdziale 5.2.2) Wszystkie wymienione standardy rozwijane są w bardzo szybkim tempie. Niestety bardzo często nie są ze sobą kompatybilne, o czym mogłem się przekonać. Stwarza to wiele problemów z ich używaniem. Do swojego projektu wybrałem standard BlueSoleil. Decyzje mogę umotywować tylko tym, iż chciałem zapoznać się z implementacją podstawowych funkcji w standardzie innym niż Microsoft. 67

68 5.4 Dlaczego C++ W porównaniu z Javą, zaletą C++ jest pełny, niskopoziomowy dostęp do urządzenia, możliwość bezpośredniego dostępu do wielu funkcji telefonu., oraz znacznie szybsza praca aplikacji. Java uznawana jest za technologię wolną i zasobożerną, co w przypadku urządzeń o ograniczonej mocy obliczeniowej i małej pamięci jest poważnym zastrzeżeniem. Jeśli aplikacja pisana przeze mnie miałaby charakter jakiejś gry czy innej podobnej tego typu aplikacji, wówczas Java byłaby równie dobra co język C++. Jednak do tworzenia złożonych i bardziej zaawansowanych aplikacji (aplikacja wykorzystująca Bluetooth należy do takiej grupy programów), znacznie lepiej skorzystać z C++ [34]. 6 Dalsze kierunki rozwoju Przedstawiony i zrealizowany przeze mnie projekt posiada jedynie podstawowe elementy wchodzące w skład Inteligentnego Budynku. Proponowany jest dalszy rozwój w celu zwiększenia złożoności systemu i doprowadzeniu do stanu w którym liczba inteligentnych urządzeń wzrośnie. Należy dążyć do implementacji rzeczywistych wymogów stawianych przed tego typu systemami. Jest wiele kierunków, w których projekt może się rozwinąć. Oprócz dodania innych urządzeń, które w znaczący sposób rozszerzą projekt, można spróbować zmienić schemat ideowy projektu, o który opiera się cały system. Do istniejącej sieci można dodać punkt centralny jednostkę, która będzie zarządzała wszystkimi urządzeniami peryferyjnymi, które byłyby w takim wypadku podrzędnymi w stosunku do punktu centralnego. Dobrym kandydatem urządzenia centralnego spełniającego wszystkie potrzebne funkcje mógłby być komputer klasy PC z Bluetooth em. Wtedy klucz, telefon komórkowy łączyłby się tylko z jednostką centralną, która zajmowała by się realizacją zleconych mu zadań poprzez przesyłanie komunikatów do odpowiednich urządzeń. 68

69 Rys.25 Wariant rozbudowy projektu Takie rozwiązanie miałoby jedną dużą zaletę. Proces polegający na zweryfikowaniu tożsamości osoby (tzw. uwierzytelnienie) posiadającej telefon komórkowy i próbującej nawiązać połączenie z którymkolwiek urządzeniem byłby o tyle prosty, iż wymagałby zaimplementowania go jedynie na dwóch urządzeniach: telefonie komórkowym i jednostce centralnej. Niestety należało by się zastanowić nad wadami takiego rozwiązania. Jedną z takich wad jest niewątpliwie to, iż w sieci będzie istniała jednostka centralna, która w razie jakichkolwiek problemów technicznych unieruchomi całą sieć. Aplikacja na telefon komórkowy z system Symbian OS stwarza ogromne możliwości rozwoju. Napisana przeze mnie aplikacja polega na automatycznym wysyłaniu stosownego polecenia do zdalnego urządzenia, w momencie pojawienia się w jego zasięgu. Jednak może zajść potrzeba, gdzie użytkownik będzie chciał po wysłaniu tego polecenia, wysłać inne (przykładem może być telewizor, który włączy się po naszym wejściu do mieszkania, lecz przykładowo domownik chciałby mieć możliwość zmiany kanałów). Aplikacja uwzględnia przyszłe takie potrzeby, jest napisana w taki sposób, aby umożliwić w przyszłości zaimplementowanie tej funkcjonalności. 69

70 7 Wnioski i podsumowanie Cel który postawiłem sobie na samym początku został osiągnięty. W ramach mojej pracy powstał system Inteligentnego Budynku. Urządzeniem sterującym jest telefon komórkowy z systemem Symbian OS. Komputery klasy PC wraz z mikrokontrolerem pełnią rolę urządzeń peryferyjnych, wykonujących wcześniej skonfigurowane zadania. Oczywiście mam świadomość że w rzeczywistości Inteligentne Budynki składają się z większej ilości aktywnych urządzeń. Są to systemy bardzo rozbudowane, ich topologie bardzo często przybierają różną postać w zależności od zastosowań. Zasadniczym celem pracy było zapoznanie się ze sposobami tworzenia i uruchamiania oprogramowania dla OS Symbian. Do tworzenia oprogramowania na Symbian OS powstało wiele środowisk programistycznych, tzw. IDE, których celem jest ułatwienie pisania aplikacji pod ten system. Mimo wszystko, tworzenie nawet prostych aplikacji przysparza wielu kłopotów, o czym mogłem się przekonać. Dużą przeszkodą w pisaniu programów na Symbian OS jest brak dobrej dokumentacji. Wsparcie techniczne dla tego systemu operacyjnego jest nieporównywalnie mniejsze od innych systemów operacyjnych, takich jak Windows czy Linux. Skalę problemu można zaobserwować przeglądając oferty księgarni publicznych a także księgarni internetowych. Na polskim rynku nie ma jeszcze ani jednej książki omawiającej system operacyjny Symbian. Jednym z najtrudniejszych wyzwań w tej pracy było napisanie oprogramowania przeznaczonego na telefon komórkowy, służącego do sterowania innymi urządzeniami. W tym celu niezbędną rzeczą było dogłębne poznanie protokołu Bluetooth. Jak wspominałem we wcześniejszych rozdziałach, protokół ten rozwija się bardzo szybko. Niestety nie jest on jeszcze doskonały, o czym świadczą istniejące dziury, które często wykorzystywane są przez liczne ataki. W 2005 roku opracowano już nawet mechanizm łamania PINu, o który oparty jest proces parowania urządzeń przed rozpoczęciem transmisji. Do najczęstszych ataków wykorzystujących luki w specyfikacji Bluetooth należą: BlueJack wysyłanie wiadomości do widocznych urządzeń będących w zasięgu, rozsyłanie SPAMu, wirusów. BlueSmack atak typu Dos, bazujący na wysyłaniu wiadomości protokołu L2CAP z żądaniem odpowiedzi (echo request) 70

71 BlueBump umożliwia połączenie z telefonem ofiary bez jej wiedzy jeśli wcześniej istniało uwierzytelnione połączenie. Jego działanie polega na manipulacji przechowywaniem klucza połączenia (link key). Wobec tego można sobie zadać pytanie dlaczego zdecydowałem się użyć Bluetootha, skoro jest tak dużo zagrożeń związanych z komunikacją opartą o ten protokół. W tym miejscu warto zastanowić się nad tym, czy chcemy mieć komunikację z urządzeniami za pomocą jakiegokolwiek okablowania, czy też drogą radiowa będzie odpowiedniejsza (bezpieczeństwo i uciążliwe kable, czy wygoda i ryzyko związane z narażaniem się na różne ataki ). W grupie protokołów radiowych Bluetooth wydaje się rozwiązaniem najlepszym patrząc z punktu widzenia zastosowania w Inteligentnym Budynku i nie bez znaczenia jest to, iż protokół ten jest bardzo intensywnie rozwijany. Grupa SIG stara się zwalczać wszelkie problemy, myślę że w ciągu kilku lat uda im się opracować algorytmy, które wykluczą wszelkiego rodzaju ataki. W przyszłości na podstawie mojej aplikacji może powstać bardzo duży system, który umożliwi sterowanie wieloma urządzeniami. Kod programu sterującego innymi urządzeniami jest napisany zgodnie z konwencją pisania programów pod Symbian OS, co powinno ułatwić rozwój aplikacji. Podsumowując cały temat związany z Inteligentnym Budynkiem, po zapoznaniu się z różnymi technologiami umożliwiającymi realizację praktyczną, z całą pewnością mogę stwierdzić, że jest to zagadnienie o które w przyszłości opierać się będzie budownictwo na całym świecie. Zaawansowane systemy kontrolujące niemal wszystko, co jest związane z budynkiem będą codziennością. 71

72 BIBLIOGRAFIA [1] Richard Harrisom, Symbian OS C++ for Mobile Phones, John Wiley & Sons Ltd 2003 [2] Rafał Fabich, Rafał Fetorków, strona zrealizowana w ramach przedmiotu "Środowisko telekomunikacyjne sieci komputerowych", [3] SMARTech, Zastosowania Inteligentnego Budynku, [4] Soft-Net, Zastosowania Inteligentnego Budynku, [5] Piotr Zwierzchowski, Oświetlenie w inteligentnych budynkach, [6] Mariusz Szepietowski Porównanie systemów inteligentnego domu - część I, II i III, t,view/id,1358/itemid,45/ [7] Krzysztof Nowicki, Ethernet - sieci, mechanizmy, wyd. Infotech 2006 [8] Brent A. Miller, Chatschink Bisdikian, Ph. D., Uwolnij się od kabli - Bluetooth, Helion, Gliwice 2003 [9] Bzowski Remigiusz, Cerankowski Łukasz, System zabezpieczenia w inteligentnym domu, Elbląg eczenia_w_inteligentrnym_budynku.pdf [10] Jerzy Mikulik, Budynek inteligentny. Tom II. Podstawowe systemy bezpieczeństwa w budynkach inteligentnych, wyd. Politechniki Śląska [11] A. Janikowski Sieci domowe cz.1, 2001, [12] A. Janikowski Sieci domowe cz. IV - Sieci bezprzewodowe, [13] A. Janikowski, PLC - prąd i dane w jednym gniazdku, Networld wydanie specjalne, nr 1/2002 [14] MainNet Communications Ltd, BPL / PLC Technology Overview, 2007, [15] S. Chemishkian, Building Smart Services for Smart Home, Networked Appliances, Proceedings. IEEE 4th International Workshop on,

73 [16] Przemysław Pawełczak, Krzysztof Jakubik Co nowego w PLC?, [17] Ascom Poland Sp. z o.o., opis techniczny systemu ASCOM PLC, [18] Krzysztof Pietrzak, Sieci HomePlug, 2006, [19] Andrzej Janikowski, Sieci domowe, 2002, [20] XinWang, Georgios B. Giannakis, CSMA/CCA: A Modified CSMA/CA Protocol Mitigating the Fairness Problem for IEEE DCF, [21] Małgorzata Szafarz, Inteligentny budynek, 2006, [22] Wojciech Wiśniewski, Zasady działania systemu EIB, [23] IrDA Specifications, [24] The HomeRF Technical Committee, HomeRF 2.0 Specification Revision 2.01, 2002, [25] Marcin Suszkiewicz, ZigBee - sieci energooszczędne, 2004, [26] ZigBee Alliance, ZigBee Specification Document r13, 2006, [27] Bluetooth Specification Version EDR [vol 0], 2007, [28] Philips, UM_1SPP BGB203 BT 2.0 Serial Port Profile Module User s Guide, 2005 [29] Oficjalna strona Symbian OS, [30] Cezary Kramp, Systemy także w komórkach, [31] Portal poświęcony systemowi operacyjnemu Symbian, [32] IETF Internet Draft Simple Service Discovery Protocol/1.0, [33] Choonhwa Lee and Sumi Helal Protocols for Service Discovery in Dynamic and Mobile Networks, 2002 Nova Science Publishers, Inc, 73

74 [34] Andreas Jakl, Pierwsze kroki w C++ dla Symbian OS, Software 2.0, 5/2005 [35] Michael J. Jipping, Symbian OS - Communications Programming, published by John Wiley & Sons 2004, ISBN [36] Network Working Group, RFC Service Location Protocol, Version 2, [37] International Telecommunication Union, What is a UUID?, [38] Sun Microsystems, White Paper, Jini Architectural Overview, [39] Alan Berkema, Minimal Basic Printing Profile Requirements for a Sender, 2002, 0363D879FC27/0/Minimal_BPP_Reqs_For_Sender.pdf [40] Embedded Artists AB, LPC2104 Color LCD Game Board User s Guide, 2006, [41] Embedded Artists AB, QuickStart Program Development User s Guide, 2005, 74

75 Dodatek A Zawartość nośnika CD-ROM Aplikacja na telefon komórkowy załączone oprogramowanie jest w dwóch wersjach: programu wykonywalnego w postaci pliku SIS (AplikacjaNaTelKom\SIS) plików źródłowych całej aplikacji (katalog AplikacjaNaTelKom\Sources) Aplikacja na PC załączone w dwóch wersjach: program wykonywalny w postaci pliku EXE (AplikacjaNaPc\EXE) program w postaci plików źródłowych (AplikacjaNaPc\Sources) Praca mgr tekst pracy w dwóch wersjach: plik PDF (TekstPracyMgr\PDF) plik DOC (TekstPracyMgr\DOC) SDK + Sterowniki do Bluetooth BlueSoleil Katalog SDKiSterownikiBlueSoleil Materiały elektroniczne Katalog Materiały elektroniczne Użyte rysunki Katalog Rysunki do pracy Raporty autentyczności pracy Katalog Pelny raport Systemu antyplagiatowyego Plagiat.pl Katalog Skrócony raport Systemu antyplagiatowego Plagiat.pl Instalacja CodeWarrior + SDK (wersja 15 dniowa) Katalog CodeWarrior + SDK LPC Game Board sterowniki + programy Katalog LPC 75

76 Dodatek B Raport skrócony wygenerowany przez System Antyplagiatowy Plagiat.pl, za pomocą witryny 76

77 77

78 78

79 79

Ethernet. Ethernet odnosi się nie do jednej, lecz do wielu technologii sieci lokalnych LAN, z których wyróżnić należy cztery podstawowe kategorie:

Ethernet. Ethernet odnosi się nie do jednej, lecz do wielu technologii sieci lokalnych LAN, z których wyróżnić należy cztery podstawowe kategorie: Wykład 5 Ethernet IEEE 802.3 Ethernet Ethernet Wprowadzony na rynek pod koniec lat 70-tych Dzięki swojej prostocie i wydajności dominuje obecnie w sieciach lokalnych LAN Coraz silniejszy udział w sieciach

Bardziej szczegółowo

Szerokopasmowy dostęp do Internetu Broadband Internet Access. dr inż. Stanisław Wszelak

Szerokopasmowy dostęp do Internetu Broadband Internet Access. dr inż. Stanisław Wszelak Szerokopasmowy dostęp do Internetu Broadband Internet Access dr inż. Stanisław Wszelak Rodzaje dostępu szerokopasmowego Technologia xdsl Technologie łączami kablowymi Kablówka Technologia poprzez siec

Bardziej szczegółowo

Warstwy i funkcje modelu ISO/OSI

Warstwy i funkcje modelu ISO/OSI Warstwy i funkcje modelu ISO/OSI Organizacja ISO opracowała Model Referencyjny Połączonych Systemów Otwartych (model OSI RM - Open System Interconection Reference Model) w celu ułatwienia realizacji otwartych

Bardziej szczegółowo

IrDA. Infrared Data Association

IrDA. Infrared Data Association to grupa skupiająca kilkudziesięciu producentów elektroniki mająca na celu tworzenie i kontrolowanie międzynarodowych standardów transmisji w zakresie promieniowania podczerwonego. Długość fali: Typ transmisji:

Bardziej szczegółowo

Instrukcja Obsługi 10/100 Mbps PCI Fast Ethernet Adapter Spis treści 1 ZAWARTOŚĆ OPAKOWANIA...3 2 WŁASNOŚCI URZĄDZENIA...3 2.1 Właściwości sprzętowe...3 2.2 Port RJ-45...3 2.3 Diody LED...3 2.4 Gniazdo

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów PCI EXPRESS Rozwój technologii magistrali Architektura Komputerów 2 Architektura Komputerów 2006 1 Przegląd wersji PCI Wersja PCI PCI 2.0 PCI 2.1/2.2 PCI 2.3 PCI-X 1.0 PCI-X 2.0

Bardziej szczegółowo

Terminal TR01. Terminal jest przeznaczony do montażu naściennego w czystych i suchych pomieszczeniach.

Terminal TR01. Terminal jest przeznaczony do montażu naściennego w czystych i suchych pomieszczeniach. Terminal TR01 Terminal jest m, umożliwiającym odczyt i zmianę nastaw parametrów, stanów wejść i wyjść współpracujących z nim urządzeń automatycznej regulacji wyposażonych w port komunikacyjny lub i obsługujących

Bardziej szczegółowo

2013-12-02. Autor: Jakub Duba. Interjesy

2013-12-02. Autor: Jakub Duba. Interjesy Autor: Jakub Duba Interjesy 2 1 Interjesy 3 Interjesy 4 2 5 Universal Serial Bus (USB; uniwersalna magistrala szeregowa) rodzaj sprzętowego portu komunikacyjnego komputerów, zastępującego stare porty szeregowe

Bardziej szczegółowo

Systemy sterowania i nadzoru w budynkach

Systemy sterowania i nadzoru w budynkach Systemy sterowania i nadzoru w budynkach Inteligentne instalacje elektryczne (4) Intelligent Home Control Koncepcja systemu Studia Podyplomowe Wydział Elektrotechniki i Informatyki Koncepcja IHC Koncepcja

Bardziej szczegółowo

Bezprzewodowe Sieci Komputerowe Wykład 6. Marcin Tomana marcin@tomana.net WSIZ 2003

Bezprzewodowe Sieci Komputerowe Wykład 6. Marcin Tomana marcin@tomana.net WSIZ 2003 Bezprzewodowe Sieci Komputerowe Wykład 6 Marcin Tomana WSIZ 2003 Ogólna Tematyka Wykładu Lokalne sieci bezprzewodowe System dostępowy LMDS Technologia IRDA Technologia Bluetooth Sieci WLAN [2/107] Materiały

Bardziej szczegółowo

Łącza WAN. Piotr Steć. 28 listopada 2002 roku. P.Stec@issi.uz.zgora.pl. Rodzaje Łącz Linie Telefoniczne DSL Modemy kablowe Łącza Satelitarne

Łącza WAN. Piotr Steć. 28 listopada 2002 roku. P.Stec@issi.uz.zgora.pl. Rodzaje Łącz Linie Telefoniczne DSL Modemy kablowe Łącza Satelitarne Łącza WAN Piotr Steć P.Stec@issi.uz.zgora.pl 28 listopada 2002 roku Strona 1 z 18 1. Nośniki transmisyjne pozwalające łączyć sieci lokalne na większe odległości: Linie telefoniczne Sieci światłowodowe

Bardziej szczegółowo

INSTALACJA W SYSTEMIE KNX/EIB. Komunikacja. Dr hab. inż. Antoni KLAJN Politechnika Wrocławska, Instytut Energoelektryki

INSTALACJA W SYSTEMIE KNX/EIB. Komunikacja. Dr hab. inż. Antoni KLAJN Politechnika Wrocławska, Instytut Energoelektryki INSTALACJA W SYSTEMIE KNX/EIB Komunikacja Dr hab. inż. Antoni KLAJN Politechnika Wrocławska, Instytut Energoelektryki Komunikacja Graficzna ilustracja transmisji szeregowej asynchronicznej Nadajnik Przewody

Bardziej szczegółowo

Dwa lub więcej komputerów połączonych ze sobą z określonymi zasadami komunikacji (protokołem komunikacyjnym).

Dwa lub więcej komputerów połączonych ze sobą z określonymi zasadami komunikacji (protokołem komunikacyjnym). Sieci komputerowe Dwa lub więcej komputerów połączonych ze sobą z określonymi zasadami komunikacji (protokołem komunikacyjnym). Zadania sieci - wspólne korzystanie z plików i programów - współdzielenie

Bardziej szczegółowo

USB interface in 8-bit microcontrollers PIC18F family manufactured by Microchip.

USB interface in 8-bit microcontrollers PIC18F family manufactured by Microchip. 1 Mateusz Klimkowski IV rok Koło Naukowe Techniki Cyfrowej dr inż. Wojciech Mysiński opiekun naukowy USB interface in 8-bit microcontrollers PIC18F family manufactured by Microchip. Interfejs USB w 8-bitowych

Bardziej szczegółowo

Sieci Komórkowe naziemne. Tomasz Kaszuba 2013 kaszubat@pjwstk.edu.pl

Sieci Komórkowe naziemne. Tomasz Kaszuba 2013 kaszubat@pjwstk.edu.pl Sieci Komórkowe naziemne Tomasz Kaszuba 2013 kaszubat@pjwstk.edu.pl Założenia systemu GSM Usługi: Połączenia głosowe, transmisja danych, wiadomości tekstowe I multimedialne Ponowne użycie częstotliwości

Bardziej szczegółowo

Architektura Systemów Komputerowych. Transmisja szeregowa danych Standardy magistral szeregowych

Architektura Systemów Komputerowych. Transmisja szeregowa danych Standardy magistral szeregowych Architektura Systemów Komputerowych Transmisja szeregowa danych Standardy magistral szeregowych 1 Transmisja szeregowa Idea transmisji szeregowej synchronicznej DOUT Rejestr przesuwny DIN CLK DIN Rejestr

Bardziej szczegółowo

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 2. Przedmowa... 11. Wstęp... 13

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 2. Przedmowa... 11. Wstęp... 13 Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 2 Spis treúci Przedmowa... 11 Wstęp... 13 1. Urządzenia peryferyjne i układy wejścia/wyjścia... 15 Wstęp... 15 1.1. Przyczyny

Bardziej szczegółowo

WLAN bezpieczne sieci radiowe 01

WLAN bezpieczne sieci radiowe 01 WLAN bezpieczne sieci radiowe 01 ostatnim czasie ogromną popularność zdobywają sieci bezprzewodowe. Zapewniają dużą wygodę w dostępie użytkowników do zasobów W informatycznych. Jednak implementacja sieci

Bardziej szczegółowo

Rywalizacja w sieci cd. Protokoły komunikacyjne. Model ISO. Protokoły komunikacyjne (cd.) Struktura komunikatu. Przesyłanie między warstwami

Rywalizacja w sieci cd. Protokoły komunikacyjne. Model ISO. Protokoły komunikacyjne (cd.) Struktura komunikatu. Przesyłanie między warstwami Struktury sieciowe Struktury sieciowe Podstawy Topologia Typy sieci Komunikacja Protokoły komunikacyjne Podstawy Topologia Typy sieci Komunikacja Protokoły komunikacyjne 15.1 15.2 System rozproszony Motywacja

Bardziej szczegółowo

2. Zawartość dokumentacji. 1. Strona tytułowa. 2. Zawartość dokumentacji. 3. Spis rysunków. 4. Opis instalacji kontroli dostępu. 3.

2. Zawartość dokumentacji. 1. Strona tytułowa. 2. Zawartość dokumentacji. 3. Spis rysunków. 4. Opis instalacji kontroli dostępu. 3. 2. Zawartość dokumentacji 1. Strona tytułowa. 2. Zawartość dokumentacji. 3. Spis rysunków. 4. Opis instalacji kontroli dostępu. 3. Spis rysunków Rys nr 1 schemat instalacji KD Piwnica Rys nr 2 schemat

Bardziej szczegółowo

BLUETOOTH. Rys. 1. Adapter bluetooh

BLUETOOTH. Rys. 1. Adapter bluetooh BLUETOOTH 1. Wstęp teoretyczny Bluetooth jest darmowym standardem opisanym w specyfikacji IEEE 802.15.1. Jest to technologia bezprzewodowej komunikacji krótkiego zasięgu pomiędzy różnymi urządzeniami elektronicznymi,

Bardziej szczegółowo

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Instytut Informatyki Politechnika Poznańska Bezprzewodowa sieć 2,4 GHz, optymalizowana dla transferu danych z małą prędkością, z małymi opóźnieniami danych pomiędzy wieloma węzłami ANT Sieć PAN (ang. Personal

Bardziej szczegółowo

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol)

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol) Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol) W latach 1973-78 Agencja DARPA i Stanford University opracowały dwa wzajemnie uzupełniające się protokoły: połączeniowy TCP

Bardziej szczegółowo

ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1

ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1 Instrukcja obsługi ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1 1 ArtPlayer to proste oprogramowanie umożliwiające odtwarzanie plików video i ich wybór poprzez protokół

Bardziej szczegółowo

co to oznacza dla mobilnych

co to oznacza dla mobilnych Artykuł tematyczny Szerokopasmowa sieć WWAN Szerokopasmowa sieć WWAN: co to oznacza dla mobilnych profesjonalistów? Szybka i bezproblemowa łączność staje się coraz ważniejsza zarówno w celu osiągnięcia

Bardziej szczegółowo

W standardzie zarządzania energią ACPI, dopływ energii do poszczególnych urządzeń jest kontrolowany przez:

W standardzie zarządzania energią ACPI, dopływ energii do poszczególnych urządzeń jest kontrolowany przez: Zadanie 61 W standardzie zarządzania energią ACPI, dopływ energii do poszczególnych urządzeń jest kontrolowany przez: A. chipset. B. BIOS. C. kontroler dysków. D. system operacyjny. Zadanie 62 Przesyłanie

Bardziej szczegółowo

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu. Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu. Maciek Słomka 4 czerwca 2006 1 Celprojektu. Celem projektu było zbudowanie modułu umożliwiającego wizualizację stanu czujników

Bardziej szczegółowo

Zadania z sieci Rozwiązanie

Zadania z sieci Rozwiązanie Zadania z sieci Rozwiązanie Zadanie 1. Komputery połączone są w sieci, z wykorzystaniem routera zgodnie ze schematem przedstawionym poniżej a) Jak się nazywa ten typ połączenia komputerów? (topologia sieciowa)

Bardziej szczegółowo

Wykład II. Administrowanie szkolną siecią komputerową. dr Artur Bartoszewski www.bartoszewski.pr.radom.pl

Wykład II. Administrowanie szkolną siecią komputerową. dr Artur Bartoszewski www.bartoszewski.pr.radom.pl Administrowanie szkolną siecią komputerową dr Artur Bartoszewski www.bartoszewski.pr.radom.pl Wykład II 1 Tematyka wykładu: Media transmisyjne Jak zbudować siec Ethernet Urządzenia aktywne i pasywne w

Bardziej szczegółowo

SIECI KOMPUTEROWE WWW.EDUNET.TYCHY.PL. Protokoły sieciowe

SIECI KOMPUTEROWE WWW.EDUNET.TYCHY.PL. Protokoły sieciowe Protokoły sieciowe Aby komputery połączone w sieć mogły się ze sobą komunikować, muszą korzystać ze wspólnego języka, czyli tak zwanego protokołu. Protokół stanowi zestaw zasad i standardów, które umożliwiają

Bardziej szczegółowo

Inteligentna automatyka budynkowa

Inteligentna automatyka budynkowa Inteligentna automatyka budynkowa Co to jest Fibaro? FIBARO to pierwszy na świecie tak funkcjonalny inteligentny system zarządzania budynkiem. FIBARO to nowoczesne, bezprzewodowe połączenie urządzeń domowych

Bardziej szczegółowo

ANDROID (5) dr Marek Piasecki Warsztaty programowania urządzeń mobilnych 16.XI.2011

ANDROID (5) dr Marek Piasecki Warsztaty programowania urządzeń mobilnych 16.XI.2011 ANDROID (5) dr Marek Piasecki Warsztaty programowania urządzeń mobilnych 16.XI.2011 MoŜliwe aplikacje w TouristPOI: lokalizacja identyfikacja pozycji na podstawie wykrywania sygnału BT (~10m) komunikacja

Bardziej szczegółowo

Sieć LAN to dziś nieodzowny element infrastruktury informatycznej

Sieć LAN to dziś nieodzowny element infrastruktury informatycznej Projektowanie sieci firmowej od A do Z 01 Sieć LAN to dziś nieodzowny element infrastruktury informatycznej w każdej firmie, a coraz częściej także w domu. Jeśli zależy Ci, aby sieć w Twojej firmie funkcjonowała

Bardziej szczegółowo

1. Sieć komputerowa - grupa komputerów lub innych urządzeń połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów.

1. Sieć komputerowa - grupa komputerów lub innych urządzeń połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów. Sieci komputerowe 1. Sieć komputerowa - grupa komputerów lub innych urządzeń połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów. 2. Podział sieci ze względu na rozległość: - sieć

Bardziej szczegółowo

SM211 RS485 - JBUS/MODBUS dla SM103E. Æ Instrukcja obsługi

SM211 RS485 - JBUS/MODBUS dla SM103E. Æ Instrukcja obsługi SM211 RS485 - JBUS/MODBUS dla SM103E Æ Instrukcja obsługi Æ Spis treści Przygotowanie... 1 Informacje ogólne... 1 Montaż... 2 Programowanie... 3 Adres komunikacji... 4 Prędkość transmisji danych... 4 Kontrola

Bardziej szczegółowo

Podsumowanie. semestr 1 klasa 2

Podsumowanie. semestr 1 klasa 2 Podsumowanie semestr 1 klasa 2 Interfejsy sprzętowe komputera: interfejsy wewnętrzne (IDE, EIDE, SCSI, Serial ATA) interfejsy zewnętrzne (RS-232, PS/2, FireWire, esata, USB, Ethernet) IDE (wewnętrzny,

Bardziej szczegółowo

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Instytut Informatyki Politechnika Poznańska 1 Sieć Modbus w dydaktyce Protokół Modbus Rozwiązania sprzętowe Rozwiązania programowe Podsumowanie 2 Protokół Modbus Opracowany w firmie Modicon do tworzenia

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 12 Jan Kazimirski 1 Magistrale systemowe 2 Magistrale Magistrala medium łączące dwa lub więcej urządzeń Sygnał przesyłany magistralą może być odbierany przez wiele urządzeń

Bardziej szczegółowo

SM210 RS485 - JBUS/MODBUS dla SM102E. Æ Instrukcja obsługi

SM210 RS485 - JBUS/MODBUS dla SM102E. Æ Instrukcja obsługi SM210 RS485 - JBUS/MODBUS dla SM102E Æ Instrukcja obsługi Æ Spis treści Przygotowanie... 1 Informacje ogólne... 1 Montaż... 2 Programowanie... 3 Wejście w tryb programowania (COde= 100)... 3 Adres komunikacji...

Bardziej szczegółowo

Podstawowe pojęcia Sieci komputerowe Sieć komputerowa - system umoŝliwiający wymianę danych między 2 lub więcej komputerami. Składają się na nią komputery środki słuŝące realizacji połączenia. Komputery

Bardziej szczegółowo

Routery RTR-XXX/XXX - Router RTR-FT10/FT10

Routery RTR-XXX/XXX - Router RTR-FT10/FT10 Routery RTR-XXX/XXX - Router RTR-FT10/FT10 Obsługa szeregu mediów komunikacyjnych Praca w czterech trybach Praca w sieci LonWorks Możliwość dostosowania do potrzeb użytkownika Charakterystyka Moduł routera

Bardziej szczegółowo

Uniwersalny Konwerter Protokołów

Uniwersalny Konwerter Protokołów Uniwersalny Konwerter Protokołów Autor Robert Szolc Promotor dr inż. Tomasz Szczygieł Uniwersalny Konwerter Protokołów Szybki rozwój technologii jaki obserwujemy w ostatnich latach, spowodował że systemy

Bardziej szczegółowo

Jednostka centralna. Miejsca na napędy 5,25 :CD-ROM, DVD. Miejsca na napędy 3,5 : stacja dyskietek

Jednostka centralna. Miejsca na napędy 5,25 :CD-ROM, DVD. Miejsca na napędy 3,5 : stacja dyskietek Ćwiczenia 1 Budowa komputera PC Komputer osobisty (Personal Komputer PC) komputer (stacjonarny lub przenośny) przeznaczony dla pojedynczego użytkownika do użytku domowego lub biurowego. W skład podstawowego

Bardziej szczegółowo

Modułowy programowalny przekaźnik czasowy firmy Aniro.

Modułowy programowalny przekaźnik czasowy firmy Aniro. Modułowy programowalny przekaźnik czasowy firmy Aniro. Rynek sterowników programowalnych Sterowniki programowalne PLC od wielu lat są podstawowymi systemami stosowanymi w praktyce przemysłowej i stały

Bardziej szczegółowo

JAZZ OPLC JZ20-R10 i JZ20-R16

JAZZ OPLC JZ20-R10 i JZ20-R16 Karta katalogowa JAZZ OPLC i W dokumencie znajduje się specyfikacja Unitronics Jazz Micro-OPLC oraz. Dodatkowe informacje znajdują się na płycie instalacyjnej CD Unitronics i w bibliotece technicznej na

Bardziej szczegółowo

Rodzaje sieci bezprzewodowych

Rodzaje sieci bezprzewodowych Rodzaje sieci bezprzewodowych Bezprzewodowe sieci rozległe (WWAN) Pozwala ustanawiad połączenia bezprzewodowe za pośrednictwem publicznych lub prywatnych sieci zdalnych. Połączenia są realizowane na dużych

Bardziej szczegółowo

EMITER Sp. z o.o. Katowice. DIVUS DOMUS, Teletask i Sienna w automatyce budynkowej. Wrocław 28-29.05.2009

EMITER Sp. z o.o. Katowice. DIVUS DOMUS, Teletask i Sienna w automatyce budynkowej. Wrocław 28-29.05.2009 EMITER Sp. z o.o. Katowice Rozwiązania DIVUS DOMUS, Teletask i Sienna w automatyce budynkowej Wrocław 28-29.05.2009 DIVUS Domus. system automatyki budynkowej DIVUS Domus to innowacyjny komputer PC do automatyki

Bardziej szczegółowo

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak Wykład 3 / Wykład 4 Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak 1 Wprowadzenie do Modułu 3 CCNA-E Funkcje trzech wyższych warstw modelu OSI W jaki sposób ludzie wykorzystują

Bardziej szczegółowo

Wybrane bloki i magistrale komputerów osobistych (PC) Opracował: Grzegorz Cygan 2010 r. CEZ Stalowa Wola

Wybrane bloki i magistrale komputerów osobistych (PC) Opracował: Grzegorz Cygan 2010 r. CEZ Stalowa Wola Wybrane bloki i magistrale komputerów osobistych (PC) Opracował: Grzegorz Cygan 2010 r. CEZ Stalowa Wola Ogólny schemat komputera Jak widać wszystkie bloki (CPU, RAM oraz I/O) dołączone są do wspólnych

Bardziej szczegółowo

CENTRALA STERUJĄCA SMART CONTROL

CENTRALA STERUJĄCA SMART CONTROL Dane Techniczne / Możliwość sterowania urządzeniami marki YOODA i CORTINO za pomocą smartfonów, tabletów i komputera / Tworzenie i zarządzanie grupami urządzeń / Możliwość konfiguracji zdarzeń czasowych

Bardziej szczegółowo

Automatyka. Twój wybór

Automatyka. Twój wybór Automatyka Twój wybór Oparte na technologii Apple zarządzenie domem i multimediami Definiowanie nowoczesności inteligentnego domu. System automatyki, kontroli, komunikacji i audio/video firmy Savant to

Bardziej szczegółowo

Ćwiczenie ABIS-C2. Integracja automatyki pomieszczeo domowych

Ćwiczenie ABIS-C2. Integracja automatyki pomieszczeo domowych AUTOMATYKA BUDYNKOWA IMPLEMENTACJA W SIECIACH INTELIGENTNYCH KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII AKADEMIA GÓRNICZO-HUTNICZA WWW.KANIUP.AGH.EDU.PL WWW.AGH.EDU.PL Temat:

Bardziej szczegółowo

Dlaczego Meru Networks architektura jednokanałowa Architektura jednokanałowa:

Dlaczego Meru Networks architektura jednokanałowa Architektura jednokanałowa: Dlaczego architektura jednokanałowa Architektura jednokanałowa: Brak konieczności planowania kanałów i poziomów mocy na poszczególnych AP Zarządzanie interferencjami wewnątrzkanałowymi, brak zakłóceń od

Bardziej szczegółowo

COMFORT-ORIENTED TECHNOLOGY Nowości produktowe 2014 / Napędy i sterowania

COMFORT-ORIENTED TECHNOLOGY Nowości produktowe 2014 / Napędy i sterowania COMFORT-ORIENTED TECHNOLOGY Nowości produktowe 2014 / Napędy i sterowania NADAJNIKI / PRZEŁĄCZNIKI Przełącznik klawiszowy podtynkowy 667102 Przełącznik klawiszowy podtynkowy Typ: stabilny (z podtrzymaniem)

Bardziej szczegółowo

Rozwiązania dla społeczności Seria Easy Series dla domów i bloków mieszkalnych

Rozwiązania dla społeczności Seria Easy Series dla domów i bloków mieszkalnych Rozwiązania dla społeczności Seria Easy Series dla domów i bloków mieszkalnych 2 Centrala alarmowa Easy Series Prosta i niezawodna ochrona Podnieś wartość swojej nieruchomości Luksusowe apartamentowce,

Bardziej szczegółowo

1. Opis urządzenia. 2. Zastosowanie. 3. Cechy urządzenia -3-

1. Opis urządzenia. 2. Zastosowanie. 3. Cechy urządzenia -3- INSTRUKCJA OBSŁUGI Spis treści Spis treści... 2 1. Opis urządzenia... 3 2. Zastosowanie... 3 3. Cechy urządzenia... 3 4. Sposób montażu... 4 4.1. Uniwersalne wejścia... 4 4.2. Uniwersalne wyjścia... 4

Bardziej szczegółowo

2 portowy przełącznik KVM USB z wbudowanymi przewodami KVM U202 Skrócona instrukcja obsługi

2 portowy przełącznik KVM USB z wbudowanymi przewodami KVM U202 Skrócona instrukcja obsługi 2 portowy przełącznik KVM USB z wbudowanymi przewodami KVM U202 Skrócona instrukcja obsługi 2005.10 SKRÓCONA INSTRUKCJA OBSŁUGI...0 1. WPROWADZENIE...2 1.1 WŁAŚCIWOŚCI...2 1.2 SPECYFIKACJA TECHNICZNA...3

Bardziej szczegółowo

Wykład I. Administrowanie szkolną siecią komputerową. dr Artur Bartoszewski www.bartoszewski.pr.radom.pl

Wykład I. Administrowanie szkolną siecią komputerową. dr Artur Bartoszewski www.bartoszewski.pr.radom.pl Administrowanie szkolną siecią komputerową dr Artur Bartoszewski www.bartoszewski.pr.radom.pl Wykład I 1 Tematyka wykładu: Co to jest sieć komputerowa? Usługi w sieciach komputerowych Zasięg sieci Topologie

Bardziej szczegółowo

Dział Dopuszczający Dostateczny Dobry Bardzo dobry Celujący

Dział Dopuszczający Dostateczny Dobry Bardzo dobry Celujący Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Systemy Operacyjne i Sieci Komputerowe Klasa: pierwsza Dział Dopuszczający Dostateczny Dobry

Bardziej szczegółowo

Opracował: Jan Front

Opracował: Jan Front Opracował: Jan Front Sterownik PLC PLC (Programowalny Sterownik Logiczny) (ang. Programmable Logic Controller) mikroprocesorowe urządzenie sterujące układami automatyki. PLC wykonuje w sposób cykliczny

Bardziej szczegółowo

Współczesne usługi monitoringu NOWE TRENDY

Współczesne usługi monitoringu NOWE TRENDY Nowe trendy AGENDA 1. Współczesne usługi monitoringu 2. Omówienie wybranych usług dodanych Monitoring wizyjny Hosting wideo Alarm w chmurze Hosting GPS 3. Mobilne rozwiązania 4. Smart home Współczesne

Bardziej szczegółowo

Sieci komputerowe, urządzenia sieciowe

Sieci komputerowe, urządzenia sieciowe Sieci komputerowe, urządzenia sieciowe Wykład: LAN, MAN, WAN, intranet, extranet, topologie sieciowe: szyna, gwizada, pierścień, rodzaje przewodów sieciowych: BNC, koncentryczny, skrętka, UTP, STP, światłowód,

Bardziej szczegółowo

Internet. dodatkowy switch. Koncentrator WLAN, czyli wbudowany Access Point

Internet. dodatkowy switch. Koncentrator WLAN, czyli wbudowany Access Point Routery Vigor oznaczone symbolem G (np. 2900Gi), dysponują trwale zintegrowanym koncentratorem radiowym, pracującym zgodnie ze standardem IEEE 802.11g i b. Jest to zbiór protokołów, definiujących pracę

Bardziej szczegółowo

FIBARO SYSTEM od podstaw

FIBARO SYSTEM od podstaw Inteligentna Inteligentna automatyka automatyka budynkowa budynkowa FIBARO SYSTEM od podstaw Co to jest Fibaro? FIBARO to pierwszy na świecie tak funkcjonalny inteligentny system zarządzania budynkiem.

Bardziej szczegółowo

Model sieci OSI, protokoły sieciowe, adresy IP

Model sieci OSI, protokoły sieciowe, adresy IP Model sieci OSI, protokoły sieciowe, adresy IP Podstawę działania internetu stanowi zestaw protokołów komunikacyjnych TCP/IP. Wiele z używanych obecnie protokołów zostało opartych na czterowarstwowym modelu

Bardziej szczegółowo

PR172012 15 kwietnia 2012 Automatyka budynkowa, Technologia sterowania Oprogramowanie Strona 1 z 5

PR172012 15 kwietnia 2012 Automatyka budynkowa, Technologia sterowania Oprogramowanie Strona 1 z 5 Automatyka budynkowa, Technologia sterowania Oprogramowanie Strona 1 z 5 System TwinCAT BACnet/IP pomaga spełniać wszelkie wymagania automatyki budynkowej, pozostając w zgodzie ze standardem BACnet Sterowniki

Bardziej szczegółowo

LABORATORIUM CYFROWEJ TRANSMISJI INFORMACJI

LABORATORIUM CYFROWEJ TRANSMISJI INFORMACJI POLITECHNIKA WARSZAWSKA Instytut Radioelektroniki WIECZOROWE UZUPEŁNIAJĄCE STUDIA MAGISTERSKIE LABORATORIUM CYFROWEJ TRANSMISJI INFORMACJI Ćwiczenie 3 Temat: Badanie łącza Bluetooth Opracował: mgr inż.

Bardziej szczegółowo

Systemy zdalnego zarządzania i monitoringu: Carel platforma PRO. Tomasz Andracki, Bydgoszcz 2010-11-06

Systemy zdalnego zarządzania i monitoringu: Carel platforma PRO. Tomasz Andracki, Bydgoszcz 2010-11-06 Systemy zdalnego zarządzania i monitoringu: Carel platforma PRO Tomasz Andracki, Bydgoszcz 2010-11-06 PlantVisorPRO PlantWatchPRO Kompletny system nadzoru, monitoringu oraz zdalnego zarządzania nad instalacjami

Bardziej szczegółowo

Topologie sieci WLAN. Sieci Bezprzewodowe. Sieć stacjonarna (infractructure) Sieć tymczasowa (ad-hoc) Access Point. Access Point

Topologie sieci WLAN. Sieci Bezprzewodowe. Sieć stacjonarna (infractructure) Sieć tymczasowa (ad-hoc) Access Point. Access Point dr inż. Krzysztof Hodyr Sieci Bezprzewodowe Część 4 Topologie sieci WLAN sieć tymczasowa (ad-hoc) sieć stacjonarna (infractructure) Topologie sieci WLAN Standard WiFi IEEE 802.11 Sieć tymczasowa (ad-hoc)

Bardziej szczegółowo

Sieci telekomunikacyjne sieci cyfrowe z integracją usług (ISDN)

Sieci telekomunikacyjne sieci cyfrowe z integracją usług (ISDN) Sieci telekomunikacyjne sieci cyfrowe z integracją usług (ISDN) mgr inż. Rafał Watza Katedra Telekomunikacji AGH Al. Mickiewicza 30, 30-059 Kraków, Polska tel. +48 12 6174034, fax +48 12 6342372 e-mail:

Bardziej szczegółowo

Wykład Nr 4. 1. Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

Wykład Nr 4. 1. Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia Sieci komputerowe Wykład Nr 4 1. Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia Sieci bezprzewodowe Sieci z bezprzewodowymi punktami dostępu bazują na falach radiowych. Punkt dostępu musi mieć

Bardziej szczegółowo

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy Systemy operacyjne Systemy operacyjne Dr inż. Ignacy Pardyka Literatura Siberschatz A. i inn. Podstawy systemów operacyjnych, WNT, Warszawa Skorupski A. Podstawy budowy i działania komputerów, WKiŁ, Warszawa

Bardziej szczegółowo

Wzmacniacz sygnału Wi- Fi FRITZ!WLAN Repeater N / G

Wzmacniacz sygnału Wi- Fi FRITZ!WLAN Repeater N / G Wzmacniacz sygnału Wi- Fi FRITZ!WLAN Repeater N / G Instrukcja obsługi Nr produktu: 971873 Przegląd funkcji FRITZ!WLAN Repeater poszerza zakres sieci bezprzewodowej. Aby poszerzyć sieć bezprzewodową, FRITZ!WLAN

Bardziej szczegółowo

KOMPUTER. Zestawy komputerowe podstawowe wiadomości

KOMPUTER. Zestawy komputerowe podstawowe wiadomości KOMPUTER Zestawy komputerowe podstawowe wiadomości Budowa zestawu komputerowego Monitor Jednostka centralna Klawiatura Mysz Urządzenia peryferyjne Monitor Monitor wchodzi w skład zestawu komputerowego

Bardziej szczegółowo

Wprowadzenie. Smart Home Automation

Wprowadzenie. Smart Home Automation 1/60 Wprowadzenie Smart Home Automation Wprowadzenie Plan prezentacji 1. Wprowadzenie 2. Cechy systemu 3. Miniserver i LoxBUS 4. Aplikacja Loxone Config 5. Moduły rozszerzeń 6. Interfejsy użytkownika 7.

Bardziej szczegółowo

RPTC CONTROLLER (v1.11) STEROWNIK PRZEMIENNIKA RADIOWEGO OBSŁUGA KOMUNIKATÓW GŁOSOWYCH OBSŁUGA KOMUNIKATÓW IDCW OPCJONALNY MODUŁ GSM

RPTC CONTROLLER (v1.11) STEROWNIK PRZEMIENNIKA RADIOWEGO OBSŁUGA KOMUNIKATÓW GŁOSOWYCH OBSŁUGA KOMUNIKATÓW IDCW OPCJONALNY MODUŁ GSM RPTC CONTROLLER (v1.11) STEROWNIK PRZEMIENNIKA RADIOWEGO OBSŁUGA KOMUNIKATÓW GŁOSOWYCH OBSŁUGA KOMUNIKATÓW IDCW OPCJONALNY MODUŁ GSM Instrukcja użytkownika Instrukcja oprogramowania konfiguracyjnego Designer:

Bardziej szczegółowo

www.zamelcet.com Bezprzewodowy System Sterowania exta free exta free www.zamelcet.com

www.zamelcet.com Bezprzewodowy System Sterowania exta free exta free www.zamelcet.com Bezprzewodowy System Sterowania EXTA FREE to propozycja bezprzewodowego (radiowego) systemu sterowania pracą urządzeń elektrycznych w instalacjach domowych, biurowych i częściowo przemysłowych. System

Bardziej szczegółowo

Smart home managing by Ethernet micro server. Zarządzanie systemem inteligentnego domu za pomocą mikro serwera Ethernet. 1. Cele

Smart home managing by Ethernet micro server. Zarządzanie systemem inteligentnego domu za pomocą mikro serwera Ethernet. 1. Cele Bartłomiej Czado, Andrzej Samiec, Marcin Stanowski IV rok Koło Naukowe Techniki Cyfrowej dr inż. Wojciech Mysiński opiekun koła Smart home managing by Ethernet micro server Zarządzanie systemem inteligentnego

Bardziej szczegółowo

Porównanie implementacji Power over Ethernet za pomocą urządzeń pośrednich i switchy PoE PowerDsine

Porównanie implementacji Power over Ethernet za pomocą urządzeń pośrednich i switchy PoE PowerDsine Porównanie implementacji Power over Ethernet za pomocą urządzeń pośrednich i switchy PoE PowerDsine Sani Ronen Director of Marketing, Biała Księga Stycznia 2013 Wprowadzenie Istnieją dwie metody implementacji

Bardziej szczegółowo

Video Domofon GSM 3G bezprzewodowy wideo komunikator wejściowy pierwszy tego typu produkt na światowym rynku! Strona 1 z 31

Video Domofon GSM 3G bezprzewodowy wideo komunikator wejściowy pierwszy tego typu produkt na światowym rynku! Strona 1 z 31 Video Domofon GSM 3G bezprzewodowy wideo komunikator wejściowy pierwszy tego typu produkt na światowym rynku! Strona 1 z 31 Zobacz na żywo w swoim telefonie komórkowym kto czeka pod Twoimi drzwiami! Metalowa

Bardziej szczegółowo

Koncepcja, zasady budowy i elementy rozległego systemu sterowania.

Koncepcja, zasady budowy i elementy rozległego systemu sterowania. K&K Przedsiębiorstwo Wielobranżowe pyrobox@pyrobox.com.pl www.pyrobox.com.pl System pirotechniczny Pyrobox. Rozległy system sterowania widowiskami. Część I. Koncepcja, zasady budowy i elementy rozległego

Bardziej szczegółowo

komputerze, może pracować na wybranym komputerze ze studentem, a pozostali mogą w tym czasie wykonywać inne zadania na swoich komputerach.

komputerze, może pracować na wybranym komputerze ze studentem, a pozostali mogą w tym czasie wykonywać inne zadania na swoich komputerach. Doświadczenia naukowe pokazują, że efektywne nauczanie to połączenie przedstawienia tematu w sposób ciekawy i intrygujący z technikami wizualnymi, które lepiej przemawiają do świadomości każdego człowieka.

Bardziej szczegółowo

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Na podstawie: Albert Lozano-Nieto: RFID Design Fundamentals and Applications, CRC Press, Taylor & Francis Group, London New York, 2011 RFID RadioFrequency

Bardziej szczegółowo

WNL-U555HA Bezprzewodowa karta sieciowa 802.11n High Power z interfejsem USB

WNL-U555HA Bezprzewodowa karta sieciowa 802.11n High Power z interfejsem USB WNL-U555HA Bezprzewodowa karta sieciowa 802.11n High Power z interfejsem USB PLANET WNL-U555HA to bezprzewodowa karta sieciowa 802.11n High Power z interfejsem USB i odłączaną anteną 5dBi. Zwiększona moc

Bardziej szczegółowo

Sieci komputerowe. Zajęcia 2 Warstwa łącza, sprzęt i topologie sieci Ethernet

Sieci komputerowe. Zajęcia 2 Warstwa łącza, sprzęt i topologie sieci Ethernet Sieci komputerowe Zajęcia 2 Warstwa łącza, sprzęt i topologie sieci Ethernet Zadania warstwy łącza danych Organizacja bitów danych w tzw. ramki Adresacja fizyczna urządzeń Wykrywanie błędów Multipleksacja

Bardziej szczegółowo

Features: Specyfikacja:

Features: Specyfikacja: Router bezprzewodowy dwuzakresowy AC1200 300 Mb/s Wireless N (2.4 GHz) + 867 Mb/s Wireless AC (5 GHz), 2T2R MIMO, QoS, 4-Port Gigabit LAN Switch Part No.: 525480 Features: Stwórz bezprzewodowa sieć dwuzakresową

Bardziej szczegółowo

microplc Sposoby monitoringu instalacji technologicznych przy pomocy sterownika

microplc Sposoby monitoringu instalacji technologicznych przy pomocy sterownika Sposoby monitoringu instalacji technologicznych przy pomocy sterownika microplc 1 1.WSTĘP 3 2.Łączność za pośrednictwem internetu 4 3.Łączność za pośrednictwem bezprzewodowej sieci WI-FI 5 4.Łączność za

Bardziej szczegółowo

Komunikacja i wymiana danych

Komunikacja i wymiana danych Budowa i oprogramowanie komputerowych systemów sterowania Wykład 10 Komunikacja i wymiana danych Metody wymiany danych Lokalne Pliki txt, csv, xls, xml Biblioteki LIB / DLL DDE, FastDDE OLE, COM, ActiveX

Bardziej szczegółowo

Motorola Phone Tools. Krótkie wprowadzenie

Motorola Phone Tools. Krótkie wprowadzenie Motorola Phone Tools Krótkie wprowadzenie Spis treści Minimalne wymagania... 2 Przed instalacją Motorola Phone Tools... 3 Instalowanie Motorola Phone Tools... 4 Instalacja i konfiguracja urządzenia przenośnego...

Bardziej szczegółowo

Urządzenia zewnętrzne

Urządzenia zewnętrzne Urządzenia zewnętrzne SZYNA ADRESOWA SZYNA DANYCH SZYNA STEROWANIA ZEGAR PROCESOR PAMIĘC UKŁADY WE/WY Centralna jednostka przetw arzająca (CPU) DANE PROGRAMY WYNIKI... URZ. ZEWN. MO NITORY, DRUKARKI, CZYTNIKI,...

Bardziej szczegółowo

Dom inteligentny - komfort, bezpieczeństwo, oszczędność!

Dom inteligentny - komfort, bezpieczeństwo, oszczędność! Dom inteligentny - komfort, bezpieczeństwo, oszczędność! Dom inteligentny = Dom interak System bezprzewodowy Delta Dore to sterowanie zdalne lub lokalne za pomocą tabletu lub smartfonu, kreowanie zależności,

Bardziej szczegółowo

Moduł monitoringu energii elektrycznej

Moduł monitoringu energii elektrycznej Cztery wejścia impulsowe współpracujące ze stykiem beznapięciowym lub licznikiem z wyjściem OC Monitoring czterech liczników energii elektrycznej Wbudowane funkcje liczników impulsów z nieulotną pamięcią

Bardziej szczegółowo

Kontroler Xelee Master DMX64/512 - Instrukcja obsługi. Kontroler Xelee Master DMX64/512 Firmware 1.1 Instrukcja Obsługi. www.nelectrica.

Kontroler Xelee Master DMX64/512 - Instrukcja obsługi. Kontroler Xelee Master DMX64/512 Firmware 1.1 Instrukcja Obsługi. www.nelectrica. Kontroler Xelee Master DMX64/512 Firmware 1.1 Instrukcja Obsługi www.nelectrica.com strona 1 Spis Treści 1. Informacje ogólne 2. Instalacja 2.1 Panel przedni... 5 2.2 Panel tylny... 6 2.3 Schemat podłączenia...

Bardziej szczegółowo

LEKCJA TEMAT: Zasada działania komputera.

LEKCJA TEMAT: Zasada działania komputera. LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem

Bardziej szczegółowo

PODSTAWY TELEKOMUNIKACJI Egzamin I - 2.02.2011 (za każde polecenie - 6 punktów)

PODSTAWY TELEKOMUNIKACJI Egzamin I - 2.02.2011 (za każde polecenie - 6 punktów) PODSTAWY TELEKOMUNIKACJI Egzamin I - 2.02.2011 (za każde polecenie - 6 punktów) 1. Dla ciągu danych: 1 1 0 1 0 narysuj przebiegi na wyjściu koderów kodów transmisyjnych: bipolarnego NRZ, unipolarnego RZ,

Bardziej szczegółowo

ZyXEL NBG-415N. Bezprzewodowy router szerokopasmowy 802.11n. Skrócona instrukcja obsługi. Wersja 1.00 10/2006 Edycja 1

ZyXEL NBG-415N. Bezprzewodowy router szerokopasmowy 802.11n. Skrócona instrukcja obsługi. Wersja 1.00 10/2006 Edycja 1 ZyXEL NBG-415N Bezprzewodowy router szerokopasmowy 802.11n Skrócona instrukcja obsługi Wersja 1.00 10/2006 Edycja 1 Copyright 2006 ZyXEL Communications Corporation. Wszystkie prawa zastrzeżone Wprowadzenie

Bardziej szczegółowo

Kurs Certyfikowany Inżynier Sieci PROFIBUS DP. Spis treści. Dzień 1

Kurs Certyfikowany Inżynier Sieci PROFIBUS DP. Spis treści. Dzień 1 Spis treści Dzień 1 I Sieć PROFIBUS wprowadzenie (wersja 1405) I-3 FMS, DP, PA - 3 wersje protokołu PROFIBUS I-4 Zastosowanie sieci PROFIBUS w automatyzacji zakładu I-5 Architektura protokołu PROFIBUS

Bardziej szczegółowo

TP-LINK rozszerza ofertę urządzeń w standardzie 802.11ac

TP-LINK rozszerza ofertę urządzeń w standardzie 802.11ac TP-LINK rozszerza ofertę urządzeń w standardzie 802.11ac Dzięki najnowszym propozycjom TP-LINK routerom Archer C2 i Archer D7 oraz karcie sieciowej Archer T4U, możesz cieszyć się z zalet transmisji danych

Bardziej szczegółowo

Biomonitoring system kontroli jakości wody

Biomonitoring system kontroli jakości wody FIRMA INNOWACYJNO -WDROŻENIOWA ul. Źródlana 8, Koszyce Małe 33-111 Koszyce Wielkie tel.: 0146210029, 0146360117, 608465631 faks: 0146210029, 0146360117 mail: biuro@elbit.edu.pl www.elbit.edu.pl Biomonitoring

Bardziej szczegółowo

TECHNOLOGIA SZEROKOPASMOWEJ KOMUNIKACJI PLC DLA SYSTEMÓW SMART GRID I SMART METERING.

TECHNOLOGIA SZEROKOPASMOWEJ KOMUNIKACJI PLC DLA SYSTEMÓW SMART GRID I SMART METERING. TECHNOLOGIA SZEROKOPASMOWEJ KOMUNIKACJI PLC DLA SYSTEMÓW SMART GRID I SMART METERING. Konwersatorium "Platforma technologiczna smart grid AGH 16 kwietnia 2015 Informacje podstawowe Przykład wzrostu zapotrzebowania

Bardziej szczegółowo