基于WM 6.0 OS的智能手机定位监控系统设计
采用GID实现的主要步骤为:
(1)引用gpsapi.dll。GID是一套在Mobile Device上的本地代码,在.NET Compact Framework平台上使用,需要采用跨平台调用技术,引用相应的应用程序接口。
(2)用CreateEvent创建Windows CE事件对象,这样当有GPS设备获取了新的数据或者设备状态改变时就能收到通知。
(3)使用GPSOpenDevice与GID建立一个连接。如果GPS设备关闭,则启动GPS设备。
(4)通过调用WaitForMultipleObjects(如果仅有一个事件则调用WaitForSingleObject),等待GPS设备获取新的位置数据或设备状态改变事件发生;当GPS设备获取了新的位置数据时,调用GPSGetPosition取回位置信息。当GPS设备状态改变时,调用GPSGetDeviceState取回设备状态信息。
(5)重复第(4)步,直到不再需要GPS信息。
(6)调用GPSCloseDevice关闭与GID的连接。如果这个连接是GID唯一的连接,则GID自动关闭GPS设备。GPS设备耗电相当大,因此当不再需要访问GPS设备时要关闭与GID的连接。
2.2 短消息发送与接收实现
短消息收发一般采用AT(Attention)指令实现,本系统采用Pocket Outlook实现。Windows Mobile SDK对Pocket Outlook提供的服务进行了托管封装,可以方便地完成所有的个人信息管理功能[3],所有这些类型构成了POOM(Pocket Outlook Object Model)。
(1)短消息发送。POOM中的SmsAccount类可以方便地实现短消息的发送。首先,使用SmsMessage类构造一条短消息;然后,使用SmsAccount类中的Send方法即可发送短消息。
(2)短消息的接收和截获。Pocket Outlook可以实现短消息的接收和截获,且只接收满足特定条件的短消息。短消息接收和截获过程如下:
①创建一个MessageInterceptor类型的对象。
②设置MessageCondition属性,指定MessageInterceptor对象截获条件。
③设置InterceptionAction属性,指定截获到消息后Pocket Outlook执行的动作。本系统中,通过将InterceptionAction属性设置为NotifyAndDelete实现截获所需的监控短消息,并且其他程序不会收到监控短消息,这样监控短消息就不会进入短消息收件箱。
④为MessageInterceptor对象添加截获短消息事件处理方法。截获短消息事件定义如下:
public event MessageInterceptorEventHandler MessageReceived
当有满足截获条件的短消息到达设备时触发此事件。添加了事件处理方法后,当有满足截获条件的短消息到达时,就会触发MessageReceived事件,然后自动调用事件处理方法进行处理。
3 监控中心设计与实现
PPC端监控中心通过GPRS网络,主要以短消息的形式向监控对象发送监控命令,并通过处理来自监控对象的数据实现对监控对象的位置查询及显示、声音监控等功能。
3.1 网络电子地图实现
目前,Windows Mobile不支持JavaScript脚本,故PPC端监控中心电子地图不能使用含JavaScript接口的地图实现。本系统PPC端监控中心网络电子地图采用Google地图和北京图盟科技有限公司的Mapabc地图。
(1)地图数据下载
Google地图由0~17级不同比例尺的256×256像素的小地图拼块拼接而成,每一个Google地图拼块叫做一个tile。tile的URI类似如下:
http://mt2.google.com/mt?v=w2.89hl=zh-CNx=6688y=3570z=13s=Galileo
其中,mt2.google.com为Google地图服务器,x、y、z分别表示tile的坐标和放大因子。Google地图服务器有4台,分别为mt0.google.com、mt1.google.com、mt2.google.com和mt3.google.com。为了提高地图下载速度,本系统从4台服务器轮流下载。
评论