基于A(yíng)RM設(shè)計(jì)的多生理參數(shù)嵌入式監(jiān)護(hù)系統(tǒng)
其中,數(shù)據(jù)的采集與控制是主控模塊,參數(shù)設(shè)置模塊通過(guò)獲取人機(jī)界面上的輸入的參數(shù)信息,對(duì)通信模塊以及數(shù)據(jù)分析處理模塊的各項(xiàng)參數(shù)進(jìn)行設(shè)定。又由于本系統(tǒng)中的各個(gè)人體生理參數(shù)監(jiān)護(hù)模塊采集的數(shù)據(jù)格式不一致,所以還需要一個(gè)格式轉(zhuǎn)換的過(guò)程,以方便顯示和存儲(chǔ)。
3.2.2通信模塊
在主控系統(tǒng)中,與下位機(jī)各個(gè)模塊的通信協(xié)議大致相同。在參數(shù)設(shè)置以后,下位機(jī)各模塊根據(jù)指令信息進(jìn)行生理參數(shù)監(jiān)測(cè)并上傳數(shù)據(jù)。這里以血壓測(cè)量模塊為例,簡(jiǎn)述如下:
采用RS232串口異步通信,1位起始位,8位數(shù)據(jù)位,1位停止位,無(wú)奇偶校驗(yàn),波特率2400b/s。傳輸數(shù)據(jù)采用ASCII模式。上位機(jī)到模塊的命令格式:STX> ab;cdETX>,
其中STX> (02) 是ASCII碼的正文起始標(biāo)志 ;“ab”是命令代碼對(duì)應(yīng)的ASCII碼值;“cd”是兩位16進(jìn)制校驗(yàn)和對(duì)應(yīng)的ASCII碼值。校驗(yàn)和是此前各位數(shù)值之和的低8位,不包括STX> (02);ETX>(03)是ASCII碼的正文結(jié)束標(biāo)志。如“02 30 31 3B 3B 44 37 03”表示開(kāi)始一次手動(dòng)測(cè)量。模塊到上位機(jī)的數(shù)據(jù)格式:STX> abc; ghi; jki;mno;pqr ETX>,其中“abc”,“ghi”,“jki”,“mno”,“pqr”分別代表當(dāng)前袖帶壓力值,收縮壓,舒張壓,平均壓,脈率的各 10進(jìn)制位的數(shù)所對(duì)應(yīng)的ASCII碼值。
3.2.3數(shù)據(jù)顯示模塊
數(shù)據(jù)顯示模塊中,主要是能實(shí)現(xiàn)動(dòng)態(tài)地顯示波形,其中關(guān)鍵的函數(shù)就是paintEvent( QPaintEvent * ),函數(shù)的主要代碼為:
#include qpainter.h> //必須包含的頭文件
void ConnectWidget::paintEvent( QPaintEvent * ){
QPainter paint( this );
for ( int i=0; icount-1; i++ ) { // 連接所有的點(diǎn)
for ( int j=i+1; jcount; j++ ) {
paint.setPen( colors[rand()%MAXCOLORS] ); // 隨機(jī)設(shè)畫(huà)筆的顏色,也可確定顏色
paint.drawLine( points[i], points[j] ); }}}// 畫(huà)線(xiàn)
通過(guò)這個(gè)函數(shù),可以將每個(gè)點(diǎn)連起來(lái),形成線(xiàn),然后不斷更新它,就能實(shí)現(xiàn)動(dòng)態(tài)地顯示波形。當(dāng)更新時(shí),調(diào)用以下函數(shù):
void DrawView::paintEvent( QPaintEvent * ){
QPainter paint( this );
drawIt( paint );}
3.2.4程序的界面
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論