Windows Mobile 6 SDK 中的 GPS 工具

來源:互聯網
上載者:User

GPS Intermediate Driver

自從 Windows Mobile 5.0 引進了 GPS Intermediate Driver(GPS 中間驅動程式,以下簡稱 GPSID),開發基於 GPS(Global Positioning System,全球定位系統)的 Windows Mobile 應用程式變得簡單多了。原因是它在開發人員編寫的應用程式和 GPS 裝置之間加入了一個中介層,使開發人員不需要通過串口直接存取 GPS 裝置,而是訪問 GPSID 提供的 API 函數,GPSID 再去訪問 GPS 裝置。這樣一來,編寫出來的 GPS 應用程式具有裝置無關性。另外,GPSID 還有下面兩個好處:
1. 多個應用程式可以同時訪問同一個 GPS 裝置,因為你訪問的是 GPSID
2. 不需要去解析 NMEA 命令,GPSID 幫你解析好了

關於 GPSID 的詳細介紹請參閱 GPS Intermediate Driver Reference,還可以觀看張汝頗的 Windows Mobile 輕鬆接軌GPS Webcast,在本文不會展開討論。

這次 Windows Mobile 6 SDK 提供的 Fake GPS 和 GPS Settings 這兩個針對 GPSID 開發和使用的協助工具輔助,基於 .NET Compact Framework 1.0 編寫,所以適用於 Windows Mobile 5.0。在 C:\Program Files\Windows Mobile 6 SDK\Tools\GPS 目錄下可以找到這兩個小工具。

Fake GPS

如果你想開發一個運行在 Windows Mobile 系統的 GPS 應用程式,但是找不到 GPS 裝置用來調試,或者你在室內偵錯工具,GPS 裝置接收不到衛星訊號,那 Fake GPS 正是你急需的工具了。

GPSID 的所有設定資訊都儲存在註冊表中,可以通過修改註冊表來更改 GPSID 的設定。其中有個一個設定,可以讓 GPSID 從一個包含 NMEA 命令的 .txt 檔案讀取 GPS 資料,而不需要從 GPS 裝置讀取資料。這個在張汝頗的 Windows Mobile 輕鬆接軌GPS 中也有介紹。Fake GPS 的工作原理就是修改註冊表的 GPSID 裝置,讓  GPSID 從一個文字檔讀取 GPS 資料。而對於我們開發的應用程式來說,跟訪問真實的裝置並沒有兩樣。

在使用 Fake GPS 之前需要將它安裝到你 Windows Mobile 裝置上或者模擬器上,安裝檔案是 FakeGPS.CAB。這裡我把 Fake GPS 安裝到 Windows Mobile 6 Standard 的模擬器裡。安裝成功後在開始菜單中找到它並運行。

 

Fake GPS 的設定預設沒有生效,我們可以在第一個輸入框把它的狀態改為 Enabled,現在可以在第二個輸入框中選擇從哪個檔案讀取 GPS 資料。Fake GPS 預設帶了兩個測試檔案,fakegpsdata.txt 在開啟後會讓 GPSID 馬上接收到位置資訊,而 dixies.txt 需要等待一段時間才能接收到位置資訊。

 

如果你想使用自己的測試資料,可以將編寫好的 .txt 檔案複製到 \Program Files\FakeGPS\GPSFiles 目錄下,在重新運行 Fake GPS 就可以在 NMEA File 列表中看到了。

下面有一段 NMEA 資料可供測試:
$GPGLL,4738.0173,N,12211.1874,W,191934.767,A*21
$GPGSA,A,3,08,27,10,28,13,19,,,,,,,2.6,1.4,2.3*3E
$GPGSV,3,1,9,8,71,307,43,27,78,59,41,3,21,47,0,10,26,283,40*77
$GPGSV,3,2,9,29,13,317,0,28,37,226,37,13,32,155,36,19,37,79,42*42
$GPGSV,3,3,9,134,0,0,0*46
$GPRMC,191934.767,A,4738.0173,N,12211.1874,W,0.109623,12.14,291004,,*21
$GPGGA,191935.767,4738.0172,N,12211.1874,W,1,06,1.4,32.9,M,-17.2,M,0.0,0000*75
$GPGLL,4738.0172,N,12211.1874,W,191935.767,A*21
$GPGSA,A,3,08,27,10,28,13,19,,,,,,,2.6,1.4,2.3*3E
$GPRMC,191935.767,A,4738.0172,N,12211.1874,W,0.081611,15.81,291004,,*2A

這裡我選擇了 fakegpsdata.txt  作為測試資料。點擊 done 按鈕儲存設定並關閉 Fake GPS。然後運行我前段時間編寫的一個座標採集工具 Smart GPS Tracker,它是基於 Windows Mobile 5.0 GPSID 編寫的,效果如下:

到此為止,我沒有用到一台真實的裝置。Fake GPS 適用於 Pocket PC 和 Smartphone 兩種作業系統,它會自適應。

GPS Settings

在 Windows Mobile 5.0 和 Windows Mobile 6 的 Pocket PC 版作業系統中內建了一個 GPSID 的配置程式,在 Windows Mobile 6 Professional 中可以通過選擇“Start-->Settings-->System-->External GPS”開啟。

 

而 Smartphone 版的作業系統中並沒有內建類似的 GPSID 配置程式,這為開發 Smartphone 上的 GPS 應用程式帶了一些不便。我是自己寫了一個,其實也不難,就是讀/寫幾個註冊表的索引值。

Windows Mobile 6 SDK 中提供了一個叫 GPS Settings 的工具,用於在 Smartphone 的作業系統配置 GPSID,功能跟 Pocket PC 上的一樣。在 C:\Program Files\Windows Mobile 6 SDK\Tools\GPS 目錄下找到 Settings.exe,並將它複製到 Smartphone 上運行。

關於 GPSID 如何設定,這裡不展開了,如果你感興趣可以看我上面推薦的學習資料。

總結

GPS Intermediate Driver 為我們開發 GPS 應用程式帶來了很多好處,而 Windows Mobile 6 SDK 中提供的 Fake GPS 和 GPS Settings 這兩個小工具,彌補了 Windows Mobile 5.0 SDK 中的空缺,使得開發基於 GPSID 的應用程式更加方便。如果你對這兩個工具的工作原理感興趣,可以自己用 Reflector 開啟它們的程式集,好好研究一番,不明白的地方可以查 SDK 的協助。另外,Windows Mobile 6 SDK 內建了一個 GPSID 樣本的完整項目代碼,對於理解 GPSID 的工作原理很有協助,並且它的代碼具有很高的重用價值,在 D:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS 目錄下可以找到這個樣本。

參考:
What's New for Developers in Windows Mobile 6
GPS Intermediate Driver Reference

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.