- 본 강좌는 Windows Mobile 6 세미나의 자료를 기반으로 제작 하였습니다.
- Microsoft Visual Studio 2008 C# / Windows Mobile 6 Professional SDK
1 에뮬레이터에 GPS 설정 방법
- 지난번 강좌에서 에뮬레이터 설정 방법에 대해서 알아 보았습니다. 에뮬레이터 환경 설정을 모르시는 분들은 Emualtor Setting 이곳에서 확인 하시기 바랍니다. 다음번 강좌 부터는 에뮬레이터 설정에 대해서는 논하지 않도록 하겠습니다..^^;; 자.. 그럼 에뮬레이터에 가상 GPS를 설치 하도록 하겠습니다. 우선 첫번째로 에뮬레이터를 연결 합니다.
1.1 FakeGPS 설치
- 가상의 GPS를 사용하기 위해서 MS에서 제공하는 FakeGPS 를 설치 합니다.
- 에뮬레이터 창의 "파일" -> "구성" 을 클릭하여 에뮬레이터 속성 창을 띄웁니다.
- 에뮬레이터 속성 창의 "공유폴더"에 아래의 경로를 설정한 다음에 확인을 클릭합니다.
C:\Program Files\Windows Mobile 6 SDK\Tools\GPS |
- 다음, 에뮬레이터 화면에서 "시작" -> "프로그램" -> "파일 탐색기" -> "Storage Card" -> "FakeGPS" 를 클릭합니다.
- FakeGPS를 설치할 때, 설치 위치는 "장치"로 설정 합니다.
- 설치 완료 후, "시작" -> "프로그램"에서 설치된 FakeGPS를 확인 하실 수 있습니다. 만약 설치가 완료 되었는데도 프로그램 목록에 표시되지 않을 경우에는, 프로그램 창을 "X"를 클릭하여 종료 하신 다음 다시 "시작" -> "프로그램"을 보시면 FakeGPS 를 확인 하실 수 있습니다.
- 이제 가상의 GPS를 사용할 수 있는 FakeGPS 설치를 완료 하셨습니다. 간단하죠??
2.1 FormGpsInfo
- "FormGpsInfo.cs" 이름의 Windows Form 을 추가 합니다. 추가 방법은 다들 아실거라 생각합니다...^^;;
- 생성된 FormGpsInfo Form의 좌측 메뉴에 Text는 "뒤로" 로 설정하고, Name은 "MnuBack"로 설정 합니다.
- FormGpsInfo 폼에 도구상자의 TextBox를 더블클릭하여 삽입합니다.
- TextBox의 Name 속성은 "txtInfo" 로 설정하고, Dock 속성은 "TOP", Multiline 속성은 "TRUE"로 설정 후 TextBox의 크기를 여러줄의 내용을 확인 할 수 있게 늘려 줍니다. 원하는 만큼 늘려주시면 됩니다. 전 화면의 중앙정도까지만..ㅎ
- 다음은 Button을 삽입 합니다. Text 속성은 "내 위치"로, Name 속성은 "BtnGpsUpdate"로 설정 합니다.
3 참조 추가
- GPS Device를 사용하기 위해서 Windows Mobile 6 SDK의 라이브러리를 추가 해야겠죠?? 추가 방법은 아래와 같습니다.
- 우선 프로젝트에 "GPS"라는 폴더를 생성 합니다.
- 생성한 "GPS" 폴더에서 마우스 오른쪽을 클릭 후, "추가" -> "기존 항목"을 선택 합니다.
- "C:\Program Files\Windows Mobile 6 SDK\Samples\Smartphone\CS\GPS" 경로에 있는 아래의 파일을 추가 합니다.
- DegreesMinutesSeconds.cs
- DeviceStateChangedEventArgs.cs
- GPS.cs
- GpsDeviceState.cs
- GpsPosition.cs
- LocationChangedEventArgs.cs
- Utils.cs
- GPS 클래스가 다른 모든 클래스를 통합 시키는 역할을 합니다. 그래서 실제로 GPS 제어에 사용되는 클래스 이죠. 그외에 참조한 클래스들은 GPS장치, 위치처리 등에 필요한 클래스와 이벤트들을 별도로 만들어 처리할 수 있도록 만들어진 클래스 입니다.
4.1 Main Form
- 메인 폼의 "내 위치" 메뉴에 "FormGpsInfo" 폼으로 이동하는 클릭 이벤트를 아래와 같이 정의 합니다.
try |
4.2 FormGpsInfo
- FormGpsInfo에서는 좌측 하단의 "뒤로" 메뉴와 GPS 정보를 출력하는 버튼에 대한 구현을 합니다. 따라서 작성하기 쉽게 FormGpsInfo의 전체 코드로 설명 드리겠습니다. 부분을 나눠서 설명하려니 힘드네요..^^;; 이해 부탁!!
using Microsoft.WindowsMobile.Samples.Location; // using 선언문 추가.
namespace MobilityMetro2009 { public partial class FormGpsInfo : Form { Gps gps; StringBuilder _info = new StringBuilder();
public FormGpsInfo() { InitializeComponent(); gps = new Gps(); gps.Open(); // GPS 활성화. }
// GPS 정보를 가져오는 함수 구현. void UpdateGPSInfo() { // GPS의 위치정보를 가진 객체 생성. GpsPosition position = gps.GetPosition(); _info.Remove(0, _info.Length); double lat = position.Latitude; // 위도. double lon = position.Longitude; // 경도.
_info.AppendLine("Lat (위도) : " + lat); _info.AppendLine("Long (경도) : " + lon); // 탐지되는 위성의 갯수. _info.AppendLine("위성 갯수 : " + position.SatelliteCount.ToString()); txtInfo.Text = _info.ToString(); }
// "내위치" 버튼의 클릭 이벤트 정의. private void BtnGpsUpdate_Click(object sender, EventArgs e) { txtInfo.Text = ""; UpdateGPSInfo(); // GPS 정보를 가져오는 함수 호출. }
// 좌측 하단의 "뒤로" 메뉴의 클릭 이벤트 정의. private void MnuBack_Click(object sender, EventArgs e) { gps.Close(); this.Close(); } } } |
- 간단하죠?? 위도와 경도, 위성의 갯수만을 가져오는 코드 입니다. 코드를 보시면 알 수 있는 것이 있습니다. 바로 Data를 가져오기 위해 생성한 position 객체는 GPS Device를 사용하기 위해 추가했던 GpsPosition.cs를 상속 받은 것을 볼 수있습니다. 즉 GPS 위치 정보는 GpsPosition.cs을 참조하여 가져올 수 있다는 것이죠.. 자.. 그럼 구현한 코드의 결과를 확인해 볼 차례입니다.
5.1 Emulator 실행 결과
- 작성한 프로그램을 에뮬레이터에 실행 하기 전에 FakeGPS를 실행 해야 합니다. 실행 방법은 설치된 FakeGPS를 클릭하면 아래와 같은 화면을 볼 수 있습니다.
- FakeGPS를 "Enabled"로 설정 후, Done를 클릭 합니다. 이제 작성한 프로그램을 실행 시켜 봅시다!!
- 작성 완료한 VS 에서 "Ctrl + F5"를 누르면 컴파일 후 자동 배포 하니 눌러 봅시다. 아래와 같은 화면이 나왔나요??
- 다음으로 우측 메뉴에서 "내 위치"를 클릭합니다. 우리가 만들었던 화면이 나옵니다. 그럼 "내위치" 버튼을 클릭 합시다.
- 위와 같은 Data가 TextBox에 나오나요?? 나오는 Data는 각자 다를 수 있습니다. 버튼을 누를때마다 조금씩 바뀌는 것도 확인 해 보실 수 있습니다. 그럼 가상의 GPS에서 보내지는 실시간 정보는 어떻게 활용 할까요?? 그것은 다음 시간에 설명 하도록 하겠습니다..
- 다음 시간에는 실시간으로 변하는 위치 정보와 다양한 Data를 사용하는 법에 대해서 강좌를 진행 하도록 하겠습니다. 미흡한 강좌를 끝까지 봐주셔서 감사드리며.. 다음 강좌에서 뵙겠습니다~
'Education > Bit 18th' 카테고리의 다른 글
[Windows Mobile] 초보용 팁 - MS SQL 2005 데이터베이스와 연결 준비 (0) | 2009.12.06 |
---|---|
[Windows Mobile] Lab2 - GPS 사용법(2) (2) | 2009.12.06 |
[Windows Mobile] Lab1 - Taking Picture with the Camera (0) | 2009.12.06 |
[Windows Mobile]Windows Mobile SDK 6.0 에뮬레이터 설정 방법 (0) | 2009.12.06 |
[Windows Mobile] Programming Camera Driver #1 (0) | 2009.12.06 |
댓글