繁体   English   中英

摩托罗拉MC3190扫描时出现异常行为

[英]Motorola MC3190 strange behavior while scanning

我正在编写一个应用程序来扫描条形码并将其显示在文本框中。 我正在使用在Windows Embedded Compact 7.0上运行的Motorola MC3190设备。 为了实现条形码扫描,我使用了Symbol.dllSymbol.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);  
    }

该代码扫描没有空格的条形码。

仅供参考:早期的Motorola MC3190无法扫描空格前后的字符,但是在联系Motorola支持团队之后,他们告诉我设备的某些更改。 现在设备正在接受带空格的条形码。 我检查了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;

“空格”仅存在于人类条形码中,它们将系统和校验和数字与重要数据区分开。 条形码本身没有编码的空格。

(有关UPC-E条形码的更多信息,请参见https://en.wikipedia.org/wiki/Universal_Product_Code#UPC-E

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM