freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于vc的電子導(dǎo)航系統(tǒng)_畢業(yè)論文-資料下載頁

2025-07-01 09:16本頁面

【導(dǎo)讀】術(shù),其在交通、旅游、環(huán)境等諸多領(lǐng)域的應(yīng)用使地理信息系統(tǒng)被越來越多的用戶所接受,成為人們工作、生活中一個強(qiáng)有力的工具。具測量折線距離、圖層控制、最優(yōu)路徑分析、GPS導(dǎo)航等功能的GIS應(yīng)用軟件。MSComm控件,分析了GIS開發(fā)三種實現(xiàn)方式,提出系統(tǒng)設(shè)計方案:集成二次開發(fā)。徑分析,最后實現(xiàn)GPS導(dǎo)航功能。

  

【正文】 對收 到的衛(wèi)星信號,進(jìn)行解碼或采用其它技術(shù),將調(diào)制在載波上的信息去掉后,就可以恢復(fù)載波。嚴(yán)格而言,載波相位應(yīng)被稱為載波拍頻相位,它是收到的受多普勒頻移影響的衛(wèi)星信號載波相位與接收機(jī)本機(jī)振蕩產(chǎn)生信號相位之差。一般在接收機(jī)鐘確定的歷元時刻量測,保持對衛(wèi)星信號的跟蹤,就可記錄下相位的變化值,但開始觀測時的接收機(jī)和衛(wèi)星振蕩器的相位初值是不知道的,起始?xì)v元的相位整數(shù)也是不知道的,即整周模糊度,只能在數(shù)據(jù)處理中作為參數(shù)解算。相位觀測值的精度高至毫米,但前提是解出整周模糊度,因此只有在相對定位、并有一段連續(xù)觀測值時才能使用相位 觀內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計 說明書(畢業(yè) 論文 ) 31 測值,而要達(dá)到優(yōu)于米級的定位精度也只能采用相位觀測值。 按定位方式, GPS 定位分為單點(diǎn)定位和相對定位(差分定位)。單點(diǎn)定位就是根據(jù)一臺接收機(jī)的觀測數(shù)據(jù)來確定接收機(jī)位置的方式,它只能采用偽距觀測量,可用于車船等的概略導(dǎo)航定位。相對定位(差分定位)是根據(jù)兩臺以上接收機(jī)的觀測數(shù)據(jù)來確定觀測點(diǎn)之間的相對位置的方法,它既可采用偽距觀測量也可采用相位觀測量,大地測量或工程測量均應(yīng)采用相位觀測值進(jìn)行相對定位。 在 GPS 觀測量中包含了衛(wèi)星和接收機(jī)的鐘差、大氣傳播延遲、多路徑效應(yīng)等誤差,在定位計算時還要受到衛(wèi)星廣播星歷誤差 的影響,在進(jìn)行相對定位時大部分公共誤差被抵消或削弱,因此定位精度將大大提高,雙頻接收機(jī)可以根據(jù)兩個頻率的觀測量抵消大氣中電離層誤差的主要部分,在精度要求高,接收機(jī)間距離較遠(yuǎn)時(大氣有明顯差別),應(yīng)選用雙頻接收機(jī)。 在定位觀測時,若接收機(jī)相對于地球表面運(yùn)動,則稱為動態(tài)定位,如用于車船等概略導(dǎo)航定位的精度為 30—— 100 米的偽距單點(diǎn)定位,或用于城市車輛導(dǎo)航定位的米級精度的偽距差分定位,或用于測量放樣等的厘米級的相位差分定位( RTK),實時差分定位需要數(shù)據(jù)鏈將兩個或多個站的觀測數(shù)據(jù)實時傳輸?shù)揭黄鹩嬎?。在定位觀測時 ,若接收機(jī)相對于地球表面靜止,則稱為靜態(tài)定位,在進(jìn)行控制網(wǎng)觀測時,一般均采用這種方式由幾臺接收機(jī)同時觀測,它能最太限度地發(fā)揮 GPS 的定位精度,專用于這種目的的接收機(jī)被稱為大地型接收機(jī),是接收機(jī)中性能最好的一類。目前, GPS 已經(jīng)能夠達(dá)到地殼形變觀測的精度要求, IGS 的常年觀測臺站已經(jīng)能構(gòu)成毫米級的全球坐標(biāo)框架。 下面 就針對當(dāng)前比較普及的 GPS 系統(tǒng),對其衛(wèi)星定位信息的接收及其定位參數(shù)提取的實現(xiàn)方法予以介紹。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計 說明書(畢業(yè) 論文 ) 32 定位信息的接收 通常 GPS 定位信息接收系統(tǒng)主要由 GPS 接收天線、變頻器、信號通道、微處理器、存儲器以及 電源等部分組成。由于 GPS 定位信息內(nèi)容較少,因此多用 RS232 串口將定位信息( NEMA0183 語句)從 GPS 接收機(jī)傳送到計算機(jī)中進(jìn)行信息提取處理。 初始化并打開串口: 對串口初始化通常要完成以下幾個設(shè)置 :設(shè)定通信端口號,即 CommPort 屬性 。設(shè)定通信協(xié)議 ,即 HandShaking 屬性 。設(shè)定傳輸速率等參數(shù) ,即 Settings 屬性 。打開通信端口 ,即將 PortOpen 屬性設(shè)為 True。 if(()) (FALSE)。 (1)。//選擇 COM1 (1024)。//設(shè)置輸入緩沖區(qū)的大小 if(!()) (TRUE)。//打開串口 else AfxMessageBox(cannotopenserialport)。 (9600,n,8,1)。//波特率 9600,無校驗 ,8 個數(shù)據(jù)位 ,1 停止位 (1)。//1:表示 以二進(jìn)制方式檢取數(shù)據(jù) (1)。//1:表示有一個字符引發(fā)一個事件 從串口讀取數(shù)據(jù)有多種方法,在此直接使用 Win32 API 函數(shù)對其進(jìn)行編程處理。在Windows 下不允許直接對硬件端口進(jìn)行控制操作,所有的端口均被視為“文件”,因此在對串口進(jìn)行偵聽之前需要通過打開文件來打開串口,并對其進(jìn)行相關(guān)參數(shù)配置: m_hCom=CreateFile(COM1,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計 說明書(畢業(yè) 論文 ) 33 EXISTING, FILE_FLAG_OVERLAPPED,NULL)。 //以異步方式打開 COM1 口 SetCommMask(m_hCom, EV_RXCHAR)。//添加或修改 Windows 所報告的事件列表 SetupComm(m_hCom,READBUFLEN/*讀緩沖 */,WRITEBUFLEN/*寫緩沖 */)。// 初始化通訊設(shè)備參數(shù) //清除緩沖信息 PurgeComm (m_hCom, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR) 。 //對異步 I/O 進(jìn)行設(shè)置 = MAXDWORD。//接收兩連續(xù)字節(jié)的最大時間間隔 =0。//接收每字節(jié)的平均允許時間 = 0。//接收時間常數(shù) SetCommTimeouts (m_hCom , amp。CommTimeOuts)。//獲取并設(shè)置串口 GetCommState ( m_hCom, amp。dcb) 。 = CBR_4800。 = 8。 = ODDPARITY。 = ONESTOPBIT 。 SetCommState( m_hCom, amp。dcb)。 在成功打開并設(shè)置通訊口后,可采取輪詢串口和事件觸發(fā)兩種方式對數(shù)據(jù)進(jìn)行接收處理,本文在此采取效率比較高的事件觸發(fā)方式進(jìn)行接收處理,通過等待 EV_RXCHAR事件的發(fā)生來啟動 ReadFile 函數(shù)完成對 GPS 定位信息的接收: while(true) 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計 說明書(畢業(yè) 論文 ) 34 { WaitCommEvent (m_hCom,amp。dwEvtMask,NULL)。 if (dwEvtMaskamp。EV_RXCHAR == EV_RXCHAR) if(0) ReadFile(m_hCom,m_readbuf,amp。nLength,amp。olRead)。 } 提取定位數(shù)據(jù) GPS 接收機(jī)只要處于工作狀態(tài)就會源源不斷地把接收并計算出的 GPS 導(dǎo)航定位信息通過串口傳送到計算機(jī)中。前面的代碼只負(fù)責(zé)從串口接收數(shù)據(jù)并將其放置于緩存,在沒有進(jìn)一步處理之前緩存中是一長串字節(jié)流,這些信息在沒有經(jīng)過分類提取之前是無法加以利用的。因此,必須通過程序?qū)⒏鱾€字段的信息從緩存字節(jié)流中提取出來,將其轉(zhuǎn)化成有實際意義的,可供高層決策使用的定位信息數(shù)據(jù)。同其他通訊協(xié)議類似,對 GPS進(jìn)行信息提取必須首先明確其幀結(jié)構(gòu),然后才能根據(jù)其結(jié)構(gòu)完成對各定位信息的提取。對于本文所使用的 GARMIN GPS 天線板,其發(fā)送到計算機(jī)的數(shù)據(jù)主要由幀頭、幀尾和幀內(nèi)數(shù)據(jù)組成,根據(jù)數(shù)據(jù)幀的不同,幀頭也不相同,主要有 $GPGGA、 $GPGSA、$GPGSV以及 $GPRMC等。這些幀頭標(biāo)識了后續(xù)幀內(nèi)數(shù)據(jù)的組成結(jié)構(gòu),各幀均以回車符和換行符作為幀尾標(biāo)識一幀的結(jié)束。對于通常的情況,我們所關(guān)心的定位數(shù)據(jù)如經(jīng)緯度、速度、時間等均可以從 $GPRMC幀中獲取得到,該幀的結(jié)構(gòu)及各字段釋義如下: $GPRMC,1,2,3,4,5,6,7,8,9,10,11*hh 1 當(dāng)前位置的格林尼治時間,格式為 hhmmss 2 狀態(tài) , A 為有效位置 , V 為非有效接收警告,即當(dāng)前天線視野上方的衛(wèi)星個數(shù)少于 3 顆。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計 說明書(畢業(yè) 論文 ) 35 3 緯度 , 格式為 4 標(biāo)明南北半球 , N 為北半球、 S 為南半球 5 徑度,格式為 6 標(biāo)明東西半球, E 為東半球、 W 為西半球 7 地面上的速度,范圍為 到 8 方位角,范圍為 到 度 9 日期 , 格式為 ddmmyy 10 地磁變化,從 到 度 11 地磁變化方向,為 E 或 W 至于其他幾種幀格式,除了特殊用途外,平時并不常用,雖然接收機(jī)也在源源不斷地向主機(jī)發(fā)送各種數(shù)據(jù)幀,但在處理時一般先通過對幀頭的判斷而只對 $GPRMC幀進(jìn)行數(shù)據(jù)的提取處理。如果情況特殊,需要從其他幀獲取數(shù)據(jù),處理方法與之也是完全類似的。由于幀內(nèi)各數(shù)據(jù)段由逗號分割,因此在處理緩存數(shù)據(jù)時一般是通過搜尋 ASCII碼 $來判斷是否是幀頭,在對幀頭的類別進(jìn)行識別后再通過對所經(jīng)歷逗號個數(shù)的計數(shù)來判斷出當(dāng)前正在處理的是哪一種定位導(dǎo)航參數(shù),并作出相應(yīng)的處理。下面就是對緩存Data 中的數(shù)據(jù)進(jìn)行解幀處理的主要代碼,本文在此只關(guān)心時間(日期和時間)和地理坐標(biāo)(經(jīng)、緯度): for(int i=0。iDATALENGTH。i++) { if(Data[i]==39。$39。)//幀頭, SectionID 為逗號計數(shù)器 SectionID=0。 if(Data[i]==10){//幀尾 } if(Data[i]==39。,39。) 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計 說明書(畢業(yè) 論文 ) 36 SectionID++。 else { switch(SectionID) { case 1: //提取出時間 m_sTime+=Data[i]。 break。 case 2: //判斷數(shù)據(jù)是否可信 (當(dāng) GPS 天 線能接收到有 3 顆 GPS 衛(wèi)星時為 A,可信 ) if(Data[i]==39。A39。) GPSParam[m_nNumber].m_bValid=true。 break。 case 3: m_sPositionY+=Data[i]。 break。 case 5: m_sPositionX+=Data[i]。 break。 case 9: m_sDate+=Data[i]。 break。 default: break。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計 說明書(畢業(yè) 論文 ) 37 } } } 現(xiàn)在已將所需信息提取到內(nèi)存,即時間、日期以及經(jīng)緯度分別保存在 CString 型變量 m_sTime、 m_Data、 m_sPositionY 和 m_sPositionX 中。在實際應(yīng)用中往往要根據(jù)需要對其做進(jìn)一步的運(yùn)算處理,比如從 GPS 接收機(jī)中獲得的時間信息為格林尼治時間,因此需要在獲取時間上加 8 小時才為我國標(biāo)準(zhǔn)時間。而且 GPS 使用的 WGS- 84 坐標(biāo)系也與我國采用的坐標(biāo)系不同,有時也 要對此加以變換。而這些變換運(yùn)算必須通過數(shù)值運(yùn)算完成,因此需要將前面獲取的字符型變量轉(zhuǎn)化為數(shù)值型變量,這部分工作可放在檢測到幀尾完成: ::strcpy(buf,m_sTime)。 (%c%c,buf[0],buf[1])。 GPSParam[m_nNumber].m_nHour=(atoi(str)+8)%24。//提取出小時并轉(zhuǎn)化為 24 小時制北京時間 3 字節(jié)為分鐘, 5 字節(jié)為秒,提取方法同上 ?? ::strcpy(buf,m_sDate)。 (%c%c,buf[0],buf[1])。 //提取出月份 //buf第 3 字節(jié)為天, 5 字節(jié)為年,提取方法同上 ?? ::strcpy(buf,m_sPositionY)。 (%c%c,buf[0],buf[1])。 PositionValue=atoi(str)。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計 說明書(畢業(yè) 論文 ) 38 (%c%c%c%c%c%c%c,buf[2],buf[3],buf[4],buf[5],buf[6],buf[7],buf[8])。 GPSParam[m_nNumber].m_dPositionY=PositionValue*60+atof(str)。 //提取出緯度 ?? ::strcpy(buf,m_sPositionX)。 if(()==10) //經(jīng)度超過 90 度 (如東經(jīng) 125 度 ) { (%c%c%c,buf[0],buf[1],buf[2])。 PositionValue=atoi(str)。 (%c%c%c%c%c%c%c,buf[3],buf[4],buf[5],buf[6],buf[7],buf[8],buf[9])。 GPSParam[m_nNumber].m_dPositionX=PositionValue*60+atof(str)。//提取出經(jīng)度 (單位為分 ) } if(()==9) //經(jīng)度未超過 90 度 (如東經(jīng) 89 度 ) { //處理方法同上,只是 buf的第 0、 1 字節(jié)為度數(shù), 2~9 為分?jǐn)?shù)。 } 通過 上面 的設(shè)計方法可以將 GPS 定位導(dǎo)航信息從 GPS 接收機(jī)完整接收 。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計 說明書(畢業(yè) 論文 ) 39 總 結(jié) 可以看出, MapX 開發(fā)平臺可以提供地理信息應(yīng)用系統(tǒng)所需 要的各主要方面功能,并具有開發(fā)方式靈活,接口簡便的特點(diǎn),不失為開發(fā)地理信息應(yīng)用系統(tǒng)的理想平臺。
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1