最近接了一个项目,需要用到手持读码器,项目负责人采购了一个既能文本输出,又能主动读取读码器缓存数据的码枪HR-101B,研究了一下,特来写写。
using System; using System.IO.Ports; namespace Glue.Common { class KeyenceBarcodeReader_UsbCom { SerialPort keyenceSerialPort = new System.IO.Ports.SerialPort(); private string receiveData = string.Empty; public string ReceiveData { get { return this.receiveData; } set { this.receiveData = value; } } /// <summary> /// 构造函数 /// </summary> /// <param name="portName"></param> public KeyenceBarcodeReader_UsbCom(string portName) { this.keyenceSerialPort.PortName = portName; this.keyenceSerialPort.BaudRate = 115200; this.keyenceSerialPort.DataBits = 8; this.keyenceSerialPort.Parity = Parity.Even;//奇偶性-偶数 this.keyenceSerialPort.StopBits = StopBits.One;//停止位 1bit this.keyenceSerialPort.DataReceived += new SerialDataReceivedEventHandler(this.DataReceivedHandler); } /// <summary> /// 打开端口连接 /// </summary> public void Open() { this.keyenceSerialPort.Open(); } /// <summary> /// 关闭端口连接 /// </summary> public void Close() { this.keyenceSerialPort.Close(); } private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e) { SerialPort sp = (SerialPort)sender; this.receiveData = sp.ReadExisting(); } } }
using System; using System.Threading; using TestKeyenceBarcodeReader; namespace TestBarcodeReader { class Program { static SerialPortHelper portHelper = new SerialPortHelper("COM3"); static void Main(string[] args) { portHelper.Open(); Thread thread = new Thread(Test); thread.Start(); } static void Test() { while (true) { Thread.Sleep(1000); Console.WriteLine(portHelper.ReceiveData); } } } }
完~
原文:https://www.cnblogs.com/stackmiao/p/11056853.html