施建盛,劉松,周奕,陳鑫,李川
1.江西三鑫醫(yī)療科技股份有限公司 研發(fā)部,江西 南昌 330052;2.東南大學(xué)機(jī)器人與生物機(jī)械電子實(shí)驗(yàn)室,江蘇南京 211189
血透機(jī)人機(jī)界面中的定制控件設(shè)計(jì)及研究
施建盛1,劉松1,周奕2,陳鑫1,李川1
1.江西三鑫醫(yī)療科技股份有限公司 研發(fā)部,江西 南昌 330052;2.東南大學(xué)機(jī)器人與生物機(jī)械電子實(shí)驗(yàn)室,江蘇南京 211189
目的血透機(jī)人機(jī)界面系統(tǒng)較龐大,需要很多自主設(shè)計(jì)的控件。針對血透機(jī)人機(jī)交互界面系統(tǒng)功能不足及用戶體驗(yàn)需求,提出滿足特定需求的控件制作方法。方法基于可視化集成開發(fā)工具C++Builder的面板控件設(shè)計(jì)血透機(jī)人機(jī)交互界面所需基本控件。使用面板中的畫筆和畫刷重繪新控件外形及背景,并進(jìn)行合理布局。通過新建事件通知指針捕獲Windows消息,并添加一定功能算法,經(jīng)句柄對外發(fā)布事件消息實(shí)現(xiàn)控件功能、提供外部使用接口。結(jié)果以此方法設(shè)計(jì)了血透機(jī)中的自制數(shù)字鍵盤,試驗(yàn)表明,該方法設(shè)計(jì)的控件使用靈活且方便可靠,可用于實(shí)際產(chǎn)品中。結(jié)論該方法可被廣泛借鑒于血透機(jī)自制控件設(shè)計(jì)中,使得功能定制更加方便、整個(gè)人機(jī)界面更加和諧、用戶體驗(yàn)更加舒適,也為下一步整體人機(jī)交互界面的設(shè)計(jì)工作奠定了基礎(chǔ)。
血透機(jī);可視化控件;人機(jī)交互界面;血液透析
血透機(jī)作為一種可將病患體內(nèi)代謝物、有害物質(zhì)、多余鹽分等排出體外的重要設(shè)備,對于延續(xù)腎功能衰竭的人群壽命發(fā)揮了非常重要的作用[1-3]。隨著生物科技、半導(dǎo)體、嵌入式系統(tǒng)、觸摸屏等技術(shù)的發(fā)展和成熟,血透機(jī)也向著體積小型化、操作簡單化、人機(jī)交互界面人性化方向發(fā)展。其中人機(jī)交互界面在高度自動(dòng)化和智能化的機(jī)電一體化產(chǎn)品中扮演著日趨重要的角色[4-6],它直接決定用戶的使用體驗(yàn)及設(shè)備本身的操作性能,同時(shí)也肩負(fù)著與下位機(jī)通信并控制設(shè)備運(yùn)行的重要作用[7]。其用戶體驗(yàn)需求以自然和諧為主[8]。將設(shè)備上的物理功能按鍵等將集成在觸摸屏的界面中,使整體界面風(fēng)格更加舒適、功能更加完善、自動(dòng)化程度也將更高[9-10],有些知名企業(yè)在推出的新產(chǎn)品中也正往這個(gè)方向發(fā)展[11]。
在血透機(jī)的人機(jī)界面系統(tǒng)開發(fā)過程中,為盡可能的提高人機(jī)交互界面的人性化程度和設(shè)備操作性能,經(jīng)常需要定制滿足特定功能及風(fēng)格的可視化控件[12-13]。為此,本文基于可視化集成開發(fā)工具C++Builder,提出一種可行的血透機(jī)人機(jī)交互控件設(shè)計(jì)方法,并用此方法設(shè)計(jì)了針對血透機(jī)的實(shí)用型數(shù)字鍵盤,同時(shí)也驗(yàn)證了此方法的可行性[12-13]。
血透機(jī)人機(jī)交互界面控件采用C++Builder的面板控件(TPanel)為父類及控件容器并添加所需基本控件,合理布局后使用畫板(Canvas)中的畫筆(TPen)和畫刷(TBrush)重繪新控件外形及背景,通過事件通知指針捕獲Windows消息,并添加一定功能算法的方式,經(jīng)句柄對外發(fā)布事件消息實(shí)現(xiàn)新控件功能。同樣以此方法設(shè)計(jì)了血透機(jī)中的自制數(shù)字鍵盤,自制控件由一些基本控件通過一定的組合方式并繼承于一個(gè)父類容器中來實(shí)現(xiàn)新控件的結(jié)構(gòu)搭建,使用TPen和TBrush修飾外框和背景,最后實(shí)現(xiàn)新控件的功能并提供外部使用的接口??丶谱髁鞒蹋妶D1。
圖1 軟件流程框圖
(1)定制控件的外觀:以Tpanel為基本控件容器,所有基本控件都繼承于它。使用畫布中的TPen繪制新控件邊框輪廓,可任意調(diào)整邊框線條寬度,而畫布中的TBrush為新控件添加可設(shè)置的背景顏色。控件的外觀結(jié)構(gòu)見圖2。
圖2 控件結(jié)構(gòu)示意圖
(2)定制控件的功能:即定制控件的新屬性及事件方法。在類的權(quán)限修飾符private處分別定義一個(gè)Tpen和TBrush類的對象FPen和FBrush,再初始化需要添加的基本控件,將新控件的功能都封裝起來,防止外部修改,使之成為一個(gè)獨(dú)立的模塊,只將外部使用接口留出即可。將基本控件放置于TPanel的構(gòu)造函數(shù)中動(dòng)態(tài)生成,布局后外形繪制完畢。添加新的顏色屬性語句如下:
__property TPen *Pen={read=FPen,write=SetPen};//添加畫筆屬性
__property TBrush *Brush={read=FBrush,write=SetBru sh};//添加畫刷屬性
在Windows平臺上可以使用功能豐富的Windows消息機(jī)制添加新事件方法。利用捕獲的Windows消息,通過消息映射表經(jīng)消息句柄實(shí)現(xiàn)對消息函數(shù)的處理[14-16]。其中消息處理函數(shù)中包含了對新事件方法的處理。
BEGIN_MESSAGE_MAP;//消息映射
MESSAGE_HANDLER(Windows消息名,消息結(jié)構(gòu)體名,消息處理函數(shù)名)
......
END_MESSAGE_MAP(父類名)
還可采用開發(fā)平臺自帶的事件通知指針(TNotifyEvent)類型,以識別所操作的基本控件對象,并通過SendMessage 或PostMessage發(fā)布處理消息。在設(shè)計(jì)過程中靈活選擇或搭配合適的實(shí)現(xiàn)方法。事件通知指針實(shí)現(xiàn)函數(shù)如下:
void __fastcall TTestkeyboard::KeyDown();//按鈕點(diǎn)擊處理事件
{if(FKeyDown);//發(fā)生點(diǎn)擊事件時(shí)指向自己
{FKeyDown(this);}
}
最后,在基本控件事件處理函數(shù)中添加所需的特定算法,如判斷、過濾、檢測等,以達(dá)到定制功能。
2.1 控件分析與設(shè)計(jì)
血透機(jī)人機(jī)界面系統(tǒng)較龐大,存在很多需要自主設(shè)計(jì)的控件,如對編輯框輸入?yún)?shù)的數(shù)字鍵盤。BCB IDE從C++Builder 2010版本開始具備鍵盤控件(TouchKeyboard),但是由于該組件顏色不便調(diào)節(jié)(在動(dòng)態(tài)創(chuàng)建時(shí)更是如此),在外形及風(fēng)格上也較難適應(yīng)產(chǎn)品整體界面,見圖3。故此提出新的控件需求。血透機(jī)數(shù)字鍵盤功能需求如下:可輸入0~9的數(shù)字和小數(shù)點(diǎn),具備回刪功能,可對輸入的數(shù)據(jù)進(jìn)行判斷及輸入完畢后按鈕動(dòng)態(tài)釋放或隱藏功能。對比之下IDE自帶控件功能不足且存在加減乘除功能多余問題。
針對以上實(shí)際需求及存在的問題,結(jié)合本文的控件設(shè)計(jì)方法,提出一種Windows平臺下適用于血透機(jī)的實(shí)用型數(shù)字鍵盤設(shè)計(jì)方案。采用TPanel為新控件的繼承對象,設(shè)計(jì)鍵盤的外形和功能。
(1)外形設(shè)計(jì)。選擇按鈕控件作為數(shù)字鍵盤的新按鍵,并按照人們對鍵盤的使用習(xí)慣合理布局排序,使用畫布中TPen和TBrush分別繪制邊框和背景顏色。
(2)功能設(shè)計(jì)。新建事件TNotifyEvent以識別所按下的對應(yīng)按鍵,Tag屬性值設(shè)定為每個(gè)按鍵需要傳出的對應(yīng)ASCII值,最后采用PostMessage的方式發(fā)布至需要輸入的編輯框當(dāng)中。使用后動(dòng)態(tài)釋放,使之不可見。
圖3 IDE自帶鍵盤
2.2 控件測試
為測試新控件的外觀及各項(xiàng)功能,新建一個(gè)工程,添加TEdit控件驗(yàn)證。點(diǎn)擊編輯框,動(dòng)態(tài)生成數(shù)字鍵盤,可設(shè)置新控件的任意長寬、背景顏色(如kb->Brush->Color=clGray;)、邊框?qū)挾燃邦伾ㄈ鏺b->Pen->W(wǎng)idth=4; kb->Pen->Color=clDkGray;),OK鍵按下產(chǎn)生的事件將識別編輯框是否為空并動(dòng)態(tài)釋放。
編輯框點(diǎn)擊事件函數(shù):
void__fastcall TForm1::Edit1OnClick(TObject *Sender)
{//創(chuàng)建設(shè)計(jì)的控件類,并配置顏色、線寬、事件等基本屬性
kb=new TTestkeyboard(this,this,160,120,160,20);//190, 160,160,20
kb->Parent=Form1;
kb->Brush->Color=clLtGray;//clGreen
kb->Pen->W(wǎng)idth=2; //6
kb->Pen->Color=clDkGray;//clBlue
kb->OnKeyDown=kbKeyDown;
}
消息傳遞函數(shù):
void __fastcall TForm1::kbKeyDown(TObject *Sender)
{
if(kb->keyNum==13)//ASCII值為13時(shí)為鍵盤上的Enter 鍵
{
if(!Edit1->Text.IsEmpty())//編輯框不為空時(shí)釋放創(chuàng)建的類
delete kb;
else
Application->MessageBox(L”輸入不能為空",L"ERROR!",0);
}else//將消息傳遞至編輯框
PostMessage(Edit1->Handle,WM_CHAR,kb->keyNum,0);
}
試驗(yàn)結(jié)果表明,新控件可按要求隨意調(diào)整尺寸、設(shè)定邊框?qū)挾燃邦伾⒈尘暗念伾?,見圖4和圖5。穩(wěn)定的實(shí)現(xiàn)了數(shù)字及小數(shù)點(diǎn)輸入功能、回刪功能、編輯框不為空時(shí)OK鍵動(dòng)態(tài)釋放功能。
圖4 試驗(yàn)結(jié)果一
圖5 試驗(yàn)結(jié)果二
2.3 應(yīng)用情況
透析界面和維修界面很多地方都需要用到數(shù)字鍵盤,外觀上根據(jù)界面整體風(fēng)格靈活設(shè)置,可根據(jù)界面大小自動(dòng)調(diào)整自身尺寸;功能上,經(jīng)過大量測試證明所設(shè)計(jì)功能穩(wěn)定可靠,可用于實(shí)際產(chǎn)品中,見圖6和圖7。
圖6 透析界面
圖7 維修界面
面對用戶對血透機(jī)人機(jī)界面系統(tǒng)功能、視覺及觸摸性能的市場需求環(huán)境,在滿足日益增長的功能要求的同時(shí)用戶體驗(yàn)也成為了設(shè)備的重要技術(shù)指標(biāo)。Windows平臺下的主流自動(dòng)化設(shè)備界面開發(fā)工具還有DelPhi、MFC和VS等,但在設(shè)計(jì)開發(fā)工程中都需要定制效果及功能更佳的可視化控件。
傳統(tǒng)方法是外形全部自繪且新控件的事件方法皆自定義,這一般適用于外觀及功能相對較簡單的控件設(shè)計(jì),用于較復(fù)雜控件設(shè)計(jì)時(shí)將增加開發(fā)難度及開發(fā)周期,同時(shí)大量的開發(fā)代碼又不利于新控件的穩(wěn)定性。因此,并不適合所有新控件的設(shè)計(jì)。BCB IDE自帶了一批基本控件,功能穩(wěn)定且使用方便,根據(jù)此特點(diǎn)可以考慮將一些基本控件整合并修改成一個(gè)獨(dú)特的新控件。
本文提出的方法其重點(diǎn)和創(chuàng)新點(diǎn)在于將其中的基本控件的屬性及事件經(jīng)合理修改裁剪傳遞至新控件,變成新控件對外的屬性和事件,并按實(shí)際需求添加其他新方法或算法。結(jié)果表明本文提出的自制控件設(shè)計(jì)方法在外形結(jié)構(gòu)、新屬性及事件方法和新功能等方面具有很強(qiáng)的實(shí)用性和可操作性。該方法可被廣泛借鑒于血透機(jī)自制控件的設(shè)計(jì)中,使得功能定制更加方便、整個(gè)人機(jī)界面更加和諧、用戶體驗(yàn)更加舒適,為下一步整體人機(jī)交互界面的設(shè)計(jì)工作奠定基礎(chǔ)。
[1] 黃耀輝,嚴(yán)潭,黃加順.費(fèi)森尤斯4008B血透機(jī)水路部分常見故障分析處理[J].中國醫(yī)療設(shè)備,2014,29(1):141-143.
[2] 劉勁,秦文俊.血液透析機(jī)原理及最新進(jìn)展[J].中國醫(yī)療設(shè)備, 2008,23(2):50-51.
[3] 劉學(xué)軍,陸文進(jìn),張凌.血液透析機(jī)消毒效果的臨床觀察[J].中華醫(yī)院感染學(xué)雜志,2014,24(1):245-246.
[4] 牛東方,鄧明,鐘瑩.機(jī)電產(chǎn)品的人機(jī)交互體系研究[J].控制工程,2013,20(2):317-318.
[5] 劉娟.人機(jī)交互設(shè)計(jì)在科技產(chǎn)品中的應(yīng)用[J].包裝工程,2014, 35(18):64-67.
[6] 張婷.人機(jī)交互界面設(shè)計(jì)在產(chǎn)品可用性中的應(yīng)用研究[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ī)交互界面設(shè)計(jì)中的自然化趨勢[J].裝飾,2008,(6): 130-131.
[9] 魏瑋,宮曉東.基于用戶體驗(yàn)的人機(jī)界面發(fā)展趨勢[J].北京航空航天大學(xué)學(xué)報(bào),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實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)的獲取與處理[J].計(jì)算機(jī)測量與控制,2009,17(11):2333-2335.
[13] 紀(jì)龍蜇,單慶曉,任立坤.基于C++Builder的導(dǎo)航衛(wèi)星接收機(jī)顯示控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,2013,21(3): 626-628.
[14] 孫明革,姜德龍,孫和茹.在VisualC_中處理鍵盤消息的兩種方法[J].吉林化工學(xué)院學(xué)報(bào),2002,19(3):39-41.
[15] 廖俊平,馬永強(qiáng),段國兵.基于Windows消息機(jī)制的人機(jī)交互的研究與應(yīng)用[J].成都信息工程學(xué)院學(xué)報(bào),2004,19(1):36-39.
[16] 趙欽,黃玲.基于Windows消息機(jī)制的自動(dòng)檢測系統(tǒng)設(shè)計(jì)[J].廣西科學(xué)院學(xué)報(bào),2010,26(4):497-499.
資 訊
Design and Research on Custom Controls of Hemodialysis Machine Human-Computer Interaction Interface
SHI Jian-sheng1, LIU Song1, ZHOU Yi2, CHEN Xin1, LI Chuan1
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
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.
hemodialysis machine; visual control; human-computer interaction interface; hemodialysis
TP311.52
C
10.3969/j.issn.1674-1633.2017.03.033
1674-1633(2017)03-0120-04
2016-08-19
2016-12-10
東南大學(xué)校企合作項(xiàng)目(8502000338)。
周奕,研究員,主要從事機(jī)器人與生物機(jī)械電子研究工作。
通訊作者郵箱:648865412@qq.com