GPS定位信息提取及應用
3 GPS定位信息提取與解析
3.1 GPS讀取MID串口數據流程圖
首先創建串口的讀線程,然后進行串口的監聽,等待指定瀆事件的發生。如果有可讀數據則讀串口,對接收到的事件進行數據處理。數據讀取流程圖如圖2所示。本文引用地址:http://www.j9360.com/article/154038.htm
3.2 串行端口數據通信
1)打開串行端口
通過調用CreateFile函數打開串行端口
m_hComm=CreateFile (Port,GENERIC_READ1GENERIC_WRITE,0,0,OPEN_EXISTING,0,0)。這個函數的返回值是已打開串行端口的句柄值。
2)串行端口通信配置
串口打開后.需對串口進行配置。用GetCommState函數獲得當前打開的串口參數,然后根據需要修改DCB的成員變量,用SetCommState函數來設置新的串口參數。
3)設置狀態參數
SetCommMask(m_hComm,EV_RXCHAR);
4)設置超時參數
為防止程序陷入循環狀態,需要設置超時值。
5)讀寫串口通信
fReadState=ReadFiie(m_hComm,data,length,dwLength,NULL)://從串口讀取數據
fWriteState=WriteFile(m_hComm,buf,dwCharToWrite*sizeof(char),dwBytesWritten,NULL);//向串口寫入數據
6)通信結束關閉串口
函數CloseHandle(m_hComm)用來關閉串口。當串口獲取GPS接收機數據信號后,需要根據NMEA-0183通信協議解析GPS數據,獲取移動目標當前的格林尼治時間和位置,而我國的標準時間需在格林尼治時間上加上8小時。
GPS使用的坐標系為WGS_84坐標系,而我國通常使用的是國家坐標系,如北京54國家坐標系,因此需要進行坐標轉換。GPS在與MID通信過程中可通過串口每秒發送10條數據。實際應用中可根據需要解析所需定位數據。
評論