首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读取I2OF5条形码时遇到问题

读取I2OF5条形码时遇到问题
EN

Stack Overflow用户
提问于 2016-01-19 18:23:49
回答 1查看 519关注 0票数 0

我有两个条形码扫描仪-- MC9090和MC9190。最初,在MC9090下已经编写了读取条形码和使用SQL databases.On的应用程序,MC9090在MS9190 - problem -而不是读取条形码类型I2OF5 (长度分别为最小- 6和最大-8)上工作得很好。借助一段代码(在MC9090上)修改默认值(分别为14和10 ):

代码语言:javascript
复制
myReader.Decoders.I2OF5.MinimumLength = 6;
myReader.Decoders.I2OF5.MaximumLength = 8;

使用MC9190,我可以读取具有默认参数(分别为14和10 )的I2OF5条形码,但无法读取长度为最小= 6,最大= 8的I2OF5条形码。

尝试像这样发送完整的参数列表(已在MC9190上):

代码语言:javascript
复制
    myReader.Parameters.CodeIdType = CodeIdTypes.None;
    myReader.Parameters.ScanType = ScanTypes.Foreground;
    myReader.Decoders.I2OF5.MinimumLength = 6;
    myReader.Decoders.I2OF5.MaximumLength = 8;
    myReader.Decoders.I2OF5.Redundancy = true;
    myReader.Decoders.I2OF5.CheckDigitScheme = I2OF5.CheckDigitSchemes.None;
    myReader.Decoders.I2OF5.ConvertToEAN13 = false;
    myReader.Decoders.I2OF5.ReportCheckDigit = false;
    myReader.Actions.SetParameters(); 

有了这些参数,条形码可以在Motorola的演示应用程序中读取,但不能在我的应用程序中读取。

我会像这样检查:

代码语言:javascript
复制
if (_scnAPI.Reader.Decoders.I2OF5.Enabled == true)
    {
        if (_scnAPI.Reader.Decoders.I2OF5.MinimumLength == 6)
        {
            MessageBox.Show("6");
        }

        if (_scnAPI.Reader.Decoders.I2OF5.MaximumLength == 8)
        {
            MessageBox.Show("8");
        }

        if (_scnAPI.Reader.Decoders.I2OF5.Redundancy == true)
        {
            MessageBox.Show("Redundancy");
        }

        if (_scnAPI.Reader.Parameters.CodeIdType == Symbol.Barcode.CodeIdTypes.None)
        {
            MessageBox.Show("CodeType");
        }

        if (_scnAPI.Reader.Decoders.I2OF5.CheckDigitScheme == Symbol.Barcode.I2OF5.CheckDigitSchemes.None)
        {
            MessageBox.Show("CheckDigit");
        }
        if (_scnAPI.Reader.Parameters.ScanType == Symbol.Barcode.ScanTypes.Foreground)
        {
            MessageBox.Show("foreground");
        }
    }
    else
    {
        MessageBox.Show("App Exit!");
        Application.Exit();
    }

所有检查都通过了,但是我不清楚为什么没有读取长度合适的I2OF5条形码?请帮我找出问题所在。

备注:我使用的是Symbol.Barcode库,摩托罗拉EMDK2.4 for .NET。我看了一下EMDK2.4的规格,版本是兼容9100系列的。

https://atgsupportcentral.motorolasolutions.com/content/emb/docs/ReleaseNotes/Release%20Notes%20-%20EMDK-M-020403TnV1.htm

EN

回答 1

Stack Overflow用户

发布于 2019-11-26 22:48:00

我的经验是: Code128条形码设置阻止了I2OF5读取。

代码语言:javascript
复制
public FormMain()
        {
            bcl.OnScan +=new Barcode2.OnScanHandler(bcl_OnScan);
            bcl.Config.Decoders.I2OF5.Enabled = true;
            bcl.Config.Decoders.CODE128.Enabled = false;
            bcl.Config.Decoders.I2OF5.MinLength = 6;
            bcl.Config.Decoders.I2OF5.MaxLength = 8;
            bcl.Scan();
            InitializeComponent();
        }

关闭CODE128,启用I2OF5,并设置I2OF5的参数。这对我来说很有效!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34874256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档