天天看点

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,如需转载请自行联系原作者

继续阅读