读取 I2OF5 条形码时出现问题

本文关键字:问题 I2OF5 条形码 读取 | 更新日期: 2023-09-27 18:31:01

我有两个条形码扫描器 - MC9090和MC9190。最初在MC9090下已经编写了读取条形码和处理SQL数据库的应用程序。在 MC9090 上一切正常 MS9190 - 问题 - 不读取条形码类型 I2OF5(长度 = 最小值 - 6,最大值 - 分别为 - 8)。借助一段代码修改默认值(分别为 14 和 10)(在 MC9090 上):

myReader.Decoders.I2OF5.MinimumLength = 6;
myReader.Decoders.I2OF5.MaximumLength = 8;

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

尝试发送如下参数的完整列表(已在MC9190上):

    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(); 

使用这些参数,条形码可以在摩托罗拉出色的演示应用程序中读取,但在我的应用程序中则不然。

我确实像这样检查:

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,摩托罗拉 EMDK 2.4 for .NET。我看了一下 EMDK 2.4 版本的规格与 9100 系列兼容。

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

读取 I2OF5 条形码时出现问题

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

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 的参数。它对我有用!