1、输液监测界面(计算机)则主要负责输液信息的显示和报警,当下位机向计算机发送信息时,输液监测界面(计算机)将信息处理并显示成相关的输液信息:滴速和滴数,并且在输液信息超出允许的围时发出相应的报警。它们的组成示意图如图1所示: 图1病房中每一个病床前都设置了一个输液监测器(下位机),病人的输液信息由以单片机为核心的输液监测器(下位机)进行监测、提取和传送,各个病房中病人的输液信息则通过通信系统反映到医务人员的值班室的计算机上,以便医务人员进行实时的监测。下位机由单片机构成,完成输液信息的监测、提取和传送。病人输液信息的监测由光电对管完成,单片机负责对病人输液数据的读取、分析和处理,利用串口通信与计
2、算机进行通信。在医务人员值班室计算机上运行的输液监测界面(计算机),对病人输液的信息进行记录和管理,它的主要功能是:输液情况监测、输液速度超限报警。五、计算机界面设计框图 根据任务要求,医院输液监测系统计算机软件主要功能是:输液情况监测、输液速度超限报警,此外,还包括串口设置及时间显示。输液监测系统计算机的结构如图2所示:图2 输液监测系统结构图 输液监测模块完成对当前输液病人的输液情况监测任务,其中包括输液滴数和输液速度的显示,还有输液指示灯与液滴同步闪烁。 输液超限报警模块负责输液过程中出现的输液速度过快、过慢以及输液结束的报警,当出现上述情况时,计算机中会出现文字提示信息并且下位机会发出
3、报警。 串口设置模块主要是开启上、下位机之间的通信,有时在进行实验时,各台计算机的串口设置不尽相同,因此,这个模块也是必不可少的。 显示时间模块顾名思义是显示当前时间。六、要求1.设计界面反映作者的学号,并有自己的特点。2.程序运行正常,能通过串口与单片机进行通信。3.程序调试后存在盘上。4.写出设计报告,要求有如下容:任务。设计思路与框图。工具软件介绍。界面设计裁图及说明。关键程序说明。程序调试记录及说明。运行结果及说明。收获体会等。参考文献。七、参考资料:1.朱定华.微型计算机原理及应用.电子工业,2000.12.吴金戌.8051单片机实践与应用.清华大学,2002.93. 志明.C+语言
4、与面向对象的设计.:大学.2001.94. 龚建伟、熊光明.Visual C+/Turbo C 串口通信编程实践.:电子工业,2004.105.鸿雁.PowerBuilder8.0实例入门.海洋,2002.66.朝青.PC机及单片机数据通信技术.航空航天大学,20017.朝青.单片机原理及接口技术.航空航天大学,1998.118.小川.PROTEL DXP设计指导教程.清华大学,2003.119.龙祥.数据库原理与设计.人民邮电,2002.710.余学飞.医学电子仪器原理与设计.华南理工大学,200311.新电脑课堂.Visual C+编程篇.:电子工业,2004.112.科技.单片机通信技术
5、与工程实践.:人民邮电,2005.113.甘玲、邱劲.面向对象技术与Visual C+.:清华大学,2004.814.healthAtoZ./15.zymcu./16.p8s./17.atmel./附参考实例:主界面程序设计医院输液监测系统运行时的主界面如图3-2所示。我们用Visual C+6.0编制一个基于对话框的应用监测程序,主界面对话框类名是“CHospitalDlg”。图3-2 医院输液监测系统监测界面下面是主界面初始化时执行的代码,主要起到初始化串口、设置定时器时间等作用,代码如下:BOOL CHospitalDlg:OnInitDialog() CDialog:OnInitDia
6、log(); / Add About. menu item to system menu. / IDM_ABOUTBOX must be in the system command range. ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);AppendMenu(MF_STRING,IDM_ABOUTBOX, strAboutMenu); / Set the icon for this dialog. The framework does this auto
7、matically/ when the applications main window is not a dialog SetIcon(m_hIcon, TRUE); / Set big icon SetIcon(m_hIcon, FALSE); / Set small icon/ TODO: Add extra initialization here m_Number.SetCurSel(0);/初始选择串口1 m_Speed.SetCurSel(4);/初始选择4800 m_Parity.SetCurSel(0);/初始选择NONE m_DataBits.SetCurSel(0);/初始
8、选择8 m_StopBits.SetCurSel(0);/初始选择1 m_hIconRed = AfxGetApp()-LoadIcon(IDI_ICON_RED); m_hIconOff = AfxGetApp()-LoadIcon(IDI_ICON_OFF); /m_hIconGreen= AfxGetApp()-LoadIcon(IDI_ICON_GREEN); m_nSpeed=4800; m_nNumber=1; m_cParity=N; m_nDataBits=8; m_nStopBits=1; m_dwCommEvents = EV_RXFLAG | EV_RXCHAR; CSt
9、ring strStatus; if(m_Port.InitPort(this,m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits,m_dwCommEvents,512) m_Port.StartMonitoring(); strStatus.Format(STATU:COM%d OPENED,%d,%c,%d,%d,m_nNumber, m_nSpeed,m_cParity,m_nDataBits,m_nStopBits); /初始时,串口指示灯亮,实时监测灯灭m_ctrlIconOpenOff2.SetIcon(m_hIconRed);
10、 m_ctrlIconOpenOff1.SetIcon(m_hIconOff); /当前状态:串口打开,无奇偶校验,8数据位,1停止位); else AfxMessageBox(没有发现此串口或串口被占用!/提示信息 m_ctrlIconOpenOff2.SetIcon(m_hIconOff); m_ctrlPortStatus.SetWindowText(strStatus); /ShowWindow(SW_SHOW); /激活窗口,并以当前的大小和位置显示m_ctrlAutoClear.SetCheck(0);/初始化未选中“自动清空” m_ctrlStopDisp.SetCheck(0)
11、;/初始化未选中“刷新显示” m_animIcon.SetImageList(IDB_ANIM_IMGLIST,4,RGB(0,0,0); SetTimer(1,1000,NULL); /设置定时器,定时时间控制动作的快慢 SetTimer(2,10000,NULL); UpdateData(FALSE); return TRUE; / return TRUE unless you set the focus to a control在主界面设计中,使用了与下位机进行串口通信的CserialPort类,CserialPort类是由Remon Spekreijse提供的免费串口类,它是一个非常好
12、用的多线程串口编程工具,用它可以很轻松地完成一般串口编程任务,并且与MSComm控件(Micosoft Communication Control控件)相比,这个类打包时,不需要加入其他的文件,而且函数都是开放透明的,允许我们进行改造。其工作流程如下: 首先设置好串口参数,再开启串口监测工作线程,串口监测工作线程监测到串口接收到的数据、流控制事件或者其他串口事件后,就以消息方式通知主程序,激发消息处理函数来进行数据处理,这是对接收数据而言的;发送数据可直接向串口发送。CserialPort类定义的消息如表3-1所示。消息名称消息号功能说明WM_COMM_BREAK_DETECTEDWM_USER+1检测到输入中断WM_COMM_CTS_DETECTEDWM_USER+2检测到CTS(清除发送)信号状态改变WM_COMM_DSR_DETECTEDWM_USER+3检测到DSR(数据设备准备就绪)信号状态改变WM_COMM_ERR_DETECTEDWM_USER+4发生线状态错误(包括CE_FRAME,CE_OVERRUN和CE_RXPARITY)W
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1