C# 串行条形码读取器超时异常
霍尼韦尔条形码阅读器有问题 我有一个驱动程序和一个配置,使其作为COM串行端口工作(通过C# 串行条形码读取器超时异常,c#,serial-port,C#,Serial Port,霍尼韦尔条形码阅读器有问题 我有一个驱动程序和一个配置,使其作为COM串行端口工作(通过SerialPort.GetPortNames()检测) 我设法打开它,当我扫描一张卡时,事件DataReceived事件被正确发送。 但是,在本例中,当我尝试serialPort.ReadLine()时要获取存储在条形码阅读器内存中的值,我有一个超时异常 我不明白为什么它不工作,它应该是相当基本的代码。你有什么提示可以帮我吗 public class ScannerHandler { public
SerialPort.GetPortNames()
检测)
我设法打开它,当我扫描一张卡时,事件DataReceived
事件被正确发送。但是,在本例中,当我尝试
serialPort.ReadLine()时
要获取存储在条形码阅读器内存中的值,我有一个超时异常
我不明白为什么它不工作,它应该是相当基本的代码。你有什么提示可以帮我吗
public class ScannerHandler
{
public SerialPort _serialPort;
public ScannerHandler()
{
var serialPortArray = SerialPort.GetPortNames();
_serialPort = new SerialPort("COM5", 19200, Parity.None, 8, StopBits.One);
_serialPort.Handshake = Handshake.None;
_serialPort.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
_serialPort.ReadTimeout = 500;
_serialPort.WriteTimeout = 500;
_serialPort.Open();
}
void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
Thread.Sleep(1000);
var bufferSize = _serialPort.ReadBufferSize;
var dataBytes = _serialPort.DataBits;
String data = _serialPort.ReadLine();
}
}
提前谢谢 ReadLine将等待CR/LF进入-您确定设备发送了吗?是的,我将其设置为后缀。那么,您选择了什么作为“后缀”?它实际上与换行符设置匹配吗?您甚至不知道是否获得了正确的数据,请改用ReadExisting()开始调试。