新聞中心

        EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > 一種智能手機定位監(jiān)控系統(tǒng)的設(shè)計和實現(xiàn)

        一種智能手機定位監(jiān)控系統(tǒng)的設(shè)計和實現(xiàn)

        作者: 時間:2011-07-18 來源:網(wǎng)絡(luò) 收藏

        本文引用地址:http://www.104case.com/article/166107.htm

          2.1 GPS數(shù)據(jù)提取的

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          public event MessageInterceptorEventHandler MessageReceived

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

          3 監(jiān)控中心與實現(xiàn)

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

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

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

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

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

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



        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 恩施市| 化州市| 五原县| 彭山县| 甘泉县| 潜江市| 元谋县| 台山市| 郁南县| 阿巴嘎旗| 安阳县| 边坝县| 泾源县| 凉山| 宁武县| 肥乡县| 镇宁| 红河县| 平邑县| 修水县| 五原县| 略阳县| 新野县| 济南市| 行唐县| 大关县| 泗阳县| 旅游| 双牌县| 凉城县| 天台县| 镇康县| 永泰县| 炉霍县| 肥乡县| 乌审旗| 神农架林区| 资兴市| 拉孜县| 武功县| 昌吉市|