C# 如何使用emdk读取特殊符号

C# 如何使用emdk读取特殊符号,c#,windows-mobile,barcode,symbols,motorola-emdk,C#,Windows Mobile,Barcode,Symbols,Motorola Emdk,我使用Motorola EMDK sdk for.net读取条形码,除了(符号和)符号外,一切正常 请参阅下面我的代码: MyReader = new Symbol.Barcode.Reader(); MyReader.Actions.Enable(); MyReader.Decoders.DisableAll(); MyReader.Decoders.CODE128.Enabled = true; MyReader.Decoders.CODE128.MinimumLength = 2; M

我使用Motorola EMDK sdk for.net读取条形码,除了符号和符号外,一切正常

请参阅下面我的代码:

MyReader = new Symbol.Barcode.Reader();
MyReader.Actions.Enable();
MyReader.Decoders.DisableAll();
MyReader.Decoders.CODE128.Enabled = true;
MyReader.Decoders.CODE128.MinimumLength = 2;
MyReader.Decoders.CODE128.MaximumLength = 55;
MyReader.Decoders.CODE128.EAN128 = true;
MyReader.Decoders.CODE128.ISBT128 = true;
MyReader.Decoders.CODE128.Other128 = true;

MyReader.Decoders.SetEnabled(Symbol.Barcode.DecoderTypes.CODE128, true);
MyReaderData = new Symbol.Barcode.ReaderData(Symbol.Barcode.ReaderDataTypes.Binary, Symbol.Barcode.ReaderDataLengths.MaximumLabel);
MyEventHandler = new EventHandler(MyReader_ReadNotify);
MyReader.Actions.Enable();

正如charlesbridge所说,显示的信息与GS1条形码中编码的数据不完全匹配

括号内的数据称为应用程序标识符(AI)。每个AI后面都有它的数据。例如,(11)131011表示该项目于2013年10月11日生产

如果要重新创建显示的字符串,应用程序需要知道每个AI的最大长度。如果AI的数据短于其最大长度,它将以0x1d字符终止(该字符出现在解码数据中,但不会在屏幕上呈现)

在您的示例中,只有序列号(21)具有可变长度,但由于它是条形码中的最后一个AI,因此不需要终止字符

看看你是否喜欢阅读,或者快速参考


至于确定条形码是否为GS1条形码,
ReaderData
对象包含一个
Type
属性,该属性至少在我的设备上是
RSS…
值之一。

如charlesbridge所说,显示的信息与GS1条形码中编码的数据不完全匹配

括号内的数据称为应用程序标识符(AI)。每个AI后面都有它的数据。例如,(11)131011表示该项目于2013年10月11日生产

如果要重新创建显示的字符串,应用程序需要知道每个AI的最大长度。如果AI的数据短于其最大长度,它将以0x1d字符终止(该字符出现在解码数据中,但不会在屏幕上呈现)

在您的示例中,只有序列号(21)具有可变长度,但由于它是条形码中的最后一个AI,因此不需要终止字符

看看你是否喜欢阅读,或者快速参考


至于确定条形码是否为GS1条形码,
ReaderData
对象包含一个
Type
属性,至少在我的设备上,该属性将是
RSS…
值之一。

将“(”和“)”添加到人类可读部分,而不是在条形码中编码。它们是GS1-128应用程序标识符。感谢charlesBridge将“(”和“)”添加到人类可读部分,它们没有编码在条形码中。它们是GS1-128应用程序标识符。谢谢charlesbridge