[英]USB Barcode reader in C#
I want to read a barcode from a USB scanner. 我想从USB扫描仪读取条形码。
I am getting code like héà&"à')&'_h
or qà&é"'(èq
when using SerialPort connection. 使用SerialPort连接时,我收到类似héà&"à')&'_h
或qà&é"'(èq
。
Is there a way to decode this value? 有没有办法解码此值?
private void Form1_Load(Object sender, EventArgs e)
{
_serialPort = new SerialPort("COM1", 19200, Parity.None, 8, StopBits.One);
_serialPort.Handshake = Handshake.None;
_serialPort.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
_serialPort.ReadTimeout = 500;
_serialPort.WriteTimeout = 500;
_serialPort.Open();
}
/* / *
*/ * /
private void btnStart_Click(Object sender, EventArgs e)
{
try
{
if (!_serialPort.IsOpen)
_serialPort.Open();
_serialPort.Write("SI\r\n");
}
catch (Exception ex)
{
MessageBox.Show("Error opening/writing to serial port :: " + ex.Message, "Error!");
}
}
void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
Thread.Sleep(500);
String data = _serialPort.ReadLine();
this.BeginInvoke(new SetTextDeleg(si_DataReceived), new Object[] { data });
}
private void si_DataReceived(String data)
{
textBox1.Text = data.Trim().ToString();
}
thanks 谢谢
Use the Member of the SerialPort-Class. 使用SerialPort-Class的成员。
_serialPort = new SerialPort("COM1", 19200, Parity.None, 8, StopBits.One);
_serialPort.Handshake = Handshake.None;
_serialPort.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
_serialPort.ReadTimeout = 500;
_serialPort.WriteTimeout = 500;
// Encoding
_serialPort.Encoding = Encoding.ASCII;
_serialPort.Open();
Thank you for your help, I finally found out way my barcode scanner was giving me such weired codes. 谢谢您的帮助,我终于找到了条码扫描器给我这种奇怪代码的方式。 in fact, everything work well when I turn on my Lock caps. 实际上,当我打开锁盖时,一切都很好。 It work well also with Notepad. 它也可以与记事本一起使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.