基于ARM9與WinCE的GPS定位信息采集系統
3.2 完整GPS數據幀的截取
了解了GPS數據處理的四個狀態之間的相互轉換,下面論述一個完整的GPS數據幀的提取和處理,它是獲取車輛GPS定位數據的關鍵。一個完整的GPS數據幀的提取流程如圖4所示。
圖4中,m_strRecDisp為一個CString變量,用于表示接收數據的字符串,該程序流程中,用到兩個最重要的函數即:字符(串)查找函數和字符串截取函數。
1)字符(串)查找函數 該函數CString∷Find()用于從一個已有的字符串當中查找與目標字符(串)相匹配的首次出現的一個單字符或一個子字符串。一個重要的函數原型為:int Find(TCHAR ch,int nStart)const:其中,ch為要查找的目標字符,nStart為開始查找位置。
2)字符串截取函數 該函數CString∷Mid()用于截取一個字符,也可從一個具體位置開始截取一個子字符串,返回值即為字符或字符串常量。函數原型為:Mid(int nFirst,intnCount)const;其中nFirst為字符串開始截取的位置,nCount為截取字符數目。
3.3 GPS數據幀的處理
截取出一個完整的數據幀后,將數據幀賦值給CString變量data,data再將其字符內容淵源不斷的送給緩沖pBuffer,解壓縮數據幀后,進入到如圖5所示的GPS數據幀處理流程。在處理GPS時間數據時,因為北京位于東八區,UTC時間與北京時間相差8 h,得到UTC時間后,如果要得到標準的北京時間,應在此時間的基礎上,加上8 h。
3.4 二維衛星視圖的獲取
衛星視圖的獲取首先要用到站心切平面坐標系。坐標系如圖6所示,站心切平面以P點的法線為Z軸且向上為正,X軸垂直于Z軸并指向北極.Y軸垂直于Z軸并向東為正。
顯然,若衛星P與觀測點之間的距離為r,E為任意可見衛星P的仰角,B為衛星的方位角,則P的三維坐標為(X,Y,Z)滿足:
評論