新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM设计的多生理参数嵌入式监护系统

基于ARM设计的多生理参数嵌入式监护系统

作者:时间:2012-04-18来源:网络收藏

其中,数据的采集与控制是主控模块,设置模块通过获取人机界面上的输入的信息,对通信模块以及数据分析处理模块的各项进行设定。又由于本中的各个人体参数模块采集的数据格式不一致,所以还需要一个格式转换的过程,以方便显示和存储。

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下不便于截图,图5在REDHAT9.0下的测试界面。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭