读书人

c#怎么从串口获得扫描枪数据

发布时间: 2012-05-27 05:42:30 作者: rapoo

c#如何从串口获得扫描枪数据
我在做一个条码管理程序,通过计算机串口连接扫描枪获取条码数据。我用超级终端是可以获得条码信息的,但在Word,Excel或记事本都不能取得条码信息。也就是我得用C#做串口编程,读取串口缓存中的信息,但这方面是第一次接触,根本没有任何经验,请高手指点一下,因为事情急,有源码更好。在此先谢谢了。

[解决办法]
写个程序,搞对“通讯速率、数据位、停止位、校验”等参数,编程只是三五条代码的事。基本上,读取串口数据,然后SendKey发送成键盘消息即可。
[解决办法]
vs“工具箱”——》“组件”——》“SerialPort”
[解决办法]
晕,我记得我是贴过完整的代码的,估计你没找到,我再贴一遍吧。

C# code
    public class RevSerialPort    {        SerialPort serialPort;        StringBuilder sb;        public RevSerialPort()        {            sb = new StringBuilder();            serialPort = new SerialPort();            serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);        }        public RevSerialPort(string portName)        {            sb = new StringBuilder();            serialPort = new SerialPort(portName);            serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);        }        public RevSerialPort(string portName, int baudRate, Parity parity, int dataBits, StopBits stopBits)        {            sb = new StringBuilder();            serialPort = new SerialPort(portName, baudRate, parity, dataBits, stopBits);            serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);        }        void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)        {            sb.Append(serialPort.ReadExisting());            int index = sb.ToString().IndexOf((char)0xd);            if (index > 0)            {                try                {                    System.Windows.Forms.SendKeys.SendWait(sb.ToString(0, index) + "~");                }                finally                {                    sb.Remove(0, index + 1);                }            }        }        public void Start()        {            serialPort.Open();        }        public void Stop()        {            if (serialPort.IsOpen)                serialPort.Close();        }    } 

读书人网 >C#

热点推荐