基于Linux和MiniGUI的心電監(jiān)護(hù)儀設(shè)計(jì)
2. 2 圖形用戶界面MiniGUI
MiniGUI 是基于Linux 的輕量級(jí)的圖形用戶界面支持系統(tǒng),是由原清華大學(xué)教師魏永明主持開發(fā),遵循GPL 公約。所支持的操作系統(tǒng)已不僅僅限于Linux,它還可以在uClinux、uC /OS-Ⅱ、eCos 和Vx-Works 等系統(tǒng)上運(yùn)行。已驗(yàn)證的硬件平臺(tái)包括Intelx86,ARM ( ARM/AMR9 /StrongARM/xScale ) ,Power-PC,MIPS,M68K ( DragonBall /ColdFire ) 等。對(duì)MiniGUI 移植,首先下載MiniGUI 的源代碼libminigui-1. 6. 10. tar. gz ( MiniGUI 函數(shù)庫源代碼) 和minigui-minigui-res-1. 6. 10. tar. gz( MiniGUI 所使用的資源,包括基本字體、圖標(biāo)、位圖和鼠標(biāo)光標(biāo)) ,然后編譯安裝并將MiniGUI 的資源拷貝到目標(biāo)平臺(tái)上,最后修改目標(biāo)平臺(tái)的/etc /MiniGUI. cfg 文件,對(duì)目標(biāo)平臺(tái)MiniGUI 的運(yùn)行環(huán)境進(jìn)行配置。
2. 3 心電采集界面設(shè)計(jì)
2. 3. 1 主界面
MiniGUI 中有3 種窗口類型: 主窗口、對(duì)話框和控件窗口,心電采集界面是采用對(duì)話框進(jìn)行設(shè)計(jì),對(duì)話框編程是一種快速構(gòu)建用戶界面的技術(shù),MiniGUI提供了一種基于模板的機(jī)制,利用DLGTEMPLATE和CTRLDATA 兩個(gè)結(jié)構(gòu)體來表示,DLGTEMPLATE用來定義對(duì)話框本身,結(jié)構(gòu)體CTRLDATA 用來定義控件。利用這兩個(gè)結(jié)構(gòu)體模板,用戶可以根據(jù)需要在程序中定義自己的對(duì)話框和控件。主界面的對(duì)話框定義如下:
static DLGTEMPLATE DlgInitProgress =
{
WS_BORDER WS_CAPTION,
WS_EX_NONE,
0,0
, 240, 320,
歡迎使用心電信號(hào)采集系統(tǒng) ,
0,0
,
10,NULL,
0
} ;
用CTRLDATA 定義對(duì)話框中所有的控件并用數(shù)組表示,對(duì)話框常常使用控件來實(shí)現(xiàn)提示或者設(shè)置等功能,定義控件數(shù)組模型如下:
static CTRLDATA CtrlInitProgess[]=
{
{ CTRL_STATIC,
WS_CHILD|WS_VISIBLE| SS_NOTIF
|WS_BORDER,
0,0
, 240, 30
IDC_STATIC1,
“歡迎使用心電信號(hào)采集系統(tǒng)”,
0
} ;
{
…
} ;
…
} ;
通過上述方法生成的心電監(jiān)護(hù)儀主界如圖2 所示。心電采集界面主要有心電數(shù)據(jù)采集與顯示、存
儲(chǔ)、分析等功能,采用多線程編程,為采集、顯示、存儲(chǔ)、分析各建立一個(gè)專門的線程。多線程進(jìn)行數(shù)據(jù)采集可以有效地加快程序的反應(yīng)速度、增加執(zhí)行的效率。
圖2 電監(jiān)護(hù)儀主界面
在MiniGUI 中,使用消息驅(qū)動(dòng)作為應(yīng)用程序的創(chuàng)建構(gòu)架。在消息驅(qū)動(dòng)的應(yīng)用程序中,計(jì)算機(jī)外設(shè)發(fā)生的事件都由支持系統(tǒng)收集,將以事先的約定格式翻譯為特定的消息。應(yīng)用程序一般包含有自己的消息隊(duì)列,系統(tǒng)將消息發(fā)送到應(yīng)用程序的消息隊(duì)列中。從消息隊(duì)列中讀取這些消息,并由窗口過程函數(shù)來處理這些消息。本系統(tǒng)界面通過鼠標(biāo)鍵的按擊,翻譯成特定的消息,若收到的是控件消息,則判斷ID,根據(jù)應(yīng)用程序進(jìn)行相應(yīng)的消息處理。 linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論