標題:

RFID之SerialPort的Read問題

發問:

前先有問過RFID的問題,目前我可以順利發送啟動讀取訊號給Reader,現在遇上怎麼取回Tag的號碼,以及怎麼指定該Tag開啟某一個網址,有知識+告訴我要使用Read,我看了MS的文件還是不知道應該要怎麼開始第一步。 所以我想要問,我應該要怎麼開始第一步呢? 我使用的是VB 2005的程式開發,謝謝! 更新: Reader is CF-1700 更新 2: 我在Public下宣告了 Dim ArrActRevBytes(511) As Byte Dim iLength As Integer 然後在Scanner的Button裡寫了 更新 3: SerialPort1.Write(Chr(&H1) & "S01A1" & Chr(&H2) & "010" & Chr(&H3) & Chr(&H33)) '傳送讀卡指令 System.Threading.Thread.Sleep(200) 更新 4: iLength = SerialPort1.Read(ArrActRevBytes, 0, ArrActRevBytes.Length) ReDim Preserve ArrActRevBytes(iLength - 1) 接下來我是不是需要把ArrActRevBytes裡的值一一輸出到,txtUID這一個txtbox裡呢?

最佳解答:

 

此文章來自奇摩知識+如有不便請留言告知

你先前一定有做Write的動作吧..所以Write後就送了一個要求資料的訊號給RFID讀取器,然後你可以讓程式等待一下,用System.Threading.Thread.Sleep(200),先等0.2秒,然後要先設一個Byte ( or Char)的陣列用來接收回傳資料,ex: Dim ArrActRevBytes(511) As Byte[這是假設你抓的資料不會大於512Bytes/次] ,然後設一個 Integer型態變數來抓真正的回傳長度 ,ex: Dim iLength as integer ,然後就可以用Read方法 iLength=你的SerialPort執行個體.Read(ArrActRevBytes,0,ArrActRevBytes.Length) 依照抓回的資料長度重設陣列大小 ReDim Preserve ArrActRevBytes(iLength - 1) 這時ArrActRevBytes陣列中就是從SerialPort中抓回來的Byte陣列資料了 2009-05-14 21:59:29 補充: 你Read回來的是Byte值的陣列.(1)你可以把用迴圈把Byte值傳出來 (2)如果是可以轉為ASCII碼的值,可以用 Dim mystring= System.Text.Encoding.ASCII.GetString(ArrActRevBytes) 將ArrActRecBytes的資料轉為相對應的ASCII string

其他解答:5C926699F268FE02
arrow
arrow

    yffuhxy 發表在 痞客邦 留言(0) 人氣()