新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Linux和MiniGUI的心電監(jiān)護(hù)儀設(shè)計(jì)

基于Linux和MiniGUI的心電監(jiān)護(hù)儀設(shè)計(jì)

作者: 時(shí)間:2014-11-26 來源:網(wǎng)絡(luò) 收藏

  用CTRLDATA 定義對話框中所有的控件并用數(shù)組表示,對話框常常使用控件來實(shí)現(xiàn)提示或者設(shè)置等功能,定義控件數(shù)組模型如下:

本文引用地址:http://m.butianyuan.cn/article/266002.htm

  static CTRLDATA CtrlInitProgess[]=

  {

  { CTRL_STATIC,

  WS_CHILD|WS_VISIBLE| SS_NOTIF

  |WS_BORDER,

  0,0

  , 240, 30

  IDC_STATIC1,

  “歡迎使用心電信號采集系統(tǒng)”,

  0

  } ;

  {

  …

  } ;

  …

  } ;

  通過上述方法生成的心電監(jiān)護(hù)儀主界如圖2 所示。心電采集界面主要有心電數(shù)據(jù)采集與顯示、存

  儲、分析等功能,采用多線程編程,為采集、顯示、存儲、分析各建立一個(gè)專門的線程。多線程進(jìn)行數(shù)據(jù)采集可以有效地加快程序的反應(yīng)速度、增加執(zhí)行的效率。



  圖2 電監(jiān)護(hù)儀主界面

  在 中,使用消息驅(qū)動作為應(yīng)用程序的創(chuàng)建構(gòu)架。在消息驅(qū)動的應(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)的消息處理。

  2. 3. 2 心電采集與顯示

  心電數(shù)據(jù)采集采用定時(shí)器進(jìn)行采集和顯示,定時(shí)器使用SetTimer 函數(shù)創(chuàng)建,創(chuàng)建時(shí)需要指定定時(shí)器標(biāo)識號以及定時(shí)時(shí)間,當(dāng)定時(shí)時(shí)間到達(dá)時(shí),定時(shí)器將會產(chǎn)生MSG _ TIMER 消息,本系統(tǒng)的心電采集頻率為200Hz。

  從A/D 寄存器讀取三通道的數(shù)據(jù)存入數(shù)組中,并將數(shù)組中的數(shù)據(jù)在液晶顯示器上繪出。在 中實(shí)時(shí)繪圖采用GDI,GUI 系統(tǒng)的一個(gè)重要組成部分就是GDI,即圖形設(shè)備接口( Graphics Device

  Interface) 。通過GDI,GUI 程序就可以在計(jì)算機(jī)屏幕上,或者其它的顯示設(shè)備上進(jìn)行圖形輸出,包括基本繪圖和文本輸出。所有繪圖相關(guān)的函數(shù)均需要有一個(gè)設(shè)備上下文,為了提高繪圖效率,在這里建立私有設(shè)備上下文,所建立的設(shè)備上下文在整個(gè)窗口生存期內(nèi)有效,從而免除了獲取和釋放的過程。利用hdc =GetPrivateClientDC( hDlg) 可獲得私有設(shè)備上下文。然后調(diào)用MoveTo ( HDC hdc, int x, int y) 和LineTo( HDC hdc, int x, int y) 對數(shù)組中的數(shù)據(jù)進(jìn)行畫線,由于采集到的心電數(shù)據(jù)較小,因此在對其進(jìn)行畫線之前根據(jù)顯示區(qū)域?qū)λ袛?shù)據(jù)進(jìn)行適當(dāng)放大,這樣可以使心電波形在液晶顯示器上直觀顯示。

  2. 3. 3 心電數(shù)據(jù)分析

  在心電數(shù)據(jù)顯示和分析線程中,由于心電信號容易受到各種干擾的影響,為了濾除心電信號中的干擾成分,首先要進(jìn)行數(shù)字濾波處理,采用FFT 濾波和滑動平均濾波的方法使圖像得以平滑,并采用差分方法進(jìn)行R 波檢測。當(dāng)采集到5 秒的數(shù)據(jù)的時(shí)候,程序啟動心電數(shù)據(jù)分析線程,對存儲在數(shù)組中的心電數(shù)據(jù)進(jìn)行分析,主要進(jìn)行R 波檢測,并且在液晶顯示器上顯示。

2. 3. 4 心電界面程序的編譯

  心電界面程序首先是在PC 機(jī)上編寫的,為了能夠在目標(biāo)平臺上運(yùn)行,必須先進(jìn)行交叉編譯,編譯

  如下:

  #arm-linux-gcc -I /home /include -L/home /lib-O2 -oxindian xindian.c -lminigui -lmgext -lm -ljpeg-lpthread-lpng

  這時(shí)生成心電界面程序的可執(zhí)行文件,將其下載到目標(biāo)平臺中即可運(yùn)行。

  3 結(jié)束語

  本文研制的心電監(jiān)護(hù)儀采用高性能的ARM9 微處理器為核心,在其上移植 操作系統(tǒng),并用

   進(jìn)行心電界面開發(fā),能夠?qū)π碾娦盘栠M(jìn)行采集、波形顯示及處理,實(shí)現(xiàn)心電信號的實(shí)時(shí)監(jiān)護(hù)的目的。該心電監(jiān)護(hù)儀結(jié)合了目前現(xiàn)有的心電監(jiān)護(hù)儀的優(yōu)點(diǎn),體積小、重量輕,并且具有操作界面簡潔、可擴(kuò)展性強(qiáng)等優(yōu)點(diǎn),對各種心率失常及各種心臟病變有較高的診斷價(jià)值。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

linux相關(guān)文章:linux教程



上一頁 1 2 下一頁

關(guān)鍵詞: Linux MiniGUI

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉