我想用Motorola emdk 2.6版解码GS1-128(表格.ECC / EAN128)条码。我使用ES400作为测试设备。我只以原生文本格式获取数据。
例如(01)25416898545645(17)080600(30)0306180021
返回012541689854564517080600300306180021
。
我没有获得FNC1(ascii102)或GS(ascii 29)字符。我尝试了没有结果的“RawData”。
我该如何处理?
答案 0 :(得分:7)
设计中不存在“缺失的”FNC1。规范(GS1一般规范)规定,第一个位置的FNC1不得在发送的消息中表示。
此外,在固定长度的应用程序标识符之后,以及在条形码中的最后一个AI之后,不需要FNC1。您的AI 01和17是使用数据长度14和6定义的.AI 30是可变长度,但也是条形码中的最后一个元素,因此不需要FNC1。
所以解码GS1-128 :(读取AI,如果长度定义为固定,读取x个字符。如果它是可变长度,读取直到FNC1或条形码结束)重复直到条形码结束。
答案 1 :(得分:3)
Fisrt FNC1不会被解码为ascii102,而是“] C1”。看看AIM Symbology Identifiers。
接下来FNC1被解释为<GS>
,但很可能你看不到它们。尝试在文本编辑器中扫描它们,保存并加载到像Scite这样的文本编辑器中,您可以在其中看到控制字符。
您可以配置Motorola的DataWedge以显示AIM符号标识符,并将<GS>
映射到常见字符,例如$
或=
。