《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > WPF在驅(qū)動板卡檢測系統(tǒng)中的應(yīng)用
WPF在驅(qū)動板卡檢測系統(tǒng)中的應(yīng)用
2016年微型機(jī)與應(yīng)用第2期
劉晉, 步亞男, 金禹含, 蘇臣
遼寧師范大學(xué) 計算機(jī)信息與技術(shù)學(xué)院, 遼寧 大連 116000
摘要: 在嵌入式領(lǐng)域中,經(jīng)常需要一些上位機(jī)的控制系統(tǒng),而WPF是專門用來編寫表示層的技術(shù)和工具。為了真實地感受WPF技術(shù)與其他界面開發(fā)工具的不同和優(yōu)點,設(shè)計了一款板卡檢測系統(tǒng),并詳細(xì)地介紹了此控制系統(tǒng)的實現(xiàn)過程。經(jīng)過實際應(yīng)用證明,WPF技術(shù)與傳統(tǒng)的界面開發(fā)工具相比開發(fā)較簡單,程序更加簡潔清晰,更重要的是其開發(fā)理念更符合自然哲學(xué)的思想。
Abstract:
Key words :

  劉晉, 步亞男, 金禹含, 蘇臣

 ?。ㄟ|寧師范大學(xué) 計算機(jī)信息與技術(shù)學(xué)院, 遼寧 大連 116000)

       摘要:在嵌入式領(lǐng)域中,經(jīng)常需要一些上位機(jī)的控制系統(tǒng),而WPF是專門用來編寫表示層的技術(shù)和工具。為了真實地感受WPF技術(shù)與其他界面開發(fā)工具的不同和優(yōu)點,設(shè)計了一款板卡檢測系統(tǒng),并詳細(xì)地介紹了此控制系統(tǒng)的實現(xiàn)過程。經(jīng)過實際應(yīng)用證明,WPF技術(shù)與傳統(tǒng)的界面開發(fā)工具相比開發(fā)較簡單,程序更加簡潔清晰,更重要的是其開發(fā)理念更符合自然哲學(xué)的思想。

  關(guān)鍵詞UDP通信嵌入式系統(tǒng);WPF;檢測系統(tǒng)

0引言

  GUI程序開發(fā)工具歷經(jīng)了Win32 API、MFC、Windows Forms等的變遷,每一次變遷都使開發(fā)效率和質(zhì)量產(chǎn)生飛躍。2007年微軟推出了新一代GUI開發(fā)工具Windows Presentation Foundation(WPF),并且把它定為未來10年Windows平臺GUI開發(fā)的主要技術(shù)。WPF基于DirecX底層接口,帶來優(yōu)秀的圖形向量渲染引擎。它可以輕松地實現(xiàn)半透明、平移、縮放等絢麗效果[1]。WPF引入了Bingding機(jī)制,在開發(fā)理念上進(jìn)行了一次升級,由“事件驅(qū)動”變?yōu)椤皵?shù)據(jù)驅(qū)動”。WPF中,數(shù)據(jù)與空間的關(guān)系就是哲學(xué)中內(nèi)容與形式的關(guān)系,內(nèi)容決定形式,以數(shù)據(jù)驅(qū)動頁面,這非常符合哲學(xué)原理[2]。

1WPF簡介

  1.1XAML

  XAML就是WPF技術(shù)中專門用于設(shè)計UI的語言。XAML作為界面描述語言最終會被編譯成Net后臺代碼。因此,它能夠同后臺進(jìn)行邏輯處理的Net語言如C#、C++等協(xié)同工作。XAML的產(chǎn)生使得界面描述代碼和程序代碼得以分開,從而提高了開發(fā)率,有利于團(tuán)隊開發(fā)。

  1.2Data Binding機(jī)制

  WPF出現(xiàn)之前,Windows Forms等技術(shù)都是采用“事件驅(qū)動”理念。盡管可以使用MVC、MVP等設(shè)計模式,但界面邏輯和業(yè)務(wù)邏輯非常容易糾纏在一起,造成代碼復(fù)雜難懂。而Bingding機(jī)制可以實現(xiàn)“數(shù)據(jù)驅(qū)動”,當(dāng)數(shù)據(jù)發(fā)生變化時,會主動通知界面控件、推動控件顯示最新的數(shù)據(jù)。WPF的核心理念就是變傳統(tǒng)的UI驅(qū)動程序為數(shù)據(jù)驅(qū)動UI。

  1.3依賴屬性

  依賴屬性是WPF技術(shù)中新提出的概念。簡而言之,依賴屬性可以自己沒有值,并通過使用Binding從數(shù)據(jù)源獲得值的屬性。擁有依賴屬性的對象被稱為依賴對象。與傳統(tǒng)的CLR屬性和面向?qū)ο笏枷胂啾?,依賴屬性有很多新穎之處:首先它可以節(jié)省實例對內(nèi)存的開銷;其次屬性值可以通過Binding依賴在其他對象上。

2驅(qū)動板卡檢測系統(tǒng)

  2.1驅(qū)動板卡簡介

  日本精工電子集團(tuán)在生產(chǎn)集裝壓電式噴頭方面已經(jīng)具備相當(dāng)雄厚的實力與基礎(chǔ),穩(wěn)定性方面就如其生產(chǎn)的精工表一樣品質(zhì)超眾[3]。這里的驅(qū)動板卡用于控制大型噴墨打印機(jī)的噴頭。當(dāng)一個板卡生產(chǎn)出來時,為了檢測其性能,需要通過一個噴頭板卡檢測軟件進(jìn)行檢測。此噴頭板卡檢測軟件即為本文討論的重點。板卡檢測軟件與板卡通過雙絞線連接,并使用UDP協(xié)議進(jìn)行通信。

  2.2驅(qū)動板卡通信協(xié)議

  (1)驅(qū)動板卡檢測系統(tǒng)與板卡之間采用雙絞線連接,使用UDP通信協(xié)議進(jìn)行通信。一次完整的通信包括上位機(jī)發(fā)送命令、下位機(jī)應(yīng)答兩部分。其中命令具有事先約定好的格式,第一個字節(jié)BYTE0為命令I(lǐng)D,后面跟有若干個字節(jié)的參數(shù)。下位機(jī)接到命令后根據(jù)命令I(lǐng)D進(jìn)行相應(yīng)的操作并作應(yīng)答,返回通信結(jié)果。

  (2)驅(qū)動板卡配置數(shù)據(jù)下載命令。板卡生產(chǎn)出來后,需要將一系列信息寫入板卡中。此命令的命令I(lǐng)D約定為0x55,后面跟有42 B的參數(shù)內(nèi)容,其中包括IP地址、端口號、板卡版本號、數(shù)據(jù)寫入時間、服務(wù)期限、噴頭標(biāo)識碼等參數(shù)。應(yīng)答命令BYTE0為應(yīng)答ID,為0x55。如果下載成功BYTE1為0x01,下載失敗則為0x00。

  (3)驅(qū)動板卡配置數(shù)據(jù)讀取命令。此命令的命令I(lǐng)D為0xAA。應(yīng)答中,BYTE0為應(yīng)答ID,BYTE1~BYTE42為以上提到的參數(shù)內(nèi)容。

  2.3驅(qū)動板卡檢測系統(tǒng)設(shè)計與實現(xiàn)

001.jpg

  圖1為驅(qū)動板卡檢測系統(tǒng)的界面截圖。從圖中可以看出其主要功能,它實現(xiàn)了數(shù)據(jù)的下載、讀取以及應(yīng)答的接收。

  (1)Net庫中的UdpClient類對基礎(chǔ)Socket進(jìn)行了封裝,發(fā)送和接收數(shù)據(jù)時不必考慮底層套接字在收發(fā)時必須要處理的細(xì)節(jié)問題,大大降低了UDP編程的難度,提高了編程效率[4]。首先定義一個UdpClient對象,然后調(diào)用其Connect成員函數(shù)與遠(yuǎn)程主機(jī)進(jìn)行連接,參數(shù)為遠(yuǎn)程主機(jī)的IP地址和端口號。再調(diào)用其Send成員函數(shù)進(jìn)行發(fā)送,函數(shù)參數(shù)為要發(fā)送的數(shù)據(jù)及其數(shù)據(jù)的長度。最后關(guān)閉UDP連接。至此完成了一次UDP通信。

  (2)數(shù)據(jù)的寫入。此功能將獲得各個文本框中的數(shù)據(jù)。數(shù)據(jù)在文本框中的格式為字符串,但是本系統(tǒng)需要以字節(jié)的形式通過UDP通信發(fā)送至板卡,故獲得數(shù)據(jù)后需要對數(shù)據(jù)進(jìn)一步處理再發(fā)送。

  (3)IP地址的檢測。每個驅(qū)動板卡需要一個唯一的IP地址,因此每當(dāng)驅(qū)動板卡檢測系統(tǒng)寫入一個IP地址,就要將其記錄下來,并在每次寫入前檢測將要寫入的IP是否可用。本系統(tǒng)將每次寫入的IP地址存到了SQLite數(shù)據(jù)庫中。SQLite是一款輕型的數(shù)據(jù)庫,它的設(shè)計目標(biāo)是嵌入式的,占用資源非常低,同時,它能夠與很多程序語言相結(jié)合。因此本系統(tǒng)選擇了用SQLite來實現(xiàn)IP地址的存儲。首先打開數(shù)據(jù)庫、建立鏈接。然后執(zhí)行SELETCT查詢語句查看當(dāng)前IP地址是否已經(jīng)使用。如已使用則提示“當(dāng)前IP地址已經(jīng)使用,請選用其他IP地址”,否則將當(dāng)前IP地址寫入驅(qū)動板卡,并存入數(shù)據(jù)庫的IP表。

  (4)讀取當(dāng)前配置。此項功能實現(xiàn)較為簡單,只需要將命令I(lǐng)D 0xAA通過UDP協(xié)議發(fā)送至下位機(jī)驅(qū)動板卡即可,剩下的工作由下位機(jī)驅(qū)動板卡來實現(xiàn)。驅(qū)動板卡收到命令后,再將由42 B組成的配置信息發(fā)送至驅(qū)動板卡檢測系統(tǒng)。因此,上位機(jī)驅(qū)動板卡檢測系統(tǒng)需要實現(xiàn)UDP的接收功能。下位機(jī)隨時可能發(fā)送數(shù)據(jù)至上位機(jī)。WPF應(yīng)用程序在運行過程中,UI線程接收輸入,處理事件,繪制屏幕以及運行應(yīng)用程序代碼。如果運行時間過長,會造成內(nèi)存使用率不斷上升,CPU占用率提高,導(dǎo)致系統(tǒng)總體性能降低[5]。因此,UDP接收過程必須獨立使用一個線程。

  (5)多線程的應(yīng)用。多線程技術(shù)能很好地解決并發(fā)多任務(wù)問題,提高資源的利用率和系統(tǒng)的性能,因此計算機(jī)的各個領(lǐng)域都對其進(jìn)行了研究,從不同角度實現(xiàn)或增強了對多線程的支持[6]。同時多線程技術(shù)也能提高程序的穩(wěn)定性,因此在實際開發(fā)中有著重要的作用。

3結(jié)論

  經(jīng)過測試,該系統(tǒng)不僅可以實現(xiàn)IP地址的寫入、讀取當(dāng)前配置等基本功能,而且系統(tǒng)界面與傳統(tǒng)的MFC、WinForm等相比更加生動、形象,更重要的是,由于WPF框架的應(yīng)用,提高了開發(fā)效率,在預(yù)定時間內(nèi)完成了系統(tǒng)的開發(fā)。

  參考文獻(xiàn)

  [1] 王鵬, 崔靜. 新一代界面技術(shù)WPF的架構(gòu)及應(yīng)用[J]. 成都紡織高等專科學(xué)校學(xué)報, 2011,28(1): 1820.

 ?。?] 劉鐵猛. 深入淺出WPF[M]. 北京:中國水利水電出版社,2010.

 ?。?] 王麗坤. 常見噴墨打印頭的分類和性能[J]. 數(shù)字化技術(shù), 2015(7): 3941.

 ?。?] 何波,付由甲.C#網(wǎng)絡(luò)程序開發(fā)[M]. 北京:清華大學(xué)出版社,2014.

 ?。?] 蔣勇銘, 張仲貴, 呂剛. 基于WPF的LED顯示系統(tǒng)的設(shè)計與實現(xiàn)[J]. 電腦知識與技術(shù), 2012, 8(5): 30683070.

 ?。?] 賈廣雷, 劉培玉, 耿長欣. 多線程技術(shù)及其在串口通信中的應(yīng)用[J]. 計算機(jī)工程, 2003, 29(1): 247249.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 久久亚洲网 | 欧美性色黄在线视 | 午夜激情影院 | 午夜极品| www.黄色在线观看 | 日韩欧美中文 | 久久96国产精品 | 午夜视频国语 | www.亚洲一区 | 精品精品国产理论在线观看 | 欧美一级特黄高清免费 | 美国一级做a一级视频 | 国产在线一区在线视频 | 成人a站| 天天干天天操天天爽 | 成人午夜免费视频毛片 | 综合视频网 | 无遮挡一级毛片视频 | 午夜成年 | 午夜小福利| 在线成h人视频网站免费观看 | 色噜噜狠狠色综合久 | 中国二级毛片 | 日本中文字幕在线观看视频 | 欧美色图亚洲 | 99在线热播精品免费 | 1024jd基地手机看国产 | 丁香婷婷综合五月综合色啪 | 国产一区二区三区在线观看免费 | 久久综合九色综合97飘花 | 在线成人 | 久久人人爽人人爽人人片va | 亚洲无线码一区二区三区 | 日本伊人网| 亚洲 中文 欧美 日韩 在线 | 1插菊花| 欧美a在线视频 | 欧美 亚洲 中文字幕 | 免费黄色短片 | 亚洲国产成人久久综合区 | 成人午夜视频在线 |