如何開發 Windows Mobile 應用程式
這次的目的是想寫一個利用 GPS 記錄旅程軌跡的程式 (騎腳踏車、出外郊遊、旅行都可以用),如果可以把資料轉到 Google Map 上標示就更好了,也許將來可以將這些資料寫入照片的 EXIF,那相片地圖就省事多了 (兩邊做時間比對,不過一開始要先校正),不過問題應該是電池的續航力吧!
總之,先踏出第一步吧!
開發環境
設定
一切 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 發現:
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 不能改,曾試過改成比較快的速度就讀不到資料了。
所以可以繼續下一步了:
總之,先踏出第一步吧!
開發環境
- Windows 7 家用進階版
- Visual Studio 2008 專業版
- Windows Mobile 6 SDK 專業版
- 模擬器中文版
設定
Windows Mobile 裝置中心 | 行動裝置設定 |
從 VS 2008 | 工具 | 裝置模擬器管理員 選擇要模擬的裝置做 連接 |
模擬器開機完成後,即可選擇 連接底座,此時模擬器會執行 ActiveSync,然後透過 Windows Mobile 裝置中心跟 PC 連線 |
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 發現:
- Fake GPS 是採用 "File Input Source" 的方式,所以用掃瞄 COM port 的方式找不到
- P535 原本 GPSID 的設定是空的,僅有 "Multiplexer" 指到 COM2,而做完以上設定後,就有資料了;反而是 "Multiplexer" 設定不見了 (PDA Registry 資料如下)
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 不能改,曾試過改成比較快的速度就讀不到資料了。
所以可以繼續下一步了:
- 取得座標資料
- 寫入檔案或資料庫
- 轉換成 Google Map 認得的路徑格式
- 最後再考慮省電需求,做長時間抗戰
留言