當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于MiniGUI的機(jī)車顯示終端圖形用戶界面研究

摘要:為解決當(dāng)前基于DOS的機(jī)車顯示終端圖形用戶界面開發(fā)難度大和工作量大的問題,本文研究了基于MiniGUI的機(jī)車顯示終端的整體設(shè)計(jì),重點(diǎn)分析了MiniGUI的裁減、移植以及基于MiniGUI的顯示終端圖形用戶界面的開發(fā)。
關(guān)鍵詞:MiniGUI;顯示終端;Linux;圖形用戶界面

機(jī)車顯示終端是機(jī)車乘務(wù)員與機(jī)車設(shè)備之間進(jìn)行人機(jī)信息交互的主要設(shè)備。在實(shí)際運(yùn)用中,顯示終端將機(jī)車的行車安全信息、故障信息和設(shè)備狀態(tài)等反映給乘務(wù)員,以便有效地指導(dǎo)乘務(wù)員操作,確保機(jī)車安全,減小機(jī)車故障的影響。

機(jī)車顯示終端用戶界面是機(jī)車乘務(wù)員與機(jī)車顯示終端相互交流信息的主要方式。機(jī)車乘務(wù)員對機(jī)車顯示終端的關(guān)鍵技術(shù)并不熟悉,所以要求顯示終端用戶界面必須直觀、認(rèn)讀性好,且與乘務(wù)員交互性好。目前我國的機(jī)車顯示終端大多采用DOS操作系統(tǒng)。為了使用圖形界面,開發(fā)工作必須從底層開始,難度和工作量都很大。

MiniGUI是一個(gè)自由軟件項(xiàng)目,其目標(biāo)是為基于Linux的實(shí)時(shí)嵌入式系統(tǒng)提供一個(gè)輕量級的圖形用戶界面支持系統(tǒng)。免費(fèi)的MiniGUI庫文件和資源文件等可以從因特網(wǎng)上下載。在本文中,作者下載到的是其1.3.3版本。利用MiniGUI技術(shù),本文研究并開發(fā)出以嵌入式Linux為操作系統(tǒng)的機(jī)車顯示終端的圖形用戶界面。
  
系統(tǒng)整體設(shè)計(jì)方案

顯示終端硬件設(shè)計(jì)

機(jī)車車載顯示終端硬件主要由研華科技PCM-9372型號的PC/104主板作為硬件平臺核心,其CPU為VIA Eden系列的處理器,與x86體系完全兼容。機(jī)車顯示終端顯示器選用SHARP公司的10寸彩色TFT液晶顯示屏。

顯示終端軟件設(shè)計(jì)

機(jī)車顯示終端軟件主要由嵌入式Linux和MiniGUI構(gòu)成,并需要對Linux進(jìn)行裁減并移植到機(jī)車顯示終端的硬件平臺上。機(jī)車顯示終端圖形用戶界面程序以及有關(guān)應(yīng)用程序的開發(fā)則基于MiniGUI完成。機(jī)車顯示終端軟件結(jié)構(gòu)如圖1所示。

圖1 機(jī)車顯示終端軟件結(jié)構(gòu)圖

MiniGUI的裁減與移植

在開發(fā)主機(jī)上進(jìn)行MiniGUI的配置、編譯和安裝之后,MiniGUI的體積大小為10M左右,對于嵌入式系統(tǒng)來說,這個(gè)體積過于龐大,必須對其進(jìn)行裁減。MiniGUI的裁減工作可利用編譯選項(xiàng)和修改配置文件來完成。最終,其體積可裁減到2M,滿足機(jī)車顯示終端嵌入式系統(tǒng)的要求。裁減工作具體做法如下:

(1)在編譯libminigui時(shí),使用如下配置選項(xiàng):
./configure
--disable-static          ;不支持靜態(tài)鏈接庫
--disable-lite            ;編譯成thread版本
--disable-debug         ;在應(yīng)用程序調(diào)試成功后,不支持調(diào)試信息
--disable-tracemsg       ;不支持跟蹤信息
--enable -flatstyle;支持平面窗口,而不是3D窗口
--disable-svgalib
;不支持svgalib引擎
--disable-libggi
;不支持libggi引擎
--enable-fblin
;16支持16bpp的FrameBuffer引擎
--enable -nativeial
;支持本地ial
這樣,編譯Libminigui時(shí)僅僅生成動(dòng)態(tài)鏈接庫,MiniGUI體積也就大大減小。

(2)修改/usr/local/etc/MiniGUI.cfg配置文件

MiniGUI.cfg中可供裁減的內(nèi)容包括systemfont、truetypefonts、cursorinfo、iconinfo、bitmapinfo以及imeinfo等選項(xiàng)。

在裁減完成后,需要將以下文件拷貝到目標(biāo)機(jī)存儲器的相應(yīng)位置:
①M(fèi)iniGUI的函數(shù)庫,包括libminigui、libmywins和libmgext等,還包括其他的應(yīng)用程序函數(shù)庫等。
②MiniCUI的配置文件,即/usr/local/etc/MiniGUI.cfg文件。
③MiniGUI所使用的資源文件,即usr/local/lib/minigui/res。
這樣,就將裁減后的文件移植到目標(biāo)機(jī)上。
 
基于MiniGUI的圖形用戶界面設(shè)計(jì)與開發(fā)

機(jī)車車載顯示終端的圖形用戶界面主要完成數(shù)據(jù)的顯示、查詢和用戶輸入等功能,在設(shè)計(jì)上要求簡單實(shí)用、操作方便。

MiniGUI是一種基于線程的窗口系統(tǒng),界面控制線程和應(yīng)用邏輯可以用不同的線程來完成,且線程相互之間通過消息來完成數(shù)據(jù)傳遞。MiniGUI使用消息驅(qū)動(dòng)作為應(yīng)用程序的創(chuàng)建架構(gòu),主窗口可以單獨(dú)屬于一個(gè)線程,也可以附屬于其它主窗口。

本文將機(jī)車車載顯示終端正常狀態(tài)下的顯示界面設(shè)定為主窗口,MiniGUI為每個(gè)主窗口建立單獨(dú)的消息隊(duì)列,在該主窗口基礎(chǔ)上派生出的其它主窗口、對話框及其控件均使用同一消息隊(duì)列。在主函數(shù)MiniGUIMain中創(chuàng)建并顯示主窗口,同時(shí)建立窗口結(jié)構(gòu)與窗口過程的聯(lián)系,然后從窗口管理器中獲取、翻譯并分發(fā)消息,而窗口過程則負(fù)責(zé)處理各個(gè)窗口的消息。消息可以有許多種類型,不同類型的消息可以完成不同的處理,如MSG_PAINT消息的處理通常用來繪制窗口,而MSG_CLOSE消息的處理則用來完成應(yīng)用的結(jié)束。需要說明的是,也可以在MiniGUIMain函數(shù)中建立其它應(yīng)用線程。綜合上述過程,得出主界面設(shè)計(jì)流程圖如圖2所示。

圖2 主界面設(shè)計(jì)流程圖

設(shè)計(jì)完成的顯示終端主界面如圖3所示?! ?/P>

圖3 機(jī)車車載顯示終端主界面

在主界面中可以實(shí)現(xiàn)的工作主要包括:
(1) 刷新數(shù)據(jù)顯示:需要刷新的數(shù)據(jù)包括速度、限速、信號機(jī)編號和類型、距信號機(jī)距離、時(shí)間等;
(2) 刷新狀態(tài)指示顯示:包括當(dāng)前色燈以及屏幕右邊的各種狀態(tài)指示;
(3) 刷新圖形顯示:根據(jù)當(dāng)前的數(shù)據(jù),畫出前方4km和后方1km的速度、限速曲線以及平縱斷面和道橋隧等。
(4) 機(jī)車位置顯示:主界面左側(cè)約1/5處有一條垂直分割線,表示此處為當(dāng)前機(jī)車位置。機(jī)車由一個(gè)藍(lán)色圖標(biāo)表示。

其它圖形用戶界面設(shè)計(jì)中,主要利用面向?qū)ο蟮姆椒?,采用對話框模板來進(jìn)行界面編程。該模板中定義了對話框本身的一些屬性,比如位置和大小,同時(shí)還定義了對話框中所有控件的初始信息,包括位置、大小、風(fēng)格等。
  
結(jié)語

本文給出了機(jī)車顯示終端的總體設(shè)計(jì)方案,針對目前基于DOS的機(jī)車顯示終端圖形用戶界面開發(fā)難度大的狀況,研究并開發(fā)了基于MiniGUI的機(jī)車顯示終端圖形用戶界面,為新一代的機(jī)車顯示終端軟件開發(fā)提供了一種新思路和技術(shù)嘗試。
  
參考文獻(xiàn)
1. 劉剛.基于MiniGUI的嵌入式瀏覽器的研究與開發(fā).華中科技大學(xué)碩士學(xué)位論文. 2005
2. http://www.minigui.com
3.谷豐.基于Linux的機(jī)車顯示系統(tǒng)平臺的設(shè)計(jì).機(jī)車電傳動(dòng),2005,1
4.魏永明.MiniGUI編程手冊.北京飛漫軟件有限公司,2003
5.魏永明.面向?qū)崟r(shí)嵌入式系統(tǒng)的圖形用戶界面支持系統(tǒng)----MiniGUI編譯、安裝和配置.http://www.cn.ibm.com/developerWorks/Linux/

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉