医用仪器软件设计-基于MFC-C10_第1页
医用仪器软件设计-基于MFC-C10_第2页
医用仪器软件设计-基于MFC-C10_第3页
医用仪器软件设计-基于MFC-C10_第4页
医用仪器软件设计-基于MFC-C10_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

医用仪器软件设计——基于MFC体温监测与显示实验10Contents.1实验内容2实验原理3代码分析常见体温计PCT协议-体温多媒体定时器自定义消息1.实验内容了解体温数据处理过程,学习体温数据包的PCT通信协议和MFC中的部分函数和命令,然后完善处理体温数据的底层代码,最后通过Windows平台和人体生理参数监测系统硬件平台对系统的功能进行验证。打开串口体温监测与显示2.实验原理2.1常见体温计水银体温计价格便宜易破裂(水银有毒)准确度高测温时间长热敏电阻电子体温计价格较高测量安全测量精度高读数方便体积小测温时间长非接触式红外体温计价格较高测量安全准确度不高读数方便稳定性好使用方便快速测量2.实验原理2.2PCT协议-体温位解释说明7:2保留1体温通道2:0-体温探头接上;1-体温探头脱落0体温通道1:0-体温探头接上;1-体温探头脱落体温探头状态的解释说明体温数据为16位有符号数,有效数据范围为0~500,数据扩大10倍,单位是摄氏度。例如,368代表36.8℃,-100代表无效数据2.实验原理2.3多媒体定时器timeSetEvent()函数原型MMRESULT

timeSetEvent(

UINT

uDelay,

UINT

uResolution,

LPTIMECALLBACK

lpTimeProc,

WORD

dwUser,

UINT

fuEvent

)多媒体计时器:允许应用程序使用最高分辨率进行计时,计时服务通过调用回调函数实现。1.确定计时器服务支持的最小和最大计时器分辨率使用timeGetDevCaps函数,此函数使用最小和最大分辨率填充TIMECAPS结构的wPeriodMin和wPeriodMax成员2.建立希望应用程序使用的最小分辨率使用timeBeginPeriod函数3.使用timeSetEvent函数启动计时器事件此函数返回可用于停止或标识计时器事件的计时器标识符4.可以使用timeKillEvent函数随时取消活动计时器事件在释放包含回调函数的内存之前,请务必取消任何未完成的计时器多媒体计时器的使用步骤:回调函数原型voidCALLBACKMediaTimerProc(UINTuID,UINTuMsg,DWORDdwUsers,DWORDdw1,DWORDdw2);uID:多媒体定时器的ID,ID值由timeSetEvent创建定时器事件时返回uMsg:保留,当前未使用dwUser:由timeSetEvent传递的dwUser参数提供的用户实例数据dw1,dw2:保留未使用uDelay:以毫秒指定事件的周期

uResolution:以毫秒指定延时的精度,数值越小定时器事件分辨率越高,缺省值为1ms

lpTimeProc:指向一个回调函数

dwUser:存放用户提供的回调数据

fuEvent:指定定时器事件类型:

TIME_ONESHOT:uDelay毫秒后只产生一次事件

TIME_PERIODIC:每隔uDelay毫秒周期性地产生事件2.实验原理2.4自定义消息1.定义消息ID添加:#defineWM_SECOND_TIMER(WM_USER+101)

为了防止用户定义的消息ID与系统的消息ID冲突,微软定义了一个宏WM_USER,小于WM_USER的ID被系统使用,这里至少要加100,因为其它控件的消息会占用一部分。2.定义消息处理函数添加:afx_msgLRESULTOnSecondTimer(WPARAMwParam,LPARAMlParam);3.添加消息映射在BEGIN_MESSAGE_MAP(xxxxDlg,CDialog)和END_MESSAGE_MAP()

中间添加:ON_MESSAGE(WM_SECOND_TIMER,OnSecondTimer)4.实现消息处理函数要实现你消息映射对应的函数这里叫OnSecondTimer(WPARAMwParam,LPARAMlParam)函数原型BOOL

PostMessage(HWND

hWnd,UINT

Msg,WPARAM

wParam,LPARAM

lParam);hWnd:接收消息的窗口程序的窗口句柄。Msg:指定被寄送的消息。wParam:指定附加的消息特定的信息。IParam:指定附加的消息特定的信息。将一条消息放入到消息队列中3.代码分析3.1设计框图3.代码分析3.2类的说明类说明CColorStatic类:用于设置颜色SetTextColor()设置字体颜色SetBkColor()设置画图背景颜色CPacketBuf类:缓冲区,用于保存符合通讯协议的数据包,CPackUnpack类中调用Get()从缓冲区得到解包后的数据包Put()把未解包的数据包放入缓冲区CPackUnpack类:串口接收/发送,对数据的打包/解包;响应数据包,定时检查下位机的回答ReceiveProc()回调函数,将串口接收的数据进行解包并放入缓冲区,取出缓冲区数据包并进行处理CUART类:串

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论