基于MiniGUI的嵌入式系統(tǒng)用戶界面關鍵問題的解決方案
2017-10-27 |
rar |
0.3 MB |
次下載 |
1積分
資料介紹
引言
在需要豐富人機交互信息的嵌入式系統(tǒng)應用中,高精度的動態(tài)圖像顯示非常重要。因此,嵌入式系統(tǒng)對GUI的實時性和穩(wěn)定性的要求也越來越明顯。但是,動態(tài)圖像的抖動和刷新延遲的問題在嵌入式系統(tǒng)中經(jīng)常出現(xiàn),影響系統(tǒng)的顯示效果
國產(chǎn)圖形用戶界面系統(tǒng)MiniGUI提供完備的多窗口機制和類Win32消息傳遞機制,便于實現(xiàn)多個進程間的消息傳遞。而且具有占用內(nèi)存少、可移植性好等特點,因此在嵌入式領域中被廣泛應用。但在實際應用中,筆者發(fā)現(xiàn)了兩個問題:一是用MiniGUI的animation控件實現(xiàn)時出現(xiàn)動畫抖動,二是顯示較多圖片的窗口刷新時屏幕閃爍,嚴重影響屏幕的顯示效果。為解決以上兩個問題,本系統(tǒng)采用MiniGUI的雙緩沖技術和多張圖片交替顯示的方法,并通過實際應用證明了該方法的有效性
1 數(shù)字加密電話系統(tǒng)架構
1.1 硬件系統(tǒng)
數(shù)字加密電話硬件系統(tǒng)的芯片采用ATMEL公司的AT91SAM9263處理器。主頻為200 MHz,2 MB高速Data Flash、64 MB NAND Flash和64 MB SDRAM。核心板的對外接口包括鍵盤接口、LCD接口、LED接口、MODEM模塊、電話機模塊和接口、SD卡接口和USB主從接口等。如圖1所示。

1.2 軟件系統(tǒng)
操作系統(tǒng):開放源碼的Linux操作系統(tǒng)是開發(fā)嵌入式產(chǎn)品的首選。本系統(tǒng)采用開放源碼的嵌入式Linux系統(tǒng)。它的內(nèi)核版本為2.6.22,是基于default_at91sam9263_config配置的
交叉編譯工具鏈:采用arm-linux-XXX。arm-linux-gcc用于交叉編譯源程序,生成執(zhí)行文件;arm-linux-strip用于去掉執(zhí)行文件中的調(diào)試信息,起到減小執(zhí)行文件大小的作用
GUI系統(tǒng):MiniGUI是國產(chǎn)的一款面向嵌入式系統(tǒng)、跨操作系統(tǒng)的輕量級國產(chǎn)高級窗口系統(tǒng)(Windowing System)和圖形用戶界面(Graphi-cal User Interface,GUI)支持系統(tǒng)。經(jīng)過10余年的發(fā)展,MiniGUI已經(jīng)發(fā)展成為比較成熟、性能優(yōu)良且功能豐富的跨操作系統(tǒng)的嵌入式圖形界面支持系統(tǒng)。MiniGUI可在Linux/μClinux、eCos、μC/OS-II、VxWorks、pSOS、ThreadX等操作系統(tǒng)以及Win32平臺上運行,已廣泛應用于手持信息終端、機頂盒、工業(yè)控制系統(tǒng)、便攜式多媒體播放器等產(chǎn)品中
MiniGUI支持BMP、GIF、PNG、JPEG、PCX、TGA等常見圖像文件和位圖、圖標、光標等Windows資源文件,支持多字符集和多種字體,庫文件較小且可配置。MiniGUI3.0比其之前的版本,在以下幾方面有新的發(fā)展:
?、僦鞔翱陔p緩沖技術,可以在自定義緩沖區(qū)中獲得整個窗口的渲染結果
?、谕庥^渲染器技術,外觀渲染器提供了多種風格的主窗口和控件界面外觀,并且應用程序可在幾種風格之間動態(tài)切換
?、垭p向文本顯示與輸入,增加了對阿拉伯文和希伯來文語言的支持,實現(xiàn)了文本的變形和重排,并提供了阿拉伯文和希伯來文鍵盤的支持
④支持不規(guī)則窗口,如圓角矩形、非矩形窗口等
?、菰黾恿私M件mGUtilis,該組件為用戶提供了一些常用的對話框模板,便于代碼復用
?、拊黾恿私M件msgplus,該組件是對MiniGUI圖形繪制接口的一個擴充和增強,主要提供對二維矢量圖形和高級圖形算法的支持
因此,MiniGUI非常適合編寫嵌入式圖形用戶界面應用程序。
1.3 用戶界面設計
數(shù)字加密電話系統(tǒng)需要顯示當前的系統(tǒng)狀態(tài)和具體內(nèi)容,以此進行系統(tǒng)與用戶之間的信息交流,因此對界面的穩(wěn)定性和實時性要求較高。本系統(tǒng)將整個屏幕分為3個區(qū)域,即狀態(tài)區(qū)域、Logo與時間顯示區(qū)域和主顯示區(qū)域,如圖2所示。狀態(tài)顯示區(qū)主要表示當前系統(tǒng)的工作狀態(tài)和設備的狀態(tài)。比如是掛機態(tài)還是摘機態(tài),是加密還是非加密態(tài),是否插入U盤,當前的數(shù)據(jù)傳輸率為多少等。不同的狀態(tài)需要用不同的圖片來顯示。從一個狀態(tài)過渡到另一個狀態(tài),需要用一個動畫來表示。主顯示區(qū)域主要顯示表示當前系統(tǒng)的工作情況的動畫或文字提示。比如表示普通語音電話的動畫、表示正在加密傳輸?shù)膭赢?,也可以顯示其他信息,如系統(tǒng)功能選擇界面、選文件界面、日志管理界面等。Logo及時間顯示區(qū)顯示公司的Logo與當前系統(tǒng)時間。對于本系統(tǒng)的界面設計來說,最重要的是各種動畫的顯示要流暢。

2 實現(xiàn)GUI時存在的兩個問題
本系統(tǒng)GUI的實現(xiàn)問題主要是各種圖片的顯示、動畫和選擇功能界面的實現(xiàn)。圖片的顯示方法很簡單,因此,在下面只介紹動畫和選擇功能界面的實現(xiàn)方法及存在的問題。
2.1 動畫的實現(xiàn)方法及存在的問題
MiniGUI為實現(xiàn)動畫,已提供了animation控件,用animation控件實現(xiàn)動畫的過程非常簡單:
?、贉蕚鋭赢嬑募?,文件格式應該是GIF格式,GIF格式的動畫文件可以用Flash和PhotoShop生成
②用函數(shù)CreateAnimationFromGIF89aFile()讀入GIF文件
?、塾肅reateWindow()創(chuàng)建動畫顯示窗口
?、苡肧endMessage()函數(shù)控制動畫,該函數(shù)的第2個參數(shù)為ANM_STARTPLAY表示啟動動畫,參數(shù)為ANM_PLAYSTOP表示暫停動畫。也可以用函數(shù)SendMessage(GetDlgItem(hInitface,IDC_MAINANIMATION),ANM_SETANIMATION,0,(LPARAM)anim)實現(xiàn)更換動畫文件。但是,在嵌入式環(huán)境下,使用該方法播放動畫時,在狀態(tài)顯示區(qū)和主顯示區(qū)內(nèi)都產(chǎn)生嚴重的抖動現(xiàn)象。而且屏幕越大抖動就越明顯,分辨率為480×640時的抖動現(xiàn)象比240×320時更明顯。減少動畫的幀數(shù)或延長每一幀的播放時間,抖動仍然存在,嚴重影響屏幕的顯示效果。
2.2 功能選擇界面的實現(xiàn)及存在的問題
功能選擇界面一般由多個圖片來組成,各表示不同的系統(tǒng)功能,用上下左右鍵選擇不同的功能,按Enter鍵運行相應程序,即打開另一個窗口,完成相應功能。當關閉窗口時重新顯示功能顯示界面。為區(qū)別被選中功能和未選中功能,放大或下沉顯示當前被選中的功能圖片,而前一個被選中功能圖片恢復成原來的大小,如圖3所示。每次用上下左右鍵選擇功能時和關閉功能窗口時,都要重新刷新背景,并重繪窗口客戶區(qū)的各個圖片。因為MiniGUI不保存被覆蓋區(qū)域的內(nèi)容,因此在MSG_PAINT消息中需要重繪的內(nèi)容較多,重繪圖片的常用方法是用FillB-oxWithBitmap()函數(shù)填充相應圖片區(qū)域,但是這種方法加重了屏幕刷新負載,引起屏幕明顯地閃爍。
柄,STM_SETIMAGE,pngmap,0)函數(shù)更換圖片的方式實現(xiàn)較好。
在需要豐富人機交互信息的嵌入式系統(tǒng)應用中,高精度的動態(tài)圖像顯示非常重要。因此,嵌入式系統(tǒng)對GUI的實時性和穩(wěn)定性的要求也越來越明顯。但是,動態(tài)圖像的抖動和刷新延遲的問題在嵌入式系統(tǒng)中經(jīng)常出現(xiàn),影響系統(tǒng)的顯示效果
國產(chǎn)圖形用戶界面系統(tǒng)MiniGUI提供完備的多窗口機制和類Win32消息傳遞機制,便于實現(xiàn)多個進程間的消息傳遞。而且具有占用內(nèi)存少、可移植性好等特點,因此在嵌入式領域中被廣泛應用。但在實際應用中,筆者發(fā)現(xiàn)了兩個問題:一是用MiniGUI的animation控件實現(xiàn)時出現(xiàn)動畫抖動,二是顯示較多圖片的窗口刷新時屏幕閃爍,嚴重影響屏幕的顯示效果。為解決以上兩個問題,本系統(tǒng)采用MiniGUI的雙緩沖技術和多張圖片交替顯示的方法,并通過實際應用證明了該方法的有效性
1 數(shù)字加密電話系統(tǒng)架構
1.1 硬件系統(tǒng)
數(shù)字加密電話硬件系統(tǒng)的芯片采用ATMEL公司的AT91SAM9263處理器。主頻為200 MHz,2 MB高速Data Flash、64 MB NAND Flash和64 MB SDRAM。核心板的對外接口包括鍵盤接口、LCD接口、LED接口、MODEM模塊、電話機模塊和接口、SD卡接口和USB主從接口等。如圖1所示。

1.2 軟件系統(tǒng)
操作系統(tǒng):開放源碼的Linux操作系統(tǒng)是開發(fā)嵌入式產(chǎn)品的首選。本系統(tǒng)采用開放源碼的嵌入式Linux系統(tǒng)。它的內(nèi)核版本為2.6.22,是基于default_at91sam9263_config配置的
交叉編譯工具鏈:采用arm-linux-XXX。arm-linux-gcc用于交叉編譯源程序,生成執(zhí)行文件;arm-linux-strip用于去掉執(zhí)行文件中的調(diào)試信息,起到減小執(zhí)行文件大小的作用
GUI系統(tǒng):MiniGUI是國產(chǎn)的一款面向嵌入式系統(tǒng)、跨操作系統(tǒng)的輕量級國產(chǎn)高級窗口系統(tǒng)(Windowing System)和圖形用戶界面(Graphi-cal User Interface,GUI)支持系統(tǒng)。經(jīng)過10余年的發(fā)展,MiniGUI已經(jīng)發(fā)展成為比較成熟、性能優(yōu)良且功能豐富的跨操作系統(tǒng)的嵌入式圖形界面支持系統(tǒng)。MiniGUI可在Linux/μClinux、eCos、μC/OS-II、VxWorks、pSOS、ThreadX等操作系統(tǒng)以及Win32平臺上運行,已廣泛應用于手持信息終端、機頂盒、工業(yè)控制系統(tǒng)、便攜式多媒體播放器等產(chǎn)品中
MiniGUI支持BMP、GIF、PNG、JPEG、PCX、TGA等常見圖像文件和位圖、圖標、光標等Windows資源文件,支持多字符集和多種字體,庫文件較小且可配置。MiniGUI3.0比其之前的版本,在以下幾方面有新的發(fā)展:
?、僦鞔翱陔p緩沖技術,可以在自定義緩沖區(qū)中獲得整個窗口的渲染結果
?、谕庥^渲染器技術,外觀渲染器提供了多種風格的主窗口和控件界面外觀,并且應用程序可在幾種風格之間動態(tài)切換
?、垭p向文本顯示與輸入,增加了對阿拉伯文和希伯來文語言的支持,實現(xiàn)了文本的變形和重排,并提供了阿拉伯文和希伯來文鍵盤的支持
④支持不規(guī)則窗口,如圓角矩形、非矩形窗口等
?、菰黾恿私M件mGUtilis,該組件為用戶提供了一些常用的對話框模板,便于代碼復用
?、拊黾恿私M件msgplus,該組件是對MiniGUI圖形繪制接口的一個擴充和增強,主要提供對二維矢量圖形和高級圖形算法的支持
因此,MiniGUI非常適合編寫嵌入式圖形用戶界面應用程序。
1.3 用戶界面設計
數(shù)字加密電話系統(tǒng)需要顯示當前的系統(tǒng)狀態(tài)和具體內(nèi)容,以此進行系統(tǒng)與用戶之間的信息交流,因此對界面的穩(wěn)定性和實時性要求較高。本系統(tǒng)將整個屏幕分為3個區(qū)域,即狀態(tài)區(qū)域、Logo與時間顯示區(qū)域和主顯示區(qū)域,如圖2所示。狀態(tài)顯示區(qū)主要表示當前系統(tǒng)的工作狀態(tài)和設備的狀態(tài)。比如是掛機態(tài)還是摘機態(tài),是加密還是非加密態(tài),是否插入U盤,當前的數(shù)據(jù)傳輸率為多少等。不同的狀態(tài)需要用不同的圖片來顯示。從一個狀態(tài)過渡到另一個狀態(tài),需要用一個動畫來表示。主顯示區(qū)域主要顯示表示當前系統(tǒng)的工作情況的動畫或文字提示。比如表示普通語音電話的動畫、表示正在加密傳輸?shù)膭赢?,也可以顯示其他信息,如系統(tǒng)功能選擇界面、選文件界面、日志管理界面等。Logo及時間顯示區(qū)顯示公司的Logo與當前系統(tǒng)時間。對于本系統(tǒng)的界面設計來說,最重要的是各種動畫的顯示要流暢。

2 實現(xiàn)GUI時存在的兩個問題
本系統(tǒng)GUI的實現(xiàn)問題主要是各種圖片的顯示、動畫和選擇功能界面的實現(xiàn)。圖片的顯示方法很簡單,因此,在下面只介紹動畫和選擇功能界面的實現(xiàn)方法及存在的問題。
2.1 動畫的實現(xiàn)方法及存在的問題
MiniGUI為實現(xiàn)動畫,已提供了animation控件,用animation控件實現(xiàn)動畫的過程非常簡單:
?、贉蕚鋭赢嬑募?,文件格式應該是GIF格式,GIF格式的動畫文件可以用Flash和PhotoShop生成
②用函數(shù)CreateAnimationFromGIF89aFile()讀入GIF文件
?、塾肅reateWindow()創(chuàng)建動畫顯示窗口
?、苡肧endMessage()函數(shù)控制動畫,該函數(shù)的第2個參數(shù)為ANM_STARTPLAY表示啟動動畫,參數(shù)為ANM_PLAYSTOP表示暫停動畫。也可以用函數(shù)SendMessage(GetDlgItem(hInitface,IDC_MAINANIMATION),ANM_SETANIMATION,0,(LPARAM)anim)實現(xiàn)更換動畫文件。但是,在嵌入式環(huán)境下,使用該方法播放動畫時,在狀態(tài)顯示區(qū)和主顯示區(qū)內(nèi)都產(chǎn)生嚴重的抖動現(xiàn)象。而且屏幕越大抖動就越明顯,分辨率為480×640時的抖動現(xiàn)象比240×320時更明顯。減少動畫的幀數(shù)或延長每一幀的播放時間,抖動仍然存在,嚴重影響屏幕的顯示效果。
2.2 功能選擇界面的實現(xiàn)及存在的問題
功能選擇界面一般由多個圖片來組成,各表示不同的系統(tǒng)功能,用上下左右鍵選擇不同的功能,按Enter鍵運行相應程序,即打開另一個窗口,完成相應功能。當關閉窗口時重新顯示功能顯示界面。為區(qū)別被選中功能和未選中功能,放大或下沉顯示當前被選中的功能圖片,而前一個被選中功能圖片恢復成原來的大小,如圖3所示。每次用上下左右鍵選擇功能時和關閉功能窗口時,都要重新刷新背景,并重繪窗口客戶區(qū)的各個圖片。因為MiniGUI不保存被覆蓋區(qū)域的內(nèi)容,因此在MSG_PAINT消息中需要重繪的內(nèi)容較多,重繪圖片的常用方法是用FillB-oxWithBitmap()函數(shù)填充相應圖片區(qū)域,但是這種方法加重了屏幕刷新負載,引起屏幕明顯地閃爍。
柄,STM_SETIMAGE,pngmap,0)函數(shù)更換圖片的方式實現(xiàn)較好。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 基于嵌入式Linux系统的MiniGUI的移植1次下载
- linux实验minigui窗口的实现,嵌入式Linux下基于MiniGUI的GIS实现16次下载
- 嵌入式图形界面10次下载
- 嵌入式系统定义12次下载
- ARM主板,嵌入式主板,ARM工控主板,嵌入式工控机控制系统的人机界面组态软件开发方案21次下载
- 嵌入式图形用户界面系统设计分析1次下载
- 嵌入式Linux智能家居控制系统设计1103次下载
- 最新嵌入式系统数字逻辑测试解决方案40次下载
- 采用AT91SAM9261的MiniGUI移植方案30次下载
- 基于ARM-Linux环境下MiniGUI的移植40次下载
- 嵌入式Linux环境下MiniGUI的研究与移植38次下载
- 基于MiniGUI的智能呼吸机嵌入式应用系统实现47次下载
- 嵌入式Linux中图形用户界面的研究与设计12次下载
- Java用于嵌入式系统之分析与解决方案8次下载
- 嵌入式Linux系统的移植研究23次下载
- 嵌入式fpga是什么意思2142次阅读
- 什么是嵌入式系统?嵌入式系统的具体应用3380次阅读
- 嵌入式软件与生态系统:为嵌入式开发者提供必要的组件958次阅读
- 采用Linux操作系统和图形用户界面库实现SIP电话终端的设计方案1263次阅读
- 基于uITRON 3.0的嵌入式GUI系统设计概述1667次阅读
- 嵌入式系统HCI僵化解决方案概述1193次阅读
- 深入了解嵌入式系统,是嵌入式系统设计开发的精髓1856次阅读
- 基于嵌入式Linux系统下Mini GUI的移植方法与过程详解3962次阅读
- 关于嵌入式系统8大关键特性详解1284次阅读
- 嵌入式操作系统是什么_嵌入式操作系统有哪些21057次阅读
- MiniGUI与嵌入式系统的关系 MiniGUI移植的过程5133次阅读
- 基于FPGA的嵌入式Linux操作系统解决方案6671次阅读
- 典型的嵌入式系统设计2923次阅读
- 嵌入式人机交互界面研究与实现3747次阅读
- 基于嵌入式Linux流媒体播放器系统软硬件解决方案3022次阅读
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統(tǒng)的設計與實現(xiàn)
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發(fā)板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論