提問者: vidii2572968 2013-03-10 00:00
1 定位信息的接收
通常GPS定位信息接收系統主要由GPS接收天線、變頻器、信號通道、微處理器、存儲器以及電源等部分組成。由于GPS定位信息內容較少,因此多用RS-232串口將定位信息(NEMA0183語句)從GPS接收機傳送到計算機中進行信息提取處理。從串口讀取數據有多種方法,在此直接使用 Win32 API函數對其進行編程處理。在Windows下不允許直接對硬件端口進行控制操作,所有的端口均被視為“文件”,因此在對串口進行偵聽之前需要通過打開文件來打開串口,并對其進行相關參數配置:
m_hCom=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING, FILE_FLAG_OVERLAPPED,NULL); //以異步方式打開COM1口
SetCommMask (m_hCom, EV_RXCHAR ) ; //添加或修改Windows所報告的事件列表
SetupComm (m_hCom,READBUFLEN/*讀緩沖*/,WRITEBUFLEN/*寫緩沖*/); // 初始化通訊設備參數
// 清除緩沖信息
PurgeComm (m_hCom, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR) ;
// 對異步I/O進行設置
CommTimeOuts.ReadIntervalTimeout = MAXDWORD ; //接收兩連續字節的最大時間間隔
CommTimeOuts.ReadTotalTimeoutMultiplier =0; //接收每字節的平均允許時間
CommTimeOuts.ReadTotalTimeoutConstant = 0 ; //接收時間常數
SetCommTimeouts (m_hCom , &CommTimeOuts) ;
//獲取并設置串口
GetCommState ( m_hCom, &dcb) ;
dcb.BaudRate = CBR_4800;
dcb.ByteSize = 8;
dcb.Parity = ODDPARITY;
dcb.StopBits = ONESTOPBIT ;
SetCommState( m_hCom, &dcb);
在成功打開并設置通訊口后,可采取輪詢串口和事件觸發兩種方式對數據進行接收處理,本文在此采取效率比較高的事件觸發方式進行接收處理,通過等待EV_RXCHAR事件的發生來啟動ReadFile函數完成對GPS定位信息的接收:
while(true){
WaitCommEvent (m_hCom,&dwEvtMask,NULL);
if (dwEvtMask&EV_RXCHAR == EV_RXCHAR)
if(ComStat.cbInQue>0)
ReadFile(m_hCom,m_readbuf,ComStat.cbInQue,&nLength,&olRead);
}
2 提取定位數據
GPS接收機只要處于工作狀態就會源源不斷地把接收并計算出的GPS導航定位信息通過串口傳送到計算機中。前面的代碼只負責從串口接收數據并將其放置于緩存,在沒有進一步處理之前緩存中是一長串字節流,這些信息在沒有經過分類提取之前是無法加以利用的。因此,必須通過程序將各個字段的信息從緩存字節流中提取出來,將其轉化成有實際意義的,可供高層決策使用的定位信息數據。同其他通訊協議類似,對GPS進行信息提取必須首先明確其幀結構,然后才能根據其結構完成對各定位信息的提取。對于本文所使用的GARMIN GPS天線板,其發送到計算機的數據主要由幀頭、幀尾和幀內數據組成,根據數據幀的不同,幀頭也不相同,主要有“$GPGGA”、“$GPGSA”、“$GPGSV”以及“$GPRMC”等。這些幀頭標識了后續幀內數據的組成結構,各幀均以回車符和換行符作為幀尾標識一幀的結束。對于通常的情況,我們所關心的定位數據如經緯度、速度、時間等均可以從“$GPRMC”幀中獲取得到,該幀的結構及各字段釋義如下:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>*hh 回答者:NXSB2466jlc2016-03-10 00:00
所屬類別 通訊導航 所屬品牌 萬利達(malata)通訊導航 3.5英寸觸摸式數字液晶顯示,采用LED背光技術,更清晰,更環保。高精度導航,性能可靠耐用經過聯想嚴格測試,性能可靠,抗高低溫及震動等惡劣環境。尋星
提問者: txxlcn 2013-04-16
你把詳情跟我說一下,怎么進入的因為有很多種情況
提問者: 至愛KX2PP 2014-04-15
優點嗎 1、就是采用了SIRF第四代-Atlas4芯片,搜星速度很快。 2、價格很便宜,1000以下的都可以買啦! 3、都支持電影播放(有的還支持高清),而且屏幕大,分辨率也高(480*800) 4、部分的采用了
提問者: sm4330 2013-03-08
很簡單。1、藍牙GPS模塊和筆記本電腦配對連接,并設置一個COM口。2、下載一款導航軟件,目前能在PC上使用的導航軟件有城際通和靈圖天行者的PC版。3、設置導航軟件的COM口為剛才設置的COM口。4、使用吧。呵呵
提問者: jiiij 2013-03-20
蝦米都沒有,價格卻不便宜啊。。雖然買了,還是要吐槽下 58車>>
提問者: xljaicxm 2014-06-23
導航要有硬件GPS,如果只用流量數據來定位,一個是耗流量而且還特別耗電,定位在信號不好的地方還不準。軟件的話高德百度騰訊谷歌都可以導航
提問者: gunyannue 2015-10-12