天天看點

Windows Mobile下GPS管理軟體NavsGo之GPS偵測功能的開發簡述關于實作

所謂GPS偵測功能就是掃描手機上所有可用的GPS裝置(available GPS devices),把各個裝置運作狀态展現給使用者,如果發現問題,通過友善的方式提示使用者如果解決裝置連通性問題。這些建議包括啟動GPS裝置,修改GPS Intermediate Driver的配置,啟動藍牙GPS裝置等等。

Windows Mobile下GPS管理軟體NavsGo之GPS偵測功能的開發簡述關于實作
Windows Mobile下GPS管理軟體NavsGo之GPS偵測功能的開發簡述關于實作

發現功能在上篇文章講過,通過注冊靜态事件,然後回調相應的處理函數。

由于GPS.net是開源的,我們這次鑽到他的源代碼看看Detection的實作邏輯。

啟動發現功能是在 Devices.BeginDetection() 函數裡面。

<a href="http://11011.net/software/vspaste"></a>

啟動發現過程,系統會啟動一個線程調用DetectionThreadProc()進行發現。下面是DetectionThreadProc()函數。

DetectionThreadProc()負責整個發現過程,是一個很長的函數,有必要重構一下,把它分離(split)成幾個小函數。他的處理邏輯是,檢測逾時,一旦發現發現過程逾時,就好中途停止所有的處理。然後按順序檢測裝置。檢測的裝置包括GPS Intermediate Driver裝置(GpsIntermediateDriver),序列槽裝置(SerialDevice)和藍牙裝置(BluetoothDevice)。支援的裝置類圖如下:

Windows Mobile下GPS管理軟體NavsGo之GPS偵測功能的開發簡述關于實作

一般來說移動裝置都是通過GPS Intermediate Driver裝置來對外部GPS程式提供服務的,有時候盡管GPS Intermediate Driver裝置存在,并在運作,但是由于配置不正确也會導緻外部GPS程式未能正确連接配接和使用GPS裝置。是以最後一步是檢查GPS Intermediate Driver裝置的配置情況。我計劃也在NavsGo增加GPS Intermediate Driver裝置的配置管理功能。

最後的最後是清理所有資源,一個好的程式的習慣。

Windows Mobile下GPS管理軟體NavsGo之GPS偵測功能的開發簡述關于實作
Windows Mobile下GPS管理軟體NavsGo之GPS偵測功能的開發簡述關于實作

發現功能實作了整個GPS診斷子產品的核心,建議功能也就是呈現發現功能緩存的資訊。建議功能實作在SummaryForm和DeviceForm兩個類裡面,SummaryForm提示建議,而DeviceForm現實某個裝置的檢查情況。

建議功能的流程是,判斷GPS Intermediate Driver裝置是否可用,如果不可用可能是硬體端口配置錯誤,建議把可用的序列槽端口配置為GPS Intermediate Driver的硬體端口,如果沒有可用的序列槽端口,建議使用藍牙裝置。

Windows Mobile下GPS管理軟體NavsGo之GPS偵測功能的開發簡述關于實作

GPS.net提供日志發送功能,把裝置發現和檢查資訊發送到伺服器,友善開發者改進。這個功能很簡單。

    本文轉自Jake Lin部落格園部落格,原文連結:http://www.cnblogs.com/procoder/archive/2009/08/21/1551155.html,如需轉載請自行聯系原作者

繼續閱讀