Politechnika Krakowska im. Tadeusza Kościuszki
Wydział Mechaniczny
Instytut Informatyki Stosowanej M-7
Zakład Grafiki i Modelowania Komputerowego M-72
Projekt: Aplikacja dla urządzeń mobilnych w języku C++ z użyciem MFC
Programowanie urządzeń Nr. proj.: 02, 2 x 45 minut dr inż. Grzegorz Filo
mobilnych
1. Cel projektu
Celem ćwiczenia jest zbudowanie prostej aplikacji w języku C++ z wykorzystaniem
bibliotek MFC przeznaczonej do uruchomienia na urzÄ…dzeniu mobilnym z systemem
operacyjnym Windows Mobile 6-6.5. Podczas budowy aplikacji zostanÄ… wykorzystane
wiadomości teoretyczne na temat technik programowania obiektowego oraz programowania
API Windows.
2. Wymagane oprogramowanie
Zadanie należy wykonać przy wykorzystaniu środowiska programowania
Microsoft Visual Studio 2008. Ostateczne sprawdzenie działania programu należy wykonać
po załadowaniu go do urządzenia mobilnego.
3. Zadanie do wykonania
Temat: Zaimplementować program odczytujący pozycję z odbiornika GPS zainstalowanego
w urządzeniu mobilnym oraz prezentujący dane w postaci długości i szerokości geograficznej
z dokładnością do jednej sekundy łuku.
3.1) Uruchomić środowisko Visual Studio, utworzyć nowy projekt typu Other Languages
(lub Visual C++ jeżeli jest jÄ™zykiem domyÅ›lnym) Ä…ð Smart Device. Zastosować szablon
MFC Smart Device Application. Wprowadzić nazwę (np. OdbiornikGPS) i wybrać katalog
projektu.
3.2) W kreatorze MFC Smart Device Application Wizard wybrać platformę Windows Mobile
6 Professional SDK (usunąć ewentualne inne) oraz typ aplikacji Dialog based (ważne!),
zaznaczyć Use MFC in a static library. Zostaną wygenerowane klasy aplikacji oraz okna
dialogowego (formatki), odpowiednio: COdbiornikGPSApp oraz COdbiornikGPSDlg.
Należy zapoznać się z zawartością poszczególnych plików *.h i *.cpp.
3.3) Skopiować do katalogu projektu, a następnie dodać do projektu pliki GPS.h oraz
GPS.cpp. Zapoznać się z zawartością. Włączyć GPS.h do za pomocą include. We
wÅ‚aÅ›ciwoÅ›ciach projektu w kategorii Linker Ä…ð Input wpisać w polu Additional Dependencies
gpsapi.lib. Przebudować projekt [F6], sprawdzić czy nie ma błędów linkera.
3.4) W oknie Resource View kliknąć dwukrotnie identyfikator okna dialogowego, który
w nazwie nie ma tekstu "WIDE". Za pomocą narzędzi okna Toolbox zbudować interfejs
użytkownika aplikacji. Można użyć kontrolek, jak Button, Static Text, innych wg
potrzeb. Należy zmodyfikować właściwości Caption oraz ID niektórych kontrolek przy
wykorzystaniu narzędzia Properties. Na poniższym rys. pokazano przykładowe okno
programu z zaznaczonymi wartościami ID, które zostały zmodyfikowane.
Programowanie urządzeń mobilnych, dr inż. Grzegorz Filo IIS, M-72
3.5) Wygenerować zmienne dla kontrolek, którym zostały zmodyfikowane ID: PPM na
kontrolce Ä…ð Add Variable.
Nazwy zmiennych:
Label_DL
Label_SZ
Label_STATUS
ButtonPolacz
ButtonOdczyt
ButtonZamknij
Sprawdzić w pliku OdbiornikGPSDlg.h czy zmienne zostały dodane:
public:
CStatic Label_DL;
CStatic Label_SZ;
CStatic Label_STATUS;
CButton ButtonPolacz;
CButton ButtonOdczyt;
CButton ButtonZamknij;
3.6) Za pomocą narzędzia Properties (właściwość Disabled) zdeaktywować kontrolki jak na
rys oraz przypisać odpowiednie teksty startowe do etykiet i przycisków:
3.7) Oprogramować zdarzenia kliknięcia na przyciski wykorzystując zmienne wstawione
w punkcie 3.5) oraz funkcje z GPS.h. Sprawdzić zawartość pliku nagłówkowego gpsapi.h,
który po domyślnej instalacji SDK znajduje się w katalogu: .
C:\Program Files (x86)\Windows Mobile 6 SDK\PocketPC\Include\Armv4i\
Programowanie urządzeń mobilnych, dr inż. Grzegorz Filo IIS, M-72
3.8) Przykłady fragmentów kodu:
Obsługa kliknięcia na przycisk POACZ:
void COdbiornikGPSDlg::OnBnClickedB1()
{
GPS_Open();
Label_DL.EnableWindow(true);
Label_SZ.EnableWindow(true);
Label_STATUS.EnableWindow(true);
ButtonOdczyt.EnableWindow(true);
ButtonZamknij.EnableWindow(true);
ButtonPolacz.EnableWindow(false);
}
Obsługa kliknięcia na przycisk ODCZYT:
void COdbiornikGPSDlg::OnBnClickedB2()
{
if(GPS_DataHasChanged()){
GPS_POSITION pos;
GPS_DEVICE device;
WCHAR bufor1[2048], bufor2[128];
GPS_GetData(&pos, &device);
swprintf(bufor1, L"%s %s\n",
GPS_GetServiceStateDescription(device.dwServiceState),
GPS_GetServiceStateDescription(device.dwDeviceState));
Label_STATUS.SetWindowTextW(bufor1);
if(pos.dwValidFields & GPS_VALID_LATITUDE)
{
GPS_FormatDegreesMinutesSeconds(bufor2, pos.dblLatitude);
Label_SZ.SetWindowTextW(bufor2);
}
if (pos.dwValidFields & GPS_VALID_LONGITUDE)
{
GPS_FormatDegreesMinutesSeconds(bufor2, pos.dblLongitude);
Label_DL.SetWindowTextW(bufor2);
}
}
}
3.9) Sprawdzać działanie programu na emulatorze Windows 6 Mobile Professional Emulator.
·ð Należy zapoznać siÄ™ z opcjami emulatora dostÄ™pnymi w menu File Ä…ð Configure&
(powiększenie okna, zmiana rozdzielczości, obrót okna, mapowanie portów I/O itp.)
·ð Po zamkniÄ™ciu okna aplikacji emulator udostÄ™pnia funkcjonalność systemu Windows
Mobile. Po wybraniu Start Ä…ð Settings, zakÅ‚adki System, i klikniÄ™ciu ikony
External GPS istnieje możliwość ustawienia parametrów połączenia z odbiornikiem
GPS poprzez port szeregowy COMx.
·ð Uwaga dla studentów, którzy nie mieli wczeÅ›niej stycznoÅ›ci z Windows Mobile: za
pomocą emulatora można w pełni zapoznać się z funkcjonalnością i sposobem obsługi
tego systemu.
3.10) Po zatwierdzeniu przez prowadzącego można wgrać program na urządzenie mobilne
i przetestować jego działanie.
Programowanie urządzeń mobilnych, dr inż. Grzegorz Filo IIS, M-72
Wyszukiwarka
Podobne podstrony:
Lab3 Cpp GPS opisPrzypominacz Obserwatora v1 0 opissw sprawozdanie lab2 v1sw sprawozdanie lab2 v1tm sprawozdanie lab2 v1Lab cppCPP (2)Lab2 4 R1 lab24cppborland cpp builder cw1Instrukcja lab2lab2lab2 READMEborland cpp builder cw5więcej podobnych podstron