1 / 97

第六章、 RFID 資訊系統開發

第六章、 RFID 資訊系統開發. 本章針對 RFID 系統中 Windows Form 架構(單機版)的開發方式進行說明,內容使用 MS Visual Studio.NET 2008 為系統開發平台,配合後端 MS Access 或 MS SQL Server 資料庫及 MSCOMM 、 SerialPort 與 Winsock 等三通訊元件,介紹整合後連接 RFID 讀取器擷取資料的設計方式。本章內的所有範例程式,讀者都可以在本書光碟內的 CH6 目錄內找到並應用。. 大 綱. 6-1 MSCOMM 物件 6-2 ACCESS 資料庫 6-3 SerialPort 物件

Download Presentation

第六章、 RFID 資訊系統開發

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第六章、RFID資訊系統開發 本章針對RFID系統中Windows Form架構(單機版)的開發方式進行說明,內容使用MS Visual Studio.NET 2008為系統開發平台,配合後端MS Access 或MS SQL Server資料庫及MSCOMM、SerialPort與Winsock等三通訊元件,介紹整合後連接RFID讀取器擷取資料的設計方式。本章內的所有範例程式,讀者都可以在本書光碟內的CH6目錄內找到並應用。

  2. 大 綱 • 6-1 MSCOMM物件 • 6-2 ACCESS資料庫 • 6-3 SerialPort物件 • 6-4 Winsock • 6-5 SQL Server資料庫 • 6-6 藍芽讀取器 • 6-7 POS範例再討論

  3. RFID資訊系統開發 • 本章主要介紹使用MS Visual Studio.NET 2008(以下簡稱VS.NET 2008)開發Windows Form程式來與RFID讀取器進行溝通與讀取卡號及資料。 • 此部份程式主要是電腦與讀取器的連接溝通,溝通介面主要為RS232、USB或是Ethernet,此些部分主要是透過VS.NET 2008提供的物件來完成,以下將依不同物件的使用來介紹

  4. MSCOMM物件

  5. MSCOMM物件 • 此物件在Visual Basic 6.0時代時已經存在,也是以往很多系統用來擷取RS232與USB設備訊號的物件 • 此物件到了VS.NET 2005與VS.NET 2008並不是預設有的物件,所以需要透過「加入工具箱」的方式來完成 • 首先,請使用VS.NET 2008建立一個新專案,專案名稱是CH6-1(圖6-1)

  6. 圖6-1、CH6-1專案建立後起始畫面

  7. MSCOMM物件 • 接著,將Form1的Text屬性改成「MSCOMM物件抓取RFID卡號範例」,並在表單Form1上佈置2個Label物件與1個TextBox物件,各物件的設定如表6-1所示,完成後的畫面如圖6-2

  8. 圖6-2、Form1表單物件設定完成畫面

  9. 表6-1、Form1表單物件屬性說明

  10. MSCOMM物件 • 完成使用者介面設定後,再來需要將原來屬於Visual Basic 6.0的MSCOMM.OCX物件設定成可讓VS.NET 2008使用。如圖6-3所示,請選擇「工具」 「選擇工具箱項目」

  11. 圖6-3、VS.NET 2008中設定使用MSCOMM物件畫面

  12. MSCOMM物件 • 之後會出現圖6-4的「選擇工具箱項目」視窗,請選擇「COM元件」頁籤,請勾選「Microsoft Communications Control, version 6.0」,然後按「確定」,MSCOMM元件將會被加入到開發平台左方的「工具箱」中,此時就可以使用MSCOMM物件,如圖6-5所示

  13. MSCOMM物件 • 請將MSCOMM元件從工具箱中拖入Form1表單內,供後續開發使用,完成後如圖6-6,畫面上將多出一個電話的圖示,這個就是MSCOMM物件,這裡我們維持它原來的物件名稱「AxMSComm1」

  14. 圖6-4、VS.NET 2008中COM元件選擇畫面

  15. 圖6-5、MSCOMM元件加入成功畫面

  16. 圖6-6、MSCOMM元件加入表單Form1後畫面

  17. MSCOMM物件 • 再來,請確定已經將設定完成的RFID讀取器(設定方式請見第二章說明)連接上電腦,並透過控制台的裝置管理員確認設備可以正常使用與目前的連接埠,如圖6-7所示,本範例的連接埠在COM12。等上述ㄧ切就緒後就可以開始撰寫程式碼,透過MSCOMM元件來連接RFID讀取器取得所需要的卡號

  18. 圖6-7、RFID讀取器在裝置管理員的連接埠查詢畫面圖6-7、RFID讀取器在裝置管理員的連接埠查詢畫面

  19. MSCOMM物件 • 針對程式開發部分,首先在Form1_Load事件中撰寫設定MSCOMM物件的通訊協定,當中包含通訊速率(Baud rate,請詢文您的硬體供應商)、通訊埠(每個人的電腦狀況都不同,這裡是COM12)、Threshold(要設定成1)等三項參數,最後將通訊埠開啟 • 執行程式後如果看到圖6-8畫面,代表程式與讀取器間訊號傳遞的通訊埠可以被正常開啟,沒有問題

  20. 圖6-8、通訊埠正常開啟畫面

  21. MSCOMM物件 • 此時已經正常開啟程式與硬體讀取器間的通訊介面與管道,只要讀取器有讀取到標籤的資料,將會觸發MSCOMM物件的「OnComm」事件 • 所以我們必須要在MSCOMM物件的「OnComm」事件中撰寫程式接收來自讀取器的資料。其中,如果讀取狀況正常,將回傳CommEvent=2的狀態 • MSCOMM物件接收資料的方法為Input

  22. MSCOMM物件 • 相反地,如果讀取有錯誤將回傳CommEvent=7的狀態,程式將關閉通訊介面,並提示錯誤訊息,問題可能發生在忘記將讀取器接上電腦或是讀取器有損壞的狀況 • 完成上述所有步驟與程式撰寫後,就可以實際執行本程式,但一定要先確定讀取器與電腦有正常安裝與連結,圖6-9是正常抓取卡號的畫面

  23. 圖6-9、MSCOMM元件實際抓取卡號畫面

  24. ACCESS資料庫

  25. ACCESS資料庫 • 本書第五章中介紹過使用VS.NET 2008開發資料庫程式的方法與步驟,當中介紹了連結ACCESS與SQL Server兩種資料庫的操作方法 • 首先請使用ACESS 2003建立一個名稱為TAG的空白資料庫(TAG.md),同時建立一個儲存卡號資訊的資料表,名稱為card_info(讀者可以在本書光碟內的CH6\CH6-2\CH6-2\bin\Debug目錄中找到該資料庫檔案)

  26. ACCESS資料庫 • 當中包含有4個欄位,如圖6-10所示,各欄位的名稱、型態、資料長度與格式設定如表6-2所示

  27. 圖6-10、ACCESS資料庫欄位格式設定畫面

  28. 表6-2、ACDESS資料庫格式設定說明

  29. ACCESS資料庫 • 資料庫欄位格式設定建立完成後,請在資料庫中建立幾筆資料,例如圖6-11所示,此處建立了兩筆RFID標籤與使用者的資料,分別是卡號為AADB8176的使用者陳小明與卡號為A6CD6F62的使用者王大頭。應用時請各位讀者依這自己的卡號資料建立資料表內的「card_ID」欄位內容

  30. 圖6-11、ACCESS資料庫預設資料畫面

  31. ACCESS資料庫 • 為了要透過VS.NET 2008連結使用ACCESS資料庫,需要引用「System.Data.OleDb」的名稱空間 • 我們將呼叫ACCESS資料庫查詢卡號使用者的功能寫成「showmember」函數,當系統透過MSCOMM元件在OnComm事件中抓到卡號後,將呼叫showmember連結ACCESS資料庫進行卡號比對,然後顯示出正確的使用者名稱

  32. ACCESS資料庫 • 我們仿照專案CH6-1的介面,但在CH6-2專案中另外加入兩個Label物件,分別是Label3與Label4,同時,將Label3的Text屬性設定為”使用者:”,Label4則使用程式動態將查詢到的使用者名稱(owner欄位)資料顯示出來 • 程式實際執行後刷卡的畫面如下圖6-12所示,依照前面資料庫標籤卡號的設定,卡號為AADB8176的使用者是陳小明,實際顯示結果與當初規劃預期之結果相符

  33. 圖6-12、MSCOMM元件結合ACCESS資料庫查詢卡號資料畫面圖6-12、MSCOMM元件結合ACCESS資料庫查詢卡號資料畫面

  34. SerialPort物件

  35. SerialPort物件 • 本節則是針對VS.NET 2008中標準內含的RS232與USB通訊埠溝通物件「SerialPort」進行介紹,請建立本章第三個專案CH6-3,如圖6-13,並依照表6-3在Forml.vb上佈置所需要的介面物件

  36. 圖6-13、CH6-3專案畫面

  37. 表6-3、Forml表單上介面物件屬性說明

  38. SerialPort物件 • 與MSCOMM元件類似,SerialPort物件也需要設定通訊埠號碼,但其屬性不是「CommPort」,而是「PortName」,如圖6-14所示,本範例中延續上節設定為COM12

  39. 圖6-14、SerialPort設定PortName之畫面

  40. SerialPort物件 • SerialPort物件來抓取讀取器讀取到標籤的辨識號碼,同MSCOMM元件,SerialPort元件也是使用Open方法來開啟所設定的通訊埠,此部份希望在程式一啟動時就完成通訊埠設定與開啟,所以寫在Form1表單的Load事件中

  41. 啟動SerialPort物件 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load SerialPort1.PortName = "COM12" SerialPort1.Open() If SerialPort1.IsOpen = True Then MessageBox.Show("COM開啟成功") Else MessageBox.Show("COM開啟失敗") End If End Sub

  42. SerialPort物件 • MSCOMM元件接收資料的事件是OnComm,而SerialPort元件則是「DataReceived」事件,完成通訊埠開啟後便是在DataReceived事件中撰寫相關的程式碼。再來與MSCOMM物件不同的是,MSCOMM物件使用Input方法接收資料,而SerialPort物件則是「ReadLine」方法 • 一次直接讀取一串DATA

  43. 使用SerialPort物件 Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived inputdata = SerialPort1.ReadLine Me.Invoke(New SetTextBoxTextDelegate(AddressOf SetTextBoxText), inputdata) End Sub

  44. 使用SerialPort物件 Private Delegate Sub SetTextBoxTextDelegate(ByVal text As String) Dim whichtime As Integer = 0 Private Sub SetTextBoxText(ByVal text As String) If whichtime = 0 Then TextBox1.Text = Mid(text, 2, 8) ' 擷取卡號 whichtime = 1 Else TextBox1.Text = Mid(text, 3, 8) ' 擷取卡號 End If End Sub

  45. SerialPort物件 • 最後,請執行專案CH6-3確認結果,如果沒有任何錯誤,將看到圖6-15的畫面,代表讀取器與程式間的通訊埠已經順利開啟,等待讀取讀卡機的資料 • 此時就可以使用讀卡機去讀取標籤,結果將在畫面上顯示出卡號資料,如圖6-16所示,但此時尚沒有比對該卡號使用者的功能

  46. 圖6-15、Form1表單的開始執行畫面

  47. 圖6-16、Form1表單完成卡號抓取的畫面

  48. SerialPort物件 • 後續讀者可以搭配6-2節所撰寫的showmember函式來串接ACCESS資料庫進行讀卡後查詢使用者的功能 • 執行結果如圖6-17所示,詳細說明請見6-2節,在此將不再贅述

  49. 圖6-17、搭配ACCESS資料庫完成卡號比對的畫面

  50. Winsock

More Related