醫(yī)院輸液監(jiān)測系統(tǒng)計(jì)算機(jī)監(jiān)測界面設(shè)計(jì)指導(dǎo)_第1頁
醫(yī)院輸液監(jiān)測系統(tǒng)計(jì)算機(jī)監(jiān)測界面設(shè)計(jì)指導(dǎo)_第2頁
醫(yī)院輸液監(jiān)測系統(tǒng)計(jì)算機(jī)監(jiān)測界面設(shè)計(jì)指導(dǎo)_第3頁
醫(yī)院輸液監(jiān)測系統(tǒng)計(jì)算機(jī)監(jiān)測界面設(shè)計(jì)指導(dǎo)_第4頁
醫(yī)院輸液監(jiān)測系統(tǒng)計(jì)算機(jī)監(jiān)測界面設(shè)計(jì)指導(dǎo)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

.PAGE.醫(yī)用微機(jī)原理與應(yīng)用課程設(shè)計(jì)題目:醫(yī)院輸液監(jiān)測系統(tǒng)計(jì)算機(jī)監(jiān)測界面設(shè)計(jì)任務(wù)計(jì)算機(jī)輸液監(jiān)測界面設(shè)計(jì),要求運(yùn)用串口通信和VisualC++6.0中對話框方面的知識,設(shè)計(jì)出的輸液監(jiān)測界面,能及時(shí)準(zhǔn)確地反映病人輸液的情況,實(shí)現(xiàn)輸液情況監(jiān)測、輸液速度超限報(bào)警功能。目標(biāo)訓(xùn)練微機(jī)應(yīng)用能力。通過查閱資料等,培養(yǎng)獨(dú)立分析和解決實(shí)際問題的能力。學(xué)會寫設(shè)計(jì)報(bào)告。課題來源靜脈輸液是臨床常用的基礎(chǔ)護(hù)理操作,也是醫(yī)院治療搶救病人的一個(gè)重要手段。但是,在靜脈輸液過程中,必須有人護(hù)理,以防鼓包和輸液結(jié)束時(shí)血液倒流等安全事故發(fā)生,尤其對術(shù)后幾乎需要24小時(shí)不間斷輸液的患者的監(jiān)護(hù),更是讓護(hù)理者身心憔悴,當(dāng)護(hù)理者發(fā)生困倦時(shí),極易發(fā)生事故。因此,在醫(yī)院里出現(xiàn)了有輸液患者就有陪護(hù)的現(xiàn)象,既浪費(fèi)了人力,又沒有充分利用護(hù)士的資源。針對這一問題,利用計(jì)算機(jī)對輸液監(jiān)測,能很好的反映當(dāng)前病人輸液的情況,及時(shí)給醫(yī)務(wù)人員提供病人輸液的信息,從而提高對病人的護(hù)理水平,有效減輕醫(yī)護(hù)人員的工作負(fù)擔(dān)。醫(yī)院輸液監(jiān)測系統(tǒng)的組成系統(tǒng)主要對醫(yī)院輸液病人的輸液情況進(jìn)行監(jiān)測,當(dāng)病人開始輸液時(shí),系統(tǒng)能自動監(jiān)測出當(dāng)前輸液的滴數(shù)和速度,并且當(dāng)輸液速度過高或過低時(shí),能發(fā)出報(bào)警,以便值班醫(yī)護(hù)人員及時(shí)處理。本系統(tǒng)由輸液監(jiān)測界面〔計(jì)算機(jī)和輸液監(jiān)測器〔下位機(jī)兩部分組成。輸液監(jiān)測器〔下位機(jī)主要負(fù)責(zé)的是輸液信號的監(jiān)測、提取和傳輸,當(dāng)有輸液信號發(fā)生時(shí),下位機(jī)監(jiān)測到信號,并向計(jì)算機(jī)發(fā)送信息;輸液監(jiān)測界面〔計(jì)算機(jī)則主要負(fù)責(zé)輸液信息的顯示和報(bào)警,當(dāng)下位機(jī)向計(jì)算機(jī)發(fā)送信息時(shí),輸液監(jiān)測界面〔計(jì)算機(jī)將信息處理并顯示成相關(guān)的輸液信息:滴速和滴數(shù),并且在輸液信息超出允許的范圍時(shí)發(fā)出相應(yīng)的報(bào)警。它們的組成示意圖如圖1所示: 圖1病房中每一個(gè)病床前都設(shè)置了一個(gè)輸液監(jiān)測器〔下位機(jī),病人的輸液信息由以單片機(jī)為核心的輸液監(jiān)測器〔下位機(jī)進(jìn)行監(jiān)測、提取和傳送,各個(gè)病房中病人的輸液信息則通過通信系統(tǒng)反映到醫(yī)務(wù)人員的值班室的計(jì)算機(jī)上,以便醫(yī)務(wù)人員進(jìn)行實(shí)時(shí)的監(jiān)測。下位機(jī)由單片機(jī)構(gòu)成,完成輸液信息的監(jiān)測、提取和傳送。病人輸液信息的監(jiān)測由光電對管完成,單片機(jī)負(fù)責(zé)對病人輸液數(shù)據(jù)的讀取、分析和處理,利用串口通信與計(jì)算機(jī)進(jìn)行通信。在醫(yī)務(wù)人員值班室計(jì)算機(jī)上運(yùn)行的輸液監(jiān)測界面〔計(jì)算機(jī),對病人輸液的信息進(jìn)行記錄和管理,它的主要功能是:輸液情況監(jiān)測、輸液速度超限報(bào)警。計(jì)算機(jī)界面設(shè)計(jì)框圖根據(jù)任務(wù)要求,醫(yī)院輸液監(jiān)測系統(tǒng)計(jì)算機(jī)軟件主要功能是:輸液情況監(jiān)測、輸液速度超限報(bào)警,此外,還包括串口設(shè)置及時(shí)間顯示。輸液監(jiān)測系統(tǒng)計(jì)算機(jī)的結(jié)構(gòu)如圖2所示:圖2 輸液監(jiān)測系統(tǒng)結(jié)構(gòu)圖 輸液監(jiān)測模塊完成對當(dāng)前輸液病人的輸液情況監(jiān)測任務(wù),其中包括輸液滴數(shù)和輸液速度的顯示,還有輸液指示燈與液滴同步閃爍。 輸液超限報(bào)警模塊負(fù)責(zé)輸液過程中出現(xiàn)的輸液速度過快、過慢以及輸液結(jié)束的報(bào)警,當(dāng)出現(xiàn)上述情況時(shí),計(jì)算機(jī)中會出現(xiàn)文字提示信息并且下位機(jī)會發(fā)出報(bào)警。 串口設(shè)置模塊主要是開啟上、下位機(jī)之間的通信,有時(shí)在進(jìn)行實(shí)驗(yàn)時(shí),各臺計(jì)算機(jī)的串口設(shè)置不盡相同,因此,這個(gè)模塊也是必不可少的。 顯示時(shí)間模塊顧名思義是顯示當(dāng)前時(shí)間。要求設(shè)計(jì)界面反映作者的學(xué)號,姓名,并有自己的特點(diǎn)。程序運(yùn)行正常,能通過串口與單片機(jī)進(jìn)行通信。程序調(diào)試后存在盤上。寫出設(shè)計(jì)報(bào)告,要求有如下內(nèi)容:任務(wù)。設(shè)計(jì)思路與框圖。工具軟件介紹。界面設(shè)計(jì)裁圖及說明。關(guān)鍵程序說明。程序調(diào)試記錄及說明。運(yùn)行結(jié)果及說明。收獲.體會等。參考文獻(xiàn)。參考資料:1.朱定華.微型計(jì)算機(jī)原理及應(yīng)用.電子工業(yè)出版社,2000.12.吳金戌.8051單片機(jī)實(shí)踐與應(yīng)用.清華大學(xué)出版社,2002.93.張志明.C++語言與面向?qū)ο蟮脑O(shè)計(jì).XX:XX大學(xué)出版社.2001.94.龔建偉、熊光明.VisualC++/TurboC串口通信編程實(shí)踐.北京:電子工業(yè)出版社,2004.105.楊鴻雁.PowerBuilder8.0實(shí)例入門.海洋出版社,2002.66.李朝青.PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù).北京航空航天大學(xué)出版社,20017.李朝青.單片機(jī)原理及接口技術(shù).北京航空航天大學(xué)出版社,1998.118.楊小川.PROTELDXP設(shè)計(jì)指導(dǎo)教程.清華大學(xué)出版社,2003.119.張龍祥.數(shù)據(jù)庫原理與設(shè)計(jì).人民郵電出版社,2002.710.余學(xué)飛.醫(yī)學(xué)電子儀器原理與設(shè)計(jì).華南理工大學(xué)出版社,200311.新電腦課堂.VisualC++編程篇.北京:電子工業(yè)出版社,2004.112.求是科技.單片機(jī)通信技術(shù)與工程實(shí)踐.北京:人民郵電出版社,2005.113.甘玲、邱勁.面向?qū)ο蠹夹g(shù)與VisualC++.北京:清華大學(xué)出版社,2004.8m/附參考實(shí)例:主界面程序設(shè)計(jì)醫(yī)院輸液監(jiān)測系統(tǒng)運(yùn)行時(shí)的主界面如圖3-2所示。我們用VisualC++6.0編制一個(gè)基于對話框的應(yīng)用監(jiān)測程序,主界面對話框類名是"CHospitalDlg"。圖3-2醫(yī)院輸液監(jiān)測系統(tǒng)監(jiān)測界面下面是主界面初始化時(shí)執(zhí)行的代碼,主要起到初始化串口、設(shè)置定時(shí)器時(shí)間等作用,代碼如下:BOOLCHospitalDlg::OnInitDialog<>{ CDialog::OnInitDialog<>; //Add"About..."menuitemtosystemmenu. //IDM_ABOUTBOXmustbeinthesystemcommandrange. ASSERT<<IDM_ABOUTBOX&0xFFF0>==IDM_ABOUTBOX>; ASSERT<IDM_ABOUTBOX<0xF000>; CMenu*pSysMenu=GetSystemMenu<FALSE>; if<pSysMenu!=NULL> { CStringstrAboutMenu; strAboutMenu.LoadString<IDS_ABOUTBOX>; if<!strAboutMenu.IsEmpty<>> { pSysMenu->AppendMenu<MF_SEPARATOR>; pSysMenu->AppendMenu<MF_STRING,IDM_ABOUTBOX,strAboutMenu>; } }//Settheiconforthisdialog.Theframeworkdoesthisautomatically//whentheapplication'smainwindowisnotadialog SetIcon<m_hIcon,TRUE>; //Setbigicon SetIcon<m_hIcon,FALSE>; //Setsmallicon//TODO:Addextrainitializationhere m_Number.SetCurSel<0>;//初始選擇串口1 m_Speed.SetCurSel<4>;//初始選擇4800 m_Parity.SetCurSel<0>;//初始選擇NONE m_DataBits.SetCurSel<0>;//初始選擇8 m_StopBits.SetCurSel<0>;//初始選擇1 m_hIconRed=AfxGetApp<>->LoadIcon<IDI_ICON_RED>; m_hIconOff =AfxGetApp<>->LoadIcon<IDI_ICON_OFF>; //m_hIconGreen=AfxGetApp<>->LoadIcon<IDI_ICON_GREEN>; m_nSpeed=4800; m_nNumber=1; m_cParity='N'; m_nDataBits=8; m_nStopBits=1; m_dwCommEvents=EV_RXFLAG|EV_RXCHAR; CStringstrStatus; if<m_Port.InitPort<this,m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits,m_dwCommEvents,512>> { m_Port.StartMonitoring<>; strStatus.Format<"STATU:COM%dOPENED,%d,%c,%d,%d",m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits>; //初始時(shí),串口指示燈亮,實(shí)時(shí)監(jiān)測燈滅m_ctrlIconOpenOff2.SetIcon<m_hIconRed>; m_ctrlIconOpenOff1.SetIcon<m_hIconOff>; //"當(dāng)前狀態(tài):串口打開,無奇偶校驗(yàn),8數(shù)據(jù)位,1停止位">; } else { AfxMessageBox<"沒有發(fā)現(xiàn)此串口或串口被占用!">;//提示信息 m_ctrlIconOpenOff2.SetIcon<m_hIconOff>; } m_ctrlPortStatus.SetWindowText<strStatus>; //ShowWindow<SW_SHOW>;//激活窗口,并以當(dāng)前的大小和位置顯示m_ctrlAutoClear.SetCheck<0>;//初始化未選中"自動清空" m_ctrlStopDisp.SetCheck<0>;//初始化未選中"刷新顯示" m_animIcon.SetImageList<IDB_ANIM_IMGLIST,4,RGB<0,0,0>>; SetTimer<1,1000,NULL>;//設(shè)置定時(shí)器,定時(shí)時(shí)間控制動作的快慢SetTimer<2,10000,NULL>; UpdateData<FALSE>; returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}在主界面設(shè)計(jì)中,使用了與下位機(jī)進(jìn)行串口通信的CserialPort類,CserialPort類是由RemonSpekreijse提供的免費(fèi)串口類,它是一個(gè)非常好用的多線程串口編程工具,用它可以很輕松地完成一般串口編程任務(wù),并且與MSComm控件〔MicosoftCommunicationControl控件相比,這個(gè)類打包時(shí),不需要加入其他的文件,而且函數(shù)都是開放透明的,允許我們進(jìn)行改造。其工作流程如下: 首先設(shè)置好串口參數(shù),再開啟串口監(jiān)測工作線程,串口監(jiān)測工作線程監(jiān)測到串口接收到的數(shù)據(jù)、流控制事件或者其他串口事件后,就以消息方式通知主程序,激發(fā)消息處理函數(shù)來進(jìn)行數(shù)據(jù)處理,這是對接收數(shù)據(jù)而言的;發(fā)送數(shù)據(jù)可直接向串口發(fā)送。CserialPort類定義的消息如表3-1所示。消息名稱消息號功能說明WM_COMM_BREAK_DETECTEDWM_USER+1檢測到輸入中斷WM_COMM_CTS_DETECTEDWM_USER+2檢測到CTS〔清除發(fā)送信號狀態(tài)改變WM_COMM_DSR_DETECTEDWM_USER+3檢測到DSR〔數(shù)據(jù)設(shè)備準(zhǔn)備就緒信號狀態(tài)改變WM_COMM_ERR_DETECTEDWM_USER+4發(fā)生線狀態(tài)錯誤〔包括CE_FRAME,CE_OVERRUN和CE_RXPARITYWM_COMM_RING_DETECTEDWM_USER+5檢測到響鈴指示信號WM_COMM_RLSD_DETECTEDWM_USER+6檢測到RLSD〔接收線信號狀態(tài)改變WM_COMM_RXCHARWM_USER+7接收到一個(gè)字符并已放入接收緩沖區(qū)WM_COMM_RXFLAG_DETECTEDWM_USER+8檢測到接收到字符〔該字符已放入接收緩沖區(qū)事件WM_COMM_TXEMPTY_DETECTEDWM_USER+9檢測到發(fā)送緩沖區(qū)最后一個(gè)字符已經(jīng)被發(fā)送表3-1CserialPort類消息說明輸液信息實(shí)時(shí)監(jiān)測程序設(shè)計(jì) 在輸液信息實(shí)時(shí)監(jiān)測的設(shè)計(jì)中,我們設(shè)置了滴速、滴數(shù)、提示框以及指示燈,其中提示框是當(dāng)監(jiān)測的輸液信息超限時(shí)用于文字提示,指示燈則與滴數(shù)同步閃爍,更形象地反映當(dāng)前輸液狀態(tài)。其圖形如下3-3圖所示:圖3-3輸液信息實(shí)時(shí)監(jiān)測輸液信息實(shí)時(shí)監(jiān)測部分它的控件及屬性如下表3-2:控件控件IDCaption〔標(biāo)題需要添加的變量及變量類型組框IDC_STATIC監(jiān)測靜態(tài)文本IDC_STATIC滴數(shù)編輯框IDC_EDIT_RXCOUNTm_RXCOUNTCString靜態(tài)文本IDC_STATIC滴速編輯框IDC_EDIT_SPEED1m_SPEED1CString編輯框IDC_EDIT_INTIMEm_EditCString按鈕IDC_BUTTON_INTIME實(shí)時(shí)監(jiān)測圖像IDC_STATIC_OPENOFF1m_ctrlIconOpenOff1SCtatic表3-2輸液信息實(shí)時(shí)監(jiān)測控件屬性在監(jiān)測界面運(yùn)行時(shí),輸液信息的監(jiān)測與串口通信的聯(lián)系較緊密,因?yàn)檩斠罕O(jiān)測的信息是由下位機(jī)傳給計(jì)算機(jī)的,而上、下位機(jī)之間必須靠串口通信完成。下面是各個(gè)控件運(yùn)行的代碼://///////////串口消息處理函數(shù)OnCommunication////////////////staticlongrxdatacount=1; //該變量用于記錄輸液滴數(shù)staticintontimebb=0; //用于實(shí)時(shí)監(jiān)測開關(guān)staticintoldrxdatacount=0; //用于測速staticintoldrxdatacount1=0; //用于報(bào)警//WPARAM和LPARAM是多態(tài)數(shù)據(jù)類型,可以分別理解為char和integer類型數(shù)據(jù)LONGCHospitalDlg::OnCommunication<WPARAMch,LPARAMport>{//////////////////////////////顯示滴數(shù)////////////////////////////// rxdatacount++;//記錄輸液的滴數(shù) CStringstrTemp;//定義一個(gè)字符串變量 strTemp.Format<"%01d",ch>;m_RXCOUNT=strTemp;//顯示輸液的滴數(shù)UpdateData<FALSE>;if<rxdatacount%2==0&&ontimebb==1>//實(shí)時(shí)監(jiān)測指示燈 { m_ctrlIconOpenOff1.SetIcon<m_hIconRed>; }else{ m_ctrlIconOpenOff1.SetIcon<m_hIconOff>; }return0;}////////////////////////實(shí)時(shí)監(jiān)測/////////////////////////voidCHospitalDlg::OnButtonIntime<>{ if<ontimebb==0> {ontimebb=1;m_ctrlIconOpenOff1.SetIcon<m_hIconRed>;} else {ontimebb=0;m_ctrlIconOpenOff1.SetIcon<m_hIconOff>;}} 此外,由于輸液滴速的監(jiān)測和文字提示報(bào)警有嚴(yán)格的時(shí)間控制,因此,這兩個(gè)控件的代碼寫在這定時(shí)器部分,具體代碼如下://///////////////////定時(shí)器〔動畫效果////////////////////////voidCHospitalDlg::OnTimer<UINTnIDEvent>{ //TODO:Addyourmessagehandlercodehereand/orcalldefault if<nIDEvent==1> { m_animIcon.ShowNextImage<>;//顯示下一幅圖像 CStringstrTemp;//定義一個(gè)字符串變量 strTemp.Format<"%01d",<rxdatacount-oldrxdatacount>>; m_SPEED1=strTemp+"滴/秒";//顯示輸液的滴速CStringTimenow;//定義一個(gè)字符串 CTimetm;//定義一個(gè)CTime對象tm tm=CTime::GetCurrentTime<>;//將當(dāng)前時(shí)間給tm Timenow=tm.Format<"%Y年%m月%d日%X">;//使Timenow的輸出格式為%Y年%m月%d日 m_ctrlTIMENOW.SetWindowText<Timenow>;//在靜態(tài)文本框中顯示當(dāng)前時(shí)間 if<m_ctrlAutoClear.GetCheck<>>//自動清空功能 { m_Edit.Empty<>;//清空接收區(qū) UpdateData<FALSE>; }UpdateData<FALSE>; oldrxdatacount=rxdatacount; }elseif<nIDEvent==2>{m_Edit="";if<<<rxdatacount-oldrxdatacount1>/10><1>m_Edit="滴速過慢或停止!";if<<<rxdatacount-oldrxdatacount1>/10>>3>m_Edit="滴速過快!";UpdateData<FALSE>;oldrxdatacount1=rxdatacount;} CDialog::OnTimer<nIDEvent>;}串口通信中串口程序設(shè)計(jì) 其實(shí),這部分并不應(yīng)該出現(xiàn)在主界面中,但是串口通信方面的內(nèi)容又是我們這次設(shè)計(jì)的一個(gè)重要內(nèi)容,沒有這部分主界面也顯得"空空蕩蕩",而且在調(diào)試過程中,不同的計(jì)算機(jī)的串口設(shè)置也不同,加上這部分就省去了很多麻煩,所以我們將這部分也加到主界面中。 這部分主要完成串口的設(shè)置,為上、下位機(jī)通信作準(zhǔn)備,其圖形如下圖3-4所示:圖3-4串口通信設(shè)置串口通信部分其控件及屬性如下表3-3所示:控件控件ID輸入列表框項(xiàng)目Caption〔標(biāo)題需要添加的變量及變量類型組框IDC_STATIC串口設(shè)置靜態(tài)文本IDC_STATIC_NUMBER串口號組合框IDC_COMBO_NUMBERCOM1,COM2,COM3,COM4,COM5m_NumberCComboBox靜態(tài)文本IDC_STATIC_SPEED波特率組合框IDC_COMBO_SPEED300,600,1200,2400,4800,9600,19200,38400,43000,56000,57600,115200m_SpeedCComboBox靜態(tài)文本IDC_STATIC_PARITY校驗(yàn)位組合框IDC_COMBO_PARITYNONE、ODD、EVENm_ParityCComboBox靜態(tài)文本IDC_STATIC_DATABITS數(shù)據(jù)位組合框IDC_COMBO_DATABITS8、7、6m_DataBitsCComboBox靜態(tài)文本IDC_STATIC_STOPBITS停止位組合框IDC_COMBO_STOPBITS1、2m_StopBitsCComboBox靜態(tài)文本IDC_STATIC_STATUSSTATUS:m_ctrlPortStatusCstatic按鈕IDC_BUTTON_STOP關(guān)閉串口m_ctrlStopCButton圖像IDC_STATIC_OPENOFF2m_ctrlIconOpenOff2SCtatic表3-3串口設(shè)置控件屬性 下面是串口通信中串口設(shè)置控件的代碼:///////////////////////////串口號/////////////////////////////voidCHospitalDlg::OnSelendokComboNumber<>{ //TODO:Addyourcontrolnotificationhandlercodehere if<m_Port.m_hComm!=NULL> { m_Port.ClosePort<>; } //將組合框列表框中當(dāng)前選中的項(xiàng)的下標(biāo)加1,然后給m_nNumberm_nNumber=m_Number.GetCurSel<>+1; CStringstrStatus;//定義一個(gè)字符串變量 if<m_Port.InitPort<this,m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits,m_dwCommEvents,512>> {//檢查串口是否完成初始化 if<!m_bStop>//若"關(guān)閉串口"按鈕沒有按下,則進(jìn)行如下操作 { m_Port.StartMonitoring<>; m_ctrlIconOpenOff2.SetIcon<m_hIconRed>;//串口燈亮 strStatus.Format<"STATU:COM%dOPENED,%d,%c,%d,%d",m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits>; }//顯示串口狀態(tài) else//若"關(guān)閉串口"按鈕已按下,則進(jìn)行如下操作 { //若串口處于打開狀態(tài),將消息"打開串口"送到控件上 m_ctrlStop.SetWindowText<"打開串口">; m_ctrlIconOpenOff2.SetIcon<m_hIconOff>;//串口燈滅 m_Port.ClosePort<>;//關(guān)閉串口 strStatus.Format<"STATU:COM%dOPENED,%d,%c,%d,%d",m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits>; }//顯示串口狀態(tài) m_ctrlPortStatus.SetWindowText<strStatus>; } else//若沒有完成初始化 { AfxMessageBox<"沒有發(fā)現(xiàn)此串口或串口被占用!">;//提示信息 m_ctrlIconOpenOff2.SetIcon<m_hIconOff>; }}/////////////////////////////波特率/////////////////////////////voidCHospitalDlg::OnSelendokComboSpeed<>{ //TODO:Addyourcontrolnotificationhandlercodehere CStringtemp;//定義一個(gè)字符串變量 inti=m_Speed.GetCurSel<>;//將組合框列表框中所選中的項(xiàng)的下標(biāo)給i switch<i>//選擇波特率 { case0: i=300; break; case1: i=600; break; case2: i=1200; break; case3: i=2400; break; case4: i=4800; break; case5: i=9600; break; case6: i=19200; break; case7: i=38400; break; case8: i=43000; break; case9: i=56000; break; case10: i=57600; break; case11: i=115200; break; default: break; } m_nSpeed=i;//將i賦值給m_nSpeed CStringstrStatus;//定義一個(gè)字符串變量 if<m_Port.InitPort<this,m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits,m_dwCommEvents,512>> {//檢查串口是否完成初始化 if<!m_bStop>//若"關(guān)閉串口"按鈕沒有按下,則進(jìn)行如下操作 { m_Port.StartMonitoring<>; m_ctrlIconOpenOff2.SetIcon<m_hIconRed>;//串口燈亮 strStatus.Format<"STATU:COM%dOPENED,%d,%c,%d,%d",m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits>; }//顯示串口狀態(tài) else//若"關(guān)閉串口"按鈕已按下,則進(jìn)行如下操作 { //若串口處于打開狀態(tài),將消息"打開串口"送到控件上 m_ctrlStop.SetWindowText<"打開串口">; m_ctrlIconOpenOff2.SetIcon<m_hIconOff>;//串口燈滅 m_Port.ClosePort<>;//關(guān)閉串口 strStatus.Format<"STATU:COM%dCLOSED,%d,%c,%d,%d",m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits>; }//顯示串口狀態(tài) m_ctrlPortStatus.SetWindowText<strStatus>; } else//若沒有完成初始化 { AfxMessageBox<"沒有發(fā)現(xiàn)此串口或串口被占用!">;//提示信息 m_ctrlIconOpenOff2.SetIcon<m_hIconOff>; }}//////////////////////////////校驗(yàn)位///////////////////////////voidCHospitalDlg::OnSelendokComboParity<>{ //TODO:Addyourcontrolnotificationhandlercodehere chartemp;//定義一個(gè)字符變量 inti=m_Parity.GetCurSel<>;//將組合框列表框中所選中的項(xiàng)的下標(biāo)給i switch<i>//選擇校驗(yàn)位 { case0: temp='N'; break; case1: temp='O'; break; case2: temp='E'; break; } m_cParity=temp;//將temp的值給m_cParity CStringstrStatus;//定義一個(gè)字符串變量 if<m_Port.InitPort<this,m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits,m_dwCommEvents,512>> {//檢查串口是否完成初始化 if<!m_bStop>//若"關(guān)閉串口"按鈕沒有按下,則進(jìn)行如下操作 { m_Port.StartMonitoring<>; m_ctrlIconOpenOff2.SetIcon<m_hIconRed>;//串口燈亮 strStatus.Format<"STATU:COM%dOPENED,%d,%c,%d,%d",m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits>; }//顯示串口狀態(tài) else//若"關(guān)閉串口"按鈕已按下,則進(jìn)行如下操作 { //若串口處于打開狀態(tài),將消息"打開串口"送到控件上 m_ctrlStop.SetWindowText<"打開串口">; m_ctrlIconOpenOff2.SetIcon<m_hIconOff>;//串口燈滅 m_Port.ClosePort<>;//關(guān)閉串口 strStatus.Format<"STATU:COM%dCLOSED,%d,%c,%d,%d",m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits>; }//顯示串口狀態(tài) m_ctrlPortStatus.SetWindowText<strStatus>; } else//若沒有完成初始化 { AfxMessageBox<"沒有發(fā)現(xiàn)此串口或串口被占用!">;//提示信息 m_ctrlIconOpenOff2.SetIcon<m_hIconOff>; }}////////////////////////////數(shù)據(jù)位/////////////////////////voidCHospitalDlg::OnSelendokComboDatabits<>{ //TODO:Addyourcontrolnotificationhandlercodehere inti=m_DataBits.GetCurSel<>;//將組合框列表框中所選中的項(xiàng)的下標(biāo)給i switch<i>//選擇數(shù)據(jù)位 { case0: i=8; break; case1: i=7; break; case2: i=6; break; } m_nDataBits=i;//將i賦值給m_nDataBits CStringstrStatus;//定義一個(gè)字符串變量 if<m_Port.InitPort<this,m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits,m_dwCommEvents,512>> {//檢查串口是否完成初始化 if<!m_bStop>//若"關(guān)閉串口"按鈕沒有按下,則進(jìn)行如下操作 { m_Port.StartMonitoring<>; m_ctrlIconOpenOff2.SetIcon<m_hIconRed>;//串口燈亮 strStatus.Format<"STATU:COM%dOPENED,%d,%c,%d,%d",m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits>; }//顯示串口狀態(tài) else//若"關(guān)閉串口"按鈕已按下,則進(jìn)行如下操作 { //若串口處于打開狀態(tài),將消息"打開串口"送到控件上 m_ctrlStop.SetWindowText<"打開串口">; m_ctrlIconOpenOff2.SetIcon<m_hIconOff>;//串口燈滅 m_Port.ClosePort<>;//關(guān)閉串口 strStatus.Format<"STATU:COM%dCLOSED,%d,%c,%d,%d",m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits>; }//顯示串口狀態(tài) m_ctrlPortStatus.SetWindowText<strStatus>; } else//若沒有完成初始化 { AfxMessageBox<"沒有發(fā)現(xiàn)此串口或串口被占用!">;//提示信息 m_ctrlIconOpenOff2.SetIcon<m_hIconOff>; }}//////////////////////停止位/////////////////////////voidCHospitalDlg::OnSelendokComboStopbits<>{ //TODO:Addyourcontrolnotificationhandlercodehere //將組合框列表框中所選中的項(xiàng)的下標(biāo)給iinti=m_StopBits.GetCurSel<>; switch<i>//選擇停止位 { case0: i=1; break; case1: i=2; break; } m_nStopBits=i;//將i賦值給m_nStopBits CStringstrStatus;//定義一個(gè)字符串變量 if<m_Port.InitPort<this,m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits,m_dwCommEvents,512>> {//檢查串口是否完成初始化 if<!m_bStop>//若"關(guān)閉串口"按鈕沒有按下,則進(jìn)行如下操作 { m_Port.StartMonitoring<>; m_ctrlIconOpenOff2.SetIcon<m_hIconRed>;//串口燈亮 strStatus.Format<"STATU:COM%dOPENED,%d,%c,%d,%d",m_nNumber,m_nSpeed,m_cParity,m_nDataBits,m_nStopBits>; }//顯示串口狀態(tài) else//若"關(guān)閉串口"按鈕已按下,則進(jìn)行如下操作 { //若串口處于打開狀態(tài),將消息"打開串口"送到控件上 m_ctrlStop.SetWindowText<"打開串口">; m_ctrlIconOpenOff2.Se

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論