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

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

  (遼寧師范大學 計算機信息與技術學院, 遼寧 大連 116000)

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

  關鍵詞UDP通信嵌入式系統;WPF;檢測系統

0引言

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

1WPF簡介

  1.1XAML

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

  1.2Data Binding機制

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

  1.3依賴屬性

  依賴屬性是WPF技術中新提出的概念。簡而言之,依賴屬性可以自己沒有值,并通過使用Binding從數據源獲得值的屬性。擁有依賴屬性的對象被稱為依賴對象。與傳統的CLR屬性和面向對象思想相比,依賴屬性有很多新穎之處:首先它可以節省實例對內存的開銷;其次屬性值可以通過Binding依賴在其他對象上。

2驅動板卡檢測系統

  2.1驅動板卡簡介

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

  2.2驅動板卡通信協議

  (1)驅動板卡檢測系統與板卡之間采用雙絞線連接,使用UDP通信協議進行通信。一次完整的通信包括上位機發送命令、下位機應答兩部分。其中命令具有事先約定好的格式,第一個字節BYTE0為命令ID,后面跟有若干個字節的參數。下位機接到命令后根據命令ID進行相應的操作并作應答,返回通信結果。

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

  (3)驅動板卡配置數據讀取命令。此命令的命令ID為0xAA。應答中,BYTE0為應答ID,BYTE1~BYTE42為以上提到的參數內容。

  2.3驅動板卡檢測系統設計與實現

001.jpg

  圖1為驅動板卡檢測系統的界面截圖。從圖中可以看出其主要功能,它實現了數據的下載、讀取以及應答的接收。

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

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

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

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

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

3結論

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

  參考文獻

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

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

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

  [4] 何波,付由甲.C#網絡程序開發[M]. 北京:清華大學出版社,2014.

  [5] 蔣勇銘, 張仲貴, 呂剛. 基于WPF的LED顯示系統的設計與實現[J]. 電腦知識與技術, 2012, 8(5): 30683070.

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


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲女同性videos| 欧美成人性生活| 国产午夜亚洲精品羞羞网站| 性18欧美另类| 欧美亚洲一区二区在线| 国内精品亚洲| 欧美精品黄色| 午夜一级久久| 亚洲一级高清| 欧美在线免费视频| 亚洲激情视频网站| 国产精品国产福利国产秒拍| 久久丁香综合五月国产三级网站| 久久国产精品电影| 亚洲精品午夜精品| 国产精品一香蕉国产线看观看 | 欧美精品一区二区三区高清aⅴ| 你懂的网址国产 欧美| 99热这里只有成人精品国产| 亚洲免费在线| **欧美日韩vr在线| 欧美三区在线视频| 久久精品国产96久久久香蕉| 欧美一级淫片aaaaaaa视频| 91久久黄色| 亚洲一区二区3| 精品不卡视频| 国产精品成人v| 免费看av成人| 欧美国产日韩亚洲一区| 欧美一区影院| 欧美一区二区网站| 国产亚洲精品久| 日韩一级大片| 久久久久久久久一区二区| 亚洲日本电影| 亚洲欧美日韩国产成人精品影院| 伊人春色精品| 亚洲国产成人不卡| 国产日韩欧美黄色| 欧美精品尤物在线| 久久九九国产精品怡红院| 亚洲少妇中出一区| 亚洲国产综合视频在线观看| 亚洲一区二区三区四区中文| 亚洲欧美日韩中文视频| 久久国产黑丝| 日韩视频一区二区三区在线播放| 亚洲一区二区黄色| 久久精品日韩欧美| 欧美精品一区二区三区一线天视频| 欧美亚一区二区| 国内外成人免费视频| 亚洲精品久久久久| 亚洲男同1069视频| 亚洲精品日韩欧美| 欧美在线播放高清精品| 中日韩高清电影网| 欧美影院一区| 欧美国产日产韩国视频| 国产精品久久久久久久9999| 在线看国产日韩| 亚洲视频久久| 99国产麻豆精品| 亚洲国产影院| 亚洲一区二区毛片| 亚洲欧洲日韩综合二区| 亚洲一区二区动漫| 美女999久久久精品视频| 久久精品毛片| 欧美国产视频在线| 国产欧美日韩综合一区在线播放| 亚洲国产高清aⅴ视频| 亚洲永久精品国产| 亚洲每日更新| 亚洲国产乱码最新视频| 亚洲一二三区在线| 欧美a级大片| 国产亚洲激情| 亚洲特级片在线| 亚洲精品永久免费| 久久精品国产精品| 国产精品国产三级国产普通话三级 | 亚洲国产日韩美| 欧美一级黄色录像| 亚洲一区二区在线免费观看视频| 亚洲精品专区| 久久精品观看| 国产精品av久久久久久麻豆网| 亚洲高清自拍| 久久动漫亚洲| 欧美一区高清| 国产精品久久久久久久久婷婷| 91久久一区二区| 99re热精品| 最新成人av网站| 久久精品国产一区二区三区免费看 | 久久精品国产亚洲a| 亚洲第一在线视频| 亚洲激情欧美激情| 久久精品视频免费观看| 国产精品久久久久久久app| 亚洲毛片在线观看.| 一区二区欧美在线观看| 午夜精品99久久免费| 久久国产黑丝| 久久aⅴ国产紧身牛仔裤| 国产精品毛片| 国产一区香蕉久久| 亚洲国产成人不卡| 久久精品视频在线| 久久免费高清视频| 狠狠爱综合网| 亚洲精品免费一区二区三区| 午夜精品国产| 久久成人18免费网站| 久久亚洲精品伦理| 欧美电影在线观看| 在线观看亚洲视频啊啊啊啊| 日韩视频免费观看高清在线视频| 亚洲人被黑人高潮完整版| 欧美不卡高清| 亚洲激情欧美| 一区二区三区www| 久久国产精品一区二区三区| 国产精品毛片一区二区三区 | 欧美日韩视频在线第一区| 国产精品视频久久久| 激情综合激情| 亚洲国产一成人久久精品| 欧美aaa级| 亚洲精品欧美精品| 亚洲视频在线观看免费| 国产精品美女久久久久久免费| 亚洲图片欧美日产| 亚洲在线视频| 国产视频一区二区在线观看| 久久成人一区二区| 欧美电影免费观看高清| 日韩视频亚洲视频| 销魂美女一区二区三区视频在线| 国产精品影视天天线| 久久爱www| 欧美xx69| aa级大片欧美三级| 亚洲国产美女| 欧美激情一区二区三区四区| 一本久久精品一区二区| 久久国产婷婷国产香蕉| 永久域名在线精品| 日韩亚洲欧美一区| 国产精品免费小视频| 久久黄色小说| 欧美另类变人与禽xxxxx| 亚洲视频一区二区| 久久久蜜桃精品| 亚洲精品国久久99热| 欧美一区网站| 亚洲国产天堂久久综合| 亚洲欧美另类国产| 国内精品久久久久影院优| 日韩午夜在线| 国产日韩欧美在线视频观看| 亚洲人成欧美中文字幕| 国产精品激情偷乱一区二区∴| 久久aⅴ国产欧美74aaa| 欧美精品九九99久久| 亚洲欧美激情视频在线观看一区二区三区| 久久一区二区三区国产精品| 亚洲乱码视频| 久久久亚洲高清| 一本色道久久综合亚洲91| 久久免费黄色| 中文一区在线| 欧美成人情趣视频| 亚洲综合色丁香婷婷六月图片| 欧美a级一区二区| 亚洲欧美日韩国产中文| 欧美国产先锋| 欧美在线看片| 国产精品久久久久毛片大屁完整版| 亚洲国产日本| 国产精品视区| 一区二区久久| 樱桃视频在线观看一区| 午夜视频一区二区| 最新日韩av| 久久亚洲私人国产精品va| 亚洲社区在线观看| 欧美电影资源| 欧美一区二区三区视频在线观看| 欧美日韩四区| 亚洲三级网站| 韩国av一区二区| 欧美亚洲自偷自偷| 99精品福利视频| 欧美成人激情视频免费观看| 午夜精品一区二区三区四区 | 免费观看在线综合| 午夜精彩国产免费不卡不顿大片|