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

一種基于MiniGUI的多任務(wù)嵌入式軟件設(shè)計(jì)

2012-08-12 18:06:25靳曉園馬穎勁
航天控制 2012年3期
關(guān)鍵詞:界面機(jī)制設(shè)計(jì)

靳曉園 馬穎勁

北京航天自動(dòng)控制研究所,北京 100854

?

一種基于MiniGUI的多任務(wù)嵌入式軟件設(shè)計(jì)

靳曉園 馬穎勁

北京航天自動(dòng)控制研究所,北京 100854

分析圖形界面支持系統(tǒng)MiniGUI的消息循環(huán)機(jī)制、介紹了MiniGUI分層設(shè)計(jì)的體系結(jié)構(gòu),設(shè)計(jì)了一種基于MiniGUI的多任務(wù)多窗口嵌入式軟件。該軟件采用消息隊(duì)列和信號(hào)量處理機(jī)制以及多窗口共用一個(gè)消息循環(huán)的設(shè)計(jì)思想,加強(qiáng)了基于MiniGUI的嵌入式軟件的應(yīng)用性,對于嵌入式軟件圖形開發(fā)有很強(qiáng)的借鑒意義。

MiniGUI ;多任務(wù); 嵌入式軟件

目前,嵌入式VxWorks操作系統(tǒng)已經(jīng)廣泛應(yīng)用于航天型號(hào)中的各個(gè)領(lǐng)域。其傳統(tǒng)的圖形工具WindML由于繪制界面只是“點(diǎn)畫線”的方式,繪制過程繁瑣、實(shí)現(xiàn)功能單一,已越來越不能滿足VxWorks圖形應(yīng)用的需要。在圖形界面資源如此受限的嵌入式環(huán)境下,如何實(shí)現(xiàn)高效、人機(jī)交互靈活的界面應(yīng)用成為嵌入式環(huán)境開發(fā)中一個(gè)重點(diǎn)關(guān)注的問題。

MiniGUI是一個(gè)面向嵌入式系統(tǒng)的輕量級圖形用戶界面支持系統(tǒng),其優(yōu)點(diǎn)如下:

1)提供了完備的多窗口機(jī)制,實(shí)現(xiàn)了類win32的消息傳遞機(jī)制;

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

3)可以支持常見的圖像文件導(dǎo)入Vxworks操作系統(tǒng),如BMP,GIF,JPEG等;

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

本文以MiniGUI為參考,運(yùn)行平臺(tái)為Vxworks操作系統(tǒng),在此基礎(chǔ)上開發(fā)多任務(wù)的嵌入式應(yīng)用,實(shí)現(xiàn)控制臺(tái)界面的實(shí)時(shí)顯示和刷新,并對實(shí)現(xiàn)后的軟件結(jié)構(gòu)進(jìn)行分析與研究。

1 MiniGUI分層結(jié)構(gòu)概述

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

圖1 MiniGUI的分層設(shè)計(jì)

本設(shè)計(jì)就是依據(jù)MiniGUI提供給用戶的界面編程GUI接口,利用多任務(wù)、多消息觸發(fā)的軟件設(shè)計(jì)思想,基于Vxworks操作系統(tǒng),設(shè)計(jì)出能夠?qū)崟r(shí)顯示和控制的嵌入式軟件。

2 基于MiniGUI的多任務(wù)嵌入式軟件設(shè)計(jì)

首先要說明基于MiniGUI的多任務(wù)嵌入式軟件設(shè)計(jì)都包含哪些內(nèi)容,然后再提出下面主要闡述的幾個(gè)方面。

2.1 多任務(wù)處理方式

基于軟件使用多任務(wù)方式記錄、處理并顯示工作臺(tái)上的內(nèi)容,各任務(wù)之間及其與顯示內(nèi)容發(fā)送方的關(guān)系如圖2所示。

1)數(shù)據(jù)接收任務(wù):基于以太網(wǎng)TCP協(xié)議的數(shù)據(jù)接收任務(wù)主要功能是接收并解析顯示內(nèi)容發(fā)送方發(fā)送的顯示請求。根據(jù)解析,獲得顯示屬性(顯示內(nèi)容、所在控件、控件內(nèi)位置、顯示顏色),并將顯示屬性發(fā)送到顯示消息隊(duì)列,以顯示在控制臺(tái)界面上;

2)命令發(fā)送任務(wù):基于以太網(wǎng)TCP協(xié)議的數(shù)據(jù)接收任務(wù)主要功能是將空閑狀態(tài)的測試命令、測試過程中的鍵盤輸入碼、定期發(fā)送的查詢版本和狀態(tài)信息命令等命令發(fā)送給顯示內(nèi)容發(fā)送方;

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

3)查詢狀態(tài)、版本任務(wù):該任務(wù)不斷向命令消息隊(duì)列發(fā)送查詢顯示內(nèi)容發(fā)送方的版本信息及狀態(tài)信息命令,以便命令發(fā)送任務(wù)處理該命令并獲得查詢結(jié)果回令;

4)MiniGUI界面任務(wù):該任務(wù)依據(jù)消息傳遞機(jī)制的方式處理任務(wù),獲得并向鍵盤處理任務(wù)發(fā)送鍵盤消息碼,并將顯示屬性隊(duì)列里的內(nèi)容顯示在控制臺(tái)界面上,向命令發(fā)送任務(wù)發(fā)送需要進(jìn)行某項(xiàng)測試的ID號(hào);

5)鍵盤處理任務(wù):處理MiniGUI界面任務(wù)發(fā)送給消息隊(duì)列的鍵盤輸入內(nèi)容,并將其轉(zhuǎn)換成鍵盤命令發(fā)送給命令發(fā)送任務(wù);

6)數(shù)據(jù)存儲(chǔ)任務(wù):為了便于調(diào)試和查找問題的需要,記錄用戶輸入的鍵盤消息、在控制臺(tái)上顯示的所有內(nèi)容、軟件在運(yùn)行過程中的log信息。

為了保證所有通信過程的暢通、防止出現(xiàn)丟數(shù)漏數(shù)現(xiàn)象,應(yīng)把2個(gè)通信任務(wù):數(shù)據(jù)接收任務(wù)和命令發(fā)送任務(wù)的優(yōu)先級設(shè)為最高。數(shù)據(jù)存儲(chǔ)任務(wù)僅僅用于調(diào)試及排查問題需要,優(yōu)先級最低,各個(gè)任務(wù)的優(yōu)先級和堆棧分配關(guān)系如表1所示。

表1 任務(wù)優(yōu)先級及堆棧大小分配情況

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

2.2 消息隊(duì)列的處理和信號(hào)量機(jī)制

多任務(wù)的最大優(yōu)點(diǎn)是:除堆棧之外,幾乎所有的數(shù)據(jù)均是共享的,因此任務(wù)間切換、創(chuàng)建、刪除等操作開銷低;而最大缺點(diǎn)是:由于不同的任務(wù)共享同一個(gè)地址空間,很可能導(dǎo)致任務(wù)之間互相破壞數(shù)據(jù)。為了解決以上問題,控制顯示軟件增加了消息的處理和信號(hào)量機(jī)制,從而抑制了不同任務(wù)之間同時(shí)訪問相同數(shù)據(jù)現(xiàn)象產(chǎn)生。

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

在一個(gè)任務(wù)中,消息放入消息隊(duì)列或從消息隊(duì)列取出消息的過程是不允許其他任務(wù)對該消息隊(duì)列進(jìn)行訪問的,為防止其他任務(wù)對該消息隊(duì)列進(jìn)行訪問,即引入了信號(hào)量處理機(jī)制。

在一個(gè)任務(wù)處理中,為防止其他的任務(wù)打斷并改寫第一個(gè)任務(wù)中的數(shù)據(jù)。可在第一個(gè)任務(wù)處理之前產(chǎn)生(Take)一個(gè)防止其他任務(wù)打斷的信號(hào)量,在該任務(wù)處理完畢后釋放(Give)該信號(hào)量。在該信號(hào)量釋放之前,其他高優(yōu)先級的任務(wù)也不能訪問該任務(wù)中的數(shù)據(jù),從而防止了在不同任務(wù)中破壞數(shù)據(jù)的現(xiàn)象產(chǎn)生。

2.3 多窗口的設(shè)計(jì)思想

MiniGUI消息循環(huán)的機(jī)制如圖3所示。

圖3 MiniGUI消息循環(huán)機(jī)制

可以看到,MiniGUI典型的消息循環(huán)方式下,如果一個(gè)窗口采用一個(gè)消息循環(huán),只有當(dāng)該窗口消息處理完畢退出后才能進(jìn)行下一個(gè)窗口的消息處理,而上一個(gè)窗口的消息再也不會(huì)得到處理。所以,如果MiniGUI界面任務(wù)存在2個(gè)或2個(gè)以上窗口時(shí),一個(gè)窗口對應(yīng)一個(gè)消息循環(huán)的情況下,在窗口產(chǎn)生的消息很難得到及時(shí)處理。

為了解決以上問題,控制顯示軟件設(shè)計(jì)了MiniGUI多窗口單消息循環(huán)的機(jī)制。在程序啟動(dòng)之初即產(chǎn)生一個(gè)父窗口(pmStartLogoWin),由該父窗口產(chǎn)生3個(gè)子窗口(pmSelectWin,pmTestWin和pmShowDataWin),這3個(gè)窗口共用父窗口的消息循環(huán),該消息循環(huán)共同處理4個(gè)窗口產(chǎn)生的消息。控制顯示軟件需要顯示某個(gè)窗口時(shí),便將該窗口顯示屬性設(shè)為“顯示”,其他窗口顯示屬性設(shè)為“隱藏”。

這種多窗口的設(shè)計(jì)思想會(huì)避免多個(gè)消息循環(huán)帶來的消息不能處理問題。

3 結(jié)束語

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

[1] 于秀霞.嵌入式監(jiān)控系統(tǒng)中MiniGUI的編程與實(shí)現(xiàn)[J].長春大學(xué)學(xué)報(bào),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ī)制探討[J].計(jì)算機(jī)科學(xué),2006,33(9):188-189.(BAO Yun, WANG Rui. Discussion on MiniGui Message Mechanism[J].Computer Science, 2006,33(9):188-189.)

[3] 郡獻(xiàn)鵬,郭玉東.MiniGuI——面向嵌入式系統(tǒng)的GUI系統(tǒng)[J].信息工程大學(xué)學(xué)報(bào),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系統(tǒng)的MiniGUI圖形界面開發(fā)[J].計(jì)算機(jī)與數(shù)字工程,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-),女,山東棗莊人,助理工程師,主要研究方向?yàn)榍度胧杰浖C合設(shè)計(jì)和軟件工程;馬穎勁(1977-),男,江西上饒人,工程師,主要研究方向?yàn)榍度胧杰浖拈_發(fā)設(shè)計(jì)。

TP311.52

A

1006-3242(2012)03-0065-04

猜你喜歡
界面機(jī)制設(shè)計(jì)
國企黨委前置研究的“四個(gè)界面”
自制力是一種很好的篩選機(jī)制
文苑(2018年21期)2018-11-09 01:23:06
瞞天過海——仿生設(shè)計(jì)萌到家
基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計(jì)叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
人機(jī)交互界面發(fā)展趨勢研究
破除舊機(jī)制要分步推進(jìn)
手機(jī)界面中圖形符號(hào)的發(fā)展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
注重機(jī)制的相互配合
主站蜘蛛池模板: 欧美成人怡春院在线激情| 97影院午夜在线观看视频| 日本少妇又色又爽又高潮| 亚洲无码视频喷水| 久久久久久久久18禁秘| aaa国产一级毛片| 无码专区第一页| 亚洲精品在线观看91| 免费观看三级毛片| 久久先锋资源| 制服丝袜一区| 福利在线免费视频| 成人国产小视频| 一区二区三区国产精品视频| 色噜噜在线观看| 精品欧美视频| 二级毛片免费观看全程| 福利姬国产精品一区在线| 中美日韩在线网免费毛片视频 | 伊人蕉久影院| 福利国产微拍广场一区视频在线| 亚洲色欲色欲www在线观看| 伊人五月丁香综合AⅤ| 欧美精品二区| 日本中文字幕久久网站| 国产一在线观看| 丝袜国产一区| 无码日韩视频| 99热在线只有精品| 欧美亚洲一区二区三区在线| 极品尤物av美乳在线观看| 亚洲无线视频| 日本一区二区不卡视频| 91精品人妻一区二区| 亚洲人成色77777在线观看| 在线不卡免费视频| 国产精品美女自慰喷水| 在线播放国产99re| 97成人在线视频| 精品91在线| 亚洲国内精品自在自线官| 国产无码网站在线观看| 久久这里只有精品66| 久久综合伊人77777| 亚洲欧美人成电影在线观看| 久久久久人妻精品一区三寸蜜桃| 97超爽成人免费视频在线播放| 亚洲欧美在线综合一区二区三区| 久久久久国色AV免费观看性色| 精品久久久久久久久久久| 成人免费一区二区三区| www.亚洲一区| 国产在线自揄拍揄视频网站| 国产自在线播放| 日本在线免费网站| 干中文字幕| 亚洲欧美另类视频| 国产亚洲精久久久久久无码AV| 国产sm重味一区二区三区| 午夜毛片免费观看视频 | 嫩草国产在线| 日韩精品一区二区三区视频免费看| 伊在人亚洲香蕉精品播放 | 91在线中文| 1024你懂的国产精品| 91探花国产综合在线精品| 欧美精品在线视频观看| 日本黄色不卡视频| A级全黄试看30分钟小视频| 激情视频综合网| 日韩精品中文字幕一区三区| 亚洲日本精品一区二区| 亚洲色欲色欲www网| 日韩毛片免费| vvvv98国产成人综合青青| 1级黄色毛片| 国产国拍精品视频免费看| 亚洲AV无码久久天堂| 久久综合丝袜日本网| 日韩欧美高清视频| 日本黄色a视频| 熟女视频91|