1

我想用摩托罗拉 emdk 版本 2.6 解码 GS1-128(形式。ECC/EAN128)条码。我使用 ES400 作为测试设备。我只获取本机文本格式的数据。

例如(01)25416898545645(17)080600(30)0306180021返回012541689854564517080600300306180021

我没有得到 FNC1 (ascii102) 或 GS​​ (ascii 29) 字符。我尝试了没有结果的“RawData”。

我该如何处理?

4

2 回答 2

7

“缺失”的 FNC1 并非设计使然。规范(GS1 通用规范)规定,第一个位置的 FNC1 不应在传输的消息中表示。

此外,在固定长度的应用标识符之后和条形码中的最后一个 AI 之后不需要 FNC1。您的 AI 的 01 和 17 使用数据长度 14 和 6 定义。AI 30 是可变长度,但也是条形码中的最后一个元素,因此不需要 FNC1。

所以要解码GS1-128:(读取AI,如果长度定义为固定,读取x个字符。如果是可变长度,读取到FNC1或条形码末尾)重复直到条形码末尾。

于 2012-12-12T17:20:53.433 回答
3

第一个 FNC1 不应该被解码为 ascii102,而是“]C1”。看看AIM Symbology Identifiers

下一个 FNC1 应该被解码为,<GS>但您可能看不到它们。尝试在文本编辑器中扫描它们,将其保存并加载到像 Scite 这样的文本编辑器中,您可以在其中看到控制字符。

您可以将摩托罗拉的 DataWedge 配置为显示 AIM 符号标识符,并映射<GS>到常用字符,例如$=

于 2012-07-02T20:12:29.180 回答