Synergia Tech Sp. z o.o. ul. Szachowa 1 04-894 Warszawa tel.: +48 (22) 512 83 99 fax: +48 (22) 872 08 26 e-mail: biuro@intelidom.pl http: www.intelidom.pl Szanowny Pan, Janusz Jabłonowski Instytut Informatyki Uniwersytet Warszawski Warszawa, 16 sierpnia 2010 SOFTWARE SPECYFIKACJA TECHNICZNA OPROGRAMOWANIA Panel dotykowy Touch:me Środowisko programistyczne: System operacyjny: QT 4.5, GCC Linux Embedded, własna dystrybucja bazująca na Linux Angstrom, wersja kernela 2.6.29 Oprogramowanie konfiguracyjne SNG Configurator Środowisko programistyczne: QT 4.6 System operacyjny: Wieloplatformowy (Windows, Linux, Mac OS) HARDWARE Panel dotykowy Touch:me Procesor Pamięć RAM Panel dotykowy ARM920T lub OMAP3530 64 MB 5,7'', 640x480, 24 bit głębia koloru SNG Configurator Wymagania sprzętowe Procesor Pamięć RAM PC 64 MB 16 sierpnia 2010 Synergia Tech Sp. z o.o. Strona 1 z 6
WYGLĄD HARDWEAR'u Rys. Wygląd panelu dotykowego Touch:me 5,7'' Rys. Wygląd interfejsu użytkownika w panelu dotykowym Touch:me 5,7'' 16 sierpnia 2010 Synergia Tech Sp. z o.o. Strona 2 z 6
PROJEKTY DO WYKONANIA Panie Januszu ogólnie zakładamy wprowadzenie nowszej wersji panelu, która oparta byłaby o platformę BEAGLE BOARD (http://beagleboard.org/). Założenia dotyczące tego nowego urządzenia są takie, że będzie ono kompatybilne z aktualną wersją panelu dotykowego. Dotyczy to funkcjonalności. Nowa platforma dysponuje dużo większymi możliwościami w porównaniu do sprzętu, który aktualnie posiadamy. Dotyczy do głównie: Dużo szybszy procesor (2 rdzeniowy) z dodatkowym procesorem sygnałowym DSP Dostępny Open GL Ogólnie zakładam, że prace projektowe prowadzone przez Państwa studentów mogłyby dotyczyć następujących aspektów: 1. Wykonanie projektu całej architektury pod panel dotykowy oparty na nowej platformie Beagle Board wraz z oprogramowaniem tego urządzenia i wdrożeniem. Zakładam możliwość, a nawet konieczność skorzystania z aktualnej architektury aplikacji ( SNGTouchG1), 2. Wykonanie projektu interfejsu graficznego oraz interfejsu komunikacyjnego dla ipad'a Dysponujemy ipad'em, i cały system był tworzony z myślą o wykorzystaniu go w połączeniu z innymi komputerami tj. np. ipad, 3. Utworzenie modułu aplikacji SNGTouchG1, który komunikuje się z kamerą IP firmy Mobotix i wykorzystuje w pełni jej możliwości Panie Januszu myślę, że są to jedne z głownych prac jakie można wykonać dla naszego systemu. Myślę, że na początku września jeżeli dysponowałby Pan czasem to powinniśmy się spotkać i ustalić dalsze szczegóły. 16 sierpnia 2010 Synergia Tech Sp. z o.o. Strona 3 z 6
INFORMACJE DOTYCZĄCE AKTUALNIE WYKONANEGO OPROGRAMOWANIA Wszystkie programy piszemy w cross-platformowym środowisku deweloperskim QT, które oparte jest na C++. Dotychczasowo stworzone aplikacje to: SNGTouchG1 - aplikacja przeznaczona do uruchomienia na panelu dotykowym wyposażonym w procesor ARM920T S3C2440..., wraz z 64MB pamięci operacyjnej. Spełnia ona rolę interfejsu użytkownika z systemu SNG-Synergia. Aplikacja ta jest napisana z użyciem biblioteki QT 4.5. Do architektury należą następujące biblioteki: InterfaceManager (singleton aplikacji), który odpowiada za wygląd i funkcjonalność głównego okna aplikacji oraz elementów używanych przez wszystkie moduły-synergii, ConnectionManager (singleton aplikacji), który zarządza połączeniem aplikacji wraz z urządzeniami systemu SNG-Synergia. Wszystkie komunikaty SNG-Synergia są wysyłane przez ten moduł, a także odebrane wiadomości są przez niego dostarczane do odpowiednich obiektów aplikacji, MediaManager (singleton), służący do zarządzania multimediami. Wykorzystywany w aplikacji przez moduły-synergii do celów multimedialnych. Obecnie zaimplementowane jest zarządzanie dźwiękiem. Chwilowo nie odtwarzane są filmy, SNGUtils - biblioteka zawierająca najczęściej wykorzystywane klasy o zwiększonej użyteczności dla aplikacji ModuleManager - zawiera singleton zarządzający modułami-synergii a także klasy bazowe dające dodatkową funkcjonalność, np. dynamiczne stylowanie (po zmianie pliku *.css), dynamiczna zmiana danych (obserwacja plików konfiguracyjnych), wymiana danych pomiędzy modułami, itp. Każdy z modułów-synergia jest oddzielną biblioteką dzieloną, która ładowana jest przez ww. ModuleManagera na podstawie głównego pliku konfiguracyjnego. Większość modułów (oprócz tych, w których stwierdzono, że jest to zbyteczne) zastosowano wzorzec MVC (model-view-controller), w którym model przechowuje dane dotyczące modułu (np. adresy grupowe SNG-Syneria i funkcje odpowiednich przycisków), moduł VIEW odpowiada za reprezentację graficzną, moduł CONTROLLER - nadzoruje wymianą informacji pomiędzy wcześniejszymi a także stanowi jednostkę "decyzyjną" Aplikacja ma charakter modułowy. Do modułów SNGTouchG1 należą: aplikacje - służący do zmieniania kolejności modułów-synergii oraz do włączania niewidocznych modułów-synergii kontrola - do kontroli urządzeń SNG-Synergia date - informacje kalendarzowe listdetail - moduł do list przycisków, widgetów z bardzo różnymi funkcjonalnościami, zdefiniowanymi przez model tyche lelemntów graficznych memo - moduł do tworzenia, odsłuchiwania notatek głosowych settings - moduł-synergia do zarzadzania podstawowymi własnościami aplikacji temperature - moduł do zarządzania urzadzeniami SNG-Synergia związanymi z klimatyzacją i sensoryką pogoda - moduł przedstawiający prognoże pogody, z informacjami pobieranymi z serweru feed://weather.yahooapis.com 16 sierpnia 2010 Synergia Tech Sp. z o.o. Strona 4 z 6
radio - moduł do odtwarzania radia internetowego - streaming stacji z serweru Open.fm SNG Configurator - aplikacja przeznaczona do konfiguracji urządzeń SNG-Synergia, przez instalatora z przeznaczeniem pracy na jego komputerze. Dzięki środowisku Qt aplikacja może być uruchomiona na różnych systemach operacyjnych oraz architekturach (po skompilowaniu na odpowiednią platformę). Aplikacja oparta jest o wzorzec Model-View proponowany przez framework Qt. Stworzone modele to: model urządzeń SNG-Synergia - każdy model zawiera inforamcje o poszczególnych urządzeniach instalacji SNG-Synergia. Odpowiada za parsowanie danych otrzymanych od urządzenia, przechowywanie informacji o urządzeniach (adresy fizyczne, lokalizacja, konfiguracja urządzeń), model adresów grupowych - zawiera informacje na temat wszystkich zdefiniowanych adresów grupowych instalacji, nazwy, typ i użycia, model konfiguracji panelu dotykowego - będący dynamiczą (na podstawie parsowanego pliku ustawień xml) reprezentacją ustawień panelu dotykowego. Modele są połączone ze sobą (głównie za pomocą mechanizmu sygnałów-slotów), dzięki czemu uzyskiwane jest automatyczne aktualizowania wspólnych danych. Prezentacja danych zawartych w modelach jest realizowana przez dedykowane klasy drzewa (QTreeView) oraz tabeli (QtableView) Rys. Printscreen ekranu programu SNG Configurator CommServer - aplikacja przeznaczona do komunikacji pomiędzy urządzeniami systemu 16 sierpnia 2010 Synergia Tech Sp. z o.o. Strona 5 z 6
SNG-Synergia na różnych mediach - spełnia funkcje routera. W tym momencie służy do filtracji i przesyłania wiadomości pomiędzy systemem SNG-Synergia a siecią IP. Jendocześnie jednak trwają prace, aby aplikacja służyła jako bramka aplikacyjna z protokołami BACnet oraz KNX. Tworzona wersja ma charakter modułowy; każdy z protokołów jest reprezentowany przez inny moduł (parser, konwersja i wykonywanie odpowiednich akcji)), a dane reprezentowane są za pomocą Canonical Data Model - centralne, uniwersalna prezentacja danych, implementacja nowego protokołu polega na napisaniu translatora pomiędzy nowym protokołem, a modelem centralnym. 16 sierpnia 2010 Synergia Tech Sp. z o.o. Strona 6 z 6