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

正文內(nèi)容

基于vc的電子導(dǎo)航系統(tǒng)_畢業(yè)論文-wenkub.com

2025-06-26 09:16 本頁面
   

【正文】 } 通過 上面 的設(shè)計(jì)方法可以將 GPS 定位導(dǎo)航信息從 GPS 接收機(jī)完整接收 。 PositionValue=atoi(str)。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 38 (%c%c%c%c%c%c%c,buf[2],buf[3],buf[4],buf[5],buf[6],buf[7],buf[8])。 (%c%c,buf[0],buf[1])。而這些變換運(yùn)算必須通過數(shù)值運(yùn)算完成,因此需要將前面獲取的字符型變量轉(zhuǎn)化為數(shù)值型變量,這部分工作可放在檢測到幀尾完成: ::strcpy(buf,m_sTime)。 default: break。 case 5: m_sPositionX+=Data[i]。) GPSParam[m_nNumber].m_bValid=true。 else { switch(SectionID) { case 1: //提取出時(shí)間 m_sTime+=Data[i]。)//幀頭, SectionID 為逗號(hào)計(jì)數(shù)器 SectionID=0。下面就是對緩存Data 中的數(shù)據(jù)進(jìn)行解幀處理的主要代碼,本文在此只關(guān)心時(shí)間(日期和時(shí)間)和地理坐標(biāo)(經(jīng)、緯度): for(int i=0。對于通常的情況,我們所關(guān)心的定位數(shù)據(jù)如經(jīng)緯度、速度、時(shí)間等均可以從 $GPRMC幀中獲取得到,該幀的結(jié)構(gòu)及各字段釋義如下: $GPRMC,1,2,3,4,5,6,7,8,9,10,11*hh 1 當(dāng)前位置的格林尼治時(shí)間,格式為 hhmmss 2 狀態(tài) , A 為有效位置 , V 為非有效接收警告,即當(dāng)前天線視野上方的衛(wèi)星個(gè)數(shù)少于 3 顆。因此,必須通過程序?qū)⒏鱾€(gè)字段的信息從緩存字節(jié)流中提取出來,將其轉(zhuǎn)化成有實(shí)際意義的,可供高層決策使用的定位信息數(shù)據(jù)。nLength,amp。 在成功打開并設(shè)置通訊口后,可采取輪詢串口和事件觸發(fā)兩種方式對數(shù)據(jù)進(jìn)行接收處理,本文在此采取效率比較高的事件觸發(fā)方式進(jìn)行接收處理,通過等待 EV_RXCHAR事件的發(fā)生來啟動(dòng) ReadFile 函數(shù)完成對 GPS 定位信息的接收: while(true) 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 34 { WaitCommEvent (m_hCom,amp。 = ODDPARITY。//獲取并設(shè)置串口 GetCommState ( m_hCom, amp。//接收兩連續(xù)字節(jié)的最大時(shí)間間隔 =0。 //以異步方式打開 COM1 口 SetCommMask(m_hCom, EV_RXCHAR)。//波特率 9600,無校驗(yàn) ,8 個(gè)數(shù)據(jù)位 ,1 停止位 (1)。//選擇 COM1 (1024)。設(shè)定傳輸速率等參數(shù) ,即 Settings 屬性 。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 32 定位信息的接收 通常 GPS 定位信息接收系統(tǒng)主要由 GPS 接收天線、變頻器、信號(hào)通道、微處理器、存儲(chǔ)器以及 電源等部分組成。 在定位觀測時(shí),若接收機(jī)相對于地球表面運(yùn)動(dòng),則稱為動(dòng)態(tài)定位,如用于車船等概略導(dǎo)航定位的精度為 30—— 100 米的偽距單點(diǎn)定位,或用于城市車輛導(dǎo)航定位的米級(jí)精度的偽距差分定位,或用于測量放樣等的厘米級(jí)的相位差分定位( RTK),實(shí)時(shí)差分定位需要數(shù)據(jù)鏈將兩個(gè)或多個(gè)站的觀測數(shù)據(jù)實(shí)時(shí)傳輸?shù)揭黄鹩?jì)算。 按定位方式, GPS 定位分為單點(diǎn)定位和相對定位(差分定位)。 GPS 接收機(jī)對收 到的衛(wèi)星信號(hào),進(jìn)行解碼或采用其它技術(shù),將調(diào)制在載波上的信息去掉后,就可以恢復(fù)載波。目前在我國應(yīng)用最多的還是美國的 GPS系統(tǒng)。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 30 第五章 GPS 導(dǎo)航功能 衛(wèi)星導(dǎo)航技術(shù)的飛速發(fā)展已逐漸取代了無 線 電導(dǎo)航、天文導(dǎo)航等傳統(tǒng)導(dǎo)航技術(shù),而成為一種普遍采用的導(dǎo)航定位技術(shù),并在精度、實(shí)時(shí)性、全天候等方面取得了長足進(jìn)步。為了使計(jì)算最短路徑時(shí)搜索的節(jié)點(diǎn)范圍盡量縮小,程序中對每次更改 Searched 字段值之后的節(jié)點(diǎn)都要移出原集合(鏈表),這一方式使 單次搜索最短路徑的效率得到很大的提高。 以上是最短 路徑算法的主體部分,首先將源節(jié)點(diǎn)的 Searched 字段置為 1,權(quán)重置為0,并插入鏈表 sOpen 中,而后進(jìn)入循環(huán)搜索最短路徑的過程。 } } vLink=。 =+。 =。 =。 =2。amp。 =sTemp。 sTemp=new SearchLink()。 ==null。 c++。 } 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 26 =0。 while(cPointCnt){//根據(jù)點(diǎn)節(jié)點(diǎn)的數(shù)量,循環(huán)設(shè)定點(diǎn)節(jié)點(diǎn)中各字段的初始值 if(==pStartID) { flag++。以上三次遍歷并沒有嵌套關(guān)系,因此整個(gè)建立鄰接多重表的時(shí)間復(fù)雜度為 O( n)。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 25 vWork=RoadNode[indexP]。indexP++) { if(RoadNode[indexP]!=null) { RoadNode[indexP].Prev=vWork。 pFeatureL=()。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 24 RoadNode[indexP1].Neighbor=vLink1。 =indexP。 indexP1=(int)((STNODEID))。 p1=(0)。 while(null!=pFeatureL)//遍歷線對象,根據(jù)線的首尾節(jié)點(diǎn) ID,即點(diǎn)的索引,找到點(diǎn),建立鏈 接關(guān)系 { t1++。建立這一過程的時(shí)間消耗與點(diǎn)的數(shù)量 n 成正比,即時(shí)間復(fù)雜度為 O( n)。 RoadNode[indexP].ShortPathPre=null。 } RoadNode[indexP]=new VERTEX()。 pFeatureP=()。 public SearchLink Next。 public Link v2Next。//Open 或 Close 表中的鏈接 } class Link//點(diǎn)的鄰接關(guān)系 { public VERTEX v1。//一個(gè)鏈接關(guān)系,相當(dāng)于線節(jié)點(diǎn) public double Weight。 //0 表示從來沒有搜索過,表示搜索過,但 沒有完成,表示搜索完成,該點(diǎn)的最短路徑已經(jīng)找到 public IPoint pPoint。 5) 標(biāo)記點(diǎn) i。 3) 選取下一個(gè)點(diǎn)。 Dijkstra 算法的基本思路是:假設(shè)每個(gè)點(diǎn)都有一對標(biāo)號(hào) (dj, pj),其中 dj 是從起源點(diǎn)s 到點(diǎn) j 的最短路徑的長度 (從頂點(diǎn)到其本身的最短路徑是零路 (沒有弧的路 ),其長度等于零 ); pj 則是從 s 到 j 的最短路徑中 j 點(diǎn)的前一點(diǎn)。 2. 從 OPEN 表中找出距起始點(diǎn)最近的點(diǎn),找出這個(gè)點(diǎn)的所有子節(jié)點(diǎn),把這個(gè)點(diǎn)放到 CLOSE 表中。 Dijkstra 算法 一般的表述通常有兩種方式,一種用永久和臨時(shí)標(biāo)號(hào)方式,一種是用OPEN, CLOSE 表方式 。 下面介紹一種 Dijkstra 算法。//調(diào)用自定義工具 } 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 17 編譯并運(yùn)行程序,如 圖 所示為使用“折線距離”工具的應(yīng)用程序界面。 include“ ” 并且將 CMainFrame 類中的 mwndStatusBar 由受保護(hù)的變量改為全局變量。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 16 eDelete()。 } CString str。i++) { CMapXPoint pt1=(i)。 double dDistanceTot=。 { 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 15 CMapXPoints pts。 END_EVENTSINK_MAP() BEGIN_EVENTSINK_MAP(CVCDZDHView,CView) 和 END_EVENTSINK_MAP()兩行代碼之間加入的,就是要處理的事件。要處理 MapX 事件,首先需要為要處理的事件創(chuàng)建一事件槽,其方法如下。方法如下: 首先,在 文件中定義常量。因此, MapX 提供了用戶自定義工具的方法,這樣可以大大擴(kuò)展 MapX 的應(yīng)用范圍。 eDelete()。 = DISP_E_PARAMNOTFOUND。 在菜單中建立圖層控制菜單,設(shè)置圖層控制 ID 為 ID_VIEW_LAYERCONTROL,然后建立類向?qū)?,選擇 CVCDZDHView 類,添加如下函數(shù): void CVCDZDHView::OnViewLayercontrol() { try { VARIANT vHelpFile, vHelpID。 如圖 所示: 圖 放大功能演示 可用相同方法實(shí)現(xiàn)縮小、漫游、全圖等標(biāo)準(zhǔn)工具的功能。 添加新菜單項(xiàng)資源,輸入標(biāo)題“工具”,在“工具”下添加子菜單,輸入標(biāo)題“放大”及 ID 為 ID_ZOOM_ IN。 如圖 所示: 圖 地圖的顯示 使用地圖標(biāo)準(zhǔn)工具 在地圖顯示出來后,用戶通常要以各種比例查看地圖的全局、局部或細(xì)部,必須提供諸 如放大、縮小和漫游等功能。具體代碼如下。具體代碼如下 : void CVCDZDHView::OnSize(UINT nType,int cx,int cy) { CView::OnSize(nType,cx,cy)。從類名中選擇 CVCDZDHView 類,在消息框中選擇 WM_CREATE 消息,然后添加函數(shù),編輯代碼創(chuàng)建 MapX 對象。選擇 View Resource Symbols, 并點(diǎn)擊 New 按鈕,輸入名稱 IDC_MAP,值取默認(rèn)數(shù)值。通過以下步驟,就可以實(shí)現(xiàn)地圖的顯示 [5]。 將 MapX 支持類庫加入工程 利用 VC++環(huán)境下的應(yīng)用程序生成向?qū)?chuàng)建一單文檔界面應(yīng)用程序 VCDZDH。目前許多軟件公司都開發(fā)了很多 ActiveX 控件,合理選擇和運(yùn)用現(xiàn)成的控件,減少了開發(fā)者的編程工作量,使開發(fā)者避開某些應(yīng)用的具體編程,直接調(diào)用控件,實(shí)現(xiàn)這些具體應(yīng)用,不僅可以縮短程序開發(fā)周期,使編程過程更簡潔,用戶界面更友好,可以使程序更加靈活、簡便。 三種實(shí)現(xiàn)方式的分析 由于獨(dú)立開發(fā)難度 太大,單純二次開發(fā)受 GIS 工具提供的編程語言的限制差強(qiáng)人意,因此結(jié)合 GIS 工具軟件與當(dāng)今可視化開發(fā)語言的集成二次開發(fā)方式就成為 GIS 應(yīng)用開發(fā)的主流。這種方式省時(shí)省心,但進(jìn)行二次開發(fā)的宏語言,作為編程語言只能算是二流,功能極弱,用它們內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 5 來開發(fā)應(yīng)用程序仍然不盡如人意。這種方式的好處在于無須依賴任何商業(yè) GIS 工具軟件,減少了開發(fā)成本 ,但一方面對于大多數(shù)開發(fā)者來說,能力、時(shí)間、財(cái)力方面的限制使其開發(fā)出來的產(chǎn)品很難在功能上與商業(yè)化 GIS 工具軟件相比,而且在購買 GIS工具軟件上省下的錢可能還抵不上開發(fā)者在開發(fā)過程中絞盡腦汁所花的代價(jià)。該屬 性在設(shè)計(jì)時(shí)無效,在運(yùn)行時(shí)為只讀。內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 4 Carrier Detect 是從調(diào)制解調(diào)器發(fā)送到相聯(lián)計(jì)算機(jī)的一個(gè)信號(hào),指示調(diào)制解調(diào)器正在聯(lián)機(jī)。Clear To Send 是調(diào)制解調(diào)器發(fā)送到相聯(lián)計(jì)算機(jī)的信號(hào),指示傳輸可以進(jìn)行。如果在應(yīng)用程序中需要訪問多個(gè)串口,必須使用多個(gè) MSComm控件,可以在 Windows 控制面板中修改串口地址的中斷地址。例如,當(dāng)在 CD(Carrier Detect)線或 RTS(Request To Send)線上有字符到達(dá)或發(fā)生了改變,在這種情況下,可以使用 MSComm 控件的 OnComm 事件捕獲和處理這些通信事件。只需進(jìn)行以下操作即可: 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 3 打開 “ProjectAdd To ProjectComponents and ControlsRegistered Activex Controls”,然后選擇控件: Microsoft Communication Control,version 插入到當(dāng)前的工程中。 VC++應(yīng)用程序的開發(fā)主要有兩種模式,一種是 WIN API 方式 ,另一種則是 MFC方式,傳統(tǒng)的 WIN API 開發(fā)方式比較繁瑣,而 MFC 則是對 WIN API 再次封裝,所以MFC 相對于 WIN API 開發(fā)更具備效率優(yōu)勢。 VC++是 微軟公司 開發(fā)的一個(gè) IDE(集成開發(fā)環(huán)境 ),換句話說,就是使用 C++的一個(gè)開發(fā)平臺(tái)。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說明書(畢業(yè) 論文 ) 2 MapX 為開發(fā)人員提供了一個(gè)快速、易用、功能強(qiáng)大的地圖化組件。 編程人員在開發(fā)過程中可以選用自己最熟悉的開發(fā)語言,輕松地將地圖功能嵌入到應(yīng)用中,并且可以脫離 MapInfo 的軟件平臺(tái)運(yùn)行。 VC++是目前較流行的可視化開發(fā)編程工具之一,支持面向?qū)ο蠛褪录?qū)動(dòng)機(jī)制的程序開發(fā),利用其強(qiáng)大的集成開發(fā)環(huán)境,程序員僅需要較少代
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1