陳歡歡,楊 斌(浙江理工大學(xué) 先進紡織材料與制備技術(shù)教育部重點實驗室,杭州 310018)
健康監(jiān)測服裝系統(tǒng)軟件的設(shè)計與實現(xiàn)
陳歡歡,楊 斌
(浙江理工大學(xué) 先進紡織材料與制備技術(shù)教育部重點實驗室,杭州 310018)
針對現(xiàn)有健康監(jiān)測服裝中通信軟件功能單一、無法滿足患者生命信息可視和自我診斷的問題,利用Visual C++6.0開發(fā)工具在Windows平臺下利用系統(tǒng)提供的各類API接口和相關(guān)成員函數(shù),實現(xiàn)了對智能監(jiān)測服裝的對話框界面的設(shè)計。該軟件能夠完成對監(jiān)測服裝的數(shù)據(jù)獲取、曲線繪制、報警指示和數(shù)據(jù)存儲等工作,在確保數(shù)據(jù)通信準(zhǔn)確穩(wěn)定的基礎(chǔ)上,拓展了繪制曲線(體溫、脈搏)、異常報警、數(shù)據(jù)存儲等功能,為開發(fā)具有實時監(jiān)測、分析人體生理信息功能的健康監(jiān)測服裝建立基礎(chǔ)。
健康監(jiān)測服裝;通信軟件;實時監(jiān)測
健康監(jiān)測服裝是以服裝為載體,計算機技術(shù)為核心的一種智能化服裝[1-2],能夠通過相應(yīng)的傳感器對人體溫度、脈搏等生理信號采集,利用單片機等微型控制器完成數(shù)據(jù)存儲、分析等任務(wù)[3]。該監(jiān)測服裝可實時監(jiān)控病患者的生理信息,根據(jù)信息變化作出預(yù)診斷,通過顯示和報警提醒病患,降低疾病突發(fā)帶來的危險,在醫(yī)療保健和體育鍛煉等領(lǐng)域有重要的實用價值。但是,目前針對健康監(jiān)測系統(tǒng)開發(fā)應(yīng)用軟件的工作尚處于起步階段,存在監(jiān)測功能單一和界面不夠人性化等問題,無法滿足人們的實際需求。為此,本研究在Windows平臺下利用Visual C++6.0開發(fā)工具,在現(xiàn)有應(yīng)用軟件基礎(chǔ)上增強數(shù)據(jù)通信穩(wěn)定性,開發(fā)成像、報警、數(shù)據(jù)存儲和預(yù)診斷功能。
該應(yīng)用軟件主要對監(jiān)測服裝系統(tǒng)下位機部分所采集的數(shù)據(jù)做進一步的分析處理,整個系統(tǒng)的工作流程如圖1所示。根據(jù)設(shè)計要求,該健康監(jiān)測軟件應(yīng)具備以下功能:獲取監(jiān)測服裝的數(shù)據(jù)、繪制時間響應(yīng)曲線、報警指示和數(shù)據(jù)存儲。為完成上述功能,本研究選用Visual C++6.0作為應(yīng)用軟件的開發(fā)工具,借助Windows系統(tǒng)為應(yīng)用軟件提供的各類API編程接口及相關(guān)成員函數(shù)[5-6],完成客戶端應(yīng)用軟件與監(jiān)測服裝通信、成像和報警指示等設(shè)計工作。
1.1 串口通信功能的實現(xiàn)
該軟件首先需要能夠獲取經(jīng)單片機處理后的數(shù)據(jù),接著再對所獲得的數(shù)據(jù)做進一步處理。對于以單片機為核心的信號采集系統(tǒng),與上位機進行的通信方式是串口通信方式,因此,本軟件采用的通信方式是
圖1 系統(tǒng)工作流程Fig.1 The working process of system
1.2 繪制時間響應(yīng)曲線
時間響應(yīng)曲線的繪制原理為:首先在BOOL CMONITORDlg::OnInitDialog()函數(shù)中設(shè)置讀串口數(shù)據(jù)的周期,添加代碼:“m_timer=SetTimer(1,500,0)”,即每隔500 ms跳轉(zhuǎn)到時間響應(yīng)函數(shù)void CMONITORDlg:: OnTimer(UINT nIDEvent)處并執(zhí)行該函數(shù);接著在函數(shù)OnTimer(UINT nIDEvent)中完成將串口通信數(shù)據(jù)暫存到數(shù)組、更新數(shù)組數(shù)據(jù)和報警值設(shè)置等工作;最后執(zhí)行void CMONITORDlg::DrawDiagram(CPaintDC *pDC)函數(shù),在該函數(shù)中進行報警指示的判斷,并加載不同狀態(tài)LED報警指示燈的位圖,繪制矩形選區(qū),設(shè)置該選區(qū)的背景顏色,定義繪制曲線畫筆的屬性,將函數(shù)OnTimer(UINT nIDEvent)中的數(shù)組值傳給Point點對象,再利用CDC定義的pDC指針調(diào)用LineTo(x,y)函數(shù)繪制曲線段。通過OnTimer(UINT nIDEvent)函數(shù)每隔0.5 s完成一次數(shù)據(jù)的更新及曲線段的繪制,依次重復(fù)進行,完成曲線的實時繪制工作?;赗S232技術(shù)的串口通信。其具體原理如下:當(dāng)應(yīng)用軟件和外部設(shè)備進行串口通信時,首先需要向操作系統(tǒng)提出串口資源的申請,請求開放一個串口用于傳輸數(shù)據(jù);接著根據(jù)監(jiān)測系統(tǒng)一側(cè)的串口通信協(xié)議,對系統(tǒng)的串口通信功能進行初始化設(shè)置,完成應(yīng)用軟件與監(jiān)測系統(tǒng)收發(fā)數(shù)據(jù)的功能;最后當(dāng)完成通信目的之后,將應(yīng)用軟件占用的系統(tǒng)資源返還給系統(tǒng)。串口通信
圖2 串口通信對話框Fig.2 Dialog of serial interface communication
對話框界面如圖2所示,串口通信代碼如下。
void CSmartMClothDlg::OnComm()
{
CString strtemp,str;
VARIANT variant_inp;
variant_inp=m_ctrlComm.GetInput();
COleSafeArray safearray_inp;
safearray_inp=variant_inp;
LONG len,k1;
len=safearray_inp.GetOneDimSize();
BYTE rxdata[2048];
for(k1=0;k1<len;k1++)
safearray_inp.GetElement(&k1,rxdata+k1);
}
for(k1=0;k1<len;k1++)
{
BYTE bt=*(char*)(rxdata+k1);
strtemp.Format("%d",bt);
str=strtemp;
comdlg.m_strRXData+=strtemp;
comdlg.m_strRXData+=" ";
}
if(comdlg.m_commstyle==1)
comdlg.UpdateData(FALSE);
圖3為監(jiān)測軟件的對話框界面,由圖3a溫度監(jiān)測界面可知,該對話框主要有4個功能區(qū):功能切換區(qū)、圖像顯示區(qū)、數(shù)據(jù)和報警指示區(qū)及狀態(tài)設(shè)置區(qū)。功能切換區(qū)主要實現(xiàn)對不同類型傳感器數(shù)據(jù)的切換,實現(xiàn)不同監(jiān)測任務(wù)切換的目的;圖像顯示區(qū)為對接收到的數(shù)據(jù)以圖形的方式顯示,便于實時觀察監(jiān)測對象生理信息的實時狀態(tài);數(shù)據(jù)和報警指示區(qū)為對各傳感器參數(shù)進行實時顯示和報警提示;狀態(tài)設(shè)置區(qū)為對整個應(yīng)用軟件的初始化設(shè)置和相關(guān)功能的控制與實現(xiàn)。圖3b為脈搏監(jiān)測界面,其工作過程如下:首先將健康監(jiān)測系統(tǒng)與計算機連接;接著根據(jù)監(jiān)測系統(tǒng)的通信協(xié)議設(shè)置對話框的串口和通信波特率,并根據(jù)使用要求打開相關(guān)功能命令,完成上述設(shè)置之后接著就可以選擇監(jiān)測的命令開始對監(jiān)測系統(tǒng)進行實時監(jiān)測,當(dāng)需要切換不同傳感器數(shù)據(jù)時,可通過監(jiān)控切換處的按鈕實現(xiàn)不同傳感器間的切換;最后在監(jiān)測任務(wù)結(jié)束之后選擇退出按鈕完成整個監(jiān)測任務(wù)。
圖3 監(jiān)測服裝對話框Fig.3 Dialog of monitoring clothing
1.3 報警指示和數(shù)據(jù)存儲
為了能夠?qū)Υ郎y者特征信息進行實時判斷和保存,以便于后期做進一步的數(shù)據(jù)分析,本研究在傳統(tǒng)監(jiān)測軟件基礎(chǔ)之上增加了報警指示和數(shù)據(jù)存儲功能。由于報警功能的實現(xiàn)只需在所獲數(shù)據(jù)基礎(chǔ)上判斷其是否超出正常值即可,因此報警與數(shù)據(jù)存儲可由不同函數(shù)分別完成。但是當(dāng)程序在運行時出現(xiàn)問題需要維護或者今后需要對軟件進行二次開發(fā)時,上述方法會在一定程度上增加代碼的維護難度,為此本研究將兩者的功能統(tǒng)一放在函數(shù)void CMONITORDlg:: DrawDiagram(CPaintDC *pDC)中實現(xiàn),具體代碼如下所示。
void CMONITORDlg::DrawDiagram(CPaintDC *pDC)
{ ......
if(Alertcharge1>37.3) //報警判斷
bmpBackground.LoadBitmap(IDB_RED);
else
bmpBackground.LoadBitmap(IDB_GREEN);
......
bmpBackground.DeleteObject();
m_btnView.GetWindowRect(rect);
ScreenToClient(rect);
if(savedatafl ag==2) //數(shù)據(jù)保存
{
SYSTEMTIME st;
GetLocalTime(&st);
savedatafl ag=1;
CString m_str;
m_str.Format(" %.1f°C ",temp1);
m_strSaveData+=m_str;
……
m_str.Format(" %.1f°C ",temp3);
m_strSaveData+=m_str;
m_str.Format(" %3d/min ",65);
m_strSaveData+=m_str;
m_str.Format("%.2d:%.2d:%.2d",CurrentTime. GetHour(),CurrentTime.GetMinute(),
CurrentTime.GetSecond()); m_str.Format("%.2d:%.2 d:%.2d",st.wHour,st.wMinute,st.wSecond);
m_strSaveData+=m_str; m_strSaveData+=" "; file.Write(m_strSaveData,m_strSaveData. GetLength());
m_strSaveData.Empty();
}
savedatafl ag++;
}
此外,在軟件使用過程中可能要監(jiān)測多個對象,本研究將Check Box控件與數(shù)據(jù)保存功能進行綁定,以實現(xiàn)修改保存對象數(shù)據(jù)文件名稱或路徑的目的。
本應(yīng)用軟件針對智能監(jiān)測服裝系統(tǒng),借助Visual C++6.0開發(fā)工具在Windows平臺下利用系統(tǒng)提供的各類API接口和相關(guān)成員函數(shù),實現(xiàn)了對智能監(jiān)測服裝的對話框界面的設(shè)計。該軟件能夠完成對監(jiān)測服裝的數(shù)據(jù)獲取、曲線繪制、報警指示和數(shù)據(jù)存儲等工作,對今后智能監(jiān)測服裝的遠端醫(yī)療和智能分析的進一步發(fā)展與應(yīng)用提供參考。
[1]柴曉飛,郭文成,竇明池.智能紡織品中信號采集系統(tǒng)的設(shè)計[J].紡織科技進展,2006(6):74-94.CHAI Xiaofei, GUO Wencheng, DOU Mingchi. The design of a signal gathering system used in intelligent textiles[J]. Progress in Textile Science & Technology, 2006(6): 74-94.
[2]高旭,王進美,王淼.電子智能型紡織品[J].現(xiàn)代紡織技術(shù),2010(1):4.GAO Xu, WANG Jinmei, WANG Miao. Electronic intelligent textiles[J]. Advanced Textile Technology, 2010, (1): 4.
[3]程自峰,韋哲,李寶珠.醫(yī)學(xué)信號采集與處理系統(tǒng)的研制及應(yīng)用[J].醫(yī)療衛(wèi)生裝備,1996(4):5-8.CHENG Zifeng, WEI Zhe, LI Baozhu. The development of a data acquisition and process system of medicine and its application[J]. Chinese Medical Equipment Journal, 1996(4): 5-8.
[4]李慶華,姜會文,邱書波.VC6.0下應(yīng)用MSComm控件實現(xiàn)RS485串行通訊[J].微計算機信息,2002,18(10):53-57.LI Qinghua, JIANG Huiwen, QIU Shubo. Realizing the RS485 serial communication in using VC6.0 MSComm control[J]. Control and Automation Publication Group, 2002, 18(10): 53-57.
[5]劉樹坤,劉金.用Windows API實現(xiàn)串行通信[J].計算機應(yīng)用,2000,20(2): 43-44.LIU Shukun, LIU Jin. The realization of serial communication with the Windows API[J]. Journal of Computer Application, 2000, 20(2): 43-44.
[6]項舉偉,高峰,束洪春.利用Windows API函數(shù)構(gòu)造C++類實現(xiàn)串行通訊[J].工業(yè)控制計算機,2001,14(2):42-44.XIANG Juwei, GAO Feng, SHU Hongchun. Implement serial communication using C++ class constructed by Windows API functions[J]. Industrial Control Computer, 2001,14(2):42-44.
Design and implementation of application software for health monitoring system
CHEN Huan-huan1, YANG Bin1
(Key Laboratory of Advanced Textile Materials and Manufacturing Technology, Ministry of Education, Zhejiang Sci-Tech University, Hangzhou 310018, China)
Aiming at problems of health monitoring clothing, for example, the single function of communication software cannot realize the visualization and self-diagnosis, this paper uses various APU interfaces and related member functions provided by Visual C++6.0 in windows operating system to realize the design of dialog interface of intelligent monitoring clothing. The software can obtain data of monitoring clothing, finish curve plotting, give warning indication and implement data storage. Based on the situation that data communication is accurate and stable, this thesis expands the functions like curve plotting, warning indication and data storage and lays foundation for the development of health monitoring clothing with functions, such as real-time monitoring and analysis on the information of the human body.
Health monitoring clothing; Communication; Real-time monitoring
TP277
A
1001-7003(2012)07-0036-03
2012-02-22;
2012-05-08
陳歡歡(1987- ),男,碩士研究生,研究方向為智能紡織品的研究與開發(fā)。通訊作者:楊斌,教授,yangbin5959@yahoo.com.cn。