1.61k likes | 1.91k Views
第七章、 RFID WinCE 系統開發. 本章針對 RFID 系統中的行動裝置架構開發方式進行介紹,這裡所指的行動裝置指的是使用 Windows Mobile 作業系統的個人數位助理 PDA 或是手機而言,本章內之範例可以在此平台上運作無虞。主要說明使用 VS.NET 2008 平台開發與 RFID 結合的 Windows Mobile 應用系統,本章使用的 RFID 硬體分為兩大類,一個是 CF 介面的讀取器,一個則是藍芽介面,兩者皆可以使用 SerialPort 物件進行資料的存取。. 大 綱. 7-1 行動裝置連線 7-2 CF 介面系統開發
E N D
第七章、RFID WinCE系統開發 本章針對RFID系統中的行動裝置架構開發方式進行介紹,這裡所指的行動裝置指的是使用Windows Mobile作業系統的個人數位助理PDA或是手機而言,本章內之範例可以在此平台上運作無虞。主要說明使用VS.NET 2008平台開發與RFID結合的Windows Mobile應用系統,本章使用的RFID硬體分為兩大類,一個是CF介面的讀取器,一個則是藍芽介面,兩者皆可以使用SerialPort物件進行資料的存取。
大 綱 • 7-1 行動裝置連線 • 7-2 CF介面系統開發 • 7-3 藍芽介面系統開發 • 7-4 RDA資料交換 • 7-5 傳送簡訊 • 7-6 封裝與發佈
RFID WinCE系統開發 • RFID系統中有些場合例如庫存盤點、博物館導覽或是現場無法配置電腦的場合都適合使用行動裝置來進行作業,只要搭配適當的RFID讀取器就可以作業,此類裝置主要分成外接式與內嵌式 • 外接式表示使用者已經有行動裝置,只要外接上適合的讀取器就可以作業,有CF(CompactFlash)介面(圖7-1所示)、PCMCIA介面(如圖7-2所示)與藍芽(Bluetooth, BT)介面等幾種外接讀取設備
RFID WinCE系統開發 • 內嵌式指的是裝置本身就已經有讀取器,有些甚至同時有條碼掃瞄器與信用卡刷卡機,如圖7-3所示,此些行動裝置多設計有把手,相當適合用於行動或物流盤點使用
RFID WinCE系統開發 • 上述的行動裝置包含有「個人數位助理PDA」與「智慧手機」,有了硬體再來就需要有資訊系統來協助資訊的擷取、轉換與傳輸。此些行動裝置常見的作業平台包含有MS WinCE(新一代的系統稱為Windows phone)、Linux、Nokia Symbian與Google Android等,各自的軟體開發工具都不相同,本章主要針對MS WinCE平台的系統開發進行介紹,搭配使用CF與BT介面的RFID讀取器,使用的開發工具則是MS Vistudio.NET 2008
行動裝置連線 • 要讓搭載WinCE作業系統的行動裝置與電腦連線,需要透過連線軟體ActivSync,連線後才可以進行資料交換與系統安裝或更新,因此本節將說明如何使用ActivSync • ActivSync在購買PDA等行動裝置時都會隨機附贈,如果沒有的話,也可以到微軟網站上免費下載來使用
行動裝置連線 • 本書出版時最新的版本是4.5版,下載後的檔案是「ActiveSync_setup-4.5.msi」。使用滑鼠左鍵快按兩下後就可以開啟安裝程序,如圖7-4所示
行動裝置連線 • 接著,請點選「下一步」出現版權宣告文字,請選擇「我接受」,否則將無法繼續安裝程序,如圖7-5,再點選「下一步」
行動裝置連線 • 此時出現「客戶資訊」畫面,您可以輸入自己的「使用者名稱」與「組織」資料,如圖7-6,再點選「下一步」
行動裝置連線 • 出現安裝「目的資料夾」畫面,預設都是安裝在電腦的C:\Program Files下,您也可以選擇「變更」安裝到其他目錄位置,如圖7-7,再點選「下一步」
行動裝置連線 • 如果設定都正確,將出現如圖7-8的安裝摘要畫面,準備開始進行安裝,請點選「安裝」 • 安裝過程如圖7-9所示,等待一段時間後,將出現圖7-10的安裝完成畫面,請點選「完成」結束安裝程序
行動裝置連線 • 現在可以開始透過ActivSync讓電腦與行動裝置連線並同步,請使用有線將行動裝置與電腦間實際連接上,此時將自動啟動ActivSync,如果連線成功將出現如圖7-10的畫面,可以選擇兩者間的連線關係,此處選用「來賓合作關係」就可以,連線完成後將見到如圖7-11所示的畫面,顯示「已連線」
CF介面系統開發 • 確認PDA與電腦連線並同步後,接著請使用VS.NET 2008建立新專案,專案類型請選擇”智慧型裝置”,如圖7-12所示,並將專案命名為CH7-1
CF介面系統開發 • 接著,您需要選擇行動裝置平台,如圖7-13所示,有「Pocket PC 2003」、「Windows CE」、「Windows Mobile 5.0 Pocket PC SDK」與「Windows Mobile 5.0 Smartphone SDK」,此處我們選用「Windows Mobile 5.0 Pocket PC SDK」,開發的程式碼可以轉移到Windows CE 5.0以上的作業系統上使用。最後選擇「確定」
CF介面系統開發 • 其次使用SerialPort物件來與CF介面之RFID讀取器進行資料傳輸作業,如圖7-14所示,請從工具箱中將SerialPort物件拖曳到表單上,物件將出現在畫面下方,如圖7-15所示,同時在表單上佈置兩個Label物件、ㄧ個TextBox與一個Button物件,作為標示與顯示卡號資料之用途,各物件屬性設定如表7-1之說明
CF介面系統開發 • 其次如圖7-16所示,請設定CF讀取器在PDA上的連接通訊埠,本例中為COM4,讀者請您依照您設備的不同而修改這個參數,最後就可以開始撰寫連線程式碼
CF介面系統開發 • 首先在Button1_Click事件上撰寫利用是SerialPort物件開啟通訊埠COM4的程式,讓PDA與CF讀取器能透過COM4進行通訊 • 其次,利用SerialPort物件的DataReceived事件接收通訊埠COM4之卡號資料,並將讀取到的卡號指定到TextBox1中顯示
CF介面系統開發 • 撰寫完成上述的讀卡程式碼後,就可以實際將程式發佈到PDA上進行測試,請利用VS.NET 2008執行本專案,在圖7-17選擇部署位置項目中選擇「Windows Mobile 5.0 Pocket PC Device R2」,也就是要將程式實際轉移到PDA上執行,而不是只是使用模擬器Emulator
CF介面系統開發 • 程式部署完成後,PDA上將出現如圖7-18的畫面,等待使用者點選「開啟RFID CF Reader」的按鈕,點選後將出現圖7-19的啟動成功畫面。此時可以使用CF讀取器去讀取頻率相同的RFID標籤,就可以看到如圖7-20的畫面,輸入框TextBox1中將出現讀取標籤內的辨識碼
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Try SerialPort1.Open() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Private Delegate Sub settextboxtextdelegate(ByVal text As String) Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived Try Dim icoming As String = SerialPort1.ReadLine Me.Invoke(New settextboxtextdelegate(AddressOf settextboxtext), icoming) Catch ex As Exception MessageBox.Show("read error") End Try End Sub Private Sub settextboxtext(ByVal text As String) Me.TextBox1.Text = text End Sub
Private Sub Form1_Deactivate(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Deactivate If SerialPort1.IsOpen Then SerialPort1.Close() End If Me.Close() End Sub
直接連接DB Dim cn As System.Data.SqlClient.SqlConnection Dim cmd As System.Data.SqlClient.SqlCommand Dim da As System.Data.SqlClient.SqlDataAdapter ' 改變游標 System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor ' 建立與SQL Server資料庫的連線 cn = New System.Data.SqlClient.SqlConnection("uid=XXX;pwd=XXX;database=XXX;server=XXX") cmd = New System.Data.SqlClient.SqlCommand("select * from XXX", cn) da = New System.Data.SqlClient.SqlDataAdapter(cmd) ' 加入新的資料表 Dim dt As System.Data.DataTable = New System.Data.DataTable(“XXX") da.Fill(dt) DataGrid1.DataSource = dt ' 恢復游標 System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default
連接DB確認會員 Dim whichtime As Integer = 0 Private Sub settextboxtext(ByVal text As String) If whichtime = 0 Then Me.TextBox1.Text = Mid(text, 2, 8) ' 擷取卡號 whichtime = 1 Else Me.TextBox1.Text = Mid(text, 3, 8) ' 擷取卡號 End If showmember("select * from member where m_rfid='" & TextBox1.Text & "'") End Sub
連接DB確認會員 無法直接連線確認,會被SerialPort1_DataReceived攔截 Sub showmember(ByVal sql As String) Dim cn As System.Data.SqlClient.SqlConnection Dim cmd As System.Data.SqlClient.SqlCommand Dim da As System.Data.SqlClient.SqlDataAdapter ' 建立與SQL Server資料庫的連線 cn = New System.Data.SqlClient.SqlConnection("uid=982rfid;pwd=abcdef;database=982RFID;server=120.109.35.153") cmd = New System.Data.SqlClient.SqlCommand(sql, cn) da = New System.Data.SqlClient.SqlDataAdapter(cmd) ' 加入新的資料表 Dim dt As System.Data.DataTable = New System.Data.DataTable("member") da.Fill(dt) DataGrid2.DataSource = dt Label1.Text = DataGrid2.Item(0, 1).ToString cn.Close() End Sub
藍芽介面系統開發 • 本節介紹使用藍芽介面的讀取器,可以與具備藍芽裝置的手機或是PDA等行動裝置做連接。本節使用的藍芽讀取器如圖7-21(左)所示,我們將透過藍芽讓其與PDA行動裝置連接(圖7-21右)。要完成連結,讀取器與PDA兩者都需要開啟藍芽功能,並正確的設定
圖7-21、藍芽介面讀取器(上圖左)與PDA(上圖右)圖7-21、藍芽介面讀取器(上圖左)與PDA(上圖右)