一種嵌入式車(chē)載導航信息系統研究
車(chē)載導航電子地圖一般采用小液晶顯示屏顯示。為了實(shí)現導航,顯示的畫(huà)面內容應盡可能簡(jiǎn)單明了,所以矢量圖形將數據分層組織,在圖形元素的基類(lèi)中設有表示元素所處圖層的信息。除了將元素分類(lèi)為不同的顯示圖層,簡(jiǎn)化顯示內容,基類(lèi)還可設置該元素是否顯示標志位,這樣可提高顯示速度,節省資源。例如。在同一圖層元素,如果有些元素不在當前顯示窗口,可以不進(jìn)行與顯示有關(guān)的后臺操作(坐標變換等)。DPtoVP和VPtoDP方法是實(shí)際坐標(地理坐標)和圖形坐標相轉換。通過(guò)矢量化得到的圖形元素的位置數據一般是某種坐標系下的坐標值,而本系統用戶(hù)可見(jiàn)的顯示坐標范圍為從(0,0)至(640,480),所以需進(jìn)行坐標變換。每個(gè)圖形元素都需Draw(繪制)方法,但不同元素的繪制方法各不相同,為了方便Draw方法使用,在基類(lèi)中將Draw定義為純虛函數,在子類(lèi)中重載時(shí)再具體賦以不同繪制內容。
2.2 矢量圖形系統優(yōu)化
嵌入式車(chē)載導航系統硬件平臺一般采用低功耗設計,運算能力有限。但導航電子地圖顯示畫(huà)面往往含有大量圖形元素,圖形顯示一次需花費大量時(shí)間。如果采用每次全部繪制所有電子地圖內容并直接輸出到畫(huà)面,則會(huì )導致畫(huà)面刷新慢和重繪閃爍明顯。因此需優(yōu)化矢量圖形的繪制方法。
2.2.1 提高圖形的顯示速度
一般繪圖方法是繪制所有圖形元素,而這樣嚴重影響繪圖速度。為了加快繪圖速度,在顯示一個(gè)圖形元素前,先判斷該圖形元素是否在當前視圖屏幕中,如果不在,則無(wú)需繪制,從而節省繪制時(shí)間州。而判斷一個(gè)圖形元素是否在當前視圖屏幕.需計算判斷圖形元素與當前視圖屏幕矩形是否相交,但此方法需大量計算,影響顯示速度。采用的判斷圖形元素是否需要繪制的方法應允許不太嚴密,但要計算簡(jiǎn)單。在每次重繪圖形元素前,首先判斷元素是否顯示,并只繪制所需部分。這樣就大大加快繪圖速度,并能滿(mǎn)足導航電子地圖系統顯示要求。
2.2.2 解決畫(huà)面閃爍問(wèn)題
窗口圖形繪制包括:上次繪制、本次擦除、本次重繪。其中本次擦除操作是必須的。如果重繪時(shí)未清除原來(lái)繪制圖形,將導致新圖形和原圖形相疊加。而在新圖形繪制出前,在極短時(shí)間內屏幕顯示一個(gè)空的矩形區域,圖形重繪完成后,窗口顯示區才開(kāi)始有內容顯示。所以擦除屏幕會(huì )出現閃爍,這與圖形復雜程度無(wú)關(guān)。采用雙緩存機制解決重繪閃爍。雙緩存就是在內存中新開(kāi)辟一個(gè)緩沖區,原來(lái)的顯示緩沖區作為前臺緩沖區.新開(kāi)辟的緩沖區作為后臺緩沖區。如圖3所示,繪圖時(shí)先把輸出內容寫(xiě)入后臺緩沖區,繪圖完成后再把屏幕的當前顯示緩沖區切換到這個(gè)包含新內容的緩沖區。一旦把屏幕顯示緩沖指向后臺緩沖區,下一幀的輸出內容就可寫(xiě)入原緩沖區,再通過(guò)屏幕顯示。因為是非常規整的內存拷貝,所以前后臺的緩沖區切換速度非???,幾乎看不到圖形的擦除過(guò)程。因此使用雙緩沖區取代單緩沖區可成功隱藏繪圖過(guò)程.避免閃爍。
3 導航數據庫管理系統設計
所謂數據庫即格式化(結構化)的文件,用戶(hù)完全可自行設計所需格式文件,并提供操作函數。這里使用.dbf文件格式。因為該格式被眾多數據庫管理系統接受,處理方便。這樣實(shí)現的數據管理系統是一種平面文件數據庫。這種數據庫系統實(shí)現簡(jiǎn)單經(jīng)濟,開(kāi)發(fā)周期短,但速度較慢。實(shí)踐表明,車(chē)載導航系統采用這種方法完全可以滿(mǎn)足要求。
本文使用16進(jìn)制閱讀工具hex32.exe分析dbf文件結構。經(jīng)分析dbf文件具有以下特征:文件由文件結構說(shuō)明區和文件數據區構成;文件的結束標志為lAH。文件數據區存放記錄(類(lèi)似表格的一行),每條記錄是等長(cháng)的;每條記錄以20H開(kāi)始,按字段順序存放,沒(méi)有字段分隔符,也沒(méi)有記錄終止符;若刪除該記錄,則記錄的第1個(gè)字節標記為2AH。文件結構說(shuō)明區包括數據庫參數區和記錄結構區。文件的前32個(gè)字節為數據庫參數區。記錄結構區包括各個(gè)字段參數,其中每個(gè)字段占32個(gè)字節。本系統基本表的組織形式與dhf文件組織形式相同。
數據庫管理系統實(shí)現的主要函數與普通關(guān)系數據庫接口類(lèi)似,選擇使用必要的函數可以實(shí)現車(chē)載導航所需的基本操作。實(shí)現通用數據庫所支持的全部操作,系統具備較豐富的操作功能。用戶(hù)還可開(kāi)發(fā)實(shí)現特定功能的其他操作,作為系統擴展。
4 結束語(yǔ)
針對嵌入式車(chē)載導航信息系統體系結構進(jìn)行研究,并重點(diǎn)討論導航電子地圖的實(shí)現。利用GIS組件實(shí)現導航電子地圖和導航數據庫的傳統方發(fā)法,以EVC(嵌入式VC)為開(kāi)發(fā)工具,設計了電子地圖矢量圖形系統,并自主設計能滿(mǎn)足車(chē)載導航需要的基于文件系統的導航數據庫管理系統。實(shí)踐表明,本文建立的導航電子地圖系統具有較強的靈活性和可擴展性,能方便移植于不同的軟硬件平臺,運行可靠,適合嵌入式系統應用,有一定的應用和推廣價(jià)值。
評論