我有两个条码扫描器 - MC9090 和 MC9190。最初在 MC9090 下已经编写了读取条形码和使用 SQL 数据库的应用程序。在 MC9090 上,MS9190 上一切正常 - 问题 - 不读取条形码类型 I2OF5(分别为长度 = 最小值 - 6,最大值 - 8)。借助一段代码(在 MC9090 上)修改默认值(分别为 14 和 10):
myReader.Decoders.I2OF5.MinimumLength = 6;
myReader.Decoders.I2OF5.MaximumLength = 8;
使用 MC9190,我可以使用默认参数(分别为 14 和 10)读取 I2OF5 条码,但无法读取长度 min = 6,max = 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 条码?请帮我找出问题所在。
PS 我使用库 Symbol.Barcode,Motorola EMDK 2.4 for .NET。我看了EMDK 2.4版本的规格是兼容9100-系列的。