Lab2 WinMobile Cpp Lab2 Cpp v1 Nieznany

background image

Programowanie urządzeń mobilnych, dr inż. Grzegorz Filo

IIS, M-72

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ń

mobilnych

Nr. proj.: 02, 2 x 45 minut

dr inż. Grzegorz Filo

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.

background image

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\

background image

Programowanie urządzeń mobilnych, dr inż. Grzegorz Filo

IIS, M-72

3.8) Przykłady fragmentów kodu:

Obsługa kliknięcia na przycisk POŁĄCZ:

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.


Wyszukiwarka

Podobne podstrony:
lab2 7 id 259265 Nieznany
bd lab2 id 81995 Nieznany (2)
JPPO Lab2 id 228821 Nieznany
AKiSO lab2 id 53766 Nieznany
lab2 9 id 259271 Nieznany
moje opracowanie BORLAND Cpp Bu Nieznany
bsi lab2 id 93526 Nieznany
PAiRAII Instr 2007 lab2 id 3455 Nieznany
Protokol Siko Lab2 id 402771 Nieznany
lab2(1) 4 id 259343 Nieznany
lab2 8 id 259268 Nieznany
Instrukcja Lab2 id 216873 Nieznany
BHP i lab2 id 84433 Nieznany (2)
Grudzinski Krawiec lab2 28 10 2 Nieznany
kap lab2 id 231164 Nieznany
lab2 1 id 259287 Nieznany
lab2 5 id 259259 Nieznany
dsp lab2 id 144059 Nieznany

więcej podobnych podstron