久久综合九色综合欧洲色-久久综合九色综合欧洲-久久综合九色综合国产-久久综合九色综合97欧美-在线免费国产视频-在线免费国产

糧油儀器網(wǎng)致力打造專(zhuān)業(yè)糧油儀器信息平臺(tái),本頁(yè)面詳細(xì)介紹.NET在工控圖片儀器組配中的預(yù)設(shè)和踐行詳細(xì)信息!

.NET在工控圖片儀器組配中的預(yù)設(shè)和踐行

來(lái)源: http://www.yoshikomatsuura.com  類(lèi)別:實(shí)用技術(shù)  更新時(shí)間:2012-08-14  閱讀
【本資訊由中國(guó)糧油儀器網(wǎng)提供】

組件技術(shù)軟件設(shè)計(jì)技術(shù)經(jīng)過(guò)了從結(jié)構(gòu)化軟件設(shè)計(jì)、面向?qū)ο筌浖O(shè)計(jì)到組件式軟件設(shè)計(jì)的發(fā)展過(guò)程,組件式技術(shù)是面向?qū)ο蠹夹g(shù)的發(fā)展和提高。它的開(kāi)發(fā)思想就是將復(fù)雜的軟件開(kāi)發(fā)分解成若干個(gè)功能組件,這些組件可以由不同的廠家用任何語(yǔ)言開(kāi)發(fā),開(kāi)發(fā)環(huán)境也無(wú)特別限制。若干組件可以根據(jù)具體應(yīng)用要求可靠而有效的組合在一起完成復(fù)雜的任務(wù)。

組件(component)是指可方便插入語(yǔ)言、工具、操作系統(tǒng)、網(wǎng)絡(luò)軟件系統(tǒng)中的一種獨(dú)立可重用的二進(jìn)制形式的代碼和數(shù)據(jù)。構(gòu)件的結(jié)構(gòu)和功能被封裝在內(nèi)部,對(duì)外界提供必要的接口,所有的數(shù)據(jù)交換都是通過(guò)接口實(shí)現(xiàn)的。組件就是對(duì)象,是對(duì)數(shù)據(jù)和方法的封裝。一個(gè)完整的組件應(yīng)該有自己的屬性、方法、事件。

屬性是組件數(shù)據(jù)的簡(jiǎn)單訪問(wèn)者,方法是組件的一些簡(jiǎn)單而可見(jiàn)的功能,事件是一種特定的操作,在某對(duì)象上發(fā)生或?qū)δ硨?duì)象發(fā)生的。自定義組件的事件就是指對(duì)所做組件的某種特定操作,像“按鈕”的單擊事件。

工控儀表組件的設(shè)計(jì)與實(shí)現(xiàn)本文介紹的組件是用C#。NET工具開(kāi)發(fā)的。C#(Csharp)是由Microsoft公司開(kāi)發(fā)一種最新的、面向?qū)ο蟮木幊陶Z(yǔ)言。它由C和C++派生出來(lái),融合了VisualBasic的高效和C/C++強(qiáng)大。C?梢宰詣(dòng)利用。NET類(lèi)庫(kù)。

C#。NET組件設(shè)計(jì)方法在C#中,組件就是實(shí)現(xiàn)了接口System.Compo-nentModle.Icomponent的類(lèi),或者從System.Compo-nentModle.Componet類(lèi)或其他實(shí)現(xiàn)了Icomponent接口的類(lèi)的派生類(lèi)。用C#開(kāi)發(fā)的組件主要包括3種方法:從已有的Windows類(lèi)派生、從UserControl類(lèi)派生,或者從Control類(lèi)派生。我們選擇的方法是從UserControl類(lèi)派生,也就是自行創(chuàng)建一個(gè)用戶(hù)控件。采用這種方式需要從UserControl類(lèi)派生自己的控件類(lèi),然后添加所需要的功能。UserControl類(lèi)中定義了Windows窗體控件最基本的功能,包括窗口句柄、消息循環(huán)、鼠標(biāo)鍵盤(pán)等用戶(hù)界面事件。采用這種方式需添加繪制代碼,可以對(duì)組件充分制定。

首先選擇從[模板]列表中選擇[Windows控件庫(kù)]選項(xiàng)創(chuàng)建新項(xiàng)目,Visualstudio會(huì)在窗體設(shè)計(jì)器創(chuàng)建新的組件控件。我們要做的工作就是在原始控件上繪制圖形,添加屬性、方法、事件等。具體包括:(1)繪制控件外觀,一般應(yīng)用GDI+中提供的方法。(2)根據(jù)需要添加屬性,編寫(xiě)get{}set{}訪問(wèn)程序,存取屬性。(3)根據(jù)具體要求編寫(xiě)方法和事件,設(shè)定該控件與用戶(hù)的交互。(4)編譯生成。dll文件。

組件的測(cè)試方法。代碼編寫(xiě)完成以后生成。DLL文件。由于它不是可執(zhí)行文件,不能直接運(yùn)行該程序,要?jiǎng)?chuàng)建例程來(lái)測(cè)試這個(gè)組件。首先把組件文件(。dll文件)添加到工具箱中;創(chuàng)建Windows應(yīng)用程序;把組件拖放到Windows應(yīng)用程序的Form窗體中,可以看到設(shè)計(jì)的組件的效果,從屬性窗口修改控件屬性,也可以測(cè)試控件中設(shè)計(jì)的方法和事件。

組件設(shè)計(jì)中涉及的技術(shù)一是GDI+技術(shù)。GDI+是GDI(GraphicsDeviceInterface圖形設(shè)備接口)的改進(jìn)產(chǎn)品,是Microsoft的下一代二維圖形系統(tǒng),它是完全面向?qū)ο蟮摹DI+包括3部分:二維矢量圖形繪制、圖像處理和文字顯示。

GDI+中提供了各式各樣的畫(huà)筆、畫(huà)刷、圖像等圖形對(duì)象,此外還包括一些新的繪圖功能。圖形儀表組件中的動(dòng)態(tài)和靜態(tài)界面都要用GDI+編程繪制實(shí)現(xiàn)。

二是多線程技術(shù)。用多線程技術(shù)可以編寫(xiě)能夠同時(shí)執(zhí)行多個(gè)任務(wù)的應(yīng)用程序。操作系統(tǒng)使用進(jìn)程將正在執(zhí)行的不同應(yīng)用程序分開(kāi)。線程是操作系統(tǒng)分配處理器時(shí)間的基本單元,并且該進(jìn)程中可以有多個(gè)線程同時(shí)執(zhí)行代碼。與用戶(hù)交互的軟件必須盡可能快地對(duì)用戶(hù)的活動(dòng)作出反應(yīng),以便提供豐富多彩的用戶(hù)體驗(yàn)。但同時(shí)它必須執(zhí)行必要的計(jì)算以便盡可能快地將數(shù)據(jù)呈現(xiàn)給用戶(hù)。要提高對(duì)用戶(hù)的響應(yīng)速度并且處理所需數(shù)據(jù)以便幾乎同時(shí)完成工作,使用多個(gè)線程是一種強(qiáng)大的技術(shù)。在本設(shè)計(jì)中多線程技術(shù)用于實(shí)現(xiàn)組件的報(bào)警功能。計(jì)算機(jī)在監(jiān)測(cè)到輸入的數(shù)據(jù)超過(guò)警戒值時(shí)觸發(fā)報(bào)警事件,驅(qū)動(dòng)蜂鳴器發(fā)出報(bào)警聲音。在報(bào)警的同時(shí),計(jì)算機(jī)要繼續(xù)顯示并檢測(cè)現(xiàn)場(chǎng),因此需要啟動(dòng)多個(gè)線程,實(shí)現(xiàn)兩個(gè)功能的并行。

三是要解決控件繪圖中的閃爍問(wèn)題。在控件運(yùn)行中,由于數(shù)值的改變需要不斷地重繪,這就造成了控件的閃爍。為了解決這個(gè)問(wèn)題可以采用以下幾種辦法:(1)僅重繪控件中改變的部分。

(2)采用雙緩存。具體做法是在控件的構(gòu)造函數(shù)中添加代碼:SetStyle(ControlStyles.UserPaint,true);SetStyle( ControlStyles.AllPaintingInWmPaint,true);//禁止擦除背景SetStyle(ControlStyles.DoubleBuffer,true);//雙緩沖這段代碼的意義如下:UserPaint如果為true,控件將自行繪制,而不是通過(guò)操作系統(tǒng)來(lái)繪制,此樣式僅適用于派生自Control的類(lèi);AllPaintingInWmPaint如果為true,控件將忽略WM_ERASEBKGND窗口消息以減少閃爍,僅當(dāng)UserPaint位設(shè)置為true時(shí),才應(yīng)當(dāng)應(yīng)用該樣式;DoubleBuffer如果為true,則繪制在緩沖區(qū)中進(jìn)行,完成后將結(jié)果輸出到屏幕上。雙重緩沖區(qū)可防止由控件重繪引起的閃爍。要完全啟用雙重緩沖,還必須將UserPaint和AllPaintingInWmPaint樣式位設(shè)置為true.

(3)在內(nèi)存中繪制圖形。GDI+函數(shù)向屏幕輸出并不是立即顯示在屏幕上,而是保存在顯存中,而顯卡每隔一段時(shí)間把顯存的內(nèi)容輸出到屏幕上。而如果控件的繪制不是在一個(gè)刷新周期內(nèi)完成,那勢(shì)必會(huì)造成閃爍。為解決這個(gè)問(wèn)題,控件的繪制可以在內(nèi)存中完成,然后利用一條命令再將之繪制到屏幕上。經(jīng)過(guò)試驗(yàn),這種方法效果良好。

溫度計(jì)、儀表盤(pán)組件的設(shè)計(jì)與實(shí)現(xiàn)溫度計(jì)組件功能分析:(1)顯示溫度:這是溫度計(jì)最基本的功能,通過(guò)水銀柱的升降顯示數(shù)據(jù)的變化,通過(guò)刻度讀出溫度值。(2)報(bào)警功能:在工業(yè)監(jiān)測(cè)中,當(dāng)檢測(cè)到溫度高于警戒溫度時(shí),要進(jìn)行聲光報(bào)警。(3)組件的屬性:對(duì)溫度計(jì)背景、水銀柱、文本、刻度等的顏色可以根據(jù)用戶(hù)的需要自由搭配,儀表量程可以根據(jù)測(cè)量要求設(shè)置。如表1所示。

解決讓水銀柱隨輸入的溫度升降的問(wèn)題。水銀柱實(shí)際上是一個(gè)矩形,讓水銀柱升降就是改變水銀柱高度。實(shí)現(xiàn)方法就是將原來(lái)的水銀柱用底色覆蓋,然后用新高度繪制一個(gè)新矩形,當(dāng)連續(xù)輸入溫度時(shí),水銀柱不斷重繪,由于人的視覺(jué)器官有一定的反應(yīng)時(shí)間差,所以不會(huì)察覺(jué)重繪,只繪觀察到水銀柱在做升降運(yùn)動(dòng)。儀表盤(pán)組件的功能要求類(lèi)似,不同的是要通過(guò)指針的轉(zhuǎn)動(dòng)顯示速度值。所以關(guān)鍵是要通過(guò)旋轉(zhuǎn)坐標(biāo)系,實(shí)現(xiàn)指針的轉(zhuǎn)動(dòng)。儀表盤(pán)刻度是圓形排列的,要把坐標(biāo)轉(zhuǎn)移至中心,逆時(shí)針旋轉(zhuǎn)作圖。儀表盤(pán)組件設(shè)計(jì)中用到的相關(guān)方法函數(shù):TranslateTransform:坐標(biāo)原點(diǎn)移動(dòng)。

RotateTransform:以原點(diǎn)為中心,將圖形或文本旋轉(zhuǎn)一定角度。實(shí)現(xiàn)儀表指針的轉(zhuǎn)動(dòng)要通過(guò)輸入的數(shù)據(jù)計(jì)算需要轉(zhuǎn)動(dòng)角度y2.y2=(240/Graduate)*Pointvalue其中Graduate為量程,Pointvalue是輸入的數(shù)據(jù)。使用函數(shù)RotateTransform(y2+150),將指針旋轉(zhuǎn)到指定位置。

應(yīng)用實(shí)例是儀表和溫度計(jì)組件在“測(cè)溫測(cè)速監(jiān)控管理系統(tǒng)”中的應(yīng)用。下位機(jī)通過(guò)串行口發(fā)送檢測(cè)數(shù)據(jù),上位機(jī)用高級(jí)語(yǔ)言編程實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)監(jiān)控和數(shù)據(jù)管理。系統(tǒng)通過(guò)數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)管理功能,調(diào)用組件,實(shí)現(xiàn)數(shù)據(jù)顯示的圖形化。該系統(tǒng)利用組件技術(shù)實(shí)現(xiàn)界面模擬儀表的軟件重用,在滿(mǎn)足界面美觀、功能完善的同時(shí),簡(jiǎn)化編程工作量、提高設(shè)計(jì)效率。經(jīng)過(guò)該系統(tǒng)的測(cè)試,儀表組件顯示正常,各項(xiàng)功能穩(wěn)定。

結(jié)束語(yǔ)組件技術(shù)對(duì)提高軟件開(kāi)發(fā)效率、減輕維護(hù)負(fù)擔(dān)、保證軟件質(zhì)量和版本的健壯、更新都具有非常重要的意義。本文提出利用組件技術(shù),開(kāi)發(fā)一個(gè)可移植性強(qiáng)的通用工控圖形儀表組件庫(kù),根據(jù)用戶(hù)的不同需求嵌入到各種具體的應(yīng)用設(shè)計(jì)中,具有極大的靈活性和實(shí)用性。http://www.yoshikomatsuura.com

中國(guó)糧油儀器網(wǎng)】部分文章轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),且不承擔(dān)此類(lèi)作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。如其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)下載使用,自負(fù)版權(quán)等法律責(zé)任。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)?jiān)?0日內(nèi)與本網(wǎng)聯(lián)系。
最近更新儀器
推薦儀器
相關(guān)新聞
熱門(mén)產(chǎn)品
主站蜘蛛池模板: 真人一级毛片免费完整视| 五月婷婷操| 亚洲九九香蕉| 四虎4hu永久免费国产精品| 欧美视频久久| 日本色高清| 超碰97超碰在线视频哦| 午夜影视不充值观看| 午夜丁香婷婷| 亚洲欧美日韩综合久久久久| 狠狠色狠狠色综合日日2019| 亚洲图区综合网| 婷婷激情四月| 伊人综合在线影院| 92看看福利午夜影院| 国色天香视频在线社区| 做暖免费观看日本| 青草影院内射中出高潮-百度| 国产午夜永久福利视频在线观看| 深夜你懂的在线网址入口| 亚洲免费高清视频| 日韩精品无码一区二区三区| 亚洲精品乱码久久久久久| 一区二区在线播放福利视频| 在线天堂新版在线观看| 国产成人精品永久免费视频| 亚洲三级在线观看| 欧美亚洲综合另类无码| 香蕉视频在线观看网址| 久久精视频| 色窝窝777欧美午夜精品影院| 午夜小视频在线观看| 日韩精品欧美成人| 外国毛片网站| 日韩免费a级在线观看| 亚洲免费中文| 在线免费观看麻豆| jiapanese50欧美熟妇| 友田真希juy072羞在线观看| 日韩中文字幕一在线| 污污视频在线|