如何開發 Windows Mobile 應用程式

這次的目的是想寫一個利用 GPS 記錄旅程軌跡的程式 (騎腳踏車、出外郊遊、旅行都可以用),如果可以把資料轉到 Google Map 上標示就更好了,也許將來可以將這些資料寫入照片的 EXIF,那相片地圖就省事多了 (兩邊做時間比對,不過一開始要先校正),不過問題應該是電池的續航力吧!

總之,先踏出第一步吧!


開發環境
  1. Windows 7 家用進階版
  2. Visual Studio 2008 專業版
  3. Windows Mobile 6 SDK 專業版
  4. 模擬器中文版
PS : 原來這兩個檔案以前都下載過了,而且比較過沒有更新。不過 CD 燒錄片品質不良,才兩年多就不能讀了,一直停在一開始的畫面

設定

Windows Mobile 裝置中心 | 行動裝置設定

VS 2008 | 工具 | 裝置模擬器管理員 選擇要模擬的裝置做 連接
模擬器開機完成後,即可選擇 連接底座,此時模擬器會執行 ActiveSync,然後透過 Windows Mobile 裝置中心跟 PC 連線
一切 OK 後就可以開始寫程式了


GPSID 讀不到資料
COM port 掃瞄結果:內建 GPS 使用 COM2



經過多日的 Google 後,終於讓我找到這一篇 Recommended GPSProxy for various PocketPCs

根據裡面的說明,點選 設定 | 系統 | External GPS



依據上面的設定,程式已可正常執行,不過原因待查


利用 Windows Mobile 6 SDK 裡面的 Sample 程式 Registry Viewer,查看 PDA 上的設定,並參考 Example GPS Intermediate Driver Registry Settings 發現: 
  1. Fake GPS 是採用 "File Input Source" 的方式,所以用掃瞄 COM port 的方式找不到
  2. P535 原本 GPSID 的設定是空的,僅有 "Multiplexer" 指到 COM2,而做完以上設定後,就有資料了;反而是 "Multiplexer" 設定不見了 (PDA Registry 資料如下)
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Drivers]
    CurrentDriver=Control Panel Configured Device

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver\Drivers\Control Panel Configured Device]
    CommPort=COM2
    Baud=4800
    InterfaceType=COMM

我猜想:內建 GPS 是採用虚擬的 COM2 做為程式介面,而 GPSID 需要硬體的介面,所以將 GPS 硬體設到 COM2 就可以正常執行了。而 TomTom 可能未使用 GPSID,而是直接從 COM2 讀資料,所以沒問題。

目前修改以上設定後,TomTom 與我的程式皆可正常執行,但傳輸速率 4800 不能改,曾試過改成比較快的速度就讀不到資料了。

所以可以繼續下一步了:
  1. 取得座標資料
  2. 寫入檔案或資料庫
  3. 轉換成 Google Map 認得的路徑格式
  4. 最後再考慮省電需求,做長時間抗戰

留言

這個網誌中的熱門文章

Linux 批次檔的寫法

【分享】如何顯示 Debug Message

[分享] Visual Studio 遠端偵錯