亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        探究一種用戶友好的C++串口類(lèi)設(shè)計(jì)

        2018-06-11 09:43:28王星
        科學(xué)與財(cái)富 2018年14期
        關(guān)鍵詞:模塊化

        王星

        摘要:在信息化社會(huì)中,串口通信在安裝與設(shè)計(jì)相關(guān)設(shè)備設(shè)施中均有廣泛性應(yīng)用,文章闡述了一類(lèi)以ActiveX控件MSComm和MFC Library Regular DLL為基點(diǎn)的C++串口設(shè)計(jì),采用經(jīng)細(xì)致規(guī)劃的函數(shù)接口和消息體制,最大限度的精簡(jiǎn)了串口編輯程序。和直接采用MSComm控件相比較,采用該類(lèi)型串口進(jìn)行編程,能夠有效降低串口編程的難度系數(shù),使用者只有具備基礎(chǔ)的串口知識(shí),能夠順利的書(shū)寫(xiě)出正常運(yùn)作的串口流程。

        關(guān)鍵詞:ActiveX控件;MSComm;串口通信;模塊化

        C++為當(dāng)下結(jié)構(gòu)最為繁雜,以及功能最為強(qiáng)大的一類(lèi)windows應(yīng)用程序開(kāi)發(fā)工具,怎樣有效應(yīng)用C++研發(fā)串行通信程序去達(dá)到工控系統(tǒng)的實(shí)時(shí)通信,是社會(huì)各個(gè)領(lǐng)域中關(guān)注的焦點(diǎn),也是行業(yè)領(lǐng)域發(fā)展期間面對(duì)的重難點(diǎn)。串口通信自身具備成本低廉、操作過(guò)稱(chēng)簡(jiǎn)易、可靠性高、遠(yuǎn)距離傳輸?shù)葍?yōu)勢(shì),應(yīng)用范疇不斷拓展。有效應(yīng)用計(jì)算機(jī)上的串口能為對(duì)裝、設(shè)備進(jìn)行參數(shù)規(guī)劃等工作創(chuàng)造諸多便利條件,設(shè)備間數(shù)據(jù)傳導(dǎo)目標(biāo)也順利實(shí)現(xiàn),故此規(guī)劃具備操作串口功能的計(jì)算機(jī)程序使極為普及的編程任務(wù)。

        1當(dāng)前Windows操作系統(tǒng)上進(jìn)行串口編程的幾種方法

        1.1采用微軟C運(yùn)行時(shí)庫(kù)的I/O函數(shù)

        在對(duì)串口操作過(guò)程中,可應(yīng)用_inp、_inpw、_inpd、_outp等函數(shù),上述函數(shù)最大的特征是能夠直接對(duì)串口芯片施以相關(guān)操作行為。這就需要編程人員對(duì)串口硬件的工作原理與程序有全面性了解[1]。

        1.2應(yīng)用Windows API函數(shù)

        即應(yīng)用Windows API中的ReadFile、WriteFile、BuildComDCB等函數(shù)進(jìn)行相關(guān)操作。上述函數(shù)應(yīng)用過(guò)程具有一定難度,只有在對(duì)系統(tǒng)內(nèi)文件有整體認(rèn)識(shí)以及設(shè)備管理具有一定深度情況下,才可有效應(yīng)用。

        1.3應(yīng)用第三方串口通信類(lèi)

        第三方串口通信類(lèi)以CSerialPort,cnComm等為主,應(yīng)用制定的語(yǔ)言編寫(xiě),并裝包成類(lèi)(class),內(nèi)部采用調(diào)用Windows API方式,達(dá)到對(duì)串口的有效操作。

        2 用戶友好的串口DLL和C++串口類(lèi)規(guī)劃

        2.1串口DLL的規(guī)劃

        MSComm控件具備運(yùn)行穩(wěn)定可靠屬性,為本文設(shè)計(jì)工作的開(kāi)展與運(yùn)行提供了堅(jiān)實(shí)基礎(chǔ)。從性質(zhì)上分析,MSComm為一類(lèi)ActiveX控件,只有在ActiveX容器內(nèi)其才會(huì)運(yùn)作,并將效能發(fā)揮出來(lái)。對(duì)話框是較為典型的ActiveX容器。故此,本文規(guī)劃了一個(gè)對(duì)話框類(lèi)CommCtnr,若將MSComm控件插進(jìn)對(duì)話框類(lèi)CommCtnr內(nèi),Visual C++開(kāi)發(fā)環(huán)境將會(huì)自行取代MSComm控件產(chǎn)生代理類(lèi)CMSComm,其將CMSComm類(lèi)的對(duì)象設(shè)為對(duì)話框類(lèi)CommCtnr的數(shù)據(jù)成員[2]。

        使用者可直接把有關(guān)的.cpp、.h文件以及.rc資源文件拷貝到自己的工程目錄內(nèi),但上述過(guò)程運(yùn)行相對(duì)復(fù)雜,且耗用大量時(shí)間。更有效的方法是把有關(guān)的文件獨(dú)立編譯為一個(gè)動(dòng)態(tài)鏈接庫(kù)(DLL),用戶只需調(diào)用該動(dòng)態(tài)鏈接庫(kù),就可順利的進(jìn)行串口操作。MFC能促使兩類(lèi)動(dòng)態(tài)鏈接庫(kù)運(yùn)轉(zhuǎn):①M(fèi)FC Library Extension DLL;②MFC Library Regular DLL。前者可把整個(gè)C++類(lèi)設(shè)為DLL的外部接口,以助力于DL過(guò)程,但要求用戶需采用C++語(yǔ)言編程,只有在動(dòng)態(tài)鏈銜接MFC庫(kù)時(shí),DLL的效能才會(huì)發(fā)揮出來(lái),用戶群規(guī)??赡苡兴鶞p縮,故此本文設(shè)計(jì)期間不采用該種方式。而應(yīng)用MFC Library Regular

        DLL方式,其可提供多類(lèi)編程語(yǔ)言設(shè)計(jì)的客戶程序。因?yàn)槠鋵?duì)外界的接口只認(rèn)可是C風(fēng)格的函數(shù),故此其與類(lèi)(class)類(lèi)型的參數(shù)之間產(chǎn)生互斥效應(yīng)。故此,本文在對(duì)每一C風(fēng)格函數(shù)接口規(guī)劃過(guò)程中,均需一個(gè)無(wú)符號(hào)整型的參數(shù)代表串口號(hào),串口號(hào)和串口存在一一對(duì)應(yīng)關(guān)系,在DLL內(nèi)部串口號(hào)有針對(duì)的被轉(zhuǎn)型為MSComm串口控件。在提供串口號(hào)的情況下,就可實(shí)現(xiàn)對(duì)相關(guān)串口進(jìn)行操作,為用戶創(chuàng)造諸多便利條件。

        2.2用戶友好的消息的規(guī)劃

        消息傳遞為Windows程序之間以及程序內(nèi)部信息互換的主要渠徑,本文應(yīng)用自定義的消息去落實(shí)客戶程序和DLL間的交互任務(wù)。為DLL設(shè)計(jì)了三種消息,MSComm控件若傳送消息,就會(huì)立即被轉(zhuǎn)型為者三類(lèi)消息之一,最后發(fā)送給客戶程序:①接收數(shù)據(jù)消息;②傳送數(shù)據(jù)消息;③硬件控制消息或者是串口錯(cuò)誤[3]。

        消息的實(shí)際數(shù)值大小取決于客戶程序,于串口初始化之際,就把消息值傳達(dá)給DLL。那么在后續(xù)運(yùn)轉(zhuǎn)期間,存在相關(guān)的串口事件發(fā)生時(shí),DLL就會(huì)把對(duì)應(yīng)的消息傳送給給客戶程序。

        2.3用戶友好的C++串口類(lèi)規(guī)劃

        客戶程序能夠直接應(yīng)用DLL的導(dǎo)出函數(shù),對(duì)串口的程序進(jìn)行編輯,該類(lèi)函數(shù)屬于C風(fēng)格的函數(shù)。對(duì)于C++編程人員而言,本文規(guī)劃了一個(gè)C++串口類(lèi)Mcomm,其為DLL導(dǎo)出函數(shù)的包裝類(lèi),也被稱(chēng)之為稱(chēng)為代理類(lèi)客戶程序經(jīng)由Mcomm操作串口,能夠?qū)++語(yǔ)言面向?qū)ο蟮膬?yōu)勢(shì)彰顯出來(lái),和C風(fēng)格接口相比較,該類(lèi)借口結(jié)構(gòu)更顯簡(jiǎn)潔,并且其還能夠自主管理串口資源的獲得與傳導(dǎo)過(guò)程,以降低客戶程序的運(yùn)行負(fù)擔(dān),進(jìn)一步提升串口編程的簡(jiǎn)易性與快捷性,遵照了簡(jiǎn)潔、清晰、易用的設(shè)計(jì)哲學(xué)理念。應(yīng)用Mcomm難度和尋常的C++類(lèi)幾乎無(wú)差異,把mcomm.h文件囊括在項(xiàng)目?jī)?nèi)即可。

        3結(jié)束語(yǔ)

        本文以ActiveX控件MSComm為基點(diǎn),規(guī)劃了一類(lèi)串口通信DLL庫(kù),進(jìn)而設(shè)計(jì)了一個(gè)C++串口類(lèi),創(chuàng)設(shè)了一類(lèi)對(duì)用戶友好的串口編程渠道,大幅度降低了串口程序編寫(xiě)難度。此時(shí),程序員只需具備最基礎(chǔ)的串口知識(shí),就可以實(shí)現(xiàn)編程目標(biāo),為非專(zhuān)業(yè)程序員以及程序編寫(xiě)初學(xué)者提供巨大幫助。在實(shí)踐中,發(fā)現(xiàn)DLL庫(kù)內(nèi)編程語(yǔ)言類(lèi)型眾多,此時(shí)非C/C++程序員也可以應(yīng)用其對(duì)串口程序進(jìn)行編輯。

        參考文獻(xiàn):

        [1] 翁花群, 林元國(guó). 基于Visual C++的數(shù)字圖像處理實(shí)驗(yàn)教學(xué)軟件開(kāi)發(fā)[J]. 廊坊師范學(xué)院學(xué)報(bào)(自然科學(xué)版), 2015, 15(1):24-28.

        [2] 丁立波. 基于ARM9和Qt的嵌入式視頻監(jiān)控系統(tǒng)的設(shè)計(jì)[D]. 南昌大學(xué), 2011,12(14):124-7413.

        [3]王尹圣, 曾國(guó)強(qiáng), 李強(qiáng),等. 基于C#與C++混編的輕元素X熒光測(cè)量軟件[J]. 核電子與探測(cè)技術(shù), 2015(4):394-398.

        猜你喜歡
        模塊化
        模塊化自主水下機(jī)器人開(kāi)發(fā)與應(yīng)用
        基于模塊化控制系統(tǒng)在一體化教學(xué)中的應(yīng)用
        模塊化住宅
        馬勒推出新型模塊化混動(dòng)系統(tǒng)
        考慮模塊化和退貨率的供應(yīng)鏈大規(guī)模定制模型
        ACP100模塊化小型堆研發(fā)進(jìn)展
        從模塊化中得到的二氧化碳
        模塊化VS大型工廠
        非模塊化設(shè)計(jì)四合一爐對(duì)流室的模塊化吊裝
        機(jī)械制造技術(shù)模塊化教學(xué)改革研究
        欧美最猛黑人xxxx黑人猛交| 午夜精品一区二区三区av免费| 丰满巨臀人妻中文字幕| 亚洲中字幕日产av片在线| 国产一区二区在线视频| 日韩AV有码无码一区二区三区 | 亚洲公开免费在线视频| 国产伦精品一区二区三区| 欧美精品欧美人与动人物牲交| 国产成人无码一区二区在线观看| 2021国内精品久久久久精免费| 一区=区三区国产视频| 老鲁夜夜老鲁| 国产女主播喷水视频在线观看 | 看av免费毛片手机播放| 伊人精品无码AV一区二区三区| 日本高清一区二区三区在线| 欧美性猛交xxxx乱大交极品| 中文字幕日韩精品无码内射| 亚洲日韩中文字幕在线播放| 国产白浆一区二区三区佳柔| 超碰人人超碰人人| 特级毛片a级毛片免费播放| 亚洲a∨好看av高清在线观看| 国产美腿丝袜一区二区| 亚洲av综合永久无码精品天堂| 91视频88av| 国产精品久久婷婷六月| 婷婷色综合视频在线观看| 国产人在线成免费视频| 亚洲中文字幕无码不卡电影| 精品国产黄一区二区三区| 专干老肥熟女视频网站300部| 午夜毛片午夜女人喷潮视频| 91人妻人人做人人爽九色| 日本精品久久久久中文字幕 | 欧美日韩国产在线观看免费| 久久中文字幕国产精品| 国产大片黄在线观看| 精品国产高清a毛片无毒不卡| 国产91熟女高潮一曲区|