血透机人机界面中的定制控件设计及研究

施建盛 1,刘松 1,周奕 2,陈鑫 1,李川 1

1.江西三鑫医疗科技股份有限公司 研发部,江西 南昌 330052;2.东南大学机器人与生物机械电子实验室,江苏南京 211189

[摘 要]目的血透机人机界面系统较庞大,需要很多自主设计的控件。针对血透机人机交互界面系统功能不足及用户体验需求,提出满足特定需求的控件制作方法。 方法基于可视化集成开发工具C++Builder的面板控件设计血透机人机交互界面所需基本控件。使用面板中的画笔和画刷重绘新控件外形及背景,并进行合理布局。通过新建事件通知指针捕获Windows消息,并添加一定功能算法,经句柄对外发布事件消息实现控件功能、提供外部使用接口。 结果以此方法设计了血透机中的自制数字键盘,试验表明,该方法设计的控件使用灵活且方便可靠,可用于实际产品中。 结论该方法可被广泛借鉴于血透机自制控件设计中,使得功能定制更加方便、整个人机界面更加和谐、用户体验更加舒适,也为下一步整体人机交互界面的设计工作奠定了基础。

[关键词]血透机;可视化控件;人机交互界面;血液透析

引言

血透机作为一种可将病患体内代谢物、有害物质、多余盐分等排出体外的重要设备,对于延续肾功能衰竭的人群寿命发挥了非常重要的作用 [1-3]。随着生物科技、半导体、嵌入式系统、触摸屏等技术的发展和成熟,血透机也向着体积小型化、操作简单化、人机交互界面人性化方向发展。其中人机交互界面在高度自动化和智能化的机电一体化产品中扮演着日趋重要的角色 [4-6],它直接决定用户的使用体验及设备本身的操作性能,同时也肩负着与下位机通信并控制设备运行的重要作用 [7]。其用户体验需求以自然和谐为主 [8]。将设备上的物理功能按键等将集成在触摸屏的界面中,使整体界面风格更加舒适、功能更加完善、自动化程度也将更高 [9-10],有些知名企业在推出的新产品中也正往这个方向发展 [11]

在血透机的人机界面系统开发过程中,为尽可能的提高人机交互界面的人性化程度和设备操作性能,经常需要定制满足特定功能及风格的可视化控件 [12-13]。为此,本文基于可视化集成开发工具C++Builder,提出一种可行的血透机人机交互控件设计方法,并用此方法设计了针对血透机的实用型数字键盘,同时也验证了此方法的可行性 [12-13]

1 定制控件方法及原理

血透机人机交互界面控件采用C++Builder的面板控件(TPanel)为父类及控件容器并添加所需基本控件,合理布局后使用画板(Canvas)中的画笔(TPen)和画刷(TBrush)重绘新控件外形及背景,通过事件通知指针捕获Windows消息,并添加一定功能算法的方式,经句柄对外发布事件消息实现新控件功能。同样以此方法设计了血透机中的自制数字键盘,自制控件由一些基本控件通过一定的组合方式并继承于一个父类容器中来实现新控件的结构搭建,使用TPen和TBrush修饰外框和背景,最后实现新控件的功能并提供外部使用的接口。控件制作流程,见图1。

图1 软件流程框图

(1)定制控件的外观:以Tpanel为基本控件容器,所有基本控件都继承于它。使用画布中的TPen绘制新控件边框轮廓,可任意调整边框线条宽度,而画布中的TBrush为新控件添加可设置的背景颜色。控件的外观结构见图2。

图2 控件结构示意图

(2)定制控件的功能:即定制控件的新属性及事件方法。在类的权限修饰符private处分别定义一个Tpen和TBrush类的对象FPen和FBrush,再初始化需要添加的基本控件,将新控件的功能都封装起来,防止外部修改,使之成为一个独立的模块,只将外部使用接口留出即可。将基本控件放置于TPanel的构造函数中动态生成,布局后外形绘制完毕。添加新的颜色属性语句如下:

__property TPen *Pen={read=FPen,write=SetPen};//添加画笔属性

__property TBrush *Brush={read=FBrush,write=SetBru sh};//添加画刷属性

在Windows平台上可以使用功能丰富的Windows消息机制添加新事件方法。利用捕获的Windows消息,通过消息映射表经消息句柄实现对消息函数的处理 [14-16]。其中消息处理函数中包含了对新事件方法的处理。

BEGIN_MESSAGE_MAP;//消息映射

MESSAGE_HANDLER(Windows消息名,消息结构体名,消息处理函数名)

......

END_MESSAGE_MAP(父类名)

还可采用开发平台自带的事件通知指针(TNotifyEvent)类型,以识别所操作的基本控件对象,并通过SendMessage 或PostMessage发布处理消息。在设计过程中灵活选择或搭配合适的实现方法。事件通知指针实现函数如下:

void __fastcall TTestkeyboard::KeyDown();//按钮点击处理事件

{if(FKeyDown);//发生点击事件时指向自己

{FKeyDown(this);}

}

最后,在基本控件事件处理函数中添加所需的特定算法,如判断、过滤、检测等,以达到定制功能。

2 技术应用

2.1 控件分析与设计

血透机人机界面系统较庞大,存在很多需要自主设计的控件,如对编辑框输入参数的数字键盘。BCB IDE从C++Builder 2010版本开始具备键盘控件(TouchKeyboard),但是由于该组件颜色不便调节(在动态创建时更是如此),在外形及风格上也较难适应产品整体界面,见图3。故此提出新的控件需求。血透机数字键盘功能需求如下:可输入0~9的数字和小数点,具备回删功能,可对输入的数据进行判断及输入完毕后按钮动态释放或隐藏功能。对比之下IDE自带控件功能不足且存在加减乘除功能多余问题。

针对以上实际需求及存在的问题,结合本文的控件设计方法,提出一种Windows平台下适用于血透机的实用型数字键盘设计方案。采用TPanel为新控件的继承对象,设计键盘的外形和功能。

(1)外形设计。选择按钮控件作为数字键盘的新按键,并按照人们对键盘的使用习惯合理布局排序,使用画布中TPen和TBrush分别绘制边框和背景颜色。

(2)功能设计。新建事件TNotifyEvent以识别所按下的对应按键,Tag属性值设定为每个按键需要传出的对应ASCII值,最后采用PostMessage的方式发布至需要输入的编辑框当中。使用后动态释放,使之不可见。

图3 IDE自带键盘

2.2 控件测试

为测试新控件的外观及各项功能,新建一个工程,添加TEdit控件验证。点击编辑框,动态生成数字键盘,可设置新控件的任意长宽、背景颜色(如kb->Brush->Color=clGray;)、边框宽度及颜色(如kb->Pen->Width=4; kb->Pen->Color=clDkGray;),OK键按下产生的事件将识别编辑框是否为空并动态释放。

编辑框点击事件函数:

void__fastcall TForm1::Edit1OnClick(TObject *Sender)

{//创建设计的控件类,并配置颜色、线宽、事件等基本属性

kb=new TTestkeyboard(this,this,160,120,160,20);//190, 160,160,20

kb->Parent=Form1;

kb->Brush->Color=clLtGray;//clGreen

kb->Pen->Width=2; //6

kb->Pen->Color=clDkGray;//clBlue

kb->OnKeyDown=kbKeyDown;

}

消息传递函数:

void __fastcall TForm1::kbKeyDown(TObject *Sender)

{

if(kb->keyNum==13)//ASCII值为13时为键盘上的Enter 键

{

if(!Edit1->Text.IsEmpty())//编辑框不为空时释放创建的类

delete kb;

else

Application->MessageBox(L”输入不能为空",L"ERROR!",0);

}else//将消息传递至编辑框

PostMessage(Edit1->Handle,WM_CHAR,kb->keyNum,0);

}

试验结果表明,新控件可按要求随意调整尺寸、设定边框宽度及颜色、背景的颜色,见图4和图5。稳定的实现了数字及小数点输入功能、回删功能、编辑框不为空时OK键动态释放功能。

图4 试验结果一

图5 试验结果二

2.3 应用情况

透析界面和维修界面很多地方都需要用到数字键盘,外观上根据界面整体风格灵活设置,可根据界面大小自动调整自身尺寸;功能上,经过大量测试证明所设计功能稳定可靠,可用于实际产品中,见图6和图7。

图6 透析界面

图7 维修界面

3 讨论

面对用户对血透机人机界面系统功能、视觉及触摸性能的市场需求环境,在满足日益增长的功能要求的同时用户体验也成为了设备的重要技术指标。Windows平台下的主流自动化设备界面开发工具还有DelPhi、MFC和VS等,但在设计开发工程中都需要定制效果及功能更佳的可视化控件。

传统方法是外形全部自绘且新控件的事件方法皆自定义,这一般适用于外观及功能相对较简单的控件设计,用于较复杂控件设计时将增加开发难度及开发周期,同时大量的开发代码又不利于新控件的稳定性。因此,并不适合所有新控件的设计。BCB IDE自带了一批基本控件,功能稳定且使用方便,根据此特点可以考虑将一些基本控件整合并修改成一个独特的新控件。

本文提出的方法其重点和创新点在于将其中的基本控件的属性及事件经合理修改裁剪传递至新控件,变成新控件对外的属性和事件,并按实际需求添加其他新方法或算法。结果表明本文提出的自制控件设计方法在外形结构、新属性及事件方法和新功能等方面具有很强的实用性和可操作性。该方法可被广泛借鉴于血透机自制控件的设计中,使得功能定制更加方便、整个人机界面更加和谐、用户体验更加舒适,为下一步整体人机交互界面的设计工作奠定基础。

[参考文献]

[1] 黄耀辉,严潭,黄加顺.费森尤斯4008B血透机水路部分常见故障分析处理[J].中国医疗设备,2014,29(1):141-143.

[2] 刘劲,秦文俊.血液透析机原理及最新进展[J].中国医疗设备, 2008,23(2):50-51.

[3] 刘学军,陆文进,张凌.血液透析机消毒效果的临床观察[J].中华医院感染学杂志,2014,24(1):245-246.

[4] 牛东方,邓明,钟莹.机电产品的人机交互体系研究[J].控制工程,2013,20(2):317-318.

[5] 刘娟.人机交互设计在科技产品中的应用[J].包装工程,2014, 35(18):64-67.

[6] 张婷.人机交互界面设计在产品可用性中的应用研究[J].包装工程,2014,35(20):63-66.

[7] Li K,Tiwari A,Alcock J,et al.Categorisation of visualisation methods to support the design of Human-Computer Interaction Systems[J].Applied Ergonomics,2016,55:85-107.

[8] 潘永亮.人机交互界面设计中的自然化趋势[J].装饰,2008,(6): 130-131.

[9] 魏玮,宫晓东.基于用户体验的人机界面发展趋势[J].北京航空航天大学学报,2011,37(7):868-871.

[10] Alam A.Computerization of hemodialysis records: a new era explored[J].Saudi J Kidney Dis,2010,21(3):535-537.

[11] Polaschegg HD.Hemodialysis machine technology: a global overview[J].Expert Rev Med Devic,2010,7(6):793-810.

[12] 杨阳,李宇翔,谢拴勤.利用C++Builder与Matlab实现实时数据的获取与处理[J].计算机测量与控制,2009,17(11):2333-2335.

[13] 纪龙蜇,单庆晓,任立坤.基于C++Builder的导航卫星接收机显示控制系统的设计与实现[J].计算机测量与控制,2013,21(3): 626-628.

[14] 孙明革,姜德龙,孙和茹.在VisualC_中处理键盘消息的两种方法[J].吉林化工学院学报,2002,19(3):39-41.

[15] 廖俊平,马永强,段国兵.基于Windows消息机制的人机交互的研究与应用[J].成都信息工程学院学报,2004,19(1):36-39.

[16] 赵钦,黄玲.基于Windows消息机制的自动检测系统设计[J].广西科学院学报,2010,26(4):497-499.

本文编辑 韩淑英 C

资 讯

Design and Research on Custom Controls of Hemodialysis Machine Human-Computer Interaction Interface

SHI Jian-sheng 1, LIU Song 1, ZHOU Yi 2, CHEN Xin 1, LI Chuan 1
1.Department of Research and Develop-ment, JiangXi SanXin Medtec Co. Ltd., NanChang Jiangxi 330052, China; 2.Robot and Biomechanical Electronics Laboratory, Southeast University, Nanjing Jiangsu 211189, China

Abstract:ObjectiveTo propose custom control making method in view of the facts that the human-computer interaction interface of hemodialysis machine has insufficient functions that it could not meet the actual needs of user experience due to its huge system. MethodsThe basic controls of hemodialysis human-computer interaction interface were designed based on the panel control TPanel of the visualization integrated development tool C++Builderc. TPen and TBrush on the panel were used to redraw new shape and background of the controls so as to make reasonable layout. Using the new event notification pointer, the Windows messages were captured and function algorithm was added. By using handle release event message, control functions were realized and external interfaces were provided. ResultsThe homemade numeric keyboard of hemodialysis machine was designed with this method. It was experimentally proved that the control designed was flexible and convenient to be used in actual product. ConclusionThis method can be widely applied in the design of custom controls of hemodialysis machine, which makes the function customization more convenient, the overall human-computer interface more harmonious and the user experience more comfortable. It also lays a foundation for the further design of overall human-computer interaction interface.

Key words:hemodialysis machine; visual control; human-computer interaction interface; hemodialysis

[中图分类号]TP311.52

[文献标识码]C

doi:10.3969/j.issn.1674-1633.2017.03.033

[文章编号]1674-1633(2017)03-0120-04

收稿日期:2016-08-19

修回日期:2016-12-10

基金项目:东南大学校企合作项目(8502000338)。

通讯作者:周奕,研究员,主要从事机器人与生物机械电子研究工作。

通讯作者邮箱:648865412@qq.com