摩托罗拉 MC3190 扫描时的奇怪行为
Motorola MC3190 strange behavior while scanning
我正在编写一个扫描条形码并将其显示到文本框的应用程序。我正在使用在 Windows Embedded compact 7.0 上运行的 Motorola MC3190 设备。为了实现条码扫描,我使用了Symbol.dll和Symbol.barcode.dll。
我有一个问题,设备正在扫描条形码,但消除了空格前后的字符。我的代码是
private void Form1_Load(object sender, EventArgs e)
{
txtBarcode.Focus();
barcodeReader = new Symbol.Barcode.Reader();
barcodeReaderData = new Symbol.Barcode.ReaderData(Symbol.Barcode.ReaderDataTypes.Text, Symbol.Barcode.ReaderDataLengths.MaximumLabel);
barcodeReader.Actions.Enable();
barcodeReader.ReadNotify += new EventHandler(barcodeReader_Read);
barcodeReader.Actions.Read(barcodeReaderData);
}
private void barcodeReader_Read(object sender, EventArgs e)
{
Symbol.Barcode.ReaderData nextReaderData = barcodeReader.GetNextReaderData();
txtBarcode.Text = nextReaderData.Text;
barcodeReader.Actions.Read(barcodeReaderData);
}
此代码扫描不带空格的条形码。
仅供参考:早期的摩托罗拉MC3190无法扫描空格前后的字符,但在联系摩托罗拉支持团队后,他们告诉我设备有一些变化。现在设备正在接受带空格的条形码。我查看了 datawedge 演示。
现在我正在使用符号汇编,这意味着我正在覆盖代码中的现有功能,但到目前为止运气不好。
编辑:
当我在我的应用程序中扫描此条码时,它会跳过第一个数字 0 和最后一个数字 2。文本框只显示 825610。但是当我尝试在 Datawedge 演示中扫描相同的条码时(软件附带用于测试条码的设备扫描)它显示 082566102
缺少的零包含在条形码格式中。 UPC-E 条形码可以以 0 或 1 开头,它们由扫描仪作为 UPCE0 和 UPCE1 返回。缺少的2是校验位。
您可以通过设置包括这些:
barcodeReader.Decoders.UPCE0.Preamble = UPC.Preambles.System;
barcodeReader.Decoders.UPCE0.ReportCheckDigit = true;
"spaces" 仅存在于人类条形码的表示中,它们将系统和校验和数字与重要数据分开。条形码本身没有编码的空格。
(有关 UPC-E 条形码的更多信息,请参阅 https://en.wikipedia.org/wiki/Universal_Product_Code#UPC-E)
我正在编写一个扫描条形码并将其显示到文本框的应用程序。我正在使用在 Windows Embedded compact 7.0 上运行的 Motorola MC3190 设备。为了实现条码扫描,我使用了Symbol.dll和Symbol.barcode.dll。
我有一个问题,设备正在扫描条形码,但消除了空格前后的字符。我的代码是
private void Form1_Load(object sender, EventArgs e)
{
txtBarcode.Focus();
barcodeReader = new Symbol.Barcode.Reader();
barcodeReaderData = new Symbol.Barcode.ReaderData(Symbol.Barcode.ReaderDataTypes.Text, Symbol.Barcode.ReaderDataLengths.MaximumLabel);
barcodeReader.Actions.Enable();
barcodeReader.ReadNotify += new EventHandler(barcodeReader_Read);
barcodeReader.Actions.Read(barcodeReaderData);
}
private void barcodeReader_Read(object sender, EventArgs e)
{
Symbol.Barcode.ReaderData nextReaderData = barcodeReader.GetNextReaderData();
txtBarcode.Text = nextReaderData.Text;
barcodeReader.Actions.Read(barcodeReaderData);
}
此代码扫描不带空格的条形码。
仅供参考:早期的摩托罗拉MC3190无法扫描空格前后的字符,但在联系摩托罗拉支持团队后,他们告诉我设备有一些变化。现在设备正在接受带空格的条形码。我查看了 datawedge 演示。
现在我正在使用符号汇编,这意味着我正在覆盖代码中的现有功能,但到目前为止运气不好。
编辑:
当我在我的应用程序中扫描此条码时,它会跳过第一个数字 0 和最后一个数字 2。文本框只显示 825610。但是当我尝试在 Datawedge 演示中扫描相同的条码时(软件附带用于测试条码的设备扫描)它显示 082566102
缺少的零包含在条形码格式中。 UPC-E 条形码可以以 0 或 1 开头,它们由扫描仪作为 UPCE0 和 UPCE1 返回。缺少的2是校验位。
您可以通过设置包括这些:
barcodeReader.Decoders.UPCE0.Preamble = UPC.Preambles.System;
barcodeReader.Decoders.UPCE0.ReportCheckDigit = true;
"spaces" 仅存在于人类条形码的表示中,它们将系统和校验和数字与重要数据分开。条形码本身没有编码的空格。
(有关 UPC-E 条形码的更多信息,请参阅 https://en.wikipedia.org/wiki/Universal_Product_Code#UPC-E)