GS1 barcode parsing

17.8k views Asked by At

We need to parse the GS1 datamatrix barcode which will be provided by other party. We know they are going to use GTIN(01), lot number(10), Expiration date(17), serial number (21). The problems is that barcode reader output a string, the format is like this 01076123456789001710050310AC3453G321455777. Since there is not separator and both serial number and lot number are variable length according to GS1 standard, we have trouble to identify segments. My understanding is that it seems like the best way to parse is to embed the parser in the scanning device, not from the application. But we didn't plan an embed software yet. How can I implement the parser? Any suggestions?

2

There are 2 answers

6
Magoo On BEST ANSWER

There should be a FNC1 character at the end of a variable-length field; so that FNC1 will appear between the G3 and the 21.

FNC1 is invisible to humans but can be detected by scanners and should be reproduced in the string reported by the scanner as the GS character (ASCII value 29). Simply send the string directly to a text file and examine the text with a hex reader. The GS character representing the barcode's FNC1 separator should be obvious.

If you can, it might be an idea to swap the sequence of the 21 field and the 10 field since you appear to be using a pure-numeric for 21. This would make the barcode produced a little shorter.

1
joeforker On

One way to deal with this is to program the scanner to replace FNC1 with space or another plain text character before sending it to your application. The scanner manufacturer usually provides a tool to produce programming bar codes that can do simple substitutions in the scanner. Then you can parse the data without having to handle special characters.