車載導(dǎo)航畢業(yè)設(shè)計論文_第1頁
車載導(dǎo)航畢業(yè)設(shè)計論文_第2頁
車載導(dǎo)航畢業(yè)設(shè)計論文_第3頁
車載導(dǎo)航畢業(yè)設(shè)計論文_第4頁
車載導(dǎo)航畢業(yè)設(shè)計論文_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Denso 車載導(dǎo)航系統(tǒng) -道路限制和收費(fèi)站 導(dǎo)航 子系統(tǒng)的設(shè)計與實 現(xiàn) Denso Navigation System -Design and Implementation of Road Restrictions and Toll Station Navigation Subsystems 畢業(yè)設(shè)計(論文)任務(wù)書 畢業(yè)設(shè)計(論文)題目: Denso 車載導(dǎo)航系統(tǒng) 道路限制和收費(fèi)站子系統(tǒng)的設(shè)計與實現(xiàn) 基本內(nèi)容: 本課題將要完成的內(nèi)容是在 Denso車載導(dǎo)航系統(tǒng)已有的導(dǎo)航機(jī)制基礎(chǔ)上,完成道路限制和收費(fèi)站導(dǎo)航子系統(tǒng)的設(shè)計與實現(xiàn),需要完成的功能是對某些時間段禁止通行的道路和行駛道路上的收費(fèi)站進(jìn)行提示(包括文字、圖示和聲音)。 為此,需要學(xué)習(xí) Denso 車載導(dǎo)航系統(tǒng)實現(xiàn)的基本原理和總體框架。在此基礎(chǔ)上學(xué)習(xí)取得地圖數(shù)據(jù)(包括讀取和解析),對道路屬性信息進(jìn)行處理和判斷等內(nèi)容。在完成本課題期間還需要掌握 ITRON系統(tǒng)在 windows系統(tǒng)下模擬實現(xiàn), cygwin編譯環(huán)境和 .net 編譯器等工具的使用。 畢業(yè)設(shè)計(論文)專題部分: 題目: 基本內(nèi)容: 學(xué)生接受畢業(yè)設(shè)計(論文)題目日期 第 1 周 指導(dǎo)教師簽字: 2011 年 2 月 28 日 摘要 -I- Denso 車載導(dǎo)航 道路限制和收費(fèi)站導(dǎo)航子系統(tǒng)的設(shè)計與實現(xiàn) 摘 要 隨著社會的發(fā)展, 車輛不斷增多,道路狀況日漸復(fù)雜,擁有一個好的車載導(dǎo)航系統(tǒng)對于駕駛員來說變得十分重要。同時,導(dǎo)航系統(tǒng) 與車內(nèi)的空調(diào)、視聽娛樂、電話等功能的結(jié)合也將給駕駛員帶來極大方便與享受。 這就對 車載 導(dǎo)航技術(shù)產(chǎn)生了巨大的市場需求。因此車載導(dǎo)航軟件的開發(fā)是非常具有現(xiàn)實意義的工作。 本文主要論述了 Denso 車載導(dǎo)航系統(tǒng)導(dǎo)航功能中的兩個功能,對具有時間限制的道路和收費(fèi)站進(jìn)行導(dǎo)航。所謂的時間限制就是在特定的一段時間內(nèi)某條道路不允許車輛通行。完成本系統(tǒng)首先需要 研究 Denso 車載 導(dǎo)航系統(tǒng)的整體框架,了解系統(tǒng)的運(yùn)行環(huán)境,通信機(jī)制以及掌握開發(fā)過程中需要用到的技術(shù)。在此 基礎(chǔ)上深入研究導(dǎo)航模塊的實現(xiàn),然后實現(xiàn)上述的兩個功能。通過對已有導(dǎo)航系統(tǒng)的研究,確定了需要在系統(tǒng) Task 中進(jìn)行修改以實現(xiàn)的兩個模塊的功能。全文按照軟件的開發(fā)流程進(jìn)行描述,首先對本導(dǎo)航系統(tǒng)所用的 ITRON系統(tǒng)和 KIWI 地圖數(shù)據(jù)格式兩項關(guān)鍵技術(shù)進(jìn)行簡要介 紹,然后針對導(dǎo)航模塊進(jìn)行系統(tǒng)分析,接下來是深入到所需實現(xiàn)的功能模塊中進(jìn)行系統(tǒng) Task 級的設(shè)計。 依據(jù)系統(tǒng)分析和系統(tǒng)設(shè)計完成系統(tǒng)實現(xiàn)。最后在模擬導(dǎo)航 機(jī) PCNavi 上進(jìn)行了系統(tǒng)測試工作,確保正確性。 經(jīng)過系統(tǒng)測試,完成了道路限制和收費(fèi)站導(dǎo)航子系統(tǒng)設(shè)計與實現(xiàn)的工作,正確的實現(xiàn)了導(dǎo)航功能,即汽車行駛時,當(dāng)前方道路上路上存在收費(fèi)站或者時間限制的道路時,對用戶進(jìn)行文字、圖片和語音提示以達(dá)到導(dǎo)航目的。 關(guān)鍵詞 : 車載導(dǎo)航系統(tǒng), ITRON,時間限制, Task Abstract -II- Denso Navigation System -Design and Implentation of Road Restrictions and Toll Station Navigation Subsystems Abstract With the development of society, increasing traffic and road conditions more and more complex, to have a good car navigation system become very important to drivers. Meanwhile, car navigation systems combine with air-conditioning, entertainment, telephone and other functions will also bring great convenience and enjoyment to the driver.This has created an enormous market demand for navigation technology. Therefore, to develop car navigation software is of great significance. This paper mainly discusses two functions of Denso car navigation system, they are toll station navigation and time restricted road navigation. Time restricted means vehicles are not allowed on this road within a specific period of time. Research on the framework of Denso navigation system, system environment, communication mechanism and other technology, which is the basis of the paper, are necessary. The two modules should be implemeted by means of modifing system task.The paper is base on software development process.It begins with introduction of ITRON system and KIWI map data. Then, the paper will give system analysis of navigatioin module.The system design, which concentrates on system task, comes after. System implementation is based on system analysis and system design. Finally, system testing is excuted on the simulated navigation system PCNavi to ensure the accuracy. Design and implementation of time restricted navigation and toll station navigation subsystems are completed after system testing, the navigation is correct.When the car meet with time restricted road or toll station on its way, the text, pictures and voice prompts should be provided in order to achieve the purpose of navigation. Key Words: car navigation, ITRON, time restricted, Task 目錄 -III- 目 錄 摘 要 . I Abstract . II 第 1 章 緒 論 . 1 1.1. 車載導(dǎo)航發(fā)展簡介 . 1 1.2. 國內(nèi)外發(fā)展現(xiàn)狀 . 1 1.3. 車載導(dǎo)航的發(fā)展趨勢 . 2 第 2 章 關(guān)鍵技術(shù)介紹 . 3 2.1. ITRON 系統(tǒng) . 3 2.1.1. 系統(tǒng)綜述 . 3 2.1.2. 任務(wù)及通信 . 3 2.2. KIWI 格式地圖數(shù)據(jù) . 5 第 3 章 系統(tǒng)分析 . 7 3.1. 系統(tǒng)功能 . 7 3.1.1. 道路限制導(dǎo)航模塊 . 7 3.1.2. 收費(fèi)站導(dǎo)航模塊 . 8 3.1. 系統(tǒng)結(jié) 構(gòu) . 9 3.1.1. 系統(tǒng)功能框架 . 9 3.1.2. DG 模塊概要 . 10 3.2. 信息流程 . 錯誤 !未定義書簽。 3.2.1. 信息輸入 . 11 3.2.2. 信 息處理及輸出 . 11 3.3. 開發(fā)環(huán)境 . 12 第 4 章 系統(tǒng)設(shè)計 . 13 4.1. 架構(gòu)概述 . 13 4.2. 系統(tǒng) Task 級設(shè)計 . 14 4.3. 道路限制導(dǎo)航模塊 . 15 4.3.1. 功能點(diǎn)及對應(yīng) Task 分析設(shè)計 . 15 4.3.2. 重要函數(shù)設(shè)計 . 20 4.4. 收費(fèi) 站導(dǎo)航模塊 . 21 4.4.1. 功能點(diǎn)及對應(yīng) Task 分析設(shè)計 . 21 4.4.2. 重要函數(shù)設(shè)計 . 25 目錄 -IV- 第 5 章 系統(tǒng)實現(xiàn) . 27 5.1. 系統(tǒng) Task 級實現(xiàn) . 27 5.2. 道路限制導(dǎo)航模塊 . 28 5.2.1. 系統(tǒng)實現(xiàn)概要 . 28 5.2.2. 重要函數(shù)實現(xiàn) . 29 5.3. 收費(fèi)站導(dǎo)航模塊 . 33 5.3.1. 系統(tǒng)實現(xiàn)概要 . 33 5.3.2. 重要函數(shù)實現(xiàn) . 33 第 6 章 系統(tǒng)測試 . 41 6.1. 道路限制導(dǎo)航模塊 . 41 6.1.1. 測試方案 . 41 6.1.2. 測試結(jié)果 . 42 6.2. 收費(fèi)站導(dǎo)航模塊 . 44 6.2.1. 測試方案 . 44 6.2.2. 測試結(jié)果 . 45 第 7 章 結(jié) 論 . 47 參考文獻(xiàn) . 48 致 謝 . 49 第 1 章 緒論 -1- 第 1章 緒 論 近年來,隨著我國的汽車銷售總量和私人購車數(shù)量逐年上升、人們出行頻率的增加,以及人們對生活質(zhì)量和信息服務(wù)質(zhì)量要求的不斷提高,車載導(dǎo)航系統(tǒng)正逐漸顯示出其強(qiáng)大的生命力、廣闊的應(yīng)用前景和巨大市場潛力 1。因此研究探索車載導(dǎo)航技術(shù),使之更好的為人們服務(wù)是一項長遠(yuǎn)、具有重要意義,而且很有前景的工作。本文是在已有導(dǎo)航機(jī)制的基礎(chǔ)上進(jìn)行部分功能的更新,旨在于了解熟悉車載導(dǎo)航 系統(tǒng)的相關(guān)知識,并希望對車載導(dǎo)航功能的發(fā)展有所作用。 1.1. 車載導(dǎo)航發(fā)展簡介 最初的汽車導(dǎo)航系統(tǒng)是在單畫面 CRT(陰極射線管)的前面貼上印刷了地圖的透明封條,在 CRT 畫面上顯示自車位置的系統(tǒng)。 1989 年汽車導(dǎo)航第一次采用了地圖匹配技術(shù)。就是把通過推測導(dǎo)航法計算出來的車輛的行駛軌跡和存放在 CD-ROM 里的道路形狀相比較,找出自車的行駛道路,確定自車位置。到 1990 年第一次采用了 GPS 定位技術(shù)。 1994年出現(xiàn)了具有真正意義上導(dǎo)航能力的導(dǎo)航系統(tǒng) 2。到了 1996 年, VICS 設(shè)備被引入到導(dǎo)航系統(tǒng),有了有交通信息支持的數(shù) 據(jù)庫實現(xiàn)了動態(tài)導(dǎo)航 3。 至此,汽車導(dǎo)航系統(tǒng)的導(dǎo)航功能已基本成熟?,F(xiàn)今的導(dǎo)航系統(tǒng)除了具有動態(tài)導(dǎo)航的功能外,還有檢索功能、網(wǎng)絡(luò)功能、電話功能、檢索周邊環(huán)境、目的地經(jīng)由地信息、計算最優(yōu)路徑、自動檢索硬件環(huán)境等功能 4。 1.2. 國內(nèi)外發(fā)展現(xiàn)狀 在發(fā)達(dá)國家,車載 GPS 導(dǎo)航系統(tǒng)技術(shù)已經(jīng)非常成熟,從全球來看,日本和美國 GPS導(dǎo)航產(chǎn)品是領(lǐng)先的。日本的車載 GPS 導(dǎo)航系統(tǒng)技術(shù)和使用覆蓋率均處于全球霸主地位,日本導(dǎo)航軟件和地圖數(shù)據(jù)還在不斷發(fā)展和更新版本 5。近幾年日本的車載導(dǎo)航軟件很多是基于 ITRON 系統(tǒng)的 6,本文第二章會 具體介紹此系統(tǒng)?,F(xiàn)在主流的導(dǎo)航電子地圖數(shù)據(jù)也是由日本 KIWI 協(xié)會 (KIWI-W Consortium)制定的標(biāo)準(zhǔn) KIWI 地圖數(shù)據(jù)格式。 它是專門針對汽車導(dǎo)航的電子數(shù)據(jù)格式,旨在提供一種通用的電子地圖數(shù)據(jù)的存儲格式,以滿足嵌入式應(yīng)用快速精確和高效的要求。該格式是公開的,任何人都可使用 7。 我國 GPS 車載市場還處在發(fā)展初期 ,從系統(tǒng)的技術(shù)水平與產(chǎn)品的質(zhì)量和成熟程度來說,都是比較落后的。實時交通信息發(fā)布和完善的導(dǎo)航電子地圖的提供與更新機(jī)制, 第 1 章 緒論 -2- 均缺乏實際的解決方案和途徑 8。國內(nèi)從事導(dǎo)航軟件開發(fā)的公司也比較少,大部 分也是在做外包的工作。 1.3. 車載導(dǎo)航的發(fā)展趨勢 導(dǎo)航技術(shù)發(fā)展的動態(tài)和趨勢主要體現(xiàn)在以下幾個方面 9: ( 1) 硬件平臺多樣化 目前的導(dǎo)航產(chǎn)品已經(jīng)形成了包括 CAR-PC、車載 CD-ROM/DVD、掌上電腦和其他多種多樣的平臺。 ( 2) 導(dǎo)航電子地圖的標(biāo)準(zhǔn)化 日本的導(dǎo)航電子地圖標(biāo)準(zhǔn) KIWI、歐盟等國家和地區(qū)的 GDF 地理數(shù)據(jù)文件等都制定了相應(yīng)的導(dǎo)航用電子地圖的規(guī)范與標(biāo)準(zhǔn),為導(dǎo)航系統(tǒng)及智能交通系統(tǒng)的建設(shè)提供了基礎(chǔ)。 ( 3) 無線通信技術(shù)的加入 通過無線通訊可以實現(xiàn)行進(jìn)中的信息查詢及導(dǎo)航電子地圖下載,使得導(dǎo)航系統(tǒng)向 LBS服務(wù)(基于位置的服 務(wù))方向轉(zhuǎn)化。 ( 4) 導(dǎo)航語音識別與合成技術(shù) 如果采用語音接口,對計算機(jī)的訪問時間就可以縮短,而像觸摸按鈕和鍵盤等都可以取消了,這很大程度上提高了導(dǎo)航的效率。 ( 5) 地圖表現(xiàn)形式多樣化 傳統(tǒng)的二維平面式地圖正在被新的更具表現(xiàn)力的三維地圖所取代。 第 2 章 關(guān)鍵技術(shù)介紹 -3- 第 2章 關(guān)鍵技術(shù)介紹 本導(dǎo)航系統(tǒng)采用的是 ITRON 嵌入式系統(tǒng),所用的地圖數(shù)據(jù)是 KIWI 格式的 10。因此有必要對這兩項技術(shù)作簡要介紹。 2.1. ITRON 系統(tǒng) 2.1.1. 系統(tǒng)綜述 ITRON( Industrial the Real-Time Operation System Nucleus)工 業(yè)實時操作系統(tǒng)中心 提出的實時多任務(wù)系統(tǒng)規(guī)范。它具有標(biāo)準(zhǔn)的實時內(nèi)核,適用于任何小規(guī)模的嵌入式系統(tǒng)。 ITRON 系統(tǒng)具有以下特點(diǎn) 11: ( 1) 多任務(wù)支持 ( 2) 事件驅(qū)動基于優(yōu)先級的調(diào)度 ( 3) 任務(wù)間的通信與同步 ( 4) 實時時鐘控制 ( 5) 完全可搶占內(nèi)核硬實時響應(yīng) ITRON 規(guī)范中定義了一系列 C 語言接口庫,應(yīng)用系統(tǒng)可以利用這些接口庫實現(xiàn)應(yīng)用與操作系統(tǒng)的相連。 2.1.2. 任務(wù)及通信 ( 1) Task 任務(wù)是一個具有獨(dú)立功能的無限循環(huán)的程序段的一次運(yùn)行活動。任務(wù)具有動態(tài)性、并行性、異步獨(dú)立性的特點(diǎn)。 動態(tài)性任務(wù)的狀態(tài)是不斷變化的,一般分為休眠態(tài) (dormant), 就緒態(tài) (ready),運(yùn)行態(tài)(running),掛起態(tài) (suspended) ,睡眠態(tài) (sleep)等 12。 并行性是指系統(tǒng)中同時存在多個任務(wù),它們宏觀上是同時運(yùn)行的。 異步獨(dú)立性任務(wù)是系統(tǒng)中獨(dú)立運(yùn)行的基本單元也是內(nèi)核分配和調(diào)度的基本單元每個任務(wù)各自按相互獨(dú)立的不可預(yù)知的速度運(yùn)行,走走停停。 第 2 章 關(guān)鍵技術(shù)介紹 -4- 每個任務(wù)都要安排一個決定其重要性的優(yōu)先級,都有一個無限循環(huán)的程序段規(guī)定其功能,并相應(yīng)有一個數(shù)據(jù)段、堆棧段及一個任務(wù)控制塊 (保存 CPU 的現(xiàn)場、狀態(tài)等 )。 ( 2) Event Flag 在多任務(wù)處理系統(tǒng)中,需要等到一個任 務(wù)終了后,其他任務(wù)再開始啟動的等候功能,這個時候,需要擁有對其他任務(wù)是否終了進(jìn)行判斷的能力, ITRON 系統(tǒng)中提供了 Event Flag來實現(xiàn)這個機(jī)能。 ITRON 系統(tǒng)中,一個 Event Flag 是 ITRON 工作區(qū)中的一個 32 位的變量。 32 位中的每一位都是表示一個事件標(biāo)志,事件標(biāo)志有兩種狀態(tài),設(shè)置( 1)和清除( 0)。當(dāng)一個標(biāo)志處于設(shè)置狀態(tài)時,表示相關(guān)的事件已經(jīng)發(fā)生了,任務(wù)可以使用事件標(biāo)志來向其他任務(wù)發(fā)送信號,表示事件已發(fā)生 13。 一般來說, Event Flag 為任務(wù)之間的等待操作提供了場所,下面是其操作 方法。 圖 2.1 表示了兩個 Task 通過 32Bit Event Flag 傳遞信息的。 3 2 B i t E v e n t F l a gT a s k W a i t QT a s k A T a s k Bs e t _ f l a gw a i t _ f l a gS t a t e m i g r a t i o n 圖 2.1 32Bit Event Flag 使用方法示意圖 任務(wù)間的等候需要能夠傳達(dá) Event 的任務(wù)和等待 Event 發(fā)生的任務(wù),傳達(dá) Event 任務(wù)通過發(fā)行 set_flag 調(diào)用來傳遞信息,另一方面等待 Event 任務(wù)對事件發(fā)行等待調(diào)用,并且參照等候模式。 因為 Event Flag 是一個 32Bit 的位群,所以在進(jìn)行 Event Flag 的設(shè)定的時候可以按照條件的邏輯進(jìn)行設(shè)定 ,主要的邏輯有 And 和 Or 兩種,需要根據(jù)實際情況進(jìn)行有選擇的使用。 And:多個條件同時存在的時候,才滿足任務(wù)的運(yùn)行條件。 Or:當(dāng)設(shè)定的多個條件有一個滿足的時候,運(yùn)行條件成立。 ( 3) MailBox 第 2 章 關(guān)鍵技術(shù)介紹 -5- 為了實現(xiàn)任務(wù)之間的通信功能, ITRON 提供了郵箱。郵箱包含有多任務(wù)應(yīng)用的等待隊列和郵箱專用的信息等待隊列,除了任務(wù)之間的通信功能使用,也作為任務(wù)之間的協(xié)作功能使用。 當(dāng)一個任務(wù)執(zhí)行發(fā)送原語時,有兩種可能性,一種可能是接收者已經(jīng)處于等待狀態(tài);另外一種可能是消息發(fā)送時,接收者沒有處于等待收信狀態(tài)。 消息等待方式的實現(xiàn)方 法是為 Message 提供等待隊列作為緩沖,并且對于從隊列中取得信息的方式提供了兩種方式作為支持:基于 FIFS 的等待機(jī)制和基于優(yōu)先級的等待機(jī)制。 ITRON 系統(tǒng)提供的方法是為任務(wù)提供等待隊列,并且系統(tǒng)分配消息的方式是基于 FIFS方法的,不區(qū)分任務(wù)的優(yōu)先級別。 圖 2.2 表明了 Task 之間通過 MailBox 傳遞信息的使用示例。 T a s k W a i t QT a s k A T a s k Bs n d _ m s gr c v _ m s gM e s s a g e QT a s k Br c v _ m s gT a s k Br c v _ m s gF C F Sm s g _ m a keFIFO 圖 2.2 Task 利用 MailBox 進(jìn)行通信示意圖 在任務(wù)之間的信息通信里,需要給郵箱分配送信的任務(wù)(發(fā)報任務(wù))和接受這個信息的任務(wù)(接受任務(wù))。這時如果郵箱里已經(jīng)有任務(wù)被排列在隊列里,信息就會被傳遞給等待隊列里的任務(wù)中。任務(wù)專用隊列的先頭任務(wù)將會從 Wait 狀態(tài)遷移到 Ready 狀態(tài)。但是如果郵箱中還沒有任務(wù)被排列在隊列中,信息就會被排列到信息專用的隊列中。發(fā)行 snd_msg調(diào)用的任務(wù)不進(jìn)行狀態(tài)遷移 13。 2.2. KIWI 格式地圖數(shù)據(jù) 本文描述的導(dǎo)航系統(tǒng)是用 KIWI 數(shù)據(jù)格式來存儲地圖信息的, KIWI 數(shù)據(jù)的分類主要由 第 2 章 關(guān)鍵技術(shù)介紹 -6- 以下幾部分構(gòu)成 14: Parcel 數(shù)據(jù):主要用于描畫,也被稱作描畫數(shù)據(jù),數(shù)據(jù)的存儲主要的一些坐標(biāo)的記錄,和相關(guān)的屬性。根 據(jù)所存的點(diǎn)、線、面的信息,進(jìn)行顯示其中包括背景、道路、文字。這些數(shù)據(jù)是構(gòu)成地圖的基本元素。 Region 數(shù)據(jù):主要用于徑路探索,這些數(shù)據(jù)的組織形式也是為了方便最優(yōu)路徑的探索。region 數(shù)據(jù)中主要強(qiáng)調(diào)了道路的接續(xù),交通限制,通行方向等屬性,因此能夠應(yīng)用于徑路探索中。 導(dǎo)航數(shù)據(jù):主要用于道路提示導(dǎo)航,就是在車行駛過程中提供一些信息,比如交叉點(diǎn)名稱,道路名稱,前方交叉的道路的目的地,等等。 畫像數(shù)據(jù):提供高速道路上主要交叉點(diǎn)的一些情況,表示各個方向上的目的地。 聲音數(shù)據(jù):保存在道路導(dǎo)航過程中所能提供的所有的聲音 信息。 檢索數(shù)據(jù):保存了地圖數(shù)據(jù)中主要的點(diǎn)的信息,能夠提供這個點(diǎn)上具有的地圖要素的詳細(xì)信息。 描畫參數(shù)數(shù)據(jù):保存地圖描畫時各種要素描畫的參數(shù)信息,比如某某道路需要描畫多寬,某個背景需要使用什么顏色來描畫,某種文字需要描畫成什么顏色等等。 在 KIWI 數(shù)據(jù)的存儲方面,地圖采用了分層和分塊處理。為了滿足對于不同比例尺條件下數(shù)據(jù)處理或檢索的需要,把地圖分層( Level)存儲。一般在最底層存儲最詳細(xì)的數(shù)據(jù),而上層逐漸進(jìn)行數(shù)據(jù)的抽取,在進(jìn)行數(shù)據(jù)處理或檢索時,按從上向下的順序處理,以最快的速度對數(shù)據(jù)進(jìn)行處理。在分層數(shù)據(jù)的 基礎(chǔ)上對數(shù)據(jù)進(jìn)行分塊存儲,便于數(shù)據(jù)的取得和管理,從而達(dá)到了快速讀取數(shù)據(jù)的目的 15。 第 3 章 系統(tǒng)分析 -7- 第 3章 系統(tǒng)分析 3.1. 系統(tǒng)功能 車載導(dǎo)航系統(tǒng)的功能有很多,包括定位,地圖顯示,導(dǎo)航,查詢和娛樂等功能。本文只是針對導(dǎo)航部分的功能。 本文將在汽車導(dǎo)航系統(tǒng)的導(dǎo)航模塊中添加兩個擴(kuò)展功能,功能名稱分別是“收費(fèi)站導(dǎo)航”和“道路時間限制導(dǎo)航”:在駕駛者行駛過程中,當(dāng)自車前面有收費(fèi)站或有時間限制的道路等情況時,給以文字、圖示和聲音的提示,起到預(yù)警的作用。 3.1.1. 道路限制導(dǎo)航模塊 在道路時間限制功能的需求文檔中規(guī)定的新增功能為: 當(dāng)自車處于 on route 狀態(tài), 進(jìn)入時間限制區(qū)間時,進(jìn)行導(dǎo)航。 ( 1) 概要導(dǎo)航提示: 如果行車路線含有時間限制的道路,在概要導(dǎo)航提示的時候提示:在導(dǎo)航屏幕上彈出文字(以下簡稱為 ONS, on screen 的縮寫)“ Time restricted roads on this route.”。 ( 2) 時間限制 Mark 表示: 時間限制道路進(jìn)入點(diǎn)的導(dǎo)航點(diǎn) Mark 表示為 。 ( 3) 時間限制 ONS 警告: 當(dāng)汽車進(jìn)入時間限制的道路時,進(jìn)行警告。彈出 ONS:“ You will reach time restricted roads. Please respect the local traffic regulations.”;并且進(jìn)行語音提示:“ Traffic restrictions may apply. Please respect the local traffic regulations.”。 ( 4) 時間限制擴(kuò)大圖 Mark 表示: 車輛進(jìn)入具有時間限制的道路上時正常為其導(dǎo)航,但是在導(dǎo)航屏幕左側(cè)的擴(kuò)大圖中岔路點(diǎn)的 Mark 更改為 。 ( 5) TurnList 表示: 行車線路含有時間限制道路,在導(dǎo)航屏幕左側(cè)提示岔路場合如何轉(zhuǎn)向的列表(以下稱為 TurnList)中將含有時間限制道路的岔路場合 Mark 顯示 為 灰色 的 箭頭 。 第 3 章 系統(tǒng)分析 -8- 3.1.2. 收費(fèi)站導(dǎo)航模塊 根據(jù)項目需求說明書,收費(fèi)站導(dǎo)航的新增功能為: ( 1) Turnlist 中收費(fèi)站導(dǎo)航提示 : 把行車路線上存在的收費(fèi)站作為 TurnlistPoint 進(jìn)行 List 化。即 在 Turnlist 中添加收費(fèi)站信息,進(jìn)行導(dǎo)航提示。 導(dǎo)航提示內(nèi)容: 收 費(fèi)站名稱 ,當(dāng)該收費(fèi)站沒有名稱時,顯示文本 TOLL BOOTH 車輛到收費(fèi)站的距離 /收費(fèi)站到 TurnlistPoint 的 距離 收費(fèi)站圖標(biāo) ( 2) 收費(fèi)站擴(kuò)大圖提示 : 行車線路上存在的收費(fèi)站以擴(kuò)大圖的形式進(jìn)行提示。 導(dǎo)航提示內(nèi)容:收費(fèi)站設(shè)計圖片如圖 3.1 所示。 圖 3.1 收費(fèi)站 mark 圖片 ( 3) 輔助導(dǎo)航中收費(fèi)站提示 : 在輔助導(dǎo)航中添加收費(fèi)站的導(dǎo)航提示 。 文本 TOLL BOOTH 車輛到收費(fèi)站的距離 收費(fèi)站圖標(biāo) ( 4) 收費(fèi)站聲音提示 當(dāng)車輛到收費(fèi)站的距離為 L時,發(fā)聲。 L 滿足聲音提示條件如表 3.1 所示。 第 3 章 系統(tǒng)分析 -9- 表 3.1 聲音輸出時間 進(jìn)入道路種別 輸出時機(jī) 一般道 Residential L=400m Non-residential L=400m 高速進(jìn)出道 (SA.PA 道 ) L=800m 都市間高速 L=2000m 其中 SA 代表 Service Area; PA 代表 Parking Area。 3.1. 系統(tǒng)結(jié)構(gòu) 3.1.1. 系統(tǒng)功能框架 導(dǎo)航系統(tǒng)功能結(jié)構(gòu)如圖 3.2 所示。本文所論述的內(nèi)容在其中的 DG 模塊。 導(dǎo) 航 系 統(tǒng)V PM A PD GR PN O T EV I C S V I 圖 3.2 系統(tǒng)功能結(jié)構(gòu)圖 ( 1) HMI (Human & Machine Interface) HMI 實現(xiàn)的是用戶的操作界面,是用戶與導(dǎo)航系統(tǒng)交互的紐帶。用戶通過 HMI 告訴導(dǎo)航系統(tǒng)想要進(jìn)行的操作, 導(dǎo)航系統(tǒng)再通過 HMI 顯示出來。達(dá)到人機(jī)交互的目的。 ( 2) DG (Driver Guidance) DG 在司機(jī)需要的時候,提示正確的行進(jìn)方向,能夠準(zhǔn)確到達(dá)目的地的動態(tài)和靜態(tài)信息等。其主要功能是:交叉點(diǎn)擴(kuò)大圖和聲音提示。 第 3 章 系統(tǒng)分析 -10- ( 3) MAP MAP 即地圖描畫,導(dǎo)航系統(tǒng)中的地圖描畫是指、根據(jù)應(yīng)顯示的地點(diǎn)位置從地圖 Data base 讀入地點(diǎn)信息,并根據(jù)描畫算法進(jìn)行描畫及顯示。 ( 4) NOTE NOTE 組件為用戶提供信息的檢索和管理功能。包括導(dǎo)航信息和用戶自定義信息兩部分。導(dǎo)航信息是導(dǎo)航系統(tǒng)提供的數(shù)據(jù),例如 Disc 數(shù)據(jù)、 Vics 數(shù)據(jù)等,而 用戶自定義信息是用戶自己設(shè)定的信息,例如 Mark 等。 用戶檢索時可以檢索所有兩種信息,提供信息列表,詳細(xì)情報等功能。而管理只是針對用戶自定義信息,主要是提供了登錄,刪除,修改等功能 ( 5) RP (Route Production/Route Planning) RP 就是在給定自車位置和目的地的情況下,按照用戶設(shè)定的不同條件,計算出一條或多條從自車位置到目的地的花費(fèi) (根據(jù)用戶的設(shè)定,可能是指時間,費(fèi)用等 )最少的最優(yōu)路以供用戶使用。 ( 6) VP (Vehicle Position) VP 即車輛定位,即:車行過程中,實時計算 出車輛位置。車輛定位方法有自行定位法、 GPS 全球衛(wèi)星定位法、復(fù)式定位法、地圖匹配法等。 3.1.2. DG 模塊概要 DG(Driver Guidance)即對駕駛員的引導(dǎo)。對用戶來說,是整個導(dǎo)航系統(tǒng)中最重要,最基本的功能。本文研究論述的內(nèi)容就是這個模塊中的一部分,在此進(jìn)一步的分析導(dǎo)航模塊和其它模塊的聯(lián)系,如圖 3.3 所示。 H M I ( 畫 面 表 示 )A P I導(dǎo) 航徑 路 描 畫檢 索 D S 聲 音現(xiàn) 在 地 圖 3.3 導(dǎo)航模塊與其它模塊的關(guān)系圖 第 3 章 系統(tǒng)分析 -11- 導(dǎo)航模塊主要是從徑路、現(xiàn)在地、檢索、 DS 四個模塊中取得信息,做成相應(yīng)功能所需要的數(shù)據(jù),然后發(fā)送給描畫,聲 音,和 API 模塊。最終直接體現(xiàn)給用戶信息的是 HMI和聲音這兩個模塊。 3.2. 信息流程 現(xiàn)在的導(dǎo)航系統(tǒng)主要是通過處理接收到的位置、道路、自身信息等,計算并表示出用戶要求的道路,從而起到引導(dǎo)用戶的作用。并能夠根據(jù)用戶的選擇來完成一些其他的動作。下面將分以下幾部分來介紹導(dǎo)航系統(tǒng)的數(shù)據(jù)。 3.2.1. 信息輸入 信息的輸入主要有以下幾部分來組成: GPS 信息、 KIWI 數(shù)據(jù)、 VICS 情報、用戶操作要求。 ( 1) GPS 信息 GPS 衛(wèi)星定期地發(fā)送時刻情報和衛(wèi)星軌道情報。導(dǎo)航系統(tǒng)實時接收 GPS 的信息,來確定自車位置、速度等信息,通過這些信息的進(jìn)一步處 理,做成為下一步的計算提供的有效數(shù)據(jù)。 ( 2) KIWI 數(shù)據(jù) 包括導(dǎo)航數(shù)據(jù)、畫像數(shù)據(jù)、聲音數(shù)據(jù)、檢索數(shù)據(jù)。 ( 3) VICS 情報 VICS 是 Vehicle Information and Communication System 的簡稱。在 VICS Center 收集并編輯交通信息,將阻塞和交通限制等的道路交通信息實時發(fā)送出去,由車載導(dǎo)航系統(tǒng)以文字和圖形表示。 VICS 信息 24 小時 365 日提供。它的目的很明確:保證行車的快速,安全。 ( 4) 用戶操作要求 用戶對導(dǎo)航系統(tǒng)的設(shè)置,功能使用等信息。在 HMI 中通過 API 和導(dǎo)航系統(tǒng)交互,將信息發(fā) 送過去。 3.2.2. 信 息處理及輸出 通過導(dǎo)航系統(tǒng)的處理,會得到駕駛者要求的功能。輸出是處理的結(jié)果表示,這里把處理和輸出合在一起來闡述。 汽車導(dǎo)航系統(tǒng)功能龐大,本文選取幾個相關(guān)的功能點(diǎn)來闡述。 1) 車輛定位 第 3 章 系統(tǒng)分析 -12- 獲得自車位置情報,包括 On Road / Off Road 情報、經(jīng)緯度、方向、行進(jìn) /停止、速度、道路上的位置、 GPS 等。如果由于種種原因產(chǎn)生汽車偏離的現(xiàn)象,導(dǎo)航儀還會進(jìn)行補(bǔ)正,包括距離補(bǔ)正、感度補(bǔ)正、安裝角度補(bǔ)正。同時還會進(jìn)行修正,主要有位置修正、方位修正。最終取得車輛位置的結(jié)果。 2) 徑路計算 為了提高速度,向用戶提供良 好的交互界面,探索徑路分別從自車位置和目的地位置雙方向進(jìn)行道路的擴(kuò)展。一直到兩側(cè)的擴(kuò)展道路有一定數(shù)量的重合后,方可確定一條最優(yōu)的道路。 3) 導(dǎo)航計算及顯示功能 導(dǎo)航提供了交差點(diǎn)、目的地、經(jīng)由地、收費(fèi)站、交通限制等具體地點(diǎn)的導(dǎo)航。比如當(dāng)前方有交叉點(diǎn)時,會顯示交叉點(diǎn)擴(kuò)大圖、 Real 3D 交叉點(diǎn)擴(kuò)大圖、車線情報、方面看板等信息,同時也會有聲音提示,從而完成導(dǎo)航功能。 3.3. 開發(fā)環(huán)境 汽車導(dǎo)航系統(tǒng)是基于 Itron 系統(tǒng)開發(fā)的,本系統(tǒng)同樣是基于 Itron 系統(tǒng),但要求在windows 系統(tǒng)下模擬實現(xiàn),到的編譯器主要有兩個: cygwin 編譯環(huán)境和 .net 編譯器。由于整個工程的文件很多,利用 .net 編譯器的 make 命令能很方便的編譯多個工程文件。本設(shè)計利用 cygwin 編譯環(huán)境來產(chǎn)生庫文件,用 .net 來整合編譯整個工程。另外需要在 PCNavi 上進(jìn)行測試。 第 4 章 系統(tǒng)設(shè)計 -13- 第 4章 系統(tǒng)設(shè)計 4.1. 架構(gòu)概述 從系統(tǒng)層次的角度看,本系統(tǒng)分為四層,從下到上依次為 PF(Platform)、 Server、Application 和 UI。 HMI 層負(fù)責(zé)顯示, Application 層為功能層,本文論述的內(nèi)容處于Application 層中的 DG 模塊。系統(tǒng)的框架圖如圖 4.1 所示。 H M IP e r i S e r v e rL i b r a r yV P M A P D G R PN O T EV I C SV S SV o i c eG P S C I SO S D D F S G U IC l o c kI n sUIApplicationServerPlatformN a v i S e r v e rF r a m e 圖 4.1 系統(tǒng)框架圖 本導(dǎo)航系統(tǒng)是基于 Itron 操作系統(tǒng)開發(fā)的,和一般的嵌入式操作系統(tǒng)類似, Itron 操作系統(tǒng)是支持多任務(wù)、事件驅(qū)動、基于優(yōu)先級調(diào)度、完全可搶占內(nèi)核硬實時響應(yīng)的操作系統(tǒng)?;?Itron 的機(jī)制,整個導(dǎo)航系統(tǒng)劃分為多個 Task,形成多進(jìn)程的系統(tǒng),所以我們才可以在系統(tǒng)完成導(dǎo)航的同時可以聽音樂、看電影。從系統(tǒng)的具體實現(xiàn)方式看,導(dǎo)航系統(tǒng)中的每一個大功能,例如導(dǎo)航,徑路,檢索等都是有許多 Task 協(xié)作實現(xiàn)的。整個導(dǎo)航系統(tǒng)中不同的 Task 之間的通信采取的是 message 和 Event 等機(jī)制進(jìn)行通信的。由于本文是在已有導(dǎo)航系統(tǒng)基礎(chǔ)上進(jìn)行部分功能模塊的更改,因此以下將著重于系統(tǒng) Task 級的設(shè)計。 第 4 章 系統(tǒng)設(shè)計 -14- 4.2. 系統(tǒng) Task 級設(shè)計 本文論述的主要內(nèi)容位于系統(tǒng)的導(dǎo)航模塊,該模塊在導(dǎo)航系統(tǒng)框架中的位置在圖 3.2中有過介紹。下面具體介紹本文對該模塊的 Task 級設(shè)計內(nèi)容。圖 4.2 是導(dǎo)航模塊系統(tǒng)的 Task級設(shè) 計圖。 H M IA P IR P V P數(shù) 據(jù) 整 合 導(dǎo) 航 控 制數(shù) 據(jù) 提 取描 畫 V I11123 456 789107 圖 4.2 系統(tǒng) Task 級設(shè)計 其中 RP、 VP、 VI、 API 和 HMI 是已有導(dǎo)航系統(tǒng)系統(tǒng)已經(jīng)實現(xiàn)了的,不需要改變。本文 涉及到的需要改變的地方為矩形線框內(nèi)的部分。比較重要的數(shù)據(jù)整合,導(dǎo)航控制,數(shù)據(jù)提取這三個任務(wù)。數(shù)字代表 Task 之間發(fā)送的信息。具體說明參照表 4.1。 表 4.1 Message 說明表 序號 Message 說明 序號 Message 說明 1 徑路計算結(jié)果通知 6 Turnlist 送信通知 2 現(xiàn)在地信息 7 導(dǎo)航輸出信息通知 3 導(dǎo)航信息取得要求 8 聲音再生要求 4 導(dǎo)航信息取得應(yīng)答 9 event 通知 5 導(dǎo)航 Point 通知 10 API 函數(shù)調(diào)用 徑路計算結(jié)果通知是徑路模塊 ( RP) 發(fā)送給數(shù)據(jù) 整合任務(wù)的信息,這個信息是在用戶 第 4 章 系統(tǒng)設(shè)計 -15- 設(shè)定了目的地后,徑路模塊接收 GPS、 VICS、 KIWI 等信息,然后通過相應(yīng)的算法計算出來的從現(xiàn)在車輛所在位置到目的地的一條最佳路線。經(jīng)過 3、 4 過程數(shù)據(jù)提取任務(wù)會把從數(shù)據(jù)整合任務(wù)接收到的信息經(jīng)過處理再進(jìn)行返回。 6、 7、 8 則關(guān)系到導(dǎo)航屏幕上的輸出和聲音上的輸出。 4.3. 道路限制導(dǎo)航模塊 本文論述的道路限制導(dǎo)航模塊遵循的上述設(shè)計方式。在具體細(xì)節(jié)方面有一些不同。在道路限制導(dǎo)航模塊中,導(dǎo)航控制任務(wù)需要向 API 層發(fā)送 ONS 警告的表示通知,另外在描畫任務(wù)中,還需要有一個地圖數(shù)據(jù)取得的過程。其余部 分都與 4.1 中論述的一樣。 完成此模塊的關(guān)鍵點(diǎn)是在取得地圖數(shù)據(jù)整合必要的導(dǎo)航數(shù)據(jù)的處理中,要添加對取得的數(shù)據(jù)中的道路屬性信息進(jìn)行判斷和處理。在導(dǎo)航控制中,增加相應(yīng)的對時間限制導(dǎo)航的控制,以達(dá)到對新增內(nèi)容的要求。 4.3.1. 功能點(diǎn)及對應(yīng) Task 分析設(shè)計 在對 Task 間的關(guān)系設(shè)計完成后 ,需要設(shè)計出道路限制模塊實現(xiàn)的功能點(diǎn)與系統(tǒng) Task 的對應(yīng)關(guān)系。具體如表 4.2 所示 。 表 4.2 道路限制模塊功能點(diǎn)與系統(tǒng) Task 對應(yīng)關(guān)系 功能點(diǎn) 序號 功能任務(wù) 對應(yīng) Task 時間限制道路 mark的表示 1 區(qū)分時間限制道路和普通道路 數(shù) 據(jù)整合 2 根據(jù) 導(dǎo)航 交叉點(diǎn) mark 的表示 種別來分別表示普通道路 mark 和 時間限制道路 mark 描畫 時間限制道路聲音提示 3 區(qū)分時間限制道路和普通道路 數(shù)據(jù)整合 4 在 進(jìn) 入 時間限 制道路 時 , 發(fā)出提示聲音 。 導(dǎo)航控制 5 根據(jù)導(dǎo)航控制發(fā)送過來的聲音 ID 列,進(jìn)行發(fā)聲 VI 時間限制制道路擴(kuò)大圖的表示 6 區(qū)分時間限制道路和普通道路 數(shù)據(jù)整合 7 在進(jìn)入時間限制道路時和進(jìn)入后,擴(kuò)大圖表示 導(dǎo)航控制 8 進(jìn)行擴(kuò)大圖表示和擴(kuò)大圖上限制 mark 的表示變更 地圖描畫 第 4 章 系統(tǒng)設(shè)計 -16- 續(xù)表 4.2 道路限制模塊 功能點(diǎn)與系統(tǒng) Task 對應(yīng)關(guān)系 功能點(diǎn) 序號 功能任務(wù) 對應(yīng) Task 開始導(dǎo)航時限制道路 警告 ons表示 9 向 HMI 提供函數(shù)接口,用來判斷當(dāng)前徑路上是否有時間限制道路 API 10 根據(jù) API 返回的信息,表示警告 ons HMI 初期 導(dǎo)航時限制道路警告 ons表示 11 區(qū)分時間限制道路和普通道路 數(shù)據(jù)整合 12 進(jìn)入時間限制道路時,向 API 發(fā)送 限制警告ons 的表示通知 導(dǎo)航控制 13 向 HMI 提供函數(shù)接口,用來判斷當(dāng)前徑路上是否有時間限制道路 API 14 根據(jù) API 返回的信息,表示時間 限制道路警告 ons HMI 限制道路turnlist 表示 15 區(qū)分時間限制道路和普通道路 數(shù)據(jù)整合 16 根據(jù) 導(dǎo)航類型 設(shè)定 turnlist 的 node 種別,向API 發(fā)送 turnlist 信息通知 數(shù)據(jù)整合 17 將時間限制道路 turnlist 的分歧箭頭置灰 HMI 由上表可見數(shù)據(jù)整合 Task 的任務(wù)就是區(qū)分時間限制道路和普通道路,這也是該模塊的核心任務(wù)所在,導(dǎo)航控制 Task 的任務(wù)是向 HMI、 VI、 API 和描畫任務(wù)發(fā)送通知讓他們進(jìn)行語音或文字的提示。 HMI 和 VI 的任務(wù)就是最終體現(xiàn)給用戶文字或聲音 提示。具體實現(xiàn)時, VI 模塊需要根據(jù)導(dǎo)航控制發(fā)送過來的聲音 ID 到存儲模塊中提取聲音進(jìn)行發(fā)聲,描畫模塊在進(jìn)行擴(kuò)大圖標(biāo)是的時候需要從地圖 Database中提取更細(xì)化的地圖數(shù)據(jù)進(jìn)行局部地圖的放大表示。 Turnlist 表示與本模塊的關(guān)系不是很大,此項功能的完成是改變 TURN_INF全局變量, HMI 會具體做處理。 根據(jù)功能點(diǎn)的對應(yīng)任務(wù),在 Task 之間的 Msg 時序中進(jìn)行設(shè)計。 ( 1) 時間限制道路 Mark 表示,如圖 4.3 所示。 第 4 章 系統(tǒng)設(shè)計 -17- 現(xiàn) 在 地 導(dǎo) 航 控 制1 . 現(xiàn) 在 地 信 息 7 . 導(dǎo) 航 輸 出 信 息 通 知 6 . 描 畫 時 機(jī) 判 定數(shù) 據(jù) 整 合2 . n o d e 信 息 取 得 要 求 3 . n o d e 信 息 取 得 應(yīng) 答 4 . 導(dǎo) 航 數(shù) 據(jù) 整 合5 . 導(dǎo) 航 p o i n t 通 知 數(shù) 據(jù) 提 取8 . 描 畫 處 理導(dǎo) 航 數(shù) 據(jù) 整 合 時需 區(qū) 分 時 間 限 制道 路 和 普 通 道 路地 圖 描 畫 圖 4.3 時間限制道路 Mark 表示時 序圖 需要注意的是導(dǎo)航控制需要對描畫時機(jī)進(jìn)行判定,決定何時輸出導(dǎo)航信息。最后交由描畫任務(wù)進(jìn)行處理。時間限制道路 Mark 表示就是嚴(yán)格按照上述的時序?qū)崿F(xiàn)的。 ( 2) 時間限制道路聲音提示,如圖 4.4 所示。 導(dǎo) 航 控 制2 . 聲 音 發(fā) 生 要 求 1 .聲 音 p h r a s e 做 成 和 時 機(jī) 判 定3 .發(fā) 聲 處 理 處 理聲 音 控 制4 .聲 音 發(fā) 生 應(yīng) 答 圖 4.4 時間限制道路聲音提示時序圖 第 4 章 系統(tǒng)設(shè)計 -18- 時間道路限制聲音提示在數(shù)據(jù)提取、數(shù)據(jù)整合兩個任務(wù)的實現(xiàn)方式上和 Mark 表示是一樣的。只是在導(dǎo)航控制和提示方式上有一些區(qū)別。導(dǎo)航控制任務(wù)接收到數(shù)據(jù)整合發(fā)送來的信息,需要進(jìn)行聲音 phrase 做成和進(jìn)行時機(jī)判定在正確的時候?qū)⒙?音發(fā)聲要求發(fā)送給聲音控制處理。 ( 3) 時間限制道路 turnlist 表示 時序圖如圖 4.5 所示。 現(xiàn) 在 地 數(shù) 據(jù) 整 合1 . 現(xiàn) 在 地 信 息 5 . T u r n l i s t 送 信 通 知 2 . n o d e 信 息 取 得 要 求 3 . n o d e 信 息 取 得 應(yīng) 答 4 . 導(dǎo) 航 數(shù) 據(jù) 整 合A P I數(shù) 據(jù) 提 取在 T U R N L _ I N F 的 n d _ k i n d 中 增 加時 間 限 制 道 路 的 n o d e k i n d 。對 于 相 應(yīng) 的 n d _ k i n d , 在 h m i 側(cè)會 分 別 做 相 應(yīng) 的 處 理 。數(shù) 據(jù) 整 合 時需 區(qū) 分 時 間 限 制道 路 和 普 通 道 路 圖 4.5 時間限制道路 turnlist 表示時序圖 時間限制道路 turnlist 表示 同樣需要數(shù)據(jù)整合和數(shù)據(jù)提取任務(wù)協(xié)作得出必要的導(dǎo)航數(shù)據(jù),不同的是,數(shù)據(jù)提取任務(wù)向 API 發(fā)送 Turnlist 送信通知,在 TURNL_INF 的 nd_kind中增加時間限制道路的 nodekind。對于相應(yīng)的 nd_kind,在 hmi 層會分別做相應(yīng)的處理。 ( 4) 時間限制道路擴(kuò)大圖表示。 擴(kuò)大圖表 示功能點(diǎn)在數(shù)據(jù)整合和數(shù)據(jù)處理任務(wù)上的設(shè)計與 Turnlist 表示相同,因此下面不再贅述,圖 4.6表示的內(nèi)容是擴(kuò)大圖表示在時序圖設(shè)計上與 Turnlist表示上的不同之處。主要體現(xiàn)在導(dǎo)航控制、地圖描畫和 API 三個部分。導(dǎo)航控制模塊需要先將導(dǎo)航輸出信息通知發(fā)送給 API,由 API 將導(dǎo)航圖的表示要求發(fā)送給地圖描畫模塊。 第 4 章 系統(tǒng)設(shè)計 -19- 導(dǎo) 航 控 制地 圖 描 畫1 .導(dǎo) 航 圖 準(zhǔn) 備 要 求2 .導(dǎo) 航 圖 準(zhǔn) 備 應(yīng) 答3 . 導(dǎo) 航 圖 時 機(jī) 判 定A P I4 . 導(dǎo) 航 輸 出 信 息 通 知5 . 導(dǎo) 航 圖 表 示 要 求6 . 擴(kuò) 大 圖 表 示時 間 限 制 道 路在 初 期 導(dǎo) 航 時表 示 擴(kuò) 大 圖 圖 4.6 時間限制道路擴(kuò)大圖表示時序圖 ( 5) 時間限制道路 初期 導(dǎo)航警告 ons 表示 ,如圖 4.7 所示。 導(dǎo) 航 控 制6 . 聲 音 發(fā) 聲 要 求 7 . 聲 音 發(fā) 聲 應(yīng) 答 7 . 導(dǎo) 航 輸 出 信 息 通 知 現(xiàn) 在 地 數(shù) 據(jù) 整 合1 . 現(xiàn) 在 地 信 息 2 . n o d e 信 息 取 得 要 求 3 . n o d e 信 息 取 得 應(yīng) 答 4 . 導(dǎo) 航 數(shù) 據(jù) 整 合5 . 導(dǎo) 航 p o i n t 通 知 數(shù) 據(jù) 處 理聲 音 控 制 A P I7 . 發(fā) 聲 處 理8 . O N S 處 理6 . 導(dǎo) 航 控 制 圖 4.7 時間限制道路 初期 導(dǎo)航警告 ons 表 示時序圖 第 4 章 系統(tǒng)設(shè)計 -20- ONS 警告比較復(fù)雜,如上圖所示。 ONS 的文字顯示需要導(dǎo)航控制給 API 發(fā)送導(dǎo)航輸出信息通知。由 API 進(jìn)行 ONS 處理。 ONS 的聲音提示需要導(dǎo)航控制給聲音控制發(fā)送發(fā)聲要求,聲音控制進(jìn)行發(fā)聲處理。在道路限制導(dǎo)航模塊前期的工作都是有數(shù)據(jù)整合和數(shù)據(jù)提取這兩個任務(wù)完成的,導(dǎo)航控制起到了一個橋梁作用,同樣也是一個時機(jī)決策的關(guān)鍵任務(wù)。然后根據(jù)具體功能由 API、描畫、 HMI 和聲音控制實現(xiàn)。 4.3.2. 重要函數(shù)設(shè)計 接口函數(shù)分為模塊間接口函數(shù)和模塊內(nèi)接口函數(shù)。模塊間接口函數(shù) 主要來完成不同模塊之間的信息接收和發(fā)送的功能,而模塊內(nèi)接口函數(shù)是實現(xiàn)同一模塊中的不同 Task 的信息接收和發(fā)送的功能。本設(shè)計主要在原有函數(shù)中保證原有功能不變的情況下,為了不改變此模塊和其他模塊通信接口,在原有函數(shù)基礎(chǔ)上來添加新增的功能點(diǎn)。從而達(dá)到正確接收和發(fā)送所要求信息的功能。 ( 1) lmk_ginf_regu_pp() 在本函數(shù)設(shè)計中,通過影響 acs_kpinf , gdlst -regu_cont 等全局變量的標(biāo)志位或者值,觸發(fā)模塊的函數(shù)判定條件,對全局變量的內(nèi)容進(jìn)行更改。表 4.3 為函數(shù)設(shè)計表。 表 4.3 lmk_ginf_regu_pp 函數(shù)說明 ( 2) dsp_gdcrs_inf_kind_gc() 表 4.4 為 dsp_gdcrs_inf_kind_gc 的函數(shù)設(shè)計表 函數(shù)名 lmk_ginf_regu_pp 文件名 Lmk_guide_set.c 功能概要 道路導(dǎo)航內(nèi)容設(shè)定處理 記述形式 I4 lmk_ginf_regu_pp (ACS_KPNT_INF_PP *acs_kpinf, U1 *gdlst ) 參數(shù) 類型 變量名 I/O 說明 ACS_KPNT_INF_PP *acs_kpinf I 導(dǎo)航點(diǎn)數(shù)據(jù)首地址信息 U1 *gdlst I 導(dǎo)航 list地址 返回值 類型 I4 說明 值 PP_OK 正常結(jié)束 PP_NG 異常結(jié)束 詳細(xì)說明 對全局的導(dǎo)航數(shù)據(jù)的內(nèi)容進(jìn)行設(shè)置,追加了對時間限制導(dǎo)航的數(shù)據(jù)的更新部分。對時間限制道路的信息,及時保存到變量中。 第 4 章 系統(tǒng)設(shè)計 -21- 表 4.4 dsp_gdcrs_inf_kind_gc 函數(shù)說明 在本函數(shù)中 ,根據(jù)徑路導(dǎo)航內(nèi)容的取得結(jié)果,對導(dǎo)航 Pattern 進(jìn)行判斷,對不表示為交差點(diǎn) mark 的導(dǎo)航對象不做處理。需要表示的將標(biāo)志位置 1。從而返回導(dǎo)航交差點(diǎn)專用信息( u4kind)給上級函數(shù)使用。 4.4. 收費(fèi)站導(dǎo)航模塊 本文中的收費(fèi)站導(dǎo)航模塊遵循 4.1 中論述系統(tǒng)設(shè)計方式。具體細(xì)節(jié)有所不同。在此模塊中,導(dǎo)航控制和描畫之間需要發(fā)送導(dǎo)航圖準(zhǔn)備要求和導(dǎo)航圖準(zhǔn)備應(yīng)答的信息。描畫內(nèi)部需要有一個 Image 請求的過程。另外 API 層需要向描畫任務(wù)發(fā)送導(dǎo)航圖表示要求。 完成此模塊的關(guān)鍵點(diǎn)是對收費(fèi)站的判斷和處理的增加,需要在全局結(jié)構(gòu)體中添加新的標(biāo)志位,以便在導(dǎo)航數(shù)據(jù)整合的時候,能夠識別并正確作成收費(fèi)站的相應(yīng)數(shù)據(jù)。另外,在對 Package 外部的交互中,也要對 Package 之間的 Message 增加相應(yīng)的附加信息。只有這樣才能正確實現(xiàn)收費(fèi)導(dǎo)航。 4.4.1. 功能點(diǎn)及對應(yīng) Task 分析設(shè)計 在對 Task 間的關(guān)系設(shè)計完成后,需要設(shè)計出收費(fèi)站導(dǎo)航模塊實現(xiàn)的功能點(diǎn)與系統(tǒng) Task的對應(yīng)關(guān)系,具體如表 4.5 所示。 函數(shù)名 dsp_gdcrs_inf_kind_gc 文件名 Dsp_gdcrs.c 功能概要 導(dǎo)航交差點(diǎn)專用信息設(shè)定 記述形式 U2 dsp_gdcrs_inf_kind_gc ( T_GUD_PT_GC *_gui_pnt, GPT_KRDT *_p_krdt) 參數(shù) 類型 變量名 I/O 說明 T_GUD_PT_GC *_gui_pnt I 導(dǎo)航交差點(diǎn)的基本數(shù)據(jù)的address GPT_KRDT *_p_krdt I 徑路數(shù)據(jù)的 address 返回值 類型 U4 說明 值 u4kind 導(dǎo)航交差點(diǎn)專用信息 詳細(xì)說明 對局部變量 u4kind進(jìn)行設(shè)定, return給上級函數(shù)使用。對時間限制部分的處理在 switch中的 PATT_ID_DD處。 第 4 章 系統(tǒng)設(shè)計 -22- 表 4.5 收費(fèi)導(dǎo)航功能點(diǎn)與系統(tǒng) Task 對應(yīng)關(guān)系 功能點(diǎn) 序號 功能任務(wù) 相關(guān) Task Turnlist中收費(fèi)站mark的表示 1 增加收費(fèi)站標(biāo)志位判斷,處理收費(fèi)站 數(shù)據(jù) 數(shù)據(jù)整合 2 根據(jù)設(shè)定 turnlist 的 node 種別,向 API 發(fā)送turnlist 信息通知 。 數(shù)據(jù)整合 3 在 turnlist 中顯示收費(fèi)站 mark HMI 收費(fèi)站擴(kuò)大圖的表示 4 增加收費(fèi)站標(biāo)志位判斷,處理收費(fèi)站數(shù)據(jù) 數(shù)據(jù)整合 5 在交差點(diǎn)導(dǎo)航中,對收費(fèi)站的 Pattern 進(jìn)行判斷和導(dǎo)航控制 導(dǎo)航控制 6 進(jìn)行擴(kuò)大圖表示 地圖描畫 輔助 導(dǎo)航上的收費(fèi)站顯示 7 增加收費(fèi)站標(biāo)志位判斷,處理收費(fèi)站數(shù)據(jù) 數(shù)據(jù)整合 8 根據(jù)收費(fèi)站的導(dǎo)航類型和該對應(yīng)的導(dǎo)航時機(jī)設(shè)定 Message 中的信息, 發(fā)送 Message 導(dǎo)航控制 9 在 輔助 導(dǎo)航區(qū)域顯示收費(fèi)站信息 HMI 收費(fèi)站聲音導(dǎo)航 10 增加收費(fèi)站標(biāo)志位判斷,處理收費(fèi)站數(shù)據(jù) 數(shù)據(jù)整合 11 根據(jù)收費(fèi)站的導(dǎo)航類型和該對應(yīng)的導(dǎo)航時機(jī)設(shè)定 Message 中的信息,發(fā)送 Message 導(dǎo)航控制 12 根據(jù)導(dǎo)航控制發(fā)送過來的音聲 ID 列,進(jìn)行發(fā)聲 VI 上表中很重要的一點(diǎn)是數(shù)據(jù)整合 Task 中增加收費(fèi)站標(biāo)志位判斷,處理收費(fèi)站數(shù)據(jù)。這一點(diǎn)是其它 Task 工作的基礎(chǔ)和依據(jù)。另外比較特殊的一點(diǎn)是 HMI 中的次導(dǎo)航區(qū)域顯示收費(fèi)站信息。其它的與道路限制導(dǎo)航的設(shè) 計都一樣遵循 4.1 中所論述的。 根據(jù)功能點(diǎn)及其相對應(yīng)的系統(tǒng) Task,在 Task 之間的 Msg 時序中進(jìn)行設(shè)計 。 ( 1) Turnlist 中收費(fèi)站 mark 的時序 表示 如圖 4.8 所示。 需要注意的是在導(dǎo)航數(shù)據(jù)整合時增加對收費(fèi)站 Pattern 的判斷,作成收費(fèi)站導(dǎo)航數(shù)據(jù)。本文主要設(shè)計的是導(dǎo)航數(shù)據(jù)做成的部分,前期的數(shù)據(jù)處理仍然是由數(shù)據(jù)整合和數(shù)據(jù)提取任務(wù)完成的。由于此功能是在一開始的 Turnlist 顯示的,所以不需要有導(dǎo)航控制任務(wù)進(jìn)行時機(jī)判定。 第 4 章 系統(tǒng)設(shè)計 -23- 現(xiàn) 在 地 數(shù) 據(jù) 整 合1 . 現(xiàn) 在 地 信 息 5 . T u r n l i s t 送 信 通 知 2 . n o d e 信 息 取 得 要 求 3 . n o d e 信 息 取 得 應(yīng) 答 4 . 導(dǎo) 航 數(shù) 據(jù) 整 合A P I數(shù) 據(jù) 提 取在 T U R N L _ I N F 的 n d _ k i n d 中 增 加時 間 限 制 道 路 的 n o d e k i n d 。對 于 相 應(yīng) 的 n d _ k i n d , 在 h m i 側(cè)會 分 別 做 相 應(yīng) 的 處 理 。增 加 對 收 費(fèi) 站P a t t e r n 的 判 斷 ,整 合 收 費(fèi) 站 導(dǎo) 航 數(shù) 據(jù) 圖 4.8 Turnlist 中 收費(fèi)站 mark 的表示時序變更圖 ( 2) 輔助導(dǎo)航上的收費(fèi)站顯示時序設(shè)計如圖 4.9 所示。 導(dǎo) 航 控 制3 . 導(dǎo) 航 輸 出 信 息 通 知A P I2 . 導(dǎo) 航 時 機(jī) 判 定增 加 對 收 費(fèi) 站 的輔 助 導(dǎo) 航 的 提 示 時機(jī) 判 定1 . 導(dǎo) 航 P o i n t T a b l e作 成 圖 4.9 輔助導(dǎo)航上的收費(fèi)站顯示時序圖 第 4 章 系統(tǒng)設(shè)計 -24- 次導(dǎo)航上的收費(fèi)站顯示和 Turnlist 提示的區(qū)別在于需要進(jìn)行時機(jī)判定,因為 Turnlist提示是在開始導(dǎo)航時就提示的,而次導(dǎo)航上的收費(fèi)站提示是在車輛行駛的過程中提示的。如上圖,導(dǎo)航控制 Task 需要進(jìn)行導(dǎo)航時機(jī)判定。 ( 3) 收費(fèi)站聲音導(dǎo)航 Task 時序設(shè)計。 此部分設(shè)計和時間道路限制聲音導(dǎo)航的 Task 時序設(shè)計只在數(shù)據(jù)整合任務(wù)和導(dǎo)航控制任務(wù)的 小細(xì)節(jié)上中有所不同,因此不再詳細(xì)論述。本功能的數(shù)據(jù)做成任務(wù)是對收費(fèi)站 Pattern的判斷,并且在導(dǎo)航控制中對發(fā)生時機(jī)的判斷需要依據(jù)表 3.1 中的內(nèi)容。 ( 4) 收費(fèi)站擴(kuò)大圖的表示如圖 4.10。 現(xiàn) 在 地 數(shù) 據(jù) 整 合1 . 現(xiàn) 在 地 信 息 5 . 導(dǎo) 航 P o i n t 通 知 2 . n o d e 信 息 取 得 要 求 3 . n o d e 信 息 取 得 應(yīng) 答 4 . 導(dǎo) 航 數(shù) 據(jù) 整 合數(shù) 據(jù) 提 取增 加 對 收 費(fèi) 站P a t t e r n 的 判 斷 ,整 合 收 費(fèi) 站 導(dǎo) 航 數(shù) 據(jù)導(dǎo) 航 控 制 地 圖 描 畫6 . 導(dǎo) 航 圖 準(zhǔn) 備 要 求7 . 導(dǎo) 航 圖 準(zhǔn) 備 應(yīng) 答A P I8 . 導(dǎo) 航 圖 時 機(jī) 判 定9 . 導(dǎo) 航 輸 出 信 息 通 知1 0 . 導(dǎo) 航 圖 表 示 要 求1 1 . 擴(kuò) 大 圖 表 示增 加 對 收 費(fèi) 站P a t t e r n 的 判 斷圖 4.10 收費(fèi)站擴(kuò)大圖的表示時序圖 針對收費(fèi)站擴(kuò)大圖表示這一個功能點(diǎn),主要的工作是在導(dǎo)航數(shù)據(jù)整合,導(dǎo)航圖時機(jī)判定以及擴(kuò)大圖表示部分。整體設(shè)計思路與道路限制導(dǎo)航的擴(kuò)大圖標(biāo)是功能有所相似。 第 4 章 系統(tǒng)設(shè)計 -25- 4.4.2. 重要函數(shù)設(shè)計 ( 1) set_gptn_common_pp( ) 在本函數(shù)設(shè)計中,根據(jù)交 差點(diǎn) node 進(jìn)行識別和條件判斷對導(dǎo)航 Pattern 進(jìn)行設(shè)定。取得導(dǎo)航 Pattern 后,進(jìn)行判斷。條件符合時,則取得全局變量 node 附加信息數(shù)據(jù)。表 4.6為該函數(shù)設(shè)計表。 表 4.6 set_gptn_common_pp 函數(shù)說明表 根據(jù)現(xiàn)在地信息中的交差點(diǎn) mode 的類型進(jìn)行判斷,取得導(dǎo)航 Pattern 的值。然后根據(jù)*gui_ptn 的值進(jìn)行判斷和處理。取得 acs_kpinf 中的 node_info,根據(jù) node_info 設(shè)定 gui_ptn。達(dá)到更新 gui_ptn 的內(nèi)容,以提供給上級的調(diào)用函數(shù)使用。 ( 2) set_toll_dsp_dist_gc( ) 表 4.7 set_toll_dsp_dist_gc 函數(shù)說明 函數(shù)名 set_gptn_common_pp 功能概要 收費(fèi)站開始表示的距離的設(shè)定處理 記述形式 I4 set_gptn_common_pp(LMK_LOCAL_EXT_PP *p_lext, ACS_KPNT_INF_PP *acs_kpinf,U2 *gui_ptn ) 參數(shù) 類型 變量名 I/O 說明 LMK_LOCAL_EXT_PP *p_lext I 現(xiàn)在地附屬信息 ACS_KPNT_INF_PP *acs_kpinf I 導(dǎo)航 Point 數(shù)據(jù)地址 U2 *gui_ptn I 導(dǎo)航 Pattern 返回值 類型 I4 說明 值 PP_OK 正常結(jié)束 PP_NG 異常結(jié)束 函數(shù)名 set_toll_dsp_dist_gc 功能概要 收費(fèi)站開始表示的距離的設(shè)定處理 記述形式 U4 set_toll_dsp_dist_gc( TOLL_ANNAI_DATA_GC *toll_inf ) 參數(shù) 類型 變量名 I/O 說明 TOLL_ANNAI_DATA_GC *toll_inf I 收費(fèi)導(dǎo)航數(shù)據(jù) address 返回值 類型 U4 說明 值 dsp_dist 開始表示的距離 0xffffffff 無效距離(初始化用) 第 4 章 系統(tǒng)設(shè)計 -26- 表 4.7 為該函數(shù)的設(shè)計表。具體就是根據(jù)全局的導(dǎo)航數(shù)據(jù)的內(nèi)容進(jìn)行判斷,追加對收費(fèi)站導(dǎo)航的判斷和處理。如果導(dǎo)航點(diǎn)類型為收費(fèi)站,作成收費(fèi)站的導(dǎo)航時機(jī)距離數(shù)據(jù)。對于一個收費(fèi)站,最多有 3 個提前導(dǎo)航的時機(jī)距離。 第 5 章 系統(tǒng)實現(xiàn) -27- 第 5章 系統(tǒng)實現(xiàn) 5.1. 系統(tǒng) Task 級實現(xiàn) 本文主要論述的兩個功能均屬于導(dǎo)航模塊中的內(nèi)容,現(xiàn)對導(dǎo)航模塊的具體實現(xiàn)作簡要論述。圖 5.1 為導(dǎo)航模塊的 Task 實現(xiàn)圖。 D r a wA n n a iL O CR IG CN SP PA P IG MH M IG D現(xiàn) 在 地 信 息徑 路 計 算 結(jié) 果 通 知N O D E 信 息 取 得 應(yīng) 答導(dǎo) 航 輸 出 信 息 通 知N O D E 信 息 取 得 要 求導(dǎo) 航 點(diǎn) 通 知【 e v e n t 】導(dǎo) 航 圖 表 示 要 求導(dǎo) 航 圖 描 畫 要 求導(dǎo) 航 圖 描 畫 應(yīng) 答D S導(dǎo) 航 信 息 要 求 導(dǎo) 航 信 息 應(yīng) 答圖 5.1 導(dǎo)航模塊 Task 實現(xiàn)圖 上圖表示的是導(dǎo)航模塊內(nèi) Task 之間的協(xié)同工作機(jī)制,其中比較重要的是 NS、 PP、 GC這三個 Task。 NS Task 的任務(wù)是 Node 信息提取,主要職能是與 DS 交互,取得地圖數(shù)據(jù)和與 PP 交互,提供給 PP 某個 Node Link 對的詳細(xì)信息; PP Task 為導(dǎo)航模塊中最重要的控制Task,主要職能是 ON/OFF ROUTE 判定、各種通過判定,到達(dá)判定、獲得導(dǎo)航數(shù)據(jù)以及導(dǎo)航點(diǎn)的數(shù)據(jù)做成; GC Task 為導(dǎo)航控制任務(wù),職能是 做成 詳細(xì)的表示導(dǎo)航數(shù)據(jù)和聲音數(shù)據(jù) 控制導(dǎo)航提示的時機(jī),通知上位模塊進(jìn)行導(dǎo)航。 Task 間的通信是通過底層的 PF(Platform)實現(xiàn)的。 PF 是 Application 與 Itron 系統(tǒng)之間的接口,同樣可以視作 Task 通信的橋梁。兩個 Task 之間的通信如圖 5.2 所示。 T a s k A T a s k BP F1 .請 求 2 .請 求3 .應(yīng) 答4 .應(yīng) 答 圖 5.2 Task 間通信示意圖 第 5 章 系統(tǒng)實現(xiàn) -28- TaskA 如果要想和 TaskB 通信 ,TaskA 必須先將請求信息發(fā)送給 PF,由 PF 發(fā)送信息請求給 TaskB,然后 TaskB 再將應(yīng)答經(jīng)由 PF 返回給 TaskA。 另 外,簡單的來說道路是由 NODE 和 NODE 之間的 LINK 組成的,比如 NODE A 和NODE B 之間的道路是時間限制道路,那么 NDOE A 和 NODE B 的信息中就會有一個變量標(biāo)志出來。理解這一點(diǎn)是論述下面內(nèi)容的基礎(chǔ)。 5.2. 道路限制導(dǎo)航模塊 5.2.1. 系統(tǒng)實現(xiàn)概要 圖 5.3 為該模塊 Task 實現(xiàn)示意圖。 G CP PH M I導(dǎo) 航 點(diǎn) 通 知M s g 接 受處 理導(dǎo) 航 點(diǎn)數(shù) 據(jù) 解 析時 間 限 制道 路 導(dǎo) 航數(shù) 據(jù) 更 新V O I C E G發(fā) 聲 要 求導(dǎo) 航 輸 出 信 息 通 知導(dǎo) 航 輸 出 信 息 狀 態(tài) 通 知時 間 限 制導(dǎo) 航 表 示描 畫 要 求描 畫圖 5.3 道路限制導(dǎo)航模塊 Task 實現(xiàn)示意圖。 GC Task 是關(guān)鍵任務(wù),包括 Msg 接受處理,導(dǎo)航點(diǎn)數(shù)據(jù)解析,時間限制導(dǎo)航數(shù)據(jù)更新和時間限制導(dǎo)航表示四個功能塊。 Msg 接 受處理主要是將來自 PP 的導(dǎo)航點(diǎn)信息更新到總的全局的導(dǎo)航點(diǎn)總信息中。導(dǎo)航點(diǎn)數(shù)據(jù)解析將 Msg 接受處理任務(wù)發(fā)送來的信息進(jìn)行判定和提取再發(fā)送給時間限制道路導(dǎo)航信息更新和時間限制導(dǎo)航表示。 時間限制導(dǎo)航表示主要是決定了導(dǎo)航提示時機(jī)的判定。 第 5 章 系統(tǒng)實現(xiàn) -29- 5.2.2. 重要函數(shù)實現(xiàn) 在此功能模塊中有兩個關(guān)鍵函數(shù),在系統(tǒng)設(shè)計中有過論述,下面具體介紹函數(shù)的實現(xiàn)由于是在 base 代碼上進(jìn)行修改,首先需要對相應(yīng)結(jié)構(gòu)體及其它變量進(jìn)行增加或者修改。 ( 1) 結(jié)構(gòu)體修改 NODE_INFO: 此新增結(jié)構(gòu)體變量來存儲導(dǎo)航 Point 的數(shù)據(jù)。具體新增成員已用加粗字體顯示。新增的 標(biāo)志位表示了時間限制道路有無的信息等。 各條件判斷位采用位運(yùn)算的方式,按照預(yù)先約定好的順序表示當(dāng)前狀態(tài)。這樣的設(shè)計最大程度上節(jié)約了內(nèi)存使用量和運(yùn)算時 間。表 5.1 顯示了 NODE_INFO 的部分信息。 表 5.1 NODE_INFO 結(jié)構(gòu)體(部分) 數(shù)據(jù)類型 成員名 成員功能 U2: 1 no_guide 是否導(dǎo)航 0:導(dǎo)航 /1:不導(dǎo)航 U2: 1 time_kisei Node 時間限制信息 0:無 /1:有 U2: 1 sapa_enter SAPA 入口 U2: 1 etc 其他 U2: 1 kakudai_flg 擴(kuò)大圖信息 0:無 /1:有 U2: 1 u_turn_flg U Turn 判定結(jié)果信息 0:無 /1:有 GUIDT_PNT_INF:此結(jié)構(gòu)體存儲 Node 的共通信息,其中的 pnt_add 成員是標(biāo)志判斷用, bit4 用來判斷有無時間規(guī)則道路。表 5.2 顯示了 GUIDT_PNT_INF 的部分信息。 表 5.2 GUIDT_PNT_INF 結(jié)構(gòu)體(部分) 數(shù)據(jù)類型 成員名 成員功能 GUIDT_LNK_ND node Node 信息 U2 pnt_add 點(diǎn)附加信息: BIT0:行駛車線 0=左側(cè)行駛、 1=右側(cè)行駛 BIT4:時間限制道路行駛 0:無 /1:有 BIT5:常時限制道路行駛 0:無 /1:有 第 5 章 系統(tǒng)實現(xiàn) -30- ( 2) 函數(shù)流程圖 lmk_ginf_regu_pp:圖 5.4 為 lmk_ginf_regu_pp 的函數(shù)流程圖。 開 始初 始 化 處 理 導(dǎo) 航 列 表 的 地 址判 斷 導(dǎo) 航 數(shù) 據(jù)是 否 有 效判 斷 a c s _ k p i n f 中 的 信息 是 否 有 效相 應(yīng) 數(shù) 據(jù) 處 理是 否 為入 口 場 合設(shè) 定 全 局 變 量r e g u _ c o n t - k i n d 為R E G _ K I N D _ I NYYY是 否 為出 口 場 合N設(shè) 定 全 局 變 量r e g u _ c o n t - k i n d 為R E G _ K I N D _ I NY是 否 為P o i n t 場 合N設(shè) 定 全 局 變 量r e g u _ c o n t - k i n d 為R E G _ K I N D _ P O I N TYR e t u r n P P _ N G R e t u r n P P _ O KNNN結(jié) 束 圖 5.4 lmk_ginf_regu_pp 流程圖 第 5 章 系統(tǒng)實現(xiàn) -31- 本函數(shù)主要是通過影響 acs_kpinf , (*gdlst).regu_cont 等全局變量的標(biāo)志位或者值,觸發(fā)模塊的函數(shù)判定條件,對 全局變量的內(nèi)容進(jìn)行更改和對全局的導(dǎo)航數(shù)據(jù)的內(nèi)容進(jìn)行設(shè)置,首先判斷導(dǎo)航點(diǎn)數(shù)據(jù)首地址 acs_kpinf 是否有效,若無效返回 PP_NG(異常結(jié)束 )。如果是有效的則再進(jìn)行相應(yīng)數(shù)據(jù)處理之后繼續(xù)判斷是否為入口場合、出口場合或者 Point 場合。根據(jù)以上判斷確定 regu_cont 的值。最后返回 PP_OK(正常結(jié)束)。 dsp_gdcrs_inf_kind_gc:圖 5.5 為 dsp_gdcrs_inf_kind_gc 的函數(shù)流程圖。 開 始初 始 化 處 理u 4 k i n d = 0c h k _ r e s i _ m o d e _ g c徑 路 導(dǎo) 航 內(nèi) 容 容 取 得 成 功 ?YS w i t c h ( 導(dǎo) 航P a t t e r n )R e t u r n ( U 2 ) u 4 k i n dNP A T T _ I D _ B BP A T T _ I D _ W A Y P N TP A T T _ I D _ D D其 它 P t t e r nd e f a u l t導(dǎo) 航 對 象 點(diǎn) m a r k 表 示 為 交差 點(diǎn) 的 場 合 ?u 4 k i n d | = B I T 0 ;YN相 應(yīng) 數(shù) 據(jù) 處 理 圖 5.5 dsp_gdcrs_inf_kind_gc 流程圖 第 5 章 系統(tǒng)實現(xiàn) -32- 本函數(shù)主要是對局部變量 u4kind 進(jìn)行設(shè)定,返回給上級函數(shù)使用。對時間限制部分的處理在 switch 中的 PATT_ID_DD 處。在本函數(shù)中,根據(jù)徑路導(dǎo)航內(nèi)容的取得結(jié)果,對導(dǎo)航Pattern進(jìn)行判斷,對不表示為交差點(diǎn) mark的導(dǎo)航對象不做處理。需要表示的將標(biāo)志位置 1 。從而返回導(dǎo)航交差點(diǎn)專用信息( u4kind)給上級函數(shù)使用。 ( 3) 代碼編寫 lmk_ginf_regu_pp() I4 lmk_ginf_regu_pp (ACS_KPNT_INF_PP *acs_kpinf, U1 *gdlst ) /*- variables -*/ GDLIST_PP *prgd; /* 導(dǎo)航 list結(jié)構(gòu)體地址 */ GPT_KDRT_REG *regu_cont; /* 規(guī)制 道路 導(dǎo)航 內(nèi)容 */ NODE_INFO *node_info; /* node附加信息 data */ /* 初始化處理 */ prgd = (GDLIST_PP*)gdlst; /* 取得全局變量地址 */ if ( (prgd-valid & BIT_VALID_REGU_CONT) = 0 ) /* 導(dǎo)航數(shù)據(jù)有效 */ return ( PP_OK ); /* 處 理対象判定 */ /* 入口 場 合 */ if ( (lattr_sl.time_kisei = FLAG_OFF)& (lattr_tl.time_kisei = FLAG_ON ) ) regu_cont-kind = REG_KIND_IN; /* 出口 場 合 */ else if ( (lattr_sl.time_kisei = FLAG_ON ) & (lattr_tl.time_kisei = FLAG_OFF) ) regu_cont-kind = REG_KIND_OUT; /* 時間限制 Point 場 合 */ else if ( ( lattr_sl.time_kisei = FLAG_OFF) & ( lattr_tl.time_kisei = FLAG_OFF) & (node_info-time_kisei = FLAG_ON) regu_cont-kind = REG_KIND_POINT; return ( PP_OK ); /* 結(jié)束處理 */ dsp_gdcrs_inf_kind_gc()的代碼編寫相對比較簡單,主要就是對導(dǎo)航 Pattern 的判定,在此不貼出代碼。 第 5 章 系統(tǒng)實現(xiàn) -33- 5.3. 收費(fèi)站導(dǎo)航模塊 5.3.1. 系統(tǒng)實現(xiàn)概要 本模塊的重點(diǎn)同樣是在 GC Task,具體示意圖與道路導(dǎo)航限制模塊大致相似,此處不再給出。收費(fèi)站導(dǎo)航數(shù)據(jù)更新的任務(wù)是 根據(jù)導(dǎo)航中對應(yīng)徑路導(dǎo)航信息中的收費(fèi)站導(dǎo)航使用的區(qū)間距離信息進(jìn)行設(shè)定,檢索到第一 個收費(fèi)站導(dǎo)航有效徑路數(shù)據(jù)時,將對應(yīng)的信息設(shè)定到全局導(dǎo)航點(diǎn)所對應(yīng)的收費(fèi)站導(dǎo)航 data 中; 收費(fèi)站導(dǎo)航表示完成了收費(fèi)站導(dǎo)航表示內(nèi)容的作成,表示時機(jī)的取得。還有設(shè)定導(dǎo)航輸出信息通知對應(yīng)的 Event。 5.3.2. 重要函數(shù)實現(xiàn) 此模塊同樣有兩個重要函數(shù),以下論述具體實現(xiàn),首先對相關(guān)結(jié)構(gòu)體變量進(jìn)行修改。 ( 1) 結(jié)構(gòu)體修改 此部分涉及到三個已有結(jié)構(gòu)體的修改和一個新增結(jié)構(gòu)體,結(jié)構(gòu)體 MNG_GUID_PNT_PP用來保存綜合的 Point 信息, MNG_GUID_PNT_PP 中的變量 MNG_KEIRO_PNT_PP 是徑路導(dǎo)航 Point 管理 Table, MNG_KEIRO_PNT_PP 中的變量 GPT_KRDT 結(jié)構(gòu)體用來保存具體導(dǎo)航點(diǎn)信息,在 GPT_KRDT 中新增 GPT_KRD_TLL 結(jié)構(gòu)體來 存儲收 費(fèi)站相關(guān)信息表 5.3為 GPT_KRD_TLL 結(jié)構(gòu)體的部分構(gòu)成。 表 5.3 GPT_KDRT_TLL 結(jié)構(gòu)體(部分) 數(shù)據(jù)類型 成員名 成員功能 U1: 1 kind 數(shù)據(jù)有無 0:無 /1:有 U2: 1 unit 貨幣單位 U4: 1 fee 收費(fèi)金額 U2: 1 car_kind 車種 U1: 1 ttxt_add_flg 收費(fèi)站名稱信息有無 0:無 /1:有 ( 2) 函數(shù)流程圖 set_gptn_common_pp:圖 5.6 為該函數(shù)的流程圖。根據(jù)現(xiàn)在地信息中的交差點(diǎn) mode的類型進(jìn)行判斷,取得導(dǎo)航 Pattern 的值。然后根據(jù) *gui_ptn 的值進(jìn)行判斷和處理。取得acs_kpinf 中的 node_info,根據(jù) node_info 設(shè)定 gui_ptn。達(dá)到更新 gui_ptn 的內(nèi)容,以提供給上級的調(diào)用函數(shù)使用。 第 5 章 系統(tǒng)實現(xiàn) -34- 開 始初 始 化 函 數(shù) 局 部 變 量取 得 p _ l e x t 中 的 交 差 點(diǎn) m o d eL o o p ( c n t )循 環(huán) F O R _ L O O P _ C N T 1 次c n t F O R _ L O O P _ C N T 1( 未 完 成 循 環(huán) 次 數(shù) )交 差 點(diǎn) m o d e 為 目 的 地 ?Y* g u i _ p t n = P A T T _ I D _ D E S T I N ;交 差 點(diǎn) m o d e 為 通 過點(diǎn) ?NY* g u i _ p t n = P A T T _ I D _ M I T I N AR I ; ( 各 交 差 點(diǎn) m o d e 判 斷 和 處 理 )NL o o pN其 他 非 共 通 的 m o d e 設(shè) 定對 g u i _ p t n 進(jìn) 行 判 斷是 否 需 要 誘 導(dǎo)Y取 得 n o d e 附 加 信 息 數(shù) 據(jù)R e t u r n P P _ O KN結(jié) 束Y 圖 5.6 set_gptn_common_pp 函數(shù)流程圖 set_toll_dsp_dist_gc:該函數(shù)流程比較復(fù)雜。其中圖 5.7 為 set_toll_dsp_dist_gc 的函數(shù)主流程圖。圖 5.8、圖 5.9、和圖 5.10 分別表示了函數(shù)主流程圖中的三個重要組成部分,單獨(dú)畫出流程圖。 第 5 章 系統(tǒng)實現(xiàn) -35- 開 始局 部 變 量 聲 明 初 始 化 處 理收 費(fèi) 站 導(dǎo) 航數(shù) 據(jù) 是 否 有 效取 得 導(dǎo) 航 點(diǎn) 索 引 的 A d d r e s sA以 上 兩 個 P o i n t 信 息取 得 成 功B導(dǎo) 航 點(diǎn) D a t a 設(shè) 定CR e t u r n d s p _ d i s t結(jié) 束導(dǎo) 航 點(diǎn) T a b l e 數(shù) 據(jù) 置 0YYN 圖 5.7 set_toll_dsp_dist_gc 主流程圖 首先對局部變量進(jìn)行初始化處理,然后取得導(dǎo)航點(diǎn)索引地址,經(jīng)過下面三個過程達(dá)到設(shè)定導(dǎo)航距離的目的。具體就是根據(jù)全局的導(dǎo)航數(shù)據(jù)的內(nèi)容進(jìn)行判斷,追加對收費(fèi)站導(dǎo)航的判斷和處理。如果導(dǎo)航點(diǎn)類型為收費(fèi)站,作成收費(fèi) 站的導(dǎo)航時機(jī)距離數(shù)據(jù)。對于一個收費(fèi)站,最多有 3 個提前導(dǎo)航的時機(jī)距離。 圖 5.8 為 A 過程,具體是從徑路數(shù)據(jù)取得徑路 Point 索引中第一個與收費(fèi)站導(dǎo)航 Point的下一個交叉點(diǎn)信息一致的導(dǎo)航 Point,同時保存收費(fèi)站導(dǎo)航 Point將相應(yīng)值賦給 gui_pnt1,gui_pnt0。 第 5 章 系統(tǒng)實現(xiàn) -36- AL o o p( l o o p = 0 ; l o o p ( I 4 ) n u m I d x ; l o o p + + )l o o p = 0 ; C n t - -c n t = 0Yw k _ p n t = g e t _ G u i P u t _ g c ( )取 得 導(dǎo) 航 點(diǎn) 的基 本 數(shù) 據(jù) 地 址 有 效 ?Yg u i _ p n t k r _ p n t n o = w k _ p n t ;保 存 到 導(dǎo) 航 點(diǎn) T a b le 中( k r _ p n t n o + 1 ) T O L L _ B F R _ P N T _ M AXYL o o pNNd s t _ g e t _ d o u b l e _ g c ( )連 續(xù) 導(dǎo) 航 距 離 的 取 得到 前 一 個 導(dǎo) 航 點(diǎn) 的 距 離 = 連 續(xù) 導(dǎo) 航 距 離k r _ p n t n o = 1 ;結(jié) 束k r _ p n t n o = 0 ;NY 圖 5.9 set_toll_dsp_dist_gc B 流程圖 需要注意的是最后一個判斷條件,如果連續(xù)的導(dǎo)航距離較短,需要在一次導(dǎo)航中完成提示。例如兩個需要轉(zhuǎn)向的地方相距 50 米,那么就需要在一次導(dǎo)航提示中顯示出來,如果分兩次導(dǎo)航提示,司機(jī)可能在第一個導(dǎo)航點(diǎn)過去之后來不及按照第二次的導(dǎo)航提示行 第 5 章 系統(tǒng)實現(xiàn) -38- 駛,導(dǎo)致行駛錯誤。 C 過程是對收費(fèi)站表示區(qū)間距離的設(shè)定,簡單的 說就是在收費(fèi)站前多少米處進(jìn)行提示。具體過程如圖 5.10 所示。 Ck r _ p n t n o = = 0Yd s t _ g e t _ a u t o _ d s t _ g c ( )d s p _ d i s t 設(shè) 定取 得 自 動 發(fā) 聲 距 離N自 動 發(fā) 聲 距 離 有 效Y設(shè) 定 收 費(fèi) 站 導(dǎo) 航 距 離要 加 上 發(fā) 聲 距 離收 費(fèi) 站 導(dǎo) 航 距 離 為 全 局 變 量 中的 收 費(fèi) 站 導(dǎo) 航 數(shù) 據(jù) 中 的 距 離N結(jié) 束Y 圖 5.10 set_toll_dsp_dist_gc C 流程圖 在導(dǎo)航系統(tǒng)進(jìn)行聲音提示時車輛仍然在行駛,這段時間車輛行駛的距離需要計算在內(nèi),另外全局變量中收費(fèi)站導(dǎo)航數(shù)據(jù)中的距離在表 3.1 中有介紹。 ( 3) 代

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論