新聞中心

EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 智能手機(jī)定位監(jiān)控系統(tǒng)的設(shè)計(jì)

智能手機(jī)定位監(jiān)控系統(tǒng)的設(shè)計(jì)

作者: 時(shí)間:2017-06-08 來源:網(wǎng)絡(luò) 收藏

業(yè)界流行這樣一句話,的應(yīng)用只受到人們想象力的限制.目前的民用領(lǐng)域已經(jīng)包括了陸地運(yùn)輸、海洋運(yùn)輸、民用航空、通信、測(cè)繪、建筑、采礦、農(nóng)業(yè)、電力系統(tǒng)、醫(yī)療應(yīng)用、科研、家電、娛樂等多個(gè)領(lǐng)域,而大家所熟知的汽車導(dǎo)航也只不過是其中的應(yīng)用之一,2007年,我國GPS已經(jīng)進(jìn)入了一個(gè)全面爆發(fā)期。

本文引用地址:http://butianyuan.cn/article/201706/351151.htm

目前市場(chǎng)上GPS相關(guān)產(chǎn)品已經(jīng)很多,但由于各方面技術(shù)限制,普遍存在一些嚴(yán)重問題:大多數(shù)產(chǎn)品針對(duì)專用的硬件平臺(tái),成本高、可移植性差;系統(tǒng)開發(fā)難度大、開發(fā)周期長、軟件支持少[2];采用本地地圖,地圖數(shù)據(jù)庫更新困難。

本文針對(duì)上述問題,充分利用現(xiàn)有技術(shù),整合各種現(xiàn)有資源,設(shè)計(jì)了基于Windows Mobile通用平臺(tái)和網(wǎng)絡(luò)電子地圖的位置查詢系統(tǒng)。該系統(tǒng)通信部分采用SMS實(shí)現(xiàn),具有地圖數(shù)據(jù)更新獲取方便、使用簡單、成本低、操作方便等優(yōu)點(diǎn)。

1 總體設(shè)計(jì)方案

Windows Mobile,是 Microsoft 用于 Pocket PC 和 Smartphone 的軟件平臺(tái)。Windows Mobile 將熟悉的 Windows 桌面擴(kuò)展到了個(gè)人設(shè)備中。Windows Mobile是微軟為手持設(shè)備推出的移動(dòng)版Windows,使用Windows Mobile操作系統(tǒng)的設(shè)備主要有PPC手機(jī)、PDA、隨身音樂播放器等。Windows Mobile操作系統(tǒng)有三種,分別是Windows Mobile Standard、Windows Mobile Professional,Windows Mobile Classic.目前常用版本W(wǎng)indows Mobile 6.1,最新的版本是6.5.

系統(tǒng)從功能上可以分為Pocket PC監(jiān)控中心和Pocket PC監(jiān)控對(duì)象兩部分。監(jiān)控對(duì)象主要功能為接收GPS信號(hào)、提取所需信息和響應(yīng)監(jiān)控中心的監(jiān)控命令。監(jiān)控中心通過短消息(SMS)向監(jiān)控對(duì)象發(fā)送監(jiān)控命令,接收來自監(jiān)控對(duì)象的數(shù)據(jù)并對(duì)接收來的數(shù)據(jù)進(jìn)行處理。為了更好地顯示監(jiān)控對(duì)象所在位置,監(jiān)控中心同時(shí)采用Google地圖和Mapabc地圖2種網(wǎng)絡(luò)電子地圖。網(wǎng)絡(luò)電子地圖數(shù)據(jù)通過HTTP協(xié)議從Google地圖或Mapabc地圖服務(wù)器上實(shí)時(shí)下載。系統(tǒng)框圖如圖1所示。

系統(tǒng)主要設(shè)計(jì)功能如下:

(1)在Windows Mobile平臺(tái)上實(shí)現(xiàn)了GPS定位;

(2)網(wǎng)絡(luò)電子地圖實(shí)時(shí)下載、顯示、拖動(dòng)、放大/縮??;

(3)監(jiān)控對(duì)象的位置查詢與顯示;

(4)實(shí)現(xiàn)了對(duì)監(jiān)控對(duì)象的聲音監(jiān)控。

2 PPC監(jiān)控對(duì)象設(shè)計(jì)與實(shí)現(xiàn)

相對(duì)于PDA,PPC是一種狹隘得多的概念,專指使用微軟Windows Mobile系列操作系統(tǒng)的PDA.最早的Windows Mobile操作系統(tǒng)是Poceket PC 1.0,一款不怎么成功的操作系統(tǒng),但PPC由此得名。隨后的Poceket PC 2002、Windows Mobile 2003、Windows Mobile 2003 SE都是非常成功的操作系統(tǒng)。

2.1 GPS定位數(shù)據(jù)提取的實(shí)現(xiàn)

傳統(tǒng)GPS編程通過串口通信接收NMEA(National Marine Electronics Association)語句,然后通過解析NMEA語句[3]提取經(jīng)緯度信息實(shí)現(xiàn)。應(yīng)用程序獨(dú)占GPS設(shè)備,即同一時(shí)刻只允許一個(gè)應(yīng)用程序訪問GPS設(shè)備。

本文采用Windows Mobile提供的GID接口實(shí)現(xiàn)(GPS Intermediate Driver)。GID是一個(gè)位于應(yīng)用程序和GPS設(shè)備中間層的設(shè)備驅(qū)動(dòng)。使用GID時(shí),允許多個(gè)應(yīng)用程序同時(shí)使用GPS設(shè)備(所有的應(yīng)用程序都通過GID間接訪問GPS設(shè)備),不需要解析NMEA語句,且可以使用相同的代碼訪問幾乎所有類型的GPS設(shè)備[4].

采用GID實(shí)現(xiàn)的主要步驟為:

(1)引用gpsapi.dll.GID是一套在Mobile Device上的本地代碼,在。NET Compact Framework平臺(tái)上使用,需要采用跨平臺(tái)調(diào)用技術(shù),引用相應(yīng)的應(yīng)用程序接口。

(2)用CreateEvent創(chuàng)建Windows CE事件對(duì)象,這樣當(dāng)有GPS設(shè)備獲取了新的數(shù)據(jù)或者設(shè)備狀態(tài)改變時(shí)就能收到通知。

(3)使用GPSOpenDevice與GID建立一個(gè)連接。如果GPS設(shè)備關(guān)閉,則啟動(dòng)GPS設(shè)備。

(4)通過調(diào)用WaitForMultipleObjects(如果僅有一個(gè)事件則調(diào)用WaitForSingleObject),等待GPS設(shè)備獲取新的位置數(shù)據(jù)或設(shè)備狀態(tài)改變事件發(fā)生;當(dāng)GPS設(shè)備獲取了新的位置數(shù)據(jù)時(shí),調(diào)用GPSGetPosition取回位置信息。當(dāng)GPS設(shè)備狀態(tài)改變時(shí),調(diào)用GPSGetDeviceState取回設(shè)備狀態(tài)信息。

(5)重復(fù)第(4)步,直到不再需要GPS信息。

(6)調(diào)用GPSCloseDevice關(guān)閉與GID的連接。如果這個(gè)連接是GID唯一的連接,則GID自動(dòng)關(guān)閉GPS設(shè)備。GPS設(shè)備耗電相當(dāng)大,因此當(dāng)不再需要訪問GPS設(shè)備時(shí)要關(guān)閉與GID的連接。

GID全稱:Group Identification 群體身份是一個(gè)通用的、適應(yīng)性強(qiáng)和用戶界面友好的圖形用戶界面,用于幾何模擬、數(shù)據(jù)輸入、模型轉(zhuǎn)換、網(wǎng)格和可視化的結(jié)果,對(duì)所有類型的數(shù)值仿真包都適用。 一般多用于比如網(wǎng)游封測(cè)時(shí)期的賬號(hào),或者就是一些帶有共享性質(zhì)的資源使用者的帳號(hào)。


2.2 短消息發(fā)送與接收實(shí)現(xiàn)

短消息收發(fā)一般采用AT(Attention)指令實(shí)現(xiàn),本系統(tǒng)采用Pocket Outlook實(shí)現(xiàn)。Windows Mobile SDK對(duì)Pocket Outlook提供的服務(wù)進(jìn)行了托管封裝,可以方便地完成所有的個(gè)人信息管理功能[3],所有這些類型構(gòu)成了POOM(Pocket Outlook Object Model)。

(1)短消息發(fā)送。POOM中的SmsAccount類可以方便地實(shí)現(xiàn)短消息的發(fā)送。首先,使用SmsMessage類構(gòu)造一條短消息;然后,使用SmsAccount類中的Send方法即可發(fā)送短消息。

(2)短消息的接收和截獲。Pocket Outlook可以實(shí)現(xiàn)短消息的接收和截獲,且只接收滿足特定條件的短消息。短消息接收和截獲過程如下:

①創(chuàng)建一個(gè)MessageInterceptor類型的對(duì)象。

②設(shè)置MessageCondition屬性,指定MessageInterceptor對(duì)象截獲條件。

③設(shè)置InterceptionAction屬性,指定截獲到消息后Pocket Outlook執(zhí)行的動(dòng)作。本系統(tǒng)中,通過將InterceptionAction屬性設(shè)置為NotifyAndDelete實(shí)現(xiàn)截獲所需的監(jiān)控短消息,并且其他程序不會(huì)收到監(jiān)控短消息,這樣監(jiān)控短消息就不會(huì)進(jìn)入短消息收件箱。

④為MessageInterceptor對(duì)象添加截獲短消息事件處理方法。截獲短消息事件定義如下:

public event MessageInterceptorEventHandler MessageReceived

當(dāng)有滿足截獲條件的短消息到達(dá)設(shè)備時(shí)觸發(fā)此事件。添加了事件處理方法后,當(dāng)有滿足截獲條件的短消息到達(dá)時(shí),就會(huì)觸發(fā)MessageReceived事件,然后自動(dòng)調(diào)用事件處理方法進(jìn)行處理。

3 監(jiān)控中心設(shè)計(jì)與實(shí)現(xiàn)

PPC端監(jiān)控中心通過GPRS網(wǎng)絡(luò),主要以短消息的形式向監(jiān)控對(duì)象發(fā)送監(jiān)控命令,并通過處理來自監(jiān)控對(duì)象的數(shù)據(jù)實(shí)現(xiàn)對(duì)監(jiān)控對(duì)象的位置查詢及顯示、聲音監(jiān)控等功能。

3.1 網(wǎng)絡(luò)電子地圖實(shí)現(xiàn)

目前,Windows Mobile不支持腳本,故PPC端監(jiān)控中心電子地圖不能使用含接口的地圖實(shí)現(xiàn)。本系統(tǒng)PPC端監(jiān)控中心網(wǎng)絡(luò)電子地圖采用Google地圖和北京圖盟科技有限公司的Mapabc地圖。

(1)地圖數(shù)據(jù)下載

Google地圖由0~17級(jí)不同比例尺的256×256像素的小地圖拼塊拼接而成,每一個(gè)Google地圖拼塊叫做一個(gè)tile.tile的URI類似如下:

其中,mt2.google.com為Google地圖服務(wù)器,x、y、z分別表示tile的坐標(biāo)和放大因子。Google地圖服務(wù)器有4臺(tái),分別為mt0.google.com、mt1.google.com、mt2.google.com和mt3.google.com.為了提高地圖下載速度,本系統(tǒng)從4臺(tái)服務(wù)器輪流下載。

(2)地圖顯示

任給一個(gè)經(jīng)緯度,要將其代表的位置在地圖上顯示出來,就要將該經(jīng)緯度轉(zhuǎn)換為對(duì)應(yīng)放大因子的tile坐標(biāo)。本系統(tǒng)采用一種近似的方法轉(zhuǎn)換,經(jīng)過分析發(fā)現(xiàn),經(jīng)度與x坐標(biāo)呈線性對(duì)應(yīng)關(guān)系,其計(jì)算公式為:

其中,longitude為經(jīng)度值,其范圍為-180~+180,西經(jīng)用負(fù)值表示,東經(jīng)用正值表示;0.0063為校正值;z為放大因子。

緯度與y坐標(biāo)轉(zhuǎn)換公式為:

其中,latitude為緯度值,其范圍為-90~+90,北緯用正值表示,南緯用負(fù)值表示;z為放大因子。將經(jīng)緯度轉(zhuǎn)化為tile坐標(biāo)后,就能將經(jīng)緯度與地圖匹配了,這樣就可以將經(jīng)緯度對(duì)應(yīng)的位置在地圖上顯示出來。

本系統(tǒng)采用的Windows Mobile Pocket PC的窗體客戶區(qū)寬度和高度分別為240像素和268像素,每個(gè)tile為256×256像素,這樣客戶區(qū)就需要4個(gè)或6個(gè)tile拼接而成,如圖2和圖3所示。

3)地圖拖動(dòng)

地圖移動(dòng)相當(dāng)于改變地圖的中心坐標(biāo)。本系統(tǒng)實(shí)現(xiàn)地圖拖動(dòng)的方法為:當(dāng)在觸摸屏上點(diǎn)擊地圖某一點(diǎn)時(shí),將地圖的中心坐標(biāo)移到點(diǎn)擊處。如圖4所示,設(shè)點(diǎn)O為窗口客戶區(qū)中心,點(diǎn)P為點(diǎn)擊處,計(jì)算點(diǎn)P與點(diǎn)O的水平和垂直像素距離△Px和△Py,然后將地圖中心分別沿水平方向和垂直方向移動(dòng)△Px和△Py像素,即可實(shí)現(xiàn)地圖的拖動(dòng)功能,拖動(dòng)后地圖如圖5所示。

(4)地圖放大/縮小

Google地圖的放大因子z的取值為0~17,分別代表0~17級(jí)不同比例尺的地圖。0~17級(jí)地圖分別用18張不同詳細(xì)程度的地圖實(shí)現(xiàn),故實(shí)現(xiàn)地圖的放大/縮小功能只需要改變放大因子的大小,將當(dāng)前現(xiàn)實(shí)的地圖切換到改變后的放大因子所對(duì)應(yīng)的比例尺的地圖上,中心點(diǎn)經(jīng)緯度不變。

3.2 監(jiān)控中心界面設(shè)計(jì)及主要功能測(cè)試結(jié)果

點(diǎn)擊操作菜單,依次選擇監(jiān)控、位置,然后在彈出的菜單中設(shè)置監(jiān)控對(duì)象手機(jī)號(hào)、報(bào)告次數(shù)、報(bào)告時(shí)間間隔,如圖6所示。

按圖6所示設(shè)置,點(diǎn)擊開始按鈕,PPC端監(jiān)控中心發(fā)送監(jiān)控命令,監(jiān)控對(duì)象收到位置查詢命令后,就按監(jiān)控命令向監(jiān)控中心報(bào)告自己的位置。PPC端監(jiān)控中心收到監(jiān)控對(duì)象發(fā)來的位置信息后即在地圖上顯示出來。圖7為目標(biāo)位于深圳大學(xué)辦公樓前測(cè)試的結(jié)果,圖中地圖為Google地圖,點(diǎn)擊設(shè)置菜單,然后選擇使用Mapabc地圖切換到Mapabc地圖,如圖8所示。PPC端監(jiān)控中心構(gòu)造監(jiān)控命令短消息如下:

SmsMessage msg=new SmsMessage(15914175891,″*定◎位*″+interval);

其中,interval指定監(jiān)控對(duì)象報(bào)告位置信息的時(shí)間間隔,此處為1.

本系統(tǒng)基于Windows Mobile通用平臺(tái),充分利用了Windows Mobile界面友好、使用簡單和支持軟件豐富等特點(diǎn)。GPS數(shù)據(jù)通過Windows Mobile提供的GID接口實(shí)現(xiàn),可以使多個(gè)應(yīng)用程序同時(shí)使用GPS設(shè)備,通用性好,可移植性強(qiáng)。經(jīng)實(shí)際測(cè)試,本系統(tǒng)獲取地圖數(shù)據(jù)方便快捷、成本低、維護(hù)方便、定位精度高,能滿足人們?nèi)找嬖鲩L的應(yīng)用需求。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉