Re: [問題] 建立讀卡機與電腦的連線 RFID serial Port

看板C_Sharp (C#)作者 (ChrisLiu)時間15年前 (2010/05/05 05:25), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
※ 引述《taso5566 (a)》之銘言: : 請問各位大大, : (一)如何利用winsock來開發Ethernet的應用程式 : 建立RS-232序列通訊介面的程式設計 : (二)建立讀卡機與識別卡之間的連線 : 讀卡機程式設計,讀取RFID卡序號 : 感謝~ 我只做過二,一般來說,讀卡機應該會提供 API 讓你用 如果沒有的話,你用 serialport 去連線裝置也可以 serial port 就對照到「裝置管理員」中的 COM port c# 中讀取讀卡機很方便(可能是我用的讀卡機型號剛好很普遍) 首先 include 用到的 library using System.IO.Ports; 接著宣告 SerialPort private SerialPort comport = new SerialPort(); 你可以另外寫個 method 來初始化這個 comport private void initSerialPort() { // If the port is open, close it. if (comport.IsOpen) comport.Close(); else { comport.BaudRate = 9600; comport.DataBits = 8; comport.StopBits = System.IO.Ports.StopBits.One; comport.Parity = Parity.None; comport.PortName = "COM1"; // 請對照你的 COM port comport.ReadTimeout = 500; comport.WriteTimeout = 200; // Open the port try { comport.Open(); } catch (IOException) { MessageBox.Show("找不到或無法開啟指定的連接埠。"); } } } 接著 serialPort有提供 dataReceived 的 evnet 你可以加入 event comport.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived); 後這樣去讀取 private void port_DataReceived(object sender, SerialDataReceivedEventArgs e) { // 加 delay 是因為我們的讀卡機會讀太快,給他點時間讀完卡號 Thread.Sleep(200); // 讀取 cardid string readString = comport.ReadExisting(); } 記得關掉程式的時候,加上 event 去關閉 comport comport.close(); 大概就是這樣… -- 雖然 google 就很多了… -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.145.202.66

05/05 12:37, , 1F
感謝大大熱心的回答~
05/05 12:37, 1F
加一下標題的 keyword。for searching friendly ※ 編輯: chrisQQ 來自: 203.145.202.66 (05/15 15:38)
文章代碼(AID): #1Bu93caX (C_Sharp)
文章代碼(AID): #1Bu93caX (C_Sharp)