www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]MiniGUI在車(chē)載導(dǎo)航終端中的應(yīng)用

摘要:提出一種GPS車(chē)載導(dǎo)航終端的設(shè)計(jì)方案,并針對(duì)電子地圖導(dǎo)航所需的圖形界面支持系統(tǒng)進(jìn)行詳細(xì)論述。MiniGUI作為一種主要運(yùn)行于嵌入式Linux下的圖形用戶界面支持系統(tǒng),在本文中將其應(yīng)用到車(chē)載導(dǎo)航儀中,并提出一種基于MiniGUI的電子地圖的設(shè)計(jì)方法,配合GPS信號(hào)接收機(jī),實(shí)現(xiàn)定位導(dǎo)航功能。

關(guān)鍵詞:GPS MiniGUI 電子地圖 車(chē)載導(dǎo)航


引 言

  隨著社會(huì)信息化的日益發(fā)展,車(chē)載終端的主要發(fā)展方向應(yīng)該是監(jiān)控跟蹤及導(dǎo)航相結(jié)合,即所謂的車(chē)載信息系統(tǒng),長(zhǎng)遠(yuǎn)發(fā)展則是通信、導(dǎo)航、娛樂(lè)、安防、辦公和上網(wǎng)為一體的車(chē)輛信息系統(tǒng)。

1 系統(tǒng)整體設(shè)計(jì)方案

  本文中提出的車(chē)載導(dǎo)航終端設(shè)計(jì)方案,可實(shí)現(xiàn)GPS導(dǎo)航、電子地圖實(shí)時(shí)定位、GSM/GPRS通信等功能,通過(guò)實(shí)驗(yàn)已取得良好的效果。系統(tǒng)整體設(shè)計(jì)方案如圖1所示。
   
               圖1車(chē)載導(dǎo)航終端整體設(shè)計(jì)方案

  系統(tǒng)主控芯片采用了由韓國(guó)Samsung公司生產(chǎn)的ARM核32位RISC微處理器S3C2410,并在由其組成的開(kāi)發(fā)板上移植Linux操作系統(tǒng),由Linux操作系統(tǒng)負(fù)責(zé)系統(tǒng)的整體調(diào)度和控制。通過(guò)S3C2410的UART接口連接GPS接收機(jī)JUPITER 021/031,用以接收NEMA0183格式的GPS定位信息。通過(guò)UART接口和GSM/GPRS模塊MC35進(jìn)行通信,通過(guò)發(fā)送AT命令控制MC35,來(lái)完成語(yǔ)音呼叫、GSM SMS及GPRS等功能。
為在車(chē)載LCD上實(shí)現(xiàn)電子地圖的繪制顯示,系統(tǒng)的整體層次框圖如圖2所示,由Linux操作系統(tǒng)負(fù)責(zé)底層硬件的初始化和管理,并向上層提供應(yīng)用接口,MiniGUI來(lái)完成電子地圖在LCD上的繪制,并通過(guò)Linux內(nèi)核提供的應(yīng)用接口與GPS接收機(jī)和GSM/GPRS模塊完成通信等功能。
                  
                 圖2系統(tǒng)層次結(jié)構(gòu)框圖

2 圖形界面支持系統(tǒng)——MiniGUI

2.1MiniGUI介紹

  MiniGUI是由許多自由軟件開(kāi)發(fā)人員共同開(kāi)發(fā)的一個(gè)自由軟件項(xiàng)目,遵循LGPL條款發(fā)布,其目標(biāo)是為基于Linux的實(shí)時(shí)嵌入式系統(tǒng)提供一個(gè)輕量級(jí)的圖形用戶界面支持系統(tǒng)。MiniGUI能夠在各個(gè)不同平臺(tái)上提供最大程度的接口兼容性,已運(yùn)行于ARM、MIPS等各種主流嵌入式硬件平臺(tái)之上。目前,在包括手持信息終端產(chǎn)品、金融終端、KTV點(diǎn)播系統(tǒng)、POS機(jī)等許多項(xiàng)目和產(chǎn)品中得到廣泛的應(yīng)用。

  本文利用MiniGUI 1.30版本,將其編譯為lite版本并移植到基于ARM核的32位微處理器S3C2410上。在此基礎(chǔ)上,又開(kāi)發(fā)了基于MiniGUI的電子地圖顯示應(yīng)用程序,配合GPS信號(hào)接收機(jī)實(shí)現(xiàn)定位導(dǎo)航功能。

2.2MiniGUI的交叉編譯

  為了使MiniGUI能夠在不同的目標(biāo)平臺(tái)上運(yùn)行,必須有針對(duì)相應(yīng)平臺(tái)的交叉編譯工具。在本文的設(shè)計(jì)中,選用了由韓國(guó)Mizi公司開(kāi)發(fā)和維護(hù)的armv41交叉編譯工具鏈,該工具鏈?zhǔn)荕izi公司針對(duì)Samsung公司32位ARM核RISC微處理器S3C2410設(shè)計(jì)開(kāi)發(fā)的,因此與選用的硬件具有更好的兼容性。
MiniGUI使用自由軟件常用的automake和autoconf接口,因此MiniGUI的配置和編譯相對(duì)比較容易。首先進(jìn)入MiniGUI源代碼的目錄中,下面是具體交叉編譯的步驟。

 ?、?為了達(dá)到交叉編譯的目的,首先要修改configure文件。設(shè)置make環(huán)境變量CC、LD及AR等,將其設(shè)置為選用的armv41交叉編譯工具,以達(dá)到交叉編譯的目的。

 ?、?IAL(Input Abstract Layer,輸入抽象層)接口的實(shí)現(xiàn)。在MiniGUI中,引入了輸入抽象層的概念,抽象層類(lèi)似于Linux內(nèi)核中的虛擬文件系統(tǒng),定義了一組不依賴(lài)于任何硬件的抽象接口。(具體請(qǐng)參見(jiàn)MiniGUI源代碼src/include/ial.h及src/ial/ial.c)。

  在具體實(shí)現(xiàn)一個(gè)輸入引擎的時(shí)候,其中最為關(guān)鍵的是事件處理函數(shù)wait_event()的實(shí)現(xiàn),MiniGUI會(huì)不斷的調(diào)用該函數(shù),來(lái)確定在輸入引擎上是否有輸入事件發(fā)生。這里需要特別注意的是,因?yàn)镸iniGUI是通過(guò)select系統(tǒng)調(diào)用來(lái)實(shí)現(xiàn)進(jìn)程間通信機(jī)制的,因此在實(shí)現(xiàn)lite版本輸入引擎的wait_event函數(shù)時(shí),一定要通過(guò)select函數(shù)或與其等價(jià)的poll函數(shù)來(lái)實(shí)現(xiàn)。與此同時(shí),在實(shí)現(xiàn)目標(biāo)板的觸摸屏驅(qū)動(dòng)時(shí),必須要實(shí)現(xiàn)相對(duì)應(yīng)file_operations結(jié)構(gòu)中的poll函數(shù)指針。即使觸摸屏驅(qū)動(dòng)沒(méi)有提供poll函數(shù),也要在wait_event返回之前調(diào)用select,并傳遞相關(guān)參數(shù)。

 ?、?依次運(yùn)行configure、make和make install命令,完成MiniGUI的配置和編譯。關(guān)于configure命令的詳細(xì)參數(shù)及含義可以通過(guò)運(yùn)行./configure –help命令獲得。

  經(jīng)過(guò)上述編譯過(guò)程,會(huì)將編譯好的MiniGUI庫(kù)文件安裝在/home/MiniGUI-lite目錄下。為了減小庫(kù)文件的大小,可根據(jù)需要利用configure命令將MiniGUI中一些不需要的功能去掉,同時(shí)可以用交叉編譯工具鏈中的strip命令刪除MiniGUI函數(shù)庫(kù)中的符號(hào)信息和其他一些調(diào)試信息。關(guān)于MiniGUI自帶的范例程序mde及MiniGUI資源文件的編譯和安裝可參照上述庫(kù)文件的編譯過(guò)程及MiniGUI用戶指南進(jìn)行。

2.3MiniGUI向S3C2410上的移植

  一般而言,在嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程中,編譯完MiniGUI和應(yīng)用程序后,需要把MiniGUI庫(kù)、資源和應(yīng)用程序拷貝到為目標(biāo)系統(tǒng)準(zhǔn)備的文件系統(tǒng)(目標(biāo)文件系統(tǒng))目錄中,然后使用相關(guān)的工具生成文件系統(tǒng)映像,再下載到目標(biāo)板上。

  本文中Linux使用initrd技術(shù)來(lái)mount一個(gè)ramdisk作為目標(biāo)板的根文件系統(tǒng),因此需要將編譯好的MiniGUI的庫(kù)文件拷貝到ramdisk的/user/lib目錄下,同時(shí)將MiniGUI的資源文件也拷貝到該目錄下。

  MiniGUI在運(yùn)行的時(shí)候需要一個(gè)配置文件,用來(lái)配置MiniGUI運(yùn)行所需要的環(huán)境參數(shù)。在本文的設(shè)計(jì)中,將配置文件MiniGUI.cfg放到了目標(biāo)板的/etc目錄下。mginit初始化時(shí)必讀的配置文件包括:系統(tǒng)使用的圖形引擎、輸入引擎、鼠標(biāo)、屏幕設(shè)備的指定、參數(shù)設(shè)置以及字體庫(kù)等信息。

  另外還有一個(gè)問(wèn)題需要注意,因?yàn)镸iniGUI使用framebuffer作為其輸入引擎,因此在編譯Linux內(nèi)核的時(shí)候,一定要將framebuffer相關(guān)的功能編譯到內(nèi)核中去。

3 繪制基于MiniGUI的電子地圖

3.1電子地圖數(shù)據(jù)的提取

  MapInfo格式的電子地圖是目前使用最為廣泛的地圖格式之一。由于商用原因,截止至現(xiàn)在為止,MapInfo公司一直沒(méi)有向外界公布它原始的以矢量形式存儲(chǔ)的文件格式,即TAB格式,這就加大了直接利用MapInfo原始數(shù)據(jù)的難度。但MapInfo公司提供了與外界交換數(shù)據(jù)的機(jī)制,即MIF(MapInfo Interchange Format)格式地圖。

  在本文的設(shè)計(jì)中,利用MapInfo MIF格式的地圖數(shù)據(jù)來(lái)完成地圖的繪制工作,通過(guò)選取合適的數(shù)學(xué)模型和建立合適的數(shù)據(jù)結(jié)構(gòu),來(lái)實(shí)現(xiàn)電子地圖的繪制。地圖中的地理信息可以將其歸為3類(lèi):

Point型——用于市區(qū)單位名等圖層的繪制和顯示;
Pline型——用于一級(jí)道路、二級(jí)道路、三級(jí)道路、單線河和橋等圖層的繪制和顯示;
Region型——用于邊框、居民地、綠地、市界、縣界和雙線河等圖層的繪制和顯示。

  對(duì)應(yīng)于Point型、Pline型和Region型三種類(lèi)型的地理信息,分別定義數(shù)據(jù)結(jié)構(gòu)_POINT、_PLINE和_REGION。以道路為例,在程序中定義對(duì)應(yīng)的_PLINE結(jié)構(gòu)來(lái)描述相關(guān)信息,該結(jié)構(gòu)定義如下:
struct _PLINE{
double* B;//描述各節(jié)點(diǎn)經(jīng)度坐標(biāo)的數(shù)組指針;
double* L;//描述各節(jié)點(diǎn)緯度坐標(biāo)的數(shù)組指針;
int m_node;//節(jié)點(diǎn)數(shù);
char *m_name;//名稱(chēng)標(biāo)識(shí);
}

  _PLINE和_REGION等數(shù)據(jù)結(jié)構(gòu)的定義與_PLINE類(lèi)似,在這里不再詳細(xì)介紹。有了上述結(jié)構(gòu)的定義,就可以將MIF和MID文件中的信息讀取到為對(duì)應(yīng)信息定義的結(jié)構(gòu)變量中,然后在具體繪制電子地圖的時(shí)候只需對(duì)這些結(jié)構(gòu)變量進(jìn)行相應(yīng)的操作即可。

3.2MiniGUI下電子地圖的繪制

  MiniGUI程序的入口點(diǎn)為MiniGUIMain,main函數(shù)已經(jīng)在MiniGUI的函數(shù)庫(kù)中定義,該函數(shù)在進(jìn)行一些MiniGUI的初始化工作后調(diào)用MiniGUIMain函數(shù)。如果應(yīng)用程序?yàn)閘ite版本MiniGUI下的應(yīng)用程序,則應(yīng)首先調(diào)用SetDesktopRect函數(shù)來(lái)設(shè)置程序的顯示區(qū)域,然后調(diào)用CreateMainWindow函數(shù)創(chuàng)建并顯示程序的主窗口,最終進(jìn)入消息循環(huán)。

  MiniGUI是消息驅(qū)動(dòng)的系統(tǒng),一切運(yùn)作都圍繞著消息進(jìn)行,MiniGUI應(yīng)用程序通過(guò)接收消息來(lái)與外界交互。在電子地圖的繪制過(guò)程中,主要用到了MiniGUI的窗口繪制消息MSG_PAINT。該消息在需要進(jìn)行窗口重繪時(shí)發(fā)送到窗口過(guò)程。MiniGUI通過(guò)判斷窗口是否含有無(wú)效區(qū)域來(lái)確定是否需要重繪,在需要進(jìn)行重繪時(shí),MiniGUI會(huì)向相應(yīng)的窗口過(guò)程發(fā)送MSG_PAINT消息。

  基于MiniGUI的主程序框架圖如圖3所示,為了與JUPITER 021/031通信,接收GPS定位信息,同時(shí)還要與MC35通信實(shí)現(xiàn)無(wú)線通信相關(guān)功能,因此在主程序中啟動(dòng)兩個(gè)子進(jìn)程來(lái)實(shí)現(xiàn)與子系統(tǒng)的串口通信。另外,使用Linux下的共享內(nèi)存(shared memory)和信號(hào)(signals)機(jī)制來(lái)實(shí)現(xiàn)進(jìn)程間的通信,用以傳遞定位數(shù)據(jù)等信息。GPS信息接收的子進(jìn)程功能框架如圖4所示。
           
               圖3MiniGUI主程序框架

            
              圖4定位信息接收子進(jìn)程框圖

           
               圖5地圖繪制函數(shù)流程圖

  當(dāng)MiniGUI主程序接收到其GPS通信子進(jìn)程發(fā)送的SIGUSR1信號(hào)時(shí),就會(huì)調(diào)用相應(yīng)的信號(hào)處理函數(shù)。為了實(shí)時(shí)更新定位點(diǎn)在電子地圖中的位置,必須在該函數(shù)中讀取共享內(nèi)存中的最新位置信息;同時(shí)根據(jù)定位點(diǎn)位置的變化確定需要重繪的區(qū)域,調(diào)用MiniGUI中的InvalidateRect函數(shù)使該區(qū)域無(wú)效。通過(guò)這種方式,使得最新的位置信息實(shí)時(shí)的在電子地圖上顯示出來(lái)。

  為了把底層圖形設(shè)備和上層圖形接口分離開(kāi)來(lái),提高M(jìn)iniGUI圖形系統(tǒng)的可移植性,MiniGUI中引入了圖形抽象層(GAL, graphics abstract layer)的概念。在一定的GAL基礎(chǔ)上,實(shí)現(xiàn)了圖形設(shè)備接口(GDI,Graph Device Interface)。在程序中定義mpadraw函數(shù)為電子地圖繪制函數(shù),在主程序的MSG_PAINT消息處理時(shí)調(diào)用該函數(shù),來(lái)完成電子地圖的具體繪制工作。mpadraw函數(shù)流程圖如圖5所示。在具體繪制的過(guò)程中,要用到MiniGUI提供的GDI函數(shù)來(lái)完成道路、道路名、居民區(qū)等地理信息的顯示。圖6即為筆者實(shí)現(xiàn)的電子地圖。
       
               圖6利用MiniGUI繪制的電子地圖

結(jié)語(yǔ)

  隨著社會(huì)信息化的發(fā)展,GPS導(dǎo)航終端在我國(guó)有著光明的應(yīng)用前景。本文中利用MiniGUI來(lái)實(shí)現(xiàn)車(chē)載終端的電子地圖在LCD上地繪制,使地圖的繪制工作脫離煩瑣的底層硬件,大大的簡(jiǎn)化了此項(xiàng)工作,再配合GPS信號(hào)接收機(jī)實(shí)現(xiàn)實(shí)時(shí)定位導(dǎo)航的功能。同時(shí)也應(yīng)該看到,本方案仍有很多方面需要改進(jìn),例如矢量化地理信息的顯示及地圖顯示的進(jìn)一步優(yōu)化等。

                  參考文獻(xiàn)
1 北京飛漫軟件技術(shù)有限公司. MiniGUI用戶手冊(cè), 2003
2 吳信才. 地理信息系統(tǒng)原理與方法. 北京:北京電子工業(yè)出版社, 2002
3 宋立新. 面向嵌入式操作系統(tǒng)的圖形用戶界面: [學(xué)位論文]. 杭州:浙江大學(xué),2001
4 黑新宏,崔杜武,常斌. 基于MiniGUI的客戶端PDA的研究及開(kāi)發(fā). 計(jì)算機(jī)應(yīng)用, 2003, 23(4):75~77

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

北京2025年8月13日 /美通社/ -- 近日,搭載兆芯開(kāi)先KX-7000高性能處理器的希沃華騰新一代計(jì)算終端產(chǎn)品應(yīng)運(yùn)而生,憑借應(yīng)用數(shù)據(jù)互通、輕松批量部署、自有備授課軟件等特色,為教學(xué)教研等工作的高效開(kāi)展提供有力支撐和...

關(guān)鍵字: 終端 AI 數(shù)字化 通用處理器

深圳2025年7月22日 /美通社/ -- 2025年7月16日,榮耀終端股份有限公司(以下簡(jiǎn)稱(chēng)"榮耀")與中國(guó)電信股份有限公司(以下簡(jiǎn)稱(chēng)&qu...

關(guān)鍵字: 中國(guó)電信 終端 榮耀 AI

深圳 2025年7月10日 /美通社/ -- 在2025歐洲工具及智能硬件領(lǐng)域"黃金標(biāo)準(zhǔn)"Heimwerker的最新測(cè)評(píng)中,搭載廣和通純視覺(jué)方案的智能割...

關(guān)鍵字: BSP 終端 視覺(jué)技術(shù) 軟硬件

上海 2025年6月19日 /美通社/ -- 2025上海世界移動(dòng)通信大會(huì)(MWC上海),榮耀CEO李健受邀出席人工智能+(AI+)主題論壇,并發(fā)表"開(kāi)放共生,眾...

關(guān)鍵字: 模型 榮耀 AI 終端

上海 2025年5月29日 /美通社/ -- 2025年5月,飛凱材料旗下子公司江蘇和成顯示科技有限公司(以下簡(jiǎn)稱(chēng)"和成顯示")與全球領(lǐng)先的液晶材料企業(yè)JNC株式會(huì)社(前身為日本智索Chisso株式...

關(guān)鍵字: 液晶 液晶材料 終端 人機(jī)交互

深圳 2025年5月21日 /美通社/ -- 隨著5G與AI不斷融合,穩(wěn)定高速、智能的移動(dòng)網(wǎng)絡(luò)已成為商務(wù)、旅行、戶外作業(yè)等場(chǎng)景的剛需。廣和通5G AI MiFi方案憑借領(lǐng)先...

關(guān)鍵字: AI 移動(dòng)寬帶 終端 TE

上海 2025年5月13日 /美通社/ --?5月12日,移遠(yuǎn)通信宣布,旗下5G Release 16模組RG620T-NA率先突破北美市場(chǎng)嚴(yán)苛的準(zhǔn)入壁壘,斬獲北美四大運(yùn)營(yíng)...

關(guān)鍵字: 移遠(yuǎn)通信 5G模組 終端 HZ

深圳2025年4月7日 /美通社/ -- 在全球科技浪潮與可持續(xù)轉(zhuǎn)型的雙輪驅(qū)動(dòng)下,CHINAPLAS 2025將精心打造一系列精彩紛呈的同期活動(dòng),聚焦塑料和橡膠行業(yè)的最新突破與前沿趨勢(shì)。"CHINAPLAS 2...

關(guān)鍵字: CHINA 新材料 終端 TIMES

西班牙巴塞羅那2025年3月4日 /美通社/ -- 在MWC25 巴塞羅那期間,華為光產(chǎn)品線總裁陳幫華提出,面向AI時(shí)代光網(wǎng)絡(luò)將加速邁向AI ON(AI Optical Network, AI光網(wǎng)),以5A品質(zhì)的聯(lián)接為A...

關(guān)鍵字: AI 華為 光網(wǎng)絡(luò) 終端

巴塞羅那2025年3月4日 /美通社/ -- 3月4日,2025世界移動(dòng)通信大會(huì)(MWC Barcelona 2025)期間,廣和通發(fā)布"天擎"解決方案,...

關(guān)鍵字: AI 5G 終端 SDK
關(guān)閉