.NET在工控圖片儀器組配中的預設和踐行
組件技術軟件設計技術經過了從結構化軟件設計、麵mian向xiang對dui象xiang軟ruan件jian設she計ji到dao組zu件jian式shi軟ruan件jian設she計ji的de發fa展zhan過guo程cheng,組zu件jian式shi技ji術shu是shi麵mian向xiang對dui象xiang技ji術shu的de發fa展zhan和he提ti高gao。它ta的de開kai發fa思si想xiang就jiu是shi將jiang複fu雜za的de軟ruan件jian開kai發fa分fen解jie成cheng若ruo幹gan個ge功gong能neng組zu件jian,這zhe些xie組zu件jian可ke以yi由you不bu同tong的de廠chang家jia用yong任ren何he語yu言yan開kai發fa,開kai發fa環huan境jing也ye無wu特te別bie限xian製zhi。若ruo幹gan組zu件jian可ke以yi根gen據ju具ju體ti應ying用yong要yao求qiu可ke靠kao而er有you效xiao的de組zu合he在zai一yi起qi完wan成cheng複fu雜za的de任ren務wu。
組件(component)是指可方便插入語言、工具、操作係統、wangluoruanjianxitongzhongdeyizhongdulikezhongyongdeerjinzhixingshidedaimaheshuju。goujiandejiegouhegongnengbeifengzhuangzaineibu,duiwaijietigongbiyaodejiekou,suoyoudeshujujiaohuandoushitongguojiekoushixiande。zujianjiushiduixiang,shiduishujuhefangfadefengzhuang。yigewanzhengdezujianyinggaiyouzijideshuxing、方法、事件。
屬shu性xing是shi組zu件jian數shu據ju的de簡jian單dan訪fang問wen者zhe,方fang法fa是shi組zu件jian的de一yi些xie簡jian單dan而er可ke見jian的de功gong能neng,事shi件jian是shi一yi種zhong特te定ding的de操cao作zuo,在zai某mou對dui象xiang上shang發fa生sheng或huo對dui某mou對dui象xiang發fa生sheng的de。自zi定ding義yi組zu件jian的de事shi件jian就jiu是shi指zhi對dui所suo做zuo組zu件jian的de某mou種zhong特te定ding操cao作zuo,像xiang“按鈕”的單擊事件。
工控儀表組件的設計與實現本文介紹的組件是用C#。NET工具開發的。C#(Csharp)是由Microsoft公司開發一種最新的、麵向對象的編程語言。它由C和C++派生出來,融合了VisualBasic的高效和C/C++強大。C#可以自動利用。NET類庫。
C#。NET組件設計方法在C#中,組件就是實現了接口System.Compo-nentModle.Icomponent的類,或者從System.Compo-nentModle.Componet類或其他實現了Icomponent接口的類的派生類。用C#開發的組件主要包括3種方法:從已有的Windows類派生、從UserControl類派生,或者從Control類派生。我們選擇的方法是從UserControl類派生,也就是自行創建一個用戶控件。采用這種方式需要從UserControl類派生自己的控件類,然後添加所需要的功能。UserControl類中定義了Windows窗體控件最基本的功能,包括窗口句柄、消息循環、鼠標鍵盤等用戶界麵事件。采用這種方式需添加繪製代碼,可以對組件充分製定。
首先選擇從[模板]列表中選擇[Windows控件庫]選項創建新項目,Visualstudio會在窗體設計器創建新的組件控件。我們要做的工作就是在原始控件上繪製圖形,添加屬性、方法、事件等。具體包括:(1)繪製控件外觀,一般應用GDI+中提供的方法。(2)根據需要添加屬性,編寫get{}set{}訪問程序,存取屬性。(3)根據具體要求編寫方法和事件,設定該控件與用戶的交互。(4)編譯生成。dll文件。
組件的測試方法。代碼編寫完成以後生成。DLL文件。由於它不是可執行文件,不能直接運行該程序,要創建例程來測試這個組件。首先把組件文件(。dll文件)添加到工具箱中;創建Windows應用程序;把組件拖放到Windows應用程序的Form窗體中,可以看到設計的組件的效果,從屬性窗口修改控件屬性,也可以測試控件中設計的方法和事件。
組件設計中涉及的技術一是GDI+技術。GDI+是GDI(GraphicsDeviceInterface圖形設備接口)的改進產品,是Microsoft的下一代二維圖形係統,它是完全麵向對象的。GDI+包括3部分:二維矢量圖形繪製、圖像處理和文字顯示。
GDI+中提供了各式各樣的畫筆、畫刷、圖像等圖形對象,此外還包括一些新的繪圖功能。圖形儀表組件中的動態和靜態界麵都要用GDI+編程繪製實現。
二(er)是(shi)多(duo)線(xian)程(cheng)技(ji)術(shu)。用(yong)多(duo)線(xian)程(cheng)技(ji)術(shu)可(ke)以(yi)編(bian)寫(xie)能(neng)夠(gou)同(tong)時(shi)執(zhi)行(xing)多(duo)個(ge)任(ren)務(wu)的(de)應(ying)用(yong)程(cheng)序(xu)。操(cao)作(zuo)係(xi)統(tong)使(shi)用(yong)進(jin)程(cheng)將(jiang)正(zheng)在(zai)執(zhi)行(xing)的(de)不(bu)同(tong)應(ying)用(yong)程(cheng)序(xu)分(fen)開(kai)。線(xian)程(cheng)是(shi)操(cao)作(zuo)係(xi)統(tong)分(fen)配(pei)處(chu)理(li)器(qi)時(shi)間(jian)的(de)基(ji)本(ben)單(dan)元(yuan),並(bing)且(qie)該(gai)進(jin)程(cheng)中(zhong)可(ke)以(yi)有(you)多(duo)個(ge)線(xian)程(cheng)同(tong)時(shi)執(zhi)行(xing)代(dai)碼(ma)。與(yu)用(yong)戶(hu)交(jiao)互(hu)的(de)軟(ruan)件(jian)必(bi)須(xu)盡(jin)可(ke)能(neng)快(kuai)地(di)對(dui)用(yong)戶(hu)的(de)活(huo)動(dong)作(zuo)出(chu)反(fan)應(ying),以(yi)便(bian)提(ti)供(gong)豐(feng)富(fu)多(duo)彩(cai)的(de)用(yong)戶(hu)體(ti)驗(yan)。但(dan)同(tong)時(shi)它(ta)必(bi)須(xu)執(zhi)行(xing)必(bi)要(yao)的(de)計(ji)算(suan)以(yi)便(bian)盡(jin)可(ke)能(neng)快(kuai)地(di)將(jiang)數(shu)據(ju)呈(cheng)現(xian)給(gei)用(yong)戶(hu)。要(yao)提(ti)高(gao)對(dui)用(yong)戶(hu)的(de)響(xiang)應(ying)速(su)度(du)並(bing)且(qie)處(chu)理(li)所(suo)需(xu)數(shu)據(ju)以(yi)便(bian)幾(ji)乎(hu)同(tong)時(shi)完(wan)成(cheng)工(gong)作(zuo),使(shi)用(yong)多(duo)個(ge)線(xian)程(cheng)是(shi)一(yi)種(zhong)強(qiang)大(da)的(de)技(ji)術(shu)。在(zai)本(ben)設(she)計(ji)中(zhong)多(duo)線(xian)程(cheng)技(ji)術(shu)用(yong)於(yu)實(shi)現(xian)組(zu)件(jian)的(de)報(bao)警(jing)功(gong)能(neng)。計(ji)算(suan)機(ji)在(zai)監(jian)測(ce)到(dao)輸(shu)入(ru)的(de)數(shu)據(ju)超(chao)過(guo)警(jing)戒(jie)值(zhi)時(shi)觸(chu)發(fa)報(bao)警(jing)事(shi)件(jian),驅(qu)動(dong)蜂(feng)鳴(ming)器(qi)發(fa)出(chu)報(bao)警(jing)聲(sheng)音(yin)。在(zai)報(bao)警(jing)的(de)同(tong)時(shi),計(ji)算(suan)機(ji)要(yao)繼(ji)續(xu)顯(xian)示(shi)並(bing)檢(jian)測(ce)現(xian)場(chang),因(yin)此(ci)需(xu)要(yao)啟(qi)動(dong)多(duo)個(ge)線(xian)程(cheng),實(shi)現(xian)兩(liang)個(ge)功(gong)能(neng)的(de)並(bing)行(xing)。
三(san)是(shi)要(yao)解(jie)決(jue)控(kong)件(jian)繪(hui)圖(tu)中(zhong)的(de)閃(shan)爍(shuo)問(wen)題(ti)。在(zai)控(kong)件(jian)運(yun)行(xing)中(zhong),由(you)於(yu)數(shu)值(zhi)的(de)改(gai)變(bian)需(xu)要(yao)不(bu)斷(duan)地(di)重(zhong)繪(hui),這(zhe)就(jiu)造(zao)成(cheng)了(le)控(kong)件(jian)的(de)閃(shan)爍(shuo)。為(wei)了(le)解(jie)決(jue)這(zhe)個(ge)問(wen)題(ti)可(ke)以(yi)采(cai)用(yong)以(yi)下(xia)幾(ji)種(zhong)辦(ban)法(fa):(1)僅重繪控件中改變的部分。
(2)采用雙緩存。具體做法是在控件的構造函數中添加代碼:SetStyle(ControlStyles.UserPaint,true);SetStyle( ControlStyles.AllPaintingInWmPaint,true);//禁止擦除背景SetStyle(ControlStyles.DoubleBuffer,true);//雙緩衝這段代碼的意義如下:UserPaint如果為true,控件將自行繪製,而不是通過操作係統來繪製,此樣式僅適用於派生自Control的類;AllPaintingInWmPaint如果為true,控件將忽略WM_ERASEBKGND窗口消息以減少閃爍,僅當UserPaint位設置為true時,才應當應用該樣式;DoubleBuffer如果為true,則繪製在緩衝區中進行,完成後將結果輸出到屏幕上。雙重緩衝區可防止由控件重繪引起的閃爍。要完全啟用雙重緩衝,還必須將UserPaint和AllPaintingInWmPaint樣式位設置為true.
(3)在內存中繪製圖形。GDI+hanshuxiangpingmushuchubingbushilijixianshizaipingmushang,ershibaocunzaixiancunzhong,erxiankameigeyiduanshijianbaxiancundeneirongshuchudaopingmushang。erruguokongjiandehuizhibushizaiyigeshuaxinzhouqineiwancheng,nashibihuizaochengshanshuo。weijiejuezhegewenti,kongjiandehuizhikeyizaineicunzhongwancheng,ranhouliyongyitiaominglingzaijiangzhihuizhidaopingmushang。jingguoshiyan,zhezhongfangfaxiaoguolianghao。
溫度計、儀表盤組件的設計與實現溫度計組件功能分析:(1)顯示溫度:這是溫度計最基本的功能,通過水銀柱的升降顯示數據的變化,通過刻度讀出溫度值。(2)報警功能:在工業監測中,當檢測到溫度高於警戒溫度時,要進行聲光報警。(3)組件的屬性:對溫度計背景、水銀柱、文本、刻度等的顏色可以根據用戶的需要自由搭配,儀表量程可以根據測量要求設置。如表1所示。
jiejuerangshuiyinzhusuishurudewendushengjiangdewenti。shuiyinzhushijishangshiyigejuxing,rangshuiyinzhushengjiangjiushigaibianshuiyinzhugaodu。shixianfangfajiushijiangyuanlaideshuiyinzhuyongdisefugai,ranhouyongxingaoduhuizhiyigexinjuxing,danglianxushuruwendushi,shuiyinzhubuduanzhonghui,youyurendeshijiaoqiguanyouyidingdefanyingshijiancha,suoyibuhuichajiaozhonghui,zhihuiguanchadaoshuiyinzhuzaizuoshengjiangyundong。yibiaopanzujiandegongnengyaoqiuleisi,butongdeshiyaotongguozhizhendezhuandongxianshisuduzhi。suoyiguanjianshiyaotongguoxuanzhuanzuobiaoxi,shixianzhizhendezhuandong。yibiaopankedushiyuanxingpailiede,yaobazuobiaozhuanyizhizhongxin,nishizhenxuanzhuanzuotu。yibiaopanzujianshejizhongyongdaodexiangguanfangfahanshu:TranslateTransform:坐標原點移動。
RotateTransform:以原點為中心,將圖形或文本旋轉一定角度。實現儀表指針的轉動要通過輸入的數據計算需要轉動角度y2.y2=(240/Graduate)*Pointvalue其中Graduate為量程,Pointvalue是輸入的數據。使用函數RotateTransform(y2+150),將指針旋轉到指定位置。
應用實例是儀表和溫度計組件在“測溫測速監控管理係統”中(zhong)的(de)應(ying)用(yong)。下(xia)位(wei)機(ji)通(tong)過(guo)串(chuan)行(xing)口(kou)發(fa)送(song)檢(jian)測(ce)數(shu)據(ju),上(shang)位(wei)機(ji)用(yong)高(gao)級(ji)語(yu)言(yan)編(bian)程(cheng)實(shi)現(xian)數(shu)據(ju)的(de)實(shi)時(shi)監(jian)控(kong)和(he)數(shu)據(ju)管(guan)理(li)。係(xi)統(tong)通(tong)過(guo)數(shu)據(ju)庫(ku)實(shi)現(xian)數(shu)據(ju)管(guan)理(li)功(gong)能(neng),調(tiao)用(yong)組(zu)件(jian),實(shi)現(xian)數(shu)據(ju)顯(xian)示(shi)的(de)圖(tu)形(xing)化(hua)。該(gai)係(xi)統(tong)利(li)用(yong)組(zu)件(jian)技(ji)術(shu)實(shi)現(xian)界(jie)麵(mian)模(mo)擬(ni)儀(yi)表(biao)的(de)軟(ruan)件(jian)重(zhong)用(yong),在(zai)滿(man)足(zu)界(jie)麵(mian)美(mei)觀(guan)、功能完善的同時,簡化編程工作量、提高設計效率。經過該係統的測試,儀表組件顯示正常,各項功能穩定。
結束語組件技術對提高軟件開發效率、減輕維護負擔、保證軟件質量和版本的健壯、gengxindoujuyoufeichangzhongyaodeyiyi。benwentichuliyongzujianjishu,kaifayigekeyizhixingqiangdetongyonggongkongtuxingyibiaozujianku,genjuyonghudebutongxuqiuqianrudaogezhongjutideyingyongshejizhong,juyoujidadelinghuoxingheshiyongxing。http://98fo.cn



