車輛GPS定位信息采集系統(tǒng)
截取出一個完整的數(shù)據(jù)幀后,將數(shù)據(jù)幀賦值給CString變量data,data再將其字符內容淵源不斷的送給緩沖pBuffer,解壓縮數(shù)據(jù)幀后,進入到如圖5所示的GPS數(shù)據(jù)幀處理流程。在處理GPS時間數(shù)據(jù)時,因為北京位于東八區(qū),UTC時間與北京時間相差8 h,得到UTC時間后,如果要得到標準的北京時間,應在此時間的基礎上,加上8 h。
3.4 二維衛(wèi)星視圖的獲取
衛(wèi)星視圖的獲取首先要用到站心切平面坐標系。坐標系如圖6所示,站心切平面以P點的法線為Z軸且向上為正,X軸垂直于Z軸并指向北極.Y軸垂直于Z軸并向東為正。
顯然,若衛(wèi)星P與觀測點之間的距離為r,E為任意可見衛(wèi)星P的仰角,B為衛(wèi)星的方位角,則P的三維坐標為(X,Y,Z)滿足:
因為繪制的是二維圖形,故只能將半球坐標系壓縮到觀測者所在的平面內(稱這個面為基礎面),圖上所表示出的衛(wèi)星的位置實際為衛(wèi)星在該平面的投影點,該坐標系的參數(shù)有2個,一個是表達衛(wèi)星的投影點和觀測者的方位關系的方位角;另一個是表達衛(wèi)星真實所在位置以基礎面為準與觀測者所構成的仰角關系的仰角。有了這2個參數(shù)就能在該坐標系中唯一確定一個具有物理意義的點。本系統(tǒng)設計中,設計簡單的坐標系,它有2個同心圓和4條直線組成。繪制出衛(wèi)星視圖之前進行的簡單的坐標變換算法思想為:將衛(wèi)星實際的方位角、仰角立體坐標轉換為平面內的橫縱(PX、PY)坐標,具體表示如式(2)所示。其中,(POX,POY)分別為兩同心圓原點(看作是觀測點)在LCD上的像素坐標,而T為對話框窗體客戶區(qū)長度的1/4。
3.5 串口接收的實現(xiàn)
完成GPS定位信息的采集,需要實現(xiàn)的串口主要的API函數(shù)包括:
1)打開串口函數(shù)。原型為Open(LPT OpenPort(LPCTSTRPort,int BaudRate,int DataBits,int StopBits,int Parity)。其中,Port代表串口名,如COMl等,BaudRate為波特率,DataBits為數(shù)據(jù)位;StopBits為停止位,Parity為奇偶校驗。
2)關閉串口函數(shù)。該函數(shù)在程序操作串口發(fā)生錯誤時使用,用于關閉該串口。實現(xiàn)的主要方法是:先判斷串口操作句柄hComm的值是否為INVALID_HANDLE_VALUE,如果是,則調用SetCommMask(),將上述代碼段中的EV_RXCHAR改為0,然后清除緩沖區(qū),再利用CloseHandle函數(shù)關閉串行口操作句柄。
3)添加打開串口單擊事件代碼,通過創(chuàng)建一個串口接收線程和顯示線程來實現(xiàn)。
4)串口接收線程CommRecvTread()與回調函數(shù)OnCommRecv()。串口接收線程為一個無限循環(huán),它不斷查詢串口接收線程退出事件m_Exit-ThreadEvent。如果退出事件有效,則該循環(huán)結束退出。如果調用讀串口函數(shù)查詢得知接收到數(shù)據(jù),則調用串口接收成功回調函數(shù)0nCommRecv()。
4 實驗數(shù)據(jù)及分析
設置好串口參數(shù)后,打開串口COMl,既可獲取實驗數(shù)據(jù)。圖7為在某型軍車上一次實測的數(shù)據(jù)。實測數(shù)據(jù)界面拍攝的時間為2009年11月10日晚上9點45分,地點為某訓練場。數(shù)據(jù)在靜止的狀態(tài)下測得。該定位顯示的數(shù)據(jù)包括“原始數(shù)據(jù)”和解析后“經緯度、時間、海拔”等信息。通過分析圖7(a)界面的數(shù)據(jù)發(fā)現(xiàn),$GPGSV語句有兩條,而在“星數(shù)”對應的Edit框中顯示的定位所用衛(wèi)星數(shù)為8,由于每一條GPGSV最多能顯示4顆衛(wèi)星的信息,故$GPGSV語句為兩條。這說明星數(shù)與$GPGSV語句數(shù)是吻合的。而獲取有效的GPS定位信息,至少需要4顆定位衛(wèi)星。這也說明此次數(shù)據(jù)是有效的定位數(shù)據(jù)。
該界面顯示的經緯度信息分別為N:38°3.6788’,E:114°29.1765’;其中,N代表北緯,E代表東經。而用GoolgeEarth軟件查閱數(shù)據(jù)可知,石家莊軍械學院南門的精確經度/緯度信息為:北緯38°3.1650’,東經114°29.0046’,軍械學院西門的精確經度/緯度信息為:北緯38°3.394O’,東經114°28.5432’。通過與二者的經緯度信息比對發(fā)現(xiàn),界面實時顯示的精度和緯度信息非常精確。通過實時比對標準的北京時間,說明時間和日期信息顯示也完全正確。
速度信息在靜止情況下測得,故理想的速度為0 k/s。而實際測得數(shù)據(jù)分別為0.060 00 k/s,前文已論述,1 k/s換算成標準的速度信息約0.514 444 m/s,故測得的速度誤差分別約為O.030 867 m/s??梢钥闯?,測量的速度誤差相對而言是很小的。
界面顯示的海拔信息為:68.800 00 m。而通過石家莊市規(guī)劃局提供的資料可知:石家莊市區(qū)二環(huán)路內地勢西北高,海拔高度為81.5 m,東南低,海拔高度為64.3 m。測得的海拔高度還是存在微小的誤差。這可能跟接收的GPS信號的漂移有關。從圖7(b)部分的衛(wèi)星視圖可以看出,衛(wèi)星與觀測點的方位關系能清晰的表示,而且衛(wèi)星的編號也能實時顯示,從上到下依次分別為:23、17、3、4、19、20、32、11。
評論