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