• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    VC++多線程在生物電波數(shù)據(jù)采集中的設(shè)計(jì)及實(shí)現(xiàn)

    2009-03-14 06:59
    新媒體研究 2009年4期
    關(guān)鍵詞:數(shù)據(jù)采集

    陳 英

    [摘要]對一個(gè)生物電波應(yīng)用程序中的數(shù)據(jù)采集方法進(jìn)行了研究,闡述多線程的原理及實(shí)際應(yīng)用方法,運(yùn)用VC++實(shí)現(xiàn)了數(shù)據(jù)采集。生物電波應(yīng)用程序是針對醫(yī)院的一些生物電波采集儀器,結(jié)合現(xiàn)代醫(yī)學(xué)生理學(xué)原理與臨床應(yīng)用的實(shí)際需要設(shè)計(jì)的。醫(yī)生在生物電波采集設(shè)備的幫助下,通過計(jì)算機(jī)上簡單的操作界面,對患者的身體某部位的生物電波進(jìn)行采樣,然后對所得到的數(shù)據(jù)進(jìn)行分析和測量。

    [關(guān)鍵詞]數(shù)據(jù)采集 VC++ 生物電波

    中圖分類號(hào):Q64文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671-7597(2009)0220056-02

    一、多線程基礎(chǔ)

    在Win32 API的基礎(chǔ)之上,MFC提供了處理線程的類和函數(shù)。MFC對多線程進(jìn)行一種簡單的封裝,其中每個(gè)線程都是從CWinThread類繼承而來的。每一個(gè)應(yīng)用程序的執(zhí)行都有一個(gè)主線程,主線程也是從CWinThread類繼承而來的??梢岳肅WinThread對象創(chuàng)建應(yīng)用程序執(zhí)行的其他線程。處理線程的類是CWinThread,它的成員變量m_hThread和m_hThreadID是對應(yīng)的Win32線程句柄和線程ID。MFC多線程編程中經(jīng)常用到的幾個(gè)全局函數(shù)函數(shù)是AfxBeginThread、AfxEndThread等。

    MFC明確區(qū)分兩種線程:用戶界面線程(User interface thread)和工作者線程(Worker thread)。用戶界面線程一般用于處理用戶輸入并對用戶產(chǎn)生的事件和消息作出應(yīng)答。工作者線程用于完成不要求用戶輸入的任務(wù),如耗時(shí)計(jì)算。

    線程函數(shù)的格式如下:

    UNIT函數(shù)名(LPVOID pParam)

    工作者線程的AfxBeginThread的原型如下:

    CWinThread* AFXAPI AfxBeginThread(

    AFX_THREADPROC pfnThreadProc,

    LPVOID pParam,

    int nPriority,

    UINT nStackSize,

    DWORD dwCreateFlags,

    LPSECURITY_ATTRIBUTES lpSecurityAttrs

    )

    其中參數(shù)1指定控制函數(shù)的地址;參數(shù)2指定傳遞給控制函數(shù)的參數(shù);參數(shù)3、4、5分別指定線程的優(yōu)先級(jí)、堆棧大小、創(chuàng)建標(biāo)識(shí)、安全屬性,含義同用戶界面線程。

    二、實(shí)現(xiàn)線程函數(shù)

    在CDlgget.cpp文件中加入創(chuàng)建線程函數(shù)的代碼:

    //以下為用于同時(shí)產(chǎn)生采樣曲線的線程函數(shù)

    UINT Pen1(LPVOID param)

    {

    p->Online(1); //調(diào)用畫線函數(shù)在特定位置畫線,參數(shù)將決定畫像的起始位置

    return 0; //返回值為無符號(hào)整數(shù)

    }

    UINT Pen10(LPVOID param)

    {

    p->Online(10);

    return 0;

    }

    修改Online(int i)函數(shù)代碼如下:

    void CDlgget::Online( int i )

    {

    int k=m*i;

    int x=0,y=0;

    CClientDC dc(this);

    CPen MyNewPen,MyNewPen1;

    CPen* pOriginalPen=dc.GetCurrentPen();

    MyNewPen.CreatePen(PS_SOLID,1,RGB(255,0,0));

    MyNewPen1.CreatePen(PS_SOLID,1,RGB(220,220,220));

    dc.SelectObject(&MyNewPen);

    dc.MoveTo(24,k);

    unsignedint q=i*1000;

    ::srand(q);

    for(x=24;x<1024;x=x+2)

    {

    if(!stop) //判斷是否需要停止畫線

    {

    if(n>5000) //畫到屏幕最右端時(shí)共產(chǎn)生5000個(gè)點(diǎn)

    {

    //在顯示新畫的線時(shí)需要搽除以前的線

    dc.SelectObject(&MyNewPen1)

    //覆蓋以前的線即可

    dc.Rectangle(x,m,x+2,11*m);

    dc.SelectObject(&MyNewPen);

    }

    ::Sleep(10);

    y=k+rand()%20;

    dc.LineTo(x,y);

    n++;

    if(x==1022)

    {

    //如果到了屏幕最右端則從左邊重新開始

    x=24;

    dc.MoveTo(24,k);

    }

    }

    }

    dc.SelectObject(pOriginalPen);

    MyNewPen.DeleteObject();

    MyNewPen1.DeleteObject();

    }

    三、啟動(dòng)線程執(zhí)行

    修改OnBegin()函數(shù)代碼如下:

    void CDlgget::OnBegin()

    {

    // TODO: Add your control notification handler code here

    //啟動(dòng)畫線的十個(gè)工作線程

    AfxBeginThread(Pen1,THREAD_PRIORITY_NORMAL);

    AfxBeginThread(Pen2,THREAD_PRIORITY_NORMAL);

    AfxBeginThread(Pen10,THREAD_PRIORITY_NORMAL);

    }

    修改OnStop()函數(shù)代碼如下:

    void CDlgget::OnStop()

    {

    // TODO: Add your control notification handler code here

    stop=true;

    }

    運(yùn)行程序,結(jié)果如圖1所示。

    四、結(jié)束語

    一般的生物電波采集儀是在消化吸收現(xiàn)有腦電圖原理和分析方法后,應(yīng)用現(xiàn)代電子技術(shù)和計(jì)算機(jī)技術(shù),結(jié)合現(xiàn)代醫(yī)學(xué)生理學(xué)原理與臨床應(yīng)用的實(shí)際需要設(shè)計(jì)的。本文中采用VC++進(jìn)行開發(fā),在采集數(shù)據(jù)時(shí)運(yùn)用多線程編程技術(shù),可以適時(shí)采集并存儲(chǔ)生物電波數(shù)據(jù),顯示生物電波波形。然后,可對所采集的數(shù)據(jù)進(jìn)行高、低頻慮波和時(shí)間常數(shù)設(shè)置并進(jìn)一步進(jìn)行頻譜分析,顯示頻譜圖。

    參考文獻(xiàn):

    [1]梁建武、陳英,Visual C++程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與實(shí)訓(xùn)[M].中國水利水電出版社,2006.7.

    [2]候俊杰,深入淺出MFC(第二版)[M].華中科技大學(xué)出版社,2001.1.

    作者簡介:

    陳英,女,漢族,湖南省新田縣人,副教授,碩士學(xué)位,現(xiàn)任長沙民政職業(yè)技術(shù)學(xué)院教師,主要研究方向?yàn)檐浖こ蹋?jì)算機(jī)網(wǎng)絡(luò)應(yīng)用。

    猜你喜歡
    數(shù)據(jù)采集
    Web網(wǎng)絡(luò)大數(shù)據(jù)分類系統(tǒng)的設(shè)計(jì)與改進(jìn)
    CAN總線通信技術(shù)在電梯監(jiān)控系統(tǒng)中的應(yīng)用
    基于大型嵌入式系統(tǒng)的污水檢測系統(tǒng)設(shè)計(jì)
    基于AVR單片機(jī)的SPI接口設(shè)計(jì)與實(shí)現(xiàn)
    CS5463在植栽用電子鎮(zhèn)流器老化監(jiān)控系統(tǒng)中的應(yīng)用
    大數(shù)據(jù)時(shí)代高校數(shù)據(jù)管理的思考
    基于廣播模式的數(shù)據(jù)實(shí)時(shí)采集與處理系統(tǒng)
    通用Web表單數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
    基于開源系統(tǒng)的綜合業(yè)務(wù)數(shù)據(jù)采集系統(tǒng)的開發(fā)研究
    大數(shù)據(jù)時(shí)代的管理會(huì)計(jì)
    盐池县| 江山市| 房产| 东方市| 大石桥市| 社会| 临安市| 延津县| 靖西县| 苍梧县| 高青县| 云和县| 北安市| 酉阳| 嘉定区| 洪江市| 梁山县| 神木县| 普格县| 德庆县| 景东| 锦屏县| 依兰县| 内江市| 临沭县| 志丹县| 宁明县| 霍邱县| 精河县| 咸丰县| 南召县| 黑龙江省| 历史| 油尖旺区| 台东县| 鸡西市| 沂南县| 蕲春县| 泽库县| 横山县| 岑溪市|