我如何从条形码扫描器模块读取条形码前缀


I have a barcode Scanner and I want to read the Barcode Prefix from the Hardware

在硬件集上,像"01"或";AA"作为前缀

我收到来自comport "u0002u000131"这是什么?十六进制?或者Unicode ?

十六进制必须像这样:0x30//00x31//1文档

这是我的Write方法和Comport

public void GetPrefix(SerialPort serialPort)
{
try
{
if (serialPort.IsOpen)
{
Thread.Sleep(100);
Console.WriteLine("Open");
byte[] my_byte = new byte[9];
my_byte[0] = 0x7E;//Header
my_byte[1] = 0x00;//Header
my_byte[2] = 0x08;//Type
my_byte[3] = 0x01;//Lens 
my_byte[4] = 0x63;//add
my_byte[5] = 0x71;//add
my_byte[6] = 0x08;//data  : The data read
my_byte[7] = 0xAB;//CRC
my_byte[8] = 0xCD;//
serialPort.Write(my_byte, 0, 9);
rx_message =  serialPort.ReadExisting();
Console.WriteLine(rx_message);
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}

这是一个DataReceivedHandler方法

private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
try
{
Thread.Sleep(1000);
SerialPort sp = (SerialPort)sender;
unicode = sp.ReadExisting(); //Read the data
Console.WriteLine(unicode);

}
catch (Exception)
{
throw;

}
}

您收到的是文档第68页上写的内容。

表示您发送的写命令处理已正常完成。
然而,这是一个奇怪的现象。文档只列出了从0x0000到0x00E5的地址,而您指定的0x6371(或0x7163?)是一个私有地址。
您这样做可能会损坏条码扫描器中的某些东西。

你发送了一个写命令,你不能用它来读取你想要的条形码前缀。

您应该使用read命令,它是从文档的第64页写入的。
通过从地址的0x0060读取0x11字节,您将能够检查前缀的存在/不存在,长度和数据。
详细信息见文档第87-88页。

相关内容

  • 没有找到相关文章

最新更新