




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、利用VC中的通訊控件開發(fā)串形通信程序利用VC中的通訊控件開發(fā)串形通信程序 利用VC中的通訊控件開發(fā)串形通信程序 信息技術(shù)論文 更新:2006-4-8 閱讀: 利用VC中的通訊控件開發(fā)串形通信程序利用VC中的通訊控件開發(fā)串形通信程序楊峰河南省水文水資源局由于需要我們開發(fā)了前置機應(yīng)用程序,實現(xiàn)功能就是將前置機里存放的信息取出來用計算機進展處理,該程序是利用VC在WIN98下開發(fā)而成,對串口的訪問是通過VC中的通訊控件主要完成的。通訊程序開發(fā)不僅涉及對串口的訪問,還牽涉多線程編程24小時運行等問題,是編程中令人頭疼的問題。本文中只介紹利用控件對串口的訪問。為了說明控件的應(yīng)用,這里特編制兩臺計算機通過
2、串口進展信息交換的小程序,來介紹通訊控件的詳細運用。1 控件程序的實現(xiàn)啟動Microsoft 5.0,利用Appwizards建立一個新的基于對話框的project,選名commtest,其中第二步選擇ActiveX Control選項,證明支持控件功能,其他都選擇缺省,這樣就建立了一個基于對話框的應(yīng)用程序。然后將通訊控件參加應(yīng)用之中,在對話框資源上點擊鼠標右鍵,選擇Insert ActiveX Control然后在控件選擇對話框中選擇Microsoft Communictions Control,Version5.0,然后選擇Insert插入一個類似 機的控件,然后點擊該控件就可以修改和設(shè)置
3、控件特性。按Add to Project選項中Registered ActiveX Control選項然后在控件選擇對話框中選擇Microsoft Communictions Control,Version5.0,將通訊控件兩個程序Mscomm.h和Mscomm.cpp參加project當(dāng)中。這樣就把通訊控件參加了應(yīng)用程序當(dāng)中,可以應(yīng)用該控件進展編程了。2通訊控件的各屬性的含義:w10 屬性設(shè)定值說明ComPort1串口號Settings9600,n,8,1串口的參數(shù)設(shè)置,依次為波特率、奇偶校驗、數(shù)據(jù)位數(shù)、停頓位數(shù)InBufferSize1024接收緩沖區(qū)大小InputLen從接收緩沖區(qū)讀取的
4、字節(jié)數(shù),0表示全部讀取InputMode1接收數(shù)據(jù)的類型,0表示文本類型,1表示二進制類型OutBufferSize1024發(fā)送緩沖區(qū)大小RThreshold1設(shè)定當(dāng)接收幾個字符時觸發(fā)OnComm事件,0表示不產(chǎn)惹事件,1表示每接收一個字符就產(chǎn)生一個事件SThreshold設(shè)定在觸發(fā)OnComm事件前發(fā)送緩沖區(qū)內(nèi)所允許的最少字符數(shù),0表示發(fā)數(shù)據(jù)時不產(chǎn)惹事件,1表示當(dāng)發(fā)送緩沖區(qū)空時產(chǎn)生OnComm事件通訊控件的屬性很多,這里只是介紹其中的幾種,可以根據(jù)自己的需求選擇加以設(shè)置調(diào)整,對于其他屬性可以查看VC幫助和聯(lián)機手冊。通訊控件的工作原理類似于中y礳f方式,當(dāng)有通訊事件發(fā)生時如發(fā)送數(shù)據(jù)、接收數(shù)據(jù)等
5、,就會觸發(fā)OnComm事件,在該事件的處理函數(shù)中調(diào)用GetCommEvent()函數(shù),通過返回值即可確定是那類事件,再作出相應(yīng)的處理。3VC通訊控件的數(shù)據(jù)類型和命令對通訊控件來說,其所有的數(shù)篸d類型和命令都在兩個控件文件mscomm.h和mscomm.cpp兩個文件當(dāng)中,mscomm.h定義了控件類和各條命令的函數(shù)及所用的各參數(shù),mscomm.cpp文件中有各命令函數(shù)的描繪。4主程序的編制在對話框中增加下面幾個按鈕:發(fā)送數(shù)據(jù)編輯框發(fā)送數(shù)據(jù)按鈕;接收數(shù)據(jù)編輯框去除數(shù)據(jù)按鈕;通訊按鈕;首先我們?yōu)閷υ捒蛑械目丶砑訉?yīng)的變量和響應(yīng)函數(shù)溴a3詳細做法如下表所示。w10 控件名稱控件ID對應(yīng)變量發(fā)送數(shù)據(jù)
6、編輯框IDC_SENDDATEm_SendDate發(fā)送按鈕IDC_SENDOnSend()去除按鈕IDC_CLEAROnClear()接收數(shù)據(jù)編輯框IDC_RECEIVEDATEm_ReceiveData通訊控件IDC_MSCOMMm_Comm再翻開ClassWizard,選中IDC_MSCOMM,可看到該控件能響應(yīng)的消息為OnComm,添加改函數(shù)并將其改名為OnComm(),在該函數(shù)中添加代碼,就能實現(xiàn)對串口事件的處理。其中一個需要注意的問題是函數(shù)GetInput()返回的是VARIANT型變量,而在編輯框中顯示的是Cstring型變量,因此必須進展轉(zhuǎn)換。先將VARIANT型變量轉(zhuǎn)換為Col
7、eSafeArray型變量,再將其轉(zhuǎn)換為BYTE型數(shù)組,然后將數(shù)組轉(zhuǎn)換為Cstring型變量。這個轉(zhuǎn)換過程看起來比較復(fù)雜,但它可以滿足用不同的變量類型來顯示接收數(shù)據(jù)。該程序的主要代碼添加在CommTestDlg.cpp中,如下所示:void CcommTestDlg:OnSend()it( !m_Comm.GetPortOpen() )m_Comm.SetPortOpen(TRUE);/翻開串口UpdateData(TRUE);m_Comm.SetOutput(ColeVariant(m_SendData);/發(fā)送數(shù)據(jù)void CcommTestDlg:OnClear()m_ReceiveData.Empty();/去除接收對話框中的數(shù)據(jù)m_SendData.Empty();/去除發(fā)送對話框中的數(shù)據(jù)UpdataData(FALSE);void CcommTestDig:OnComm()VARIANT m_input1;ColeSafeArray m_input2;Long length,i;Cstring str;if(m_Comm.GetCommEvent()= =2)/接收緩沖區(qū)內(nèi)有字符m_input1=m_Comm.Getinput();/讀取緩沖區(qū)內(nèi)的數(shù)據(jù)m_input2=m_input1;/將VARIA
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度湖南省勞動合同(教育行業(yè))
- 離婚房產(chǎn)公證協(xié)議書
- 住宿服務(wù)合同書
- 企業(yè)環(huán)保技術(shù)創(chuàng)新及綠色制造戰(zhàn)略規(guī)劃
- 民用建筑施工合同
- 旅游度假村開發(fā)建設(shè)合同
- 企業(yè)可持續(xù)發(fā)展成本效益分析
- 大數(shù)據(jù)平臺建設(shè)委托代理協(xié)議
- 股份轉(zhuǎn)讓意向合同
- 三農(nóng)用無人機使用及維護指南
- 兩層鋼結(jié)構(gòu)廠房施工方案
- 初中語文“經(jīng)典誦讀與海量閱讀”校本課程實施方案
- Gly-Gly-Leu-生命科學(xué)試劑-MCE
- 零售業(yè)的門店形象提升及店面管理方案設(shè)計
- 高速公路40m連續(xù)T梁預(yù)制、架設(shè)施工技術(shù)方案
- 《論教育》主要篇目課件
- 外籍工作人員聘用合同范本
- 大學(xué)生就業(yè)指導(dǎo)教學(xué)-大學(xué)生就業(yè)形勢與政策
- 中華人民共和國學(xué)前教育法
- 2020年全國中學(xué)生生物學(xué)競賽聯(lián)賽試題真題(含答案解析)
- 足浴技師與店內(nèi)禁止黃賭毒協(xié)議書范文
評論
0/150
提交評論