WSTĘP Viper/Windows CE 5.0: oprogramowanie pomiarowo-sterujące z wykorzystaniem GUI. (dwiczenie może byd wykonywane zdalnie) Celem dwiczenia będzie zademonstrowanie możliwości komputera przemysłowego PC104 z wbudowanym systemem Windows CE 5.0. Dodatkowo studenci tworzyd będą oprogramowanie pomiarowo-sterujące (Visual Studio 2005.NET) w którym wykorzystywad będą komponenty graficzne (przyciski, pola wyboru, pola edycji, itp). Podstawowe umiejętności zdobyte przez studenta w trakcie tego dwiczenia to: obsługa i wykorzystanie portów RS (COM), wykorzystanie komponentów graficznych do budowy czytelnej i funkcjonalnej aplikacji, umiejętnośd operowania na grafice 2d (mapy). Praktyczne wykorzystanie zdobytej krokami wiedzy to napisanie aplikacji komunikującej się z urządzeniami GPS (odbiór aktualnej pozycji). Dodatkowo student wyrysuje aktualną pozycję GPS na mapie. Dokładną specyfikację dotyczącą komputera przemysłowego Viper PC 104 można znaleźd w załączonej dokumentacji (wersja papierowa oraz elektroniczna). Komputer pracuje pod kontrolą systemu operacyjnego Windows CE 5.0 oraz posiada ekran dotykowy 5.5 firmy NEC. Interfejsy możliwe do wykorzystania to LAN, porty RS232, podwójny port USB, wejścia wyjścia liniowe, mikrofon. Dużą zaletą komputera (jak i innych komputerów przemysłowych) są jago małe rozmiary, brak aktywnego chłodzenia, co umożliwia pracę w trudniejszych warunkach (na przykład zakurzone pomieszczenia) oraz dogodniejsze możliwości rozmieszczenia. Dlatego komputer można nazwad komputerem przemysłowym. Warto zwrócid uwagę na ekran dotykowy, który
umożliwia bezklawiaturową pracę, co w warunkach przemysłowych może byd dużą zaletą i pozwala na tworzenie łatwiejszego interfejsu użytkownika. Windows CE to system operacyjny opracowany przez Microsoft dla urządzeo przenośnych PDA (np.: Pocket PC lub Palm) jak i systemów system wbudowanych. Windows CE jest zoptymalizowany dla urządzeo o minimalnej pamięci jądro Windows CE może byd uruchomione nawet na 1 MB pamięci. Microsoft oferuje również Windows CE w komputerach pokładowych samochodów, które potrafią rozpoznawad mowę i w ten sposób ułatwid komunikację. Najnowsze wersje systemu spełniają kryteria wymagane przez system operacyjny czasu rzeczywistego (RTOS). Warto zauważyd, że obecne wersje Windows CE mają rozbudowany i przewidywalny system przerwao. Jednak istnieją pewne zastrzeżenia co do RT, na przykład stosowanie kolejek w obsłudze zdarzeo. ĆWICZENIA 1. Konfiguracja połączenia internetowego. Byd może masz już połączenie internetowe i nie musisz wykonywad tych czynności. Aby to sprawdzid możesz uruchomid przeglądarkę i spróbowad otworzyd stronę WWW lub ściągnąd plik z serwera FTP. Dodatkowo wskazane jest sprawdzenie ustawieo połączenia internetowego (Sart->Settings->Network and Dial-up Connections). Zwród uwagę na ustawienia IP Address, Subnet Mask i Default Gateway. Do dalszej pracy będzie wymagana konfiguracja ustawieo Internetu. Dokonujemy tego poprzez modyfikacje ustawieo: Sart->Settings->Network and Dial-up Connections.
Rys 1. Konfiguracja ustawieo sieciowych. W pole IP Adress, Subnet Mask, Default Gateway wpisujemy odpowiednie wartości jak na rysunku 1. 2. Praca zdalna z Viperem przez VNC Pracę na komputerze VIPER umożliwia nam bezpośredni dostęp poprzez ekran dotykowy. To znaczy możesz podejśd do komputera i obsługiwad go za pomocą ekranu dotykowego. Jednak często zachodzi potrzeba zdalnej kontroli. Z pomocą przychodzi oprogramowanie zdalnej kontroli. Przykładem takiego programu może byd TightVNC (Virtual Network Computing). Patrz dokumentacja (VNC\vnc.htm). Powinieneś mied zainstalowane to programowanie na swoim komputerze. Jeśli nie masz to ściągnij odpowiedni plik z serwera ftp://sierra.iem.pw.edu.pl (katalogu KSW/instal). Uruchamiamy Program VNC i wpisujemy adres IP komputera, z którym chcemy się połączyd. W tym momencie otrzymujemy zdalny dostęp do komputera PC 104.
Rys. 2. Zdalny pulpit komputera PC 104 (dostępny z komputera PC). Aby w pełni wykorzystad możliwości jakie daje nam zdalna kontrola musimy mied możliwośd "wgrywania" naszego oprogramowania na komputer. (Jak to wykonad powinieneś to już wiedzied z pierwszych zajęd wprowadzających) 3. Środowisko Visual Studio. Teraz przypomnisz sobie (pierwsze zajęcia) w jaki sposób stworzyd pierwszy program w środowisku Visual Studio. Środowisko powinno byd już zainstalowane i skonfigurowane. Wybieramy File->New->Project i zaznaczamy na zakładce jak na rysunku poniżej. Tworzenie własnej aplikacji dla Windows CE w VS najlepiej zacząd od projektu Smart Device>PocketPC2003>DeviceApplication(1.0). Projekt taki będzie uniwersalny.
Zmieniamy nazwę aplikacji i klikamy OK. W ten sposób zostanie stworzony projekt na urządzanie mobilne. Teraz jeśli posiadasz podstawy programowania możesz próbowad napisad prostą aplikację. Uruchomisz ją Debug->Stard Debugging. Istnieje również możliwośd wczytania projektu File->Open->Project/Sollution. Sugerujemy na początku wczytanie projektu Pierwszy (do ściągnięcia z ftp://sierra.iem.pw.edu.pl (katalogu KSW/programy) Proszę przeanalizowad i skompilowad program. Uruchomisz ją Debug->Stard Debugging. Jako emulator wybieramy PocketPC 2003 i naciskamy Deploy.
Zostanie uruchomiony Emulator wraz z otwartym programem. Możemy tu przetestowad jego działanie. Teraz powinieneś przenieśd napisany program na komputer Viper. W jaki sposób tego dokonasz zależy od Ciebie lub wytycznych prowadzącego. Sprawdź, że program działa poprawnie na Viperze. 4. Obsługa GPS. Cz I. Odczytanie danych z portu COM. Twoim następnym zadaniem będzie uruchomienie programu, który skomunikuje się z zewnętrznym odbiornikiem GPS. Jeśli pracujesz w domu i nie masz fizycznego dostępu do urządzenia możesz użyd symulatora (który został już omówiony we wstępie do środowiska VS), który na porcie COM emuluje urządzenie GPS. Powinieneś posiadad już wiedzę na temat ustawieo parametrów portów szeregowych danego urządzenia (fizycznego) lub spytaj prowadzącego. Aplikację możesz napisad sam lub otworzyd gotowy prosty program o nazwie GPS_ab (ftp://sierra.iem.pw.edu.pl (katalogu KSW/). Pamiętaj aby wybrad odpowiedni port COM i ustawid parametry połączenia.
Zadanie 1: Twoim zadaniem będzie napisanie programu, który w pętli (bez przerwy) będzie odczytywał dane GPS i wypisywał ją w polu textbox1 jeśli tylko pojawią się nowe dane z odbiornika (ew. symulatora). Zadanie 2: Twoim zadaniem będzie napisanie programu, który co jakiś czas (na przykład co sekundę) będzie sprawdzał czy nadeszły nowe dane na port szeregowy. Jeśli dane nadejdą zostaną wyświetlone w polu textbox1. Do tego celu użyj komponentu Timer. 5. Obsługa GPS. Cz II. Parsowanie stingu. Teraz twoim zadaniem będzie wyciągnięcie ze stringu/tekstu (który odebrałeś z portu COM) użytecznej informacji to jest długości i szerokości geograficznej. Aplikację możesz znaleźd na (ftp://sierra.iem.pw.edu.pl (katalogu KSW/). Nazwa programu Parsowanie_GPS. Przeanalizuj poniższy fragment kodu i zobacz w jaki sposób interesujące nas dane są wyciągane z całej długiej linii tekstu. Oczywiście już na wstępie zakładamy, że poddajemy analizie ciąg znaków zawierający pozycję (protokół GPS odbiera również inne dane). W tym miejscu sięgnij po dokumentację GPS i przeanalizuj jakie inne ciekawe dane możesz odczytad z odbiornika GPS. Poniższy fragment kodu wyciąga długośd i szerokośd pozycji ze stringu formatu:
$GPGGA,064746.000,4925.4895,N,00103.9255,E,1,05,2.1,-68.0,M,47.1,M,,0000*4F string data = serialport1.readexisting(); string[] strarr = data.split('$'); for (int i = 0; i < strarr.length; i++) { string strtemp = strarr[i]; string[] linearr = strtemp.split(','); if (linearr[0] == "GPGGA") { try { //Latitude Double dlat = Convert.ToDouble(lineArr[2]); dlat = dlat / 100; string[] lat = dlat.tostring().split('.'); Latitude = linearr[3].tostring() + lat[0].tostring() + "." + ((Convert.ToDouble(lat[1]) / 60)).ToString("#####"); //Longitude Double dlon = Convert.ToDouble(lineArr[4]); dlon = dlon / 100; string[] lon = dlon.tostring().split('.'); Longitude = linearr[5].tostring() + lon[0].tostring() + "." + ((Convert.ToDouble(lon[1]) / 60)).ToString("#####"); //Display txtlat.text = Latitude; txtlong.text = Longitude; btnmapit.enabled = true; } catch {
} } } //Cannot Read GPS values txtlat.text = "GPS Unavailable"; txtlong.text = "GPS Unavailable"; btnmapit.enabled = false; Zadanie 3: Kolejnym etapem, który wykonasz będzie modyfikacja wcześniej napisanych aplikacji. Teraz odczytywany przez port COM string (zawierający aktualną pozycję odbiornika GPS) będzie analizowany. Długośd i szerokośd będą wypisywane na bieżąco w polu edycji textbox. 6. Wyświetlanie pozycji na mapie. Już potrafisz odczytad dane z portu szeregowego COM, potrafisz również wydobyd informację o długości i szerokości geograficznej. Kolejnym etapem, który zrealizujesz będzie wyrysowanie aktualnej pozycji odbiornika GPS na mapie. W celu "podglądnięcia" w jaki sposób działa przykładowa aplikacja wyświetlająca mapę i pozycję na mapie załaduj program Mapa (ftp://sierra.iem.pw.edu.pl (katalogu KSW/).
Zwród szczególną uwagę na ustawienia właściwości komponentów picturebox1 i picturebox2. Program wykorzystuje Timer. Co sekundę wskazanie czerwonego punktu ulega zmianie. Zadanie 4: Twoim zadaniem będzie wykorzystanie tego przykładu do wyświetlenia już aktualnie pobranej pozycji z odbiornika GPS (lub symulatora który na porcie COM wystawia dane GPS). Jeśli nie masz pomysłu jak to zrobid, zapytaj prowadzącego. Zadanie 5: Zadanie ustalane jest osobiście przez prowadzącego zajęcia. Zależy od umiejętności wykonujących dwiczenie i postępów jego realizacji.