999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于MiniGUI的多任務嵌入式軟件設計

2012-08-12 18:06:25靳曉園馬穎勁
航天控制 2012年3期
關鍵詞:界面機制設計

靳曉園 馬穎勁

北京航天自動控制研究所,北京 100854

?

一種基于MiniGUI的多任務嵌入式軟件設計

靳曉園 馬穎勁

北京航天自動控制研究所,北京 100854

分析圖形界面支持系統MiniGUI的消息循環機制、介紹了MiniGUI分層設計的體系結構,設計了一種基于MiniGUI的多任務多窗口嵌入式軟件。該軟件采用消息隊列和信號量處理機制以及多窗口共用一個消息循環的設計思想,加強了基于MiniGUI的嵌入式軟件的應用性,對于嵌入式軟件圖形開發有很強的借鑒意義。

MiniGUI ;多任務; 嵌入式軟件

目前,嵌入式VxWorks操作系統已經廣泛應用于航天型號中的各個領域。其傳統的圖形工具WindML由于繪制界面只是“點畫線”的方式,繪制過程繁瑣、實現功能單一,已越來越不能滿足VxWorks圖形應用的需要。在圖形界面資源如此受限的嵌入式環境下,如何實現高效、人機交互靈活的界面應用成為嵌入式環境開發中一個重點關注的問題。

MiniGUI是一個面向嵌入式系統的輕量級圖形用戶界面支持系統,其優點如下:

1)提供了完備的多窗口機制,實現了類win32的消息傳遞機制;

2)不同于WindML字符集局限性,能夠支持多字符集和多字體;

3)可以支持常見的圖像文件導入Vxworks操作系統,如BMP,GIF,JPEG等;

4)支持windows的資源文件,如位圖、圖標、光標等。

本文以MiniGUI為參考,運行平臺為Vxworks操作系統,在此基礎上開發多任務的嵌入式應用,實現控制臺界面的實時顯示和刷新,并對實現后的軟件結構進行分析與研究。

1 MiniGUI分層結構概述

從整體結構上看,MiniGUI是分層設計的。在最底層,GAL(圖形抽象層)和IAL(輸入抽象層)提供底層圖形接口以及鼠標和鍵盤的驅動,而Pthread(POSIX thread)是用于提供內核級線程支持的C函數庫。中間層是MiniGUI的核心層,其中包括了窗口系統必不可少的各個模塊,如圖l所示。最頂層的API是提供給用戶的編程接口。

圖1 MiniGUI的分層設計

本設計就是依據MiniGUI提供給用戶的界面編程GUI接口,利用多任務、多消息觸發的軟件設計思想,基于Vxworks操作系統,設計出能夠實時顯示和控制的嵌入式軟件。

2 基于MiniGUI的多任務嵌入式軟件設計

首先要說明基于MiniGUI的多任務嵌入式軟件設計都包含哪些內容,然后再提出下面主要闡述的幾個方面。

2.1 多任務處理方式

基于軟件使用多任務方式記錄、處理并顯示工作臺上的內容,各任務之間及其與顯示內容發送方的關系如圖2所示。

1)數據接收任務:基于以太網TCP協議的數據接收任務主要功能是接收并解析顯示內容發送方發送的顯示請求。根據解析,獲得顯示屬性(顯示內容、所在控件、控件內位置、顯示顏色),并將顯示屬性發送到顯示消息隊列,以顯示在控制臺界面上;

2)命令發送任務:基于以太網TCP協議的數據接收任務主要功能是將空閑狀態的測試命令、測試過程中的鍵盤輸入碼、定期發送的查詢版本和狀態信息命令等命令發送給顯示內容發送方;

圖2 控制顯示軟件的多任務處理方式

3)查詢狀態、版本任務:該任務不斷向命令消息隊列發送查詢顯示內容發送方的版本信息及狀態信息命令,以便命令發送任務處理該命令并獲得查詢結果回令;

4)MiniGUI界面任務:該任務依據消息傳遞機制的方式處理任務,獲得并向鍵盤處理任務發送鍵盤消息碼,并將顯示屬性隊列里的內容顯示在控制臺界面上,向命令發送任務發送需要進行某項測試的ID號;

5)鍵盤處理任務:處理MiniGUI界面任務發送給消息隊列的鍵盤輸入內容,并將其轉換成鍵盤命令發送給命令發送任務;

6)數據存儲任務:為了便于調試和查找問題的需要,記錄用戶輸入的鍵盤消息、在控制臺上顯示的所有內容、軟件在運行過程中的log信息。

為了保證所有通信過程的暢通、防止出現丟數漏數現象,應把2個通信任務:數據接收任務和命令發送任務的優先級設為最高。數據存儲任務僅僅用于調試及排查問題需要,優先級最低,各個任務的優先級和堆棧分配關系如表1所示。

表1 任務優先級及堆棧大小分配情況

控制顯示軟件的6項任務相輔相成、相互制約和影響,共同完成該軟件的控制和顯示功能。

2.2 消息隊列的處理和信號量機制

多任務的最大優點是:除堆棧之外,幾乎所有的數據均是共享的,因此任務間切換、創建、刪除等操作開銷低;而最大缺點是:由于不同的任務共享同一個地址空間,很可能導致任務之間互相破壞數據。為了解決以上問題,控制顯示軟件增加了消息的處理和信號量機制,從而抑制了不同任務之間同時訪問相同數據現象產生。

消息隊列的處理方式就是一個任務將需要處理的內容打包形成消息,放在(send)消息隊列里,另一個任務將需要處理的消息從消息隊列里取出(Receive),解包后以便進行處理。在某些任務中,當大量顯示內容等消息需要處理時,這種消息隊列機制可以暫且放入消息隊列等待處理,當處理任務空閑時,可以從消息隊列依次取出消息進行處理,從而緩解了大量處理大量數據給任務帶來的壓力。

在一個任務中,消息放入消息隊列或從消息隊列取出消息的過程是不允許其他任務對該消息隊列進行訪問的,為防止其他任務對該消息隊列進行訪問,即引入了信號量處理機制。

在一個任務處理中,為防止其他的任務打斷并改寫第一個任務中的數據??稍诘谝粋€任務處理之前產生(Take)一個防止其他任務打斷的信號量,在該任務處理完畢后釋放(Give)該信號量。在該信號量釋放之前,其他高優先級的任務也不能訪問該任務中的數據,從而防止了在不同任務中破壞數據的現象產生。

2.3 多窗口的設計思想

MiniGUI消息循環的機制如圖3所示。

圖3 MiniGUI消息循環機制

可以看到,MiniGUI典型的消息循環方式下,如果一個窗口采用一個消息循環,只有當該窗口消息處理完畢退出后才能進行下一個窗口的消息處理,而上一個窗口的消息再也不會得到處理。所以,如果MiniGUI界面任務存在2個或2個以上窗口時,一個窗口對應一個消息循環的情況下,在窗口產生的消息很難得到及時處理。

為了解決以上問題,控制顯示軟件設計了MiniGUI多窗口單消息循環的機制。在程序啟動之初即產生一個父窗口(pmStartLogoWin),由該父窗口產生3個子窗口(pmSelectWin,pmTestWin和pmShowDataWin),這3個窗口共用父窗口的消息循環,該消息循環共同處理4個窗口產生的消息??刂骑@示軟件需要顯示某個窗口時,便將該窗口顯示屬性設為“顯示”,其他窗口顯示屬性設為“隱藏”。

這種多窗口的設計思想會避免多個消息循環帶來的消息不能處理問題。

3 結束語

以MiniGUI為軟件支撐,基于Vxworks的嵌入式軟件融入了多任務多窗口和消息隊列的處理機制,使得人機交互界面更友好、軟件設計更為合理,具有一定的推廣性。

[1] 于秀霞.嵌入式監控系統中MiniGUI的編程與實現[J].長春大學學報,2009,19(6):58-60.(YU Xiuxia. Programme and Realization of MiniGUI on Embedded Monitor System[J].ChangChun University Transaction, 2009,19(6):58-60.)

[2] 保云,王銳.MiniGUI消息機制探討[J].計算機科學,2006,33(9):188-189.(BAO Yun, WANG Rui. Discussion on MiniGui Message Mechanism[J].Computer Science, 2006,33(9):188-189.)

[3] 郡獻鵬,郭玉東.MiniGuI——面向嵌入式系統的GUI系統[J].信息工程大學學報,2001,2(3):8-10.(JUN Xianpeng, GUO Yudong.MiniGUI—GUI System Faced on Embedded System[J].Information Engineering University Transaction, 2001,2(3):8-10.)

[4] 明芳,徐凌,王剛.基于VxWorks系統的MiniGUI圖形界面開發[J].計算機與數字工程,2007,35(7):189-191.(MING Fang, XU Ling,WANG Gang.MiniGUI Graphical Interfaces Exploitation Based on Vxworks System[J].Computer and Digital Engineering, 2007,35(7):189-191.)

The Design of Embedded Software Based on MiniGUI and Multitask

JIN Xiaoyuan MA Yingjin

Beijing Aerospace Automatic Control Institute,Beijing 100854,China

ThemechanismofmessagecirculationbasedonGUIsystemMiniGUIisanalyzed,andthesystemstructureofMiniGUIdelaminationdesignisintroduced.AndaembeddedsoftwarebasedonMiniGui,multitaskandmultiwindowisdesigned.Thisdesignideaofmessagequeue,semaphoremanagementandamessagecirculationusedbymultiwindowisappliedinthissoftware.TheapplicationofembeddedsoftwarebasedonMiniGUIisenhancedbyusingthisfunctionandthissoftwarehasfairreferencevaluefortheGUIdesignofembeddedsoftware.

MiniGUI;Multitask;Embeddedsoftware

2011-09-01

靳曉園(1984-),女,山東棗莊人,助理工程師,主要研究方向為嵌入式軟件綜合設計和軟件工程;馬穎勁(1977-),男,江西上饒人,工程師,主要研究方向為嵌入式軟件的開發設計。

TP311.52

A

1006-3242(2012)03-0065-04

猜你喜歡
界面機制設計
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
自制力是一種很好的篩選機制
文苑(2018年21期)2018-11-09 01:23:06
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
人機交互界面發展趨勢研究
破除舊機制要分步推進
中國衛生(2015年9期)2015-11-10 03:11:12
手機界面中圖形符號的發展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
注重機制的相互配合
中國衛生(2014年3期)2014-11-12 13:18:12
主站蜘蛛池模板: 国产乱子伦无码精品小说| 欧美一级在线播放| 国产欧美日韩在线一区| 亚洲欧美综合精品久久成人网| 伊人AV天堂| 亚洲中文字幕av无码区| 最新午夜男女福利片视频| 国产成人精品亚洲日本对白优播| 国产91成人| 国产对白刺激真实精品91| 国产小视频免费观看| 一级一毛片a级毛片| 人人爱天天做夜夜爽| 99无码中文字幕视频| 国产清纯在线一区二区WWW| 亚洲视频影院| 久久久久九九精品影院| 久久99久久无码毛片一区二区| 亚洲av无码久久无遮挡| 免费AV在线播放观看18禁强制| 亚洲av无码片一区二区三区| 亚洲人成人无码www| 国产精品偷伦在线观看| 一级毛片a女人刺激视频免费 | 中文字幕亚洲精品2页| 久久国产精品77777| 国产视频入口| 国产精品免费福利久久播放| 国产v欧美v日韩v综合精品| 成人无码区免费视频网站蜜臀| 国产天天射| 日韩久久精品无码aV| 香蕉伊思人视频| 日本成人精品视频| 国产午夜在线观看视频| 欧美成在线视频| 五月六月伊人狠狠丁香网| 91娇喘视频| 色综合成人| 999在线免费视频| 国产成人综合久久| 97se亚洲| 久久综合激情网| 3344在线观看无码| 中文字幕人妻无码系列第三区| 亚洲精品第一页不卡| 亚洲无码视频图片| 久久午夜夜伦鲁鲁片不卡| 她的性爱视频| 蜜臀av性久久久久蜜臀aⅴ麻豆 | 99re这里只有国产中文精品国产精品| 亚洲成人77777| 亚州AV秘 一区二区三区| 亚洲欧美人成人让影院| 国产一在线| 亚洲欧美日本国产专区一区| 婷婷午夜影院| 精品国产成人a在线观看| 亚洲成a人片7777| 国产三级毛片| 久久夜色精品国产嚕嚕亚洲av| 午夜精品一区二区蜜桃| 欧美精品啪啪一区二区三区| 日韩福利视频导航| 激情在线网| 欲色天天综合网| 美女无遮挡拍拍拍免费视频| 久久久久久高潮白浆| 国产精品原创不卡在线| 久久久精品无码一二三区| 国产亚洲视频中文字幕视频| 日日噜噜夜夜狠狠视频| 国产精品第页| 国内精自视频品线一二区| 国产福利在线观看精品| 免费a级毛片18以上观看精品| av在线手机播放| 自拍欧美亚洲| 四虎精品免费久久| 亚洲91在线精品| 福利在线不卡| 91小视频版在线观看www|