• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      自助式GPS監(jiān)控系統(tǒng)的開發(fā)與研究

      2014-04-29 00:00:00周澤輝,吳炬
      計算機光盤軟件與應(yīng)用 2014年11期

      摘 要:研究了GPS監(jiān)控系統(tǒng)的工作原理,運用GPS與Web地圖相結(jié)合的定位方法,基于Vc++編程實現(xiàn)了一種可對寵物或車輛進行實時、遠程監(jiān)控的自助式GPS監(jiān)控系統(tǒng)。

      關(guān)鍵詞:GPS監(jiān)控系統(tǒng);串口通訊;Web地圖

      中圖分類號:TP311

      GPS是全球定位系統(tǒng)的英文簡稱。GPS技術(shù)的主要功能是可實現(xiàn)對載體目標位置、速度等的精確捕獲及監(jiān)控。已廣泛應(yīng)用于交通、物流、公安、海洋測繪等行業(yè)的GPS監(jiān)控系統(tǒng),是成功運用了GPS技術(shù)、無線通信技術(shù)、GIS技術(shù)及圖像處理技術(shù)等來實現(xiàn)的,可以對移動車輛、設(shè)備或人、寵物的實時遠程監(jiān)控。

      根據(jù)GPS監(jiān)控系統(tǒng)架構(gòu)的不同,主要可分為兩類。一類是中心式GPS監(jiān)控系統(tǒng)和自助式GPS監(jiān)控系統(tǒng)。

      自助式GPS監(jiān)控系統(tǒng)是將GPS模塊通過標準接口(串口、USB接口、藍牙等)直接連接到計算機、Pocket PC等設(shè)備,該類系統(tǒng)一般會根據(jù)用戶的需求編寫不同的應(yīng)用程序來供用戶使用,比如自主車載導(dǎo)航系統(tǒng)、GPS軌跡記錄儀等設(shè)備。本文研究的是一種基于VC++編程,通過串口接收數(shù)據(jù)的自助式GPS監(jiān)控系統(tǒng)的實現(xiàn)方法。

      1 串口通訊的自助式GPS監(jiān)控系統(tǒng)的實現(xiàn)

      1.1 串口的打開及初始化

      打開串口工作區(qū)使用OpenWorkFlow()函數(shù),其工作是啟動串口工作線程,該函數(shù)沒有傳入?yún)?shù),函數(shù)的返回值為BOOL型,表示啟動串口工作區(qū)是否成功。而對串口工作區(qū)參數(shù)初始化則使用InitWorkFlow()函數(shù),該函數(shù)的傳入?yún)?shù)分別為串口名稱和DBC結(jié)構(gòu)的串口工作參數(shù),該函數(shù)的返回值為BOOL型,表示初始化串口工作區(qū)是否成功。

      1.2 串口接收GPS數(shù)據(jù)

      在Vc++的編程實現(xiàn)中,數(shù)據(jù)接收部分通過線程運行函數(shù)Run()和數(shù)據(jù)接收函數(shù)RecieiveData()來實現(xiàn)。

      (1)線程的運行函數(shù)。Run()函數(shù)實現(xiàn)對應(yīng)串口的接收事件的監(jiān)測,當監(jiān)測到有數(shù)據(jù)到達時,接下來執(zhí)行RecieiveData()接收函數(shù)進行數(shù)據(jù)接收,并發(fā)送消息通知給數(shù)據(jù)處理窗體。Run()函數(shù)沒有傳入?yún)?shù),該函數(shù)返回值為線程結(jié)束時結(jié)束代碼。

      (2)數(shù)據(jù)接收函數(shù)。ReceiveData()函數(shù)實現(xiàn)串口數(shù)據(jù)的接收。該函數(shù)傳入?yún)?shù)為接收數(shù)據(jù)的緩沖區(qū)的最大長度,函數(shù)會取這個值與當前緩沖區(qū)長度中較小的那個值來執(zhí)行讀取。該函數(shù)返回值為BOOL,其中,TRUE表示正確接收串口數(shù)據(jù),F(xiàn)ALSE表示接收串口數(shù)據(jù)失敗。

      1.3 GPS數(shù)據(jù)的解析

      在接收到GPS模塊中的相關(guān)數(shù)據(jù)后,還需要對數(shù)據(jù)按協(xié)議格式進行解析。如:CdataFlow對象,CdataFlow對象在接收到消息后,會將數(shù)據(jù)存儲到變量中,并對緩沖區(qū)中的數(shù)據(jù)進行解析。

      解析對象在接收到串口數(shù)據(jù)后,會觸發(fā)OnComMsg()函數(shù),此函數(shù)會存儲數(shù)據(jù),并調(diào)用SearchFlow()函數(shù)來查找數(shù)據(jù)包,如果查找到有效數(shù)據(jù)包,則會調(diào)用DealFlow()函數(shù)來處理數(shù)據(jù)包,并發(fā)送解碼消息,由解碼處理函數(shù)OnDecodeMsg()來具體解碼。

      (1)數(shù)據(jù)處理函數(shù)。OnComMsg()函數(shù)實現(xiàn)數(shù)據(jù)處理,用于處理串口接收到的數(shù)據(jù)。當串口數(shù)據(jù)接收線程監(jiān)測到有數(shù)據(jù)到達時,會進行及時接收,并發(fā)送消息給數(shù)據(jù)處理窗口,數(shù)據(jù)處理窗口就會調(diào)用此函數(shù)對數(shù)據(jù)進行處理,主要是將數(shù)據(jù)存入待解析字符串中,并發(fā)送消息給主窗體,由主窗體實現(xiàn)數(shù)據(jù)在界面顯示,并調(diào)用解析函數(shù)進行協(xié)議數(shù)據(jù)的解析。該函數(shù)的傳入?yún)?shù)是存儲接收數(shù)據(jù)的數(shù)據(jù)緩沖區(qū)的指針和接收到的數(shù)據(jù)的長度,該函數(shù)無返回值。

      (2)查找協(xié)議數(shù)據(jù)包函數(shù)。SearchFlow()函數(shù)可實現(xiàn)從待解析數(shù)據(jù)緩沖區(qū)查找協(xié)議數(shù)據(jù)包的功能。查找數(shù)據(jù)包的標準是判斷協(xié)議頭和協(xié)議尾是否與協(xié)議的定義相符,如果查找到,則將協(xié)議頭的位置、協(xié)議尾的位置以及協(xié)議數(shù)據(jù)包的長度存入變量中。該函數(shù)沒有傳入?yún)?shù)。該函數(shù)返回值為BOOL型,表示是否查找到協(xié)議數(shù)據(jù)包,如果返回TRUE,則表示數(shù)據(jù)緩沖區(qū)中存在協(xié)議數(shù)據(jù)包,如果返回FALSE,則表示當前的數(shù)據(jù)緩沖區(qū)中沒有協(xié)議數(shù)據(jù)包。

      (3)協(xié)議數(shù)據(jù)包解析函數(shù)。DealFlow()函數(shù)實現(xiàn)從待解析數(shù)據(jù)緩沖區(qū)中提取協(xié)議數(shù)據(jù)包的功能。當在數(shù)據(jù)緩沖區(qū)中查找到協(xié)議數(shù)據(jù)包后,調(diào)用此方法將協(xié)議數(shù)據(jù)包從緩沖區(qū)中提取出來,并發(fā)送消息給解碼函數(shù)進行解碼。該函數(shù)沒有傳入?yún)?shù)。該函數(shù)沒有返回值。

      (4)數(shù)據(jù)解碼函數(shù)。OnDecodeMsg()函數(shù)可實現(xiàn)數(shù)據(jù)包的解碼功能。當程序提取出協(xié)議數(shù)據(jù)包后,則發(fā)送消息給此解碼函數(shù),此函數(shù)即對數(shù)據(jù)進行解碼,其按照相應(yīng)協(xié)議對數(shù)據(jù)進行解析。該函數(shù)的傳入?yún)?shù)為協(xié)議數(shù)據(jù)包的數(shù)據(jù)緩沖區(qū)指針和協(xié)議數(shù)據(jù)包的數(shù)據(jù)長度。該函數(shù)沒有返回值。

      (5)GPS定位信息解碼函數(shù)。解碼GPS定位信息函數(shù)主要使用DecodeNEMA_GPGGA(),該函數(shù)實現(xiàn)GPS定位信息協(xié)議數(shù)據(jù)包的解碼功能,其按照協(xié)議的語句格式對數(shù)據(jù)進行解析。該函數(shù)沒有傳入?yún)?shù),其返回值為GPSPack共用體指針,其中存儲著GPGGA語句的數(shù)據(jù)項。

      1.4 地圖支持

      在解析出GPS信息后,如果只是枯燥的數(shù)據(jù),那么對用戶來說不夠直觀,無法確切地了解實際的位置在什么地方,所以需要加入地圖的支持。地圖的應(yīng)用是很復(fù)雜的過程,依靠的是GIS(地理信息系統(tǒng))技術(shù)。簡單地講,目前在監(jiān)控系統(tǒng)程序中結(jié)合地圖應(yīng)用主要有兩種方式:一種是本地地圖應(yīng)用,另一種是Web地圖應(yīng)用。早期的地圖應(yīng)用是從本地應(yīng)用發(fā)展起來的,其技術(shù)已經(jīng)比較成熟了,像MapInfo的MapX、Arc/Info等都提供了本地地圖的使用。隨著本地地圖應(yīng)用中一些問題的出現(xiàn),如費用高、占用空間大、部署麻煩等,Web地圖的應(yīng)用發(fā)展了起來。本設(shè)計中,采用的就是Web地圖應(yīng)用技術(shù),使用51ditu提供的免費地圖引擎,實現(xiàn)GPS位置信息的圖形化顯示。地圖顯示的具體方法:將51ditu引擎的Web頁面編寫好,主要是顯示點的腳本函數(shù),然后在程序中調(diào)用頁面的腳本函數(shù)。

      1.5 端口清理

      在實際編程開發(fā)中,很多時候會忽略結(jié)束清理工作,這樣往往會導(dǎo)致一些不可預(yù)知的BUG,尤其是像串口這樣獨享的資源,一定要做清理釋放工作。清理釋放工作的主要過程就是關(guān)閉串口,主要通過CloseCom()函數(shù)來實現(xiàn),該函數(shù)清除串口工作區(qū)并關(guān)閉串口句柄。該函數(shù)沒有傳入?yún)?shù),其返回值為BOOL型,表示關(guān)閉串口是否成功。

      2 結(jié)束語

      自助式GPS監(jiān)控系統(tǒng)具有靈活、可定制的、成本價格低廉的特點,能在一定范圍內(nèi)代替?zhèn)鹘y(tǒng)的、價格較高的GPS運營商提供的服務(wù)方式。自助式GPS監(jiān)控系統(tǒng)一般只需要一次的成本投入,即能獲得終身免費使用的權(quán)利。本文研究和開發(fā)的基于Vc++編程,采用串口通訊,可對寵物或車輛進行實時、遠程監(jiān)控的自助式GPS監(jiān)控系統(tǒng),為其他相似開發(fā)和研究提供了參考。

      參考文獻:

      [1]黃冰,王鵬,陳婷.基于GPS的自助式高效公交換乘查詢系統(tǒng)的研究[J].計算機工程與科學,2011(12).

      [2]楊金顯,袁贛南.基于MIMU/GPS的組合導(dǎo)航設(shè)計及實驗[J].光學精密工程,2008(02).

      [3]霍卓群.基于HADOOP平臺的GPS動態(tài)導(dǎo)航系統(tǒng)[J].洛陽理工學院學報(自然科學版),2014(01).

      作者簡介:周澤輝(1977-),男,講師,碩士,主要從事軟件技術(shù)、網(wǎng)絡(luò)方面的教學與研究;吳炬(1978-),男,助教,碩士,主要從事軟件技術(shù)、網(wǎng)絡(luò)方面的教學與研究。

      作者單位:長沙職業(yè)技術(shù)學院,長沙 410300

      成安县| 旺苍县| 曲麻莱县| 仪陇县| 松阳县| 珠海市| 平凉市| 万山特区| 扶风县| 汉中市| 洛南县| 恩平市| 肥乡县| 外汇| 中宁县| 永善县| 志丹县| 湖口县| 光泽县| 弋阳县| 称多县| 济源市| 绥宁县| 德昌县| 舞阳县| 宜阳县| 许昌市| 禹城市| 吴川市| 香格里拉县| 乐山市| 宿迁市| 南投市| 遵义县| 同江市| 麻栗坡县| 玉田县| 监利县| 白山市| 凭祥市| 东阳市|